types.APIConfig
auth object
Auth configures authentication for the API
jwt object
JWT/OIDC auth
Audience is the expected 'aud' claim in JWTs. Defaults to "urn:expanso:orchestrator" if not set. Set to empty string explicitly to disable audience validation.
Issuer URL - required to enable JWT authentication. e.g., "https://cloud.expanso.io" JWKS URL is derived by appending /.well-known/jwks.json Also used to validate the 'iss' claim in JWTs If empty, JWT authentication is disabled.
NetworkClaimName is the JWT claim containing network IDs (default: "networkId")
OrganizationClaimName is the JWT claim containing organization IDs (default: "organizationId")
TokenEndpoint is the OAuth2-compatible endpoint for exchanging API keys (exp_ak_*) for short-lived JWTs. Optional — when set, the orchestrator accepts API keys as Bearer tokens and exchanges them server-side. Requires Issuer to be configured (the exchanged JWTs are validated via JWKS).
OrganizationID this node belongs to - optional If empty, organization validation is skipped (allow all access).
cors object
CORS configures Cross-Origin Resource Sharing for browser-based clients
AllowedOrigins is a list of origins that are allowed to make cross-origin requests. Use exact origins like "https://cloud.expanso.io" or patterns like "https://localhost:*" to match any port on localhost.
Listen address - defaults to localhost:9010 Empty string disables the API server
{
"auth": {
"jwt": {
"audience": "string",
"issuer": "string",
"network_claim_name": "string",
"organization_claim_name": "string",
"token_endpoint": "string"
},
"organization_id": "string"
},
"cors": {
"allowed_origins": [
"string"
]
},
"listen_addr": "string"
}