[package]
edition = "2021"
name = "aa-gateway"
version = "0.0.1-alpha.9"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Control plane — policy enforcement engine and agent registry for Agent Assembly"
readme = false
license = "Apache-2.0"
repository = "https://github.com/ai-agent-assembly/agent-assembly"
[features]
default = []
redis-cache = ["dep:redis"]
[lib]
name = "aa_gateway"
path = "src/lib.rs"
[[bin]]
name = "aa-gateway"
path = "src/main.rs"
[[test]]
name = "admin_status_e2e"
path = "tests/admin_status_e2e.rs"
[[test]]
name = "anomaly_spike_test"
path = "tests/anomaly_spike_test.rs"
[[test]]
name = "approval_flow_test"
path = "tests/approval_flow_test.rs"
[[test]]
name = "approval_routing_lifecycle_test"
path = "tests/approval_routing_lifecycle_test.rs"
[[test]]
name = "approval_service_test"
path = "tests/approval_service_test.rs"
[[test]]
name = "audit_channel_test"
path = "tests/audit_channel_test.rs"
[[test]]
name = "audit_integration_test"
path = "tests/audit_integration_test.rs"
[[test]]
name = "audit_lineage_test"
path = "tests/audit_lineage_test.rs"
[[test]]
name = "audit_storage_sink_test"
path = "tests/audit_storage_sink_test.rs"
[[test]]
name = "audit_test"
path = "tests/audit_test.rs"
[[test]]
name = "budget_persistence_test"
path = "tests/budget_persistence_test.rs"
[[test]]
name = "capability_integration_test"
path = "tests/capability_integration_test.rs"
[[test]]
name = "cascade_collect_test"
path = "tests/cascade_collect_test.rs"
[[test]]
name = "cascade_credential_action_test"
path = "tests/cascade_credential_action_test.rs"
[[test]]
name = "cascade_epoch_test"
path = "tests/cascade_epoch_test.rs"
[[test]]
name = "cascade_merge_test"
path = "tests/cascade_merge_test.rs"
[[test]]
name = "cascade_version_test"
path = "tests/cascade_version_test.rs"
[[test]]
name = "cross_team_edge_test"
path = "tests/cross_team_edge_test.rs"
[[test]]
name = "edge_langgraph_test"
path = "tests/edge_langgraph_test.rs"
[[test]]
name = "edge_repo_test"
path = "tests/edge_repo_test.rs"
[[test]]
name = "edge_store_test"
path = "tests/edge_store_test.rs"
[[test]]
name = "graph_vars_fixture_test"
path = "tests/graph_vars_fixture_test.rs"
[[test]]
name = "inter_team_fixture_test"
path = "tests/inter_team_fixture_test.rs"
[[test]]
name = "lifecycle_service_test"
path = "tests/lifecycle_service_test.rs"
[[test]]
name = "migration_boot"
path = "tests/migration_boot.rs"
[[test]]
name = "observe_mode_test"
path = "tests/observe_mode_test.rs"
[[test]]
name = "op_control_stream_test"
path = "tests/op_control_stream_test.rs"
[[test]]
name = "ops_registry_publisher_test"
path = "tests/ops_registry_publisher_test.rs"
[[test]]
name = "policy_latency_test"
path = "tests/policy_latency_test.rs"
[[test]]
name = "policy_service_ops_ingestion_test"
path = "tests/policy_service_ops_ingestion_test.rs"
[[test]]
name = "policy_service_secret_alert_test"
path = "tests/policy_service_secret_alert_test.rs"
[[test]]
name = "policy_service_test"
path = "tests/policy_service_test.rs"
[[test]]
name = "registry_storage_persistence_test"
path = "tests/registry_storage_persistence_test.rs"
[[test]]
name = "registry_test"
path = "tests/registry_test.rs"
[[test]]
name = "remote_mode_e2e"
path = "tests/remote_mode_e2e.rs"
[[test]]
name = "remote_mode_http"
path = "tests/remote_mode_http.rs"
[[test]]
name = "remote_mode_tls"
path = "tests/remote_mode_tls.rs"
[[test]]
name = "sanitizer_adversarial_test"
path = "tests/sanitizer_adversarial_test.rs"
[[test]]
name = "scope_index_fixtures_test"
path = "tests/scope_index_fixtures_test.rs"
[[test]]
name = "service_convert_test"
path = "tests/service_convert_test.rs"
[[test]]
name = "sqlite_restart_persistence_test"
path = "tests/sqlite_restart_persistence_test.rs"
[[test]]
name = "storage_trait_object_safety"
path = "tests/storage_trait_object_safety.rs"
[[test]]
name = "team_budget_test"
path = "tests/team_budget_test.rs"
[[test]]
name = "topology_service_test"
path = "tests/topology_service_test.rs"
[[test]]
name = "webhook_delivery_test"
path = "tests/webhook_delivery_test.rs"
[[bench]]
name = "policy_cascade"
path = "benches/policy_cascade.rs"
harness = false
[[bench]]
name = "policy_check"
path = "benches/policy_check.rs"
harness = false
[dependencies.aa-core]
version = "0.0.1-alpha.9"
features = ["serde"]
[dependencies.aa-proto]
version = "0.0.1-alpha.9"
[dependencies.aa-runtime]
version = "0.0.1-alpha.9"
[dependencies.aa-security]
version = "0.0.1-alpha.9"
features = ["serde"]
[dependencies.ahash]
version = "0.8"
[dependencies.arc-swap]
version = "1"
[dependencies.async-stream]
version = "0.3"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8"
[dependencies.axum-server]
version = "0.8"
features = ["tls-rustls"]
[dependencies.chrono]
version = "0.4"
features = [
"clock",
"serde",
]
[dependencies.chrono-tz]
version = "0.10"
features = ["serde"]
[dependencies.clap]
version = "4"
features = ["derive"]
[dependencies.cron]
version = "0.16"
[dependencies.dashmap]
version = "6"
[dependencies.dirs]
version = "6"
[dependencies.ed25519-dalek]
version = "2"
features = ["std"]
[dependencies.hex]
version = "0.4"
[dependencies.humantime]
version = "2"
[dependencies.metrics]
version = "0.24"
[dependencies.moka]
version = "0.12"
features = ["sync"]
[dependencies.notify]
version = "8"
features = []
[dependencies.parking_lot]
version = "0.12"
[dependencies.redis]
version = "1.2"
features = [
"tokio-comp",
"connection-manager",
]
optional = true
default-features = false
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
]
default-features = false
[dependencies.rust_decimal]
version = "1"
features = ["serde-str"]
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_yaml]
version = "0.9"
[dependencies.sha2]
version = "0.11"
[dependencies.similar]
version = "3"
[dependencies.sqlx]
version = "0.8"
features = [
"runtime-tokio-rustls",
"sqlite",
"postgres",
"macros",
"migrate",
"uuid",
"chrono",
"json",
]
[dependencies.strsim]
version = "0.11"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-stream]
version = "0.1"
[dependencies.tokio-util]
version = "0.7"
[dependencies.tonic]
version = "0.14"
features = ["transport"]
[dependencies.tower-http]
version = "0.6"
features = ["fs"]
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dependencies.utoipa]
version = "5"
features = ["axum_extras"]
[dependencies.uuid]
version = "1"
features = [
"v4",
"v5",
"v7",
"serde",
]
[dependencies.x509-parser]
version = "0.18"
[dev-dependencies.criterion]
version = "0.8"
features = ["async_tokio"]
[dev-dependencies.insta]
version = "1"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.rcgen]
version = "0.14"
features = ["pem"]
[dev-dependencies.rustls]
version = "0.23"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.testcontainers-modules]
version = "0.15"
features = [
"postgres",
"nats",
]
[dev-dependencies.time]
version = "0.3"
[dev-dependencies.tokio]
version = "1"
features = [
"test-util",
"macros",
"rt-multi-thread",
]
[dev-dependencies.tokio-stream]
version = "0.1"
[dev-dependencies.tower]
version = "0.5"
features = ["util"]
[lints.clippy]
all = "warn"
complexity = "warn"
correctness = "deny"
perf = "warn"
style = "warn"
suspicious = "deny"