Skip to content
AIPDocs
AIP 1.055 pagesReference
Release status
DocumentationAIP 1.0ReferenceDeploy and Operate

Environment Variables

aipd accepts environment variables for deployment wiring and secret-file references. Command-line options are easier to inspect locally; environment variables are useful in orchestrators that inject configuration at process start.

For single-value settings, an explicit CLI value normally takes precedence. AIPD_NATIVE_PRINCIPAL and AIPD_MCP_PRINCIPAL are the exceptions in the 1.0 binary: when present, the environment value wins. Repeatable lists merge CLI and environment values. List variables accept comma, semicolon, or newline separators unless a row states otherwise. Boolean CLI and environment switches are combined as logical OR, except that AIPD_ALLOW_UNSIGNED_ENVELOPES controls the default signature requirement directly.

Boolean variables are enabled by 1, true, TRUE, yes, or YES.

Runtime and Native Security

Variable Purpose
AIPD_STORAGE_DIR Single-host durable state directory
AIPD_POSTGRES_URL PostgreSQL runtime backend URL
AIPD_NATIVE_BEARER_TOKEN Inline native operational bearer token
AIPD_NATIVE_BEARER_TOKEN_FILE Owner-only file containing the native token
AIPD_NATIVE_PRINCIPAL Principal established by native bearer authentication
AIPD_NATIVE_PRINCIPAL_SCOPES Scopes granted to the native principal
AIPD_TRUSTED_IDENTITY_FILE Trusted identity, tenant, and credential-reference directory
AIPD_APPROVAL_AUTHORITY_FILE Trusted approval authority directory
AIPD_TRUSTED_SIGNERS DID=PRINCIPAL_ID bindings; semicolon or newline separated
AIPD_REQUIRE_SIGNED_ENVELOPES Explicitly require signed native envelopes
AIPD_ALLOW_UNSIGNED_ENVELOPES Disable the default signed-envelope requirement; dangerous
AIPD_INSECURE_DEVELOPMENT Permit unauthenticated native traffic on loopback only

AIPD_ALLOW_UNSIGNED_ENVELOPES does not make production traffic safe. Use it only when another explicit, tested trust boundary owns native authentication.

NATS

Variable Purpose
AIPD_NATS_URL NATS server URL
AIPD_NATS_USERNAME NATS username
AIPD_NATS_PASSWORD_FILE Owner-only NATS password file
AIPD_NATS_TRUST_DOMAIN Native subject trust-domain segment
AIPD_NATS_SERVICE Native subject service segment
AIPD_NATS_VERSION Native subject version segment
AIPD_NATS_QUEUE_GROUP Queue group for scaled consumers
AIPD_NATS_REQUEST_TIMEOUT_MS Request timeout in milliseconds

Username and password-file settings must be provided together.

aipctl accepts an independent client-side NATS security set:

Variable Purpose
AIPCTL_NATS_USERNAME NATS username used by native CLI requests
AIPCTL_NATS_PASSWORD_FILE Owner-only NATS password file used by the CLI
AIPCTL_NATS_SIGNING_SEED_FILE Owner-only file containing a hex-encoded 32-byte Ed25519 seed

The CLI password file is required with the CLI username. Signed native requests additionally require the seed-derived DID to be bound to agent:aipctl in AIPD_TRUSTED_SIGNERS and in the deployment’s trusted identity directory.

Delegation and Callbacks

Variable Purpose
AIPD_DELEGATION_HTTP_ROUTES HTTP delegation routes; semicolon or newline separated
AIPD_DELEGATION_NATS_ROUTES NATS delegation routes; semicolon or newline separated
AIPD_CALLBACK_ALLOWED_HOSTS Exact outbound callback hosts
AIPD_CALLBACK_SIGNING_SEED_HEX Hex-encoded 32-byte Ed25519 signing seed
AIPD_CALLBACK_TIMEOUT_MS Per-attempt callback timeout; default 5000 ms
AIPD_CALLBACK_ALLOW_HTTP Permit plaintext callback targets
AIPD_CALLBACK_ALLOW_PRIVATE_NETWORKS Permit private or loopback targets
AIPD_A2A_PUSH_ENCRYPTION_KEY_HEX Hex-encoded 32-byte key for A2A push credentials at rest

Delegation routes require the callback signing seed because native remote requests are signed. A2A push encryption also requires callback signing.

MCP

Variable Purpose
AIPD_MCP_BEARER_TOKEN Static MCP Streamable HTTP token
AIPD_MCP_RESOURCE Protected-resource identifier
AIPD_MCP_AUTHORIZATION_SERVERS Advertised authorization-server issuers
AIPD_MCP_SCOPES Advertised supported scopes
AIPD_MCP_REQUIRED_SCOPES Scopes required when establishing an MCP session
AIPD_MCP_RESOURCE_DOCUMENTATION Human-readable protected-resource documentation URL
AIPD_MCP_ALLOWED_ORIGINS Allowed browser origins
AIPD_MCP_INTROSPECTION_URL RFC 7662 endpoint
AIPD_MCP_INTROSPECTION_ISSUER Trusted introspection issuer
AIPD_MCP_INTROSPECTION_CLIENT_ID Introspection client id
AIPD_MCP_INTROSPECTION_CLIENT_SECRET_FILE Owner-only introspection client-secret file
AIPD_MCP_INTROSPECTION_ALLOW_LOOPBACK_HTTP Permit a loopback plaintext introspection fixture
AIPD_MCP_PRINCIPAL AIP principal established for MCP traffic
AIPD_MCP_PRINCIPAL_SCOPES Scopes granted to the MCP principal

The loopback introspection exception is for isolated qualification fixtures. A network deployment must use HTTPS and validate issuer, audience, subject, activity, expiration, and required scopes.

Hermes Agent

Variable Purpose
AIPD_HERMES_ENDPOINTS ID=URL entries; comma, semicolon, or newline separated
AIPD_HERMES_API_KEY Shared Hermes API-server bearer token
AIPD_HERMES_OPERATOR_DELEGATION_ENABLED Enable governed operator routing
AIPD_HERMES_OPERATOR_MODEL Model route for operator runs
AIPD_HERMES_OPERATOR_INSTRUCTIONS_FILE Trusted instructions file
AIPD_HERMES_OPERATOR_INSTRUCTIONS Inline trusted instructions; file form is preferred
AIPD_HERMES_OPERATOR_TIMEOUT_MS Maximum observation duration
AIPD_HERMES_OPERATOR_POLL_MS Recovery polling interval
AIPD_HERMES_OPERATOR_MAX_EVENTS Maximum accepted structured run events
AIPD_HERMES_OPERATOR_MAX_INPUT_BYTES Maximum serialized AIP input size
AIPD_HERMES_OPERATOR_MAX_DELEGATION_DEPTH Accepted delegation depth
AIPD_HERMES_OPERATOR_CLAIM_TTL_MS Exclusive run/approval claim TTL
AIPD_HERMES_OPERATOR_CANCEL_GRACE_MS Cancellation reconciliation grace period
AIPD_HERMES_OPERATOR_CAPABILITY_PREFIXES Allowed delegated capability prefixes
AIPD_HERMES_OPERATOR_APPROVAL_EXEMPT_CAPABILITY_PREFIXES Explicit unattended capability prefixes
AIPD_HERMES_OPERATOR_SCOPE_PREFIXES Allowed delegated scope prefixes

Treat inline API keys and instructions as sensitive process configuration. Use the deployment secret boundary and the file form where available.

Cal.diy

Variable Purpose
AIPD_CAL_DIY_BASE_URL Self-hosted Cal.diy API base URL
AIPD_CAL_DIY_ACCOUNT_ID Deployment-local account id
AIPD_CAL_DIY_MAX_RESPONSE_BYTES Accepted provider response limit
AIPD_CAL_DIY_BEARER_TOKEN_FILE API key or access-token file
AIPD_CAL_DIY_OAUTH_CLIENT_ID OAuth client id
AIPD_CAL_DIY_OAUTH_CLIENT_SECRET_FILE OAuth client-secret file
AIPD_CAL_DIY_TENANT_ACCOUNTS TENANT_ID=ACCOUNT_ID mappings
AIPD_CAL_DIY_CREDENTIAL_FILES OPAQUE_HANDLE=FILE mappings
AIPD_CAL_DIY_WEBHOOK_SECRET_FILES OPAQUE_REF=FILE mappings
AIPD_CAL_DIY_WEBHOOK_REPLAY_FILE Durable single-process replay-observation file
AIPD_CAL_DIY_WEBHOOK_SUBSCRIBER_PREFIXES Allowed deployment-owned HTTPS ingress prefixes

Bearer and OAuth client authentication are mutually exclusive. Mapping lists accept semicolons or newlines as separators so URLs and values remain intact.

Deterministic Sandbox Connectors

Variable Purpose
AIPD_SUPPORT_SANDBOX_DATABASE_URL Support-system test database
AIPD_ENTERPRISE_SANDBOX_DATABASE_URL Enterprise-scenario test database

These connectors support deterministic protocol campaigns. They are not a substitute for production product connectors.

aipctl

Variable Purpose
AIPCTL_NATIVE_BEARER_TOKEN Default native HTTP token for aipctl
AIPCTL_MCP_BEARER_TOKEN Default MCP HTTP token for MCP subcommands

An explicit CLI token takes precedence. Avoid exporting long-lived tokens into shared shell profiles or command histories.