pub struct A2aServerConfig {Show 15 fields
pub enabled: bool,
pub host: String,
pub port: u16,
pub public_url: String,
pub auth_token: Option<String>,
pub rate_limit: u32,
pub require_tls: bool,
pub ssrf_protection: bool,
pub max_body_size: usize,
pub drain_timeout_ms: u64,
pub require_auth: bool,
pub ibct_keys: Vec<IbctKeyConfig>,
pub ibct_signing_key_vault_ref: Option<String>,
pub ibct_ttl_secs: u64,
pub advertise_files: bool,
}Expand description
A2A server configuration, nested under [a2a] in TOML.
Controls the Agent-to-Agent HTTP server that exposes the agent via the A2A protocol.
The AgentCard served at /.well-known/agent.json is built from these settings combined
with runtime-detected capabilities (images, audio) and the opt-in advertise_files flag.
Fields§
§enabled: bool§host: String§port: u16§public_url: String§auth_token: Option<String>§rate_limit: u32§require_tls: bool§ssrf_protection: bool§max_body_size: usize§drain_timeout_ms: u64§require_auth: boolWhen true, all requests are rejected with 401 if no auth_token is configured.
Default false for backward compatibility — existing deployments without a token
continue to operate. Set to true in production when authentication is mandatory.
ibct_keys: Vec<IbctKeyConfig>IBCT signing keys for per-task delegation scoping.
When non-empty, all A2A task requests must include a valid X-Zeph-IBCT header
signed with one of these keys. Multiple keys allow key rotation without downtime.
ibct_signing_key_vault_ref: Option<String>Vault key name to resolve the primary IBCT signing key at startup (MF-3 fix).
When set, the vault key is resolved at startup and used to construct an
IbctKey with key_id = "primary". Takes precedence over ibct_keys[0] if both
are set. Example: "ZEPH_A2A_IBCT_KEY".
ibct_ttl_secs: u64TTL (seconds) for issued IBCT tokens. Default: 300 (5 minutes).
advertise_files: boolAdvertise non-media file attachment capability on the AgentCard.
When true, the served /.well-known/agent.json sets capabilities.files = true,
signalling to peer agents that this agent can receive Part::File entries that are
not image or audio (e.g., documents, archives).
Default false because generic file attachments have no built-in ingestion path in
the current agent loop. Set to true only when the deployed agent has skills or MCP
tools that can consume file parts; otherwise the card would advertise a capability
the agent silently drops.
Note: images and audio capability flags are auto-detected from the active LLM
provider and STT configuration — no manual override is needed for those.