Gateway Configuration

The gateway is configured via environment variables and command-line flags.

Environment Variables

VariableRequiredDescription
GATEWAY_PORTNoListen port (default: 8090)
VALKEY_URLNoValkey/Redis URL for service discovery
AWS_REGIONYesS3 region for deployment registry
AWS_ENDPOINT_URLNoS3 endpoint (for MinIO)
S3_BUCKETYesDeployment registry bucket
ENVIRONMENTNoEnvironment name (dev/staging/production)
ADMIN_API_KEYYesAdmin authentication key
SECRETS_KEYYesEncryption key for agent secrets

API Key Management

Keys are stored in Valkey with the format:
podium:keys:{key_prefix} → {key_hash, tenant_id, permissions, created_at}
Key prefixes:
  • pod_admin_* — Admin keys (full access)
  • pod_* — Tenant keys (scoped access)

Coordinator Configuration

Environment Variables

VariableRequiredDescription
COORDINATOR_PORTNoListen port (default: 9090)
COORDINATOR_IDNoUnique coordinator ID (auto-generated)
VALKEY_URLNoValkey URL for registration
AWS_REGIONYesS3 region
S3_BUCKETYesDeployment registry bucket
CHRONICLE_ENABLENoEnable Chronicle FUSE mounts (default: true)
CHRONICLE_S3_BUCKETNoS3 bucket for Chronicle CAS
LITESTREAM_REPLICA_URLNoS3 URL for Litestream database replication

Agent Configuration

Agents receive configuration as a JSON object at init time:
{
  "agent_id": "agent_abc123",
  "agent_type": "claude-agent",
  "workspace": "/instances/agent_abc123/chronicle/mount",
  "ensemble_url": "http://ensemble:8080",
  "ensemble_api_key": "ens_...",
  "model": "claude-sonnet-4-20250514",
  "max_tokens": 64000,
  "temperature": 0.7,
  "system_prompt": "You are a helpful coding assistant."
}
Configuration can be updated at runtime via:
  • Gateway API: PUT /api/v1/config
  • Valkey pub/sub: framework.config_update events
  • Declarative config files (checked into deployment bundles)

Runtime vs Declarative Config

Podium supports both runtime (Valkey-stored) and declarative (file-based) configuration:
  • Declarative: Checked into the deployment bundle, version-controlled
  • Runtime: Updated via API, stored in Valkey, takes precedence over declarative
  • Merged view: Runtime overrides declarative on a per-key basis