Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
6d339b3
feat(config): add optional TLS fields to etcd Config
Apr 13, 2026
273d4d1
feat: expose run(), Args, GIT_HASH, init_observability() as public li…
Apr 16, 2026
f299116
fix: use proper error propagation in lib API instead of process::exit
Apr 16, 2026
66a9582
chore: add stub build-ui feature for local patch compatibility
Apr 16, 2026
36d702d
ci: notify aisix-ee on push to main or release tag
Apr 16, 2026
0e6bed4
build: fall back gracefully when git SHA is unavailable (e.g. git dep)
Apr 16, 2026
d9fa2b7
merge: merge origin/main and expose public API for EE
Apr 16, 2026
9fe8262
fix: remove duplicate [features] and [build-dependencies] from merge
Apr 16, 2026
efc0a49
fix: use CARGO_MANIFEST_DIR for ui/dist path in build script
Apr 16, 2026
da1e786
feat: expose run_with_observability for EE embedders
Apr 16, 2026
b13abe2
feat: expose run_with_config for pre-built Config injection
Apr 16, 2026
f14832b
feat: add etcd TLS support via tls feature and EtcdTlsConfig
Apr 16, 2026
d286c52
fix: switch etcd TLS to openssl backend to bypass hostname verification
Apr 16, 2026
bbc92ae
refactor: replace EtcdTlsConfig file paths with inline PEM fields
Apr 16, 2026
9a3e11a
fix: load full CA bundle using stack_from_pem for multi-cert PEM chains
Apr 16, 2026
bef072e
fix: allow IP address mismatch (err 64) in TLS verify callback
Apr 16, 2026
bcef773
fix: use KV.Get as connectivity probe instead of Maintenance.Status
Apr 16, 2026
f2102b4
feat: add HTTP REST etcd provider for API7 CP mode
Apr 16, 2026
5012d59
fix: use from_pkcs8_pem for reqwest Identity (from_pem not in 0.13)
Apr 16, 2026
7340c34
fix: load mTLS identity via OpenSSL PKCS#12 to support any key format
Apr 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/workflows/notify-ee-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Triggers a build in api7/aisix-ee whenever this repo is pushed to main or tagged.
# On main push: dev-build event (aisix-ee uses branch="main" in Cargo.toml)
# On v* tag: release-build event (aisix-ee CI patches Cargo.toml to use the tag)
name: Notify EE Build

on:
push:
branches: ["main"]
tags: ["v*"]

jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Dispatch to aisix-ee (dev build)
if: github.ref == 'refs/heads/main'
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # 4.0.1
with:
# PAT with repo scope for api7/aisix-ee, stored in api7/aisix secrets
token: ${{ secrets.EE_DISPATCH_TOKEN }}
repository: api7/aisix-ee
event-type: dev-build
client-payload: '{"sha": "${{ github.sha }}"}'

- name: Dispatch to aisix-ee (release build)
if: startsWith(github.ref, 'refs/tags/v')
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # 4.0.1
with:
token: ${{ secrets.EE_DISPATCH_TOKEN }}
repository: api7/aisix-ee
event-type: release-build
client-payload: '{"tag": "${{ github.ref_name }}"}'
39 changes: 39 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 6 additions & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ axum = { version = "0.8.9", features = [
], default-features = false }
serde = "1.0.228"
serde_json = "1.0"
etcd-client = "0.18.0"
etcd-client = { version = "0.18.0", features = ["tls-openssl"] }
async-trait = "0.1"
futures = "0.3"
bytes = "1.0"
Expand Down Expand Up @@ -80,6 +80,11 @@ axum-server = { version = "0.8.0", default-features = false, features = [
backon = { version = "1.6.0", default-features = false, features = [
"tokio-sleep",
] }
base64 = "0.22"

[build-dependencies]
vergen-git2 = { version = "9.1.0" }
anyhow = "1"

[dev-dependencies]
tokio-test = "0.4"
Expand All @@ -88,10 +93,6 @@ pretty_assertions = "1.4"
rstest = "0.26"
tempfile = "3"

[build-dependencies]
anyhow = "1"
vergen-git2 = { version = "9.1.0" }

[patch.crates-io]
opentelemetry = { git = "https://github.com/open-telemetry/opentelemetry-rust.git", rev = "965078315b58ae14725721735f1c8e2bc2d3b445" }
opentelemetry_sdk = { git = "https://github.com/open-telemetry/opentelemetry-rust.git", rev = "965078315b58ae14725721735f1c8e2bc2d3b445" }
Expand Down
22 changes: 16 additions & 6 deletions build.rs
Original file line number Diff line number Diff line change
@@ -1,27 +1,37 @@
use std::{env, fs, process};

use anyhow::{Result, anyhow};
use anyhow::{anyhow, Result};
use vergen_git2::{Emitter, Git2Builder};

fn main() -> Result<()> {
build_ui()?;

Emitter::default()
// When built as a git dependency (no .git directory present), vergen_git2
// cannot read the SHA. We emit a fallback value and continue rather than
// failing the build.
let result = Emitter::default()
.add_instructions(&Git2Builder::default().sha(true).build()?)?
.emit()?;
.emit();

if result.is_err() {
// Emit a placeholder so that code referencing VERGEN_GIT_SHA compiles.
println!("cargo:rustc-env=VERGEN_GIT_SHA=unknown");
}

println!("cargo:rerun-if-changed=build.rs");

Ok(())
}

fn build_ui() -> Result<()> {
let manifest_dir = env::var("CARGO_MANIFEST_DIR").unwrap_or_else(|_| ".".to_string());

if env::var("CARGO_FEATURE_BUILD_UI").is_ok() {
println!("cargo:rerun-if-changed=ui");

let status = process::Command::new("pnpm")
.args(["install", "--frozen-lockfile"])
.current_dir("ui")
.current_dir(format!("{manifest_dir}/ui"))
.stdout(std::process::Stdio::inherit())
.stderr(std::process::Stdio::inherit())
.status()?;
Expand All @@ -35,7 +45,7 @@ fn build_ui() -> Result<()> {

let status = process::Command::new("pnpm")
.args(["run", "build"])
.current_dir("ui")
.current_dir(format!("{manifest_dir}/ui"))
.stdout(std::process::Stdio::inherit())
.stderr(std::process::Stdio::inherit())
.status()?;
Expand All @@ -44,7 +54,7 @@ fn build_ui() -> Result<()> {
return Err(anyhow!("failed to build ui with status: {}", status));
}
} else {
fs::create_dir_all("ui/dist")?;
fs::create_dir_all(format!("{manifest_dir}/ui/dist"))?;
}
Ok(())
}
Loading
Loading