Skip to main content

Cloud Aegis Configuration Reference

All configuration is via environment variables. Defaults are tuned for local development.

Server

VariableDefaultRequiredDescription
PORT8080NoHTTP listen port
APP_ENVproductionNoEnvironment (development enables pprof, dev CORS, RoleSwitcher)
GRC_PROVIDERmemoryNoGRC backend (memory, archer, servicenow)
CORS_ALLOWED_ORIGINS(empty)NoComma-separated allowed CORS origins

Auth / JWT

VariableDefaultRequiredDescription
JWT_SECRET_ENVAEGIS_JWT_SECRETNoName of env var containing HMAC secret
AEGIS_JWT_SECRET(none)ProdHS256 signing key (or use JWKS for RS256)
AEGIS_JWKS_URL(auto-derived)NoJWKS endpoint URL (auto-set from OKTA_DOMAIN if empty)
JWT_ISSUER(empty)NoExpected iss claim value
JWT_AUDIENCE(empty)NoExpected aud claim value
TLS_CERT_FILE(empty)NoPath to TLS certificate (enables HTTPS)
TLS_KEY_FILE(empty)NoPath to TLS private key

AI / Enrichment

VariableDefaultRequiredDescription
AEGIS_AI_ENABLEDfalseNoEnable Bedrock AI enrichment
AEGIS_AI_REGIONus-east-1NoAWS region for Bedrock
AEGIS_AI_MODEL(Sonnet)NoBedrock model ID override
ANTHROPIC_API_KEY(empty)If AnthropicAnthropic API key (direct provider, bypasses Bedrock)
AWS_ACCESS_KEY_ID(chain)If AI enabledAWS credential (or use IAM role/SSO)
AWS_SECRET_ACCESS_KEY(chain)If AI enabledAWS credential

Identity Providers

VariableDefaultRequiredDescription
OKTA_DOMAIN(empty)NoOkta org domain (e.g., dev-12345.okta.com). Enables real Okta provider
OKTA_API_TOKEN(empty)If OktaOkta API token for user management
ENTRA_TENANT_ID(empty)NoAzure Entra ID tenant. Enables real Entra provider
ENTRA_CLIENT_ID(empty)If EntraEntra app registration client ID
ENTRA_CLIENT_SECRET(empty)If EntraEntra app registration client secret

Threat Intelligence

VariableDefaultRequiredDescription
GREYNOISE_API_KEY(empty)NoGreyNoise Community/Enterprise API key
HIBP_API_KEY(empty)NoHave I Been Pwned API key
OTX_API_KEY(empty)NoAlienVault OTX API key

EPSS and KEV feeds are public (no key required).

Redis / Rate Limiting

VariableDefaultRequiredDescription
RATE_LIMIT_ENABLEDtrueNoEnable API rate limiting
REDIS_ADDRlocalhost:6379NoRedis address (rate limiter + health check)
REDIS_PASSWORD_ENVAEGIS_REDIS_PASSWORDNoName of env var containing Redis password
AEGIS_REDIS_PASSWORD(empty)NoRedis auth password

Falls back to local (in-memory) rate limiting when Redis is unavailable.

Database

VariableDefaultRequiredDescription
AEGIS_DATABASE_URL(empty)NoPostgreSQL connection string for durable audit logging (postgres://user:pass@host:5432/db?sslmode=require)

Falls back to in-memory audit logging when unset.

Provider Selection

These variables control which provider implementation each subsystem uses. All default to memory (in-memory mock). See PROVIDER_CONFIG.md for per-provider required configuration.

VariableDefaultRequiredDescription
WORKFLOW_ENGINEmemoryNoWorkflow engine backend (temporal for real workflows)
WAF_PROVIDERmemoryNoWAF backend (aws, cloudflare for real WAF rules)
SECRETS_PROVIDERmemoryNoSecrets scanner backend (aws, azure, gcp for real vault scanning)

Graph Database

VariableDefaultRequiredDescription
PUPPYGRAPH_URL(empty)NoPuppyGraph endpoint URL. Enables graph query proxy

WebSocket / SSE

VariableDefaultRequiredDescription
WS_SERVER_URL(empty)Nows-server URL for SSE event publishing
WS_PUBLISH_KEY(empty)NoX-API-Key for ws-server /api/publish

Container Security

VariableDefaultRequiredDescription
CONTAINER_SCANNERmemoryNoContainer scanner backend (trivy for real scans)
TRIVY_OUTPUT_PATH(empty)NoPath to Trivy K8s JSON output; replaces mock topology

FinOps

VariableDefaultRequiredDescription
FINOPS_PROVIDERmemoryNoFinOps backend (aws for real Cost Explorer)
FINOPS_AWS_REGIONus-east-1NoAWS region for Cost Explorer API

Encryption / Remediation

VariableDefaultRequiredDescription
AEGIS_STATE_ENCRYPTION_KEY(none)If encrypted rollbackAES-256-GCM key as 64-char hex string (32 bytes)
AEGIS_ROLLBACK_TOKEN(none)If rollback dispatcherAuthorization token for rollback ops (min 16 chars)

Integrations

VariableDefaultRequiredDescription
JIRA_URL(empty)NoJira instance URL. Enables ticket provider
JIRA_USERNAME(empty)If JiraJira username (email for Jira Cloud)
JIRA_API_TOKEN(empty)If JiraJira REST API token
JIRA_PROJECT_KEY(empty)NoDefault Jira project key
JIRA_ISSUE_TYPETaskNoDefault issue type for created tickets
ASANA_PAT(empty)If AsanaAsana Personal Access Token
ASANA_WORKSPACE_GID(empty)NoAsana workspace GID
ASANA_DEFAULT_PROJECT_GID(empty)NoDefault Asana project for ticket creation
ASANA_WEBHOOK_TOKEN(empty)If Asana webhooksPre-shared token for Asana webhook handshake auth
GITLEAKS_LICENSE(empty)CI onlyGitleaks license key (CI action)

GRC Provider Credentials

When GRC_PROVIDER is not memory, the selected backend requires credentials:

VariableRequired ForDescription
AEGIS_DB_PASSWORDpostgresPostgreSQL password (name configurable via password_env in config)
ARCHER_PASSWORDarcherRSA Archer API password
SERVICENOW_PASSWORDservicenowServiceNow API password
SERVICENOW_CLIENT_IDservicenow (OAuth)ServiceNow OAuth client ID
SERVICENOW_CLIENT_SECRETservicenow (OAuth)ServiceNow OAuth client secret

CSPM Aggregator

These variables configure the standalone CSPM aggregator binary (cmd/cspm-aggregator).

VariableDefaultRequiredDescription
AWS_ROLE_ARN(empty)If AWSOIDC role ARN for cross-account CSPM reader access
AZURE_TENANT_ID(empty)If AzureAzure tenant ID for CSPM aggregator (distinct from ENTRA_TENANT_ID)
GCP_ORG_ID(empty)If GCPGCP organization ID for aggregator scans
GCP_WIF_CONFIG_PATH(empty)If GCPPath to GCP Workload Identity Federation config file
ASANA_PROJECT_GID(empty)NoAsana project GID for aggregator notifications
MAIL_SENDER_ADDRESS(empty)NoEmail sender address for aggregator notification emails

Deployment (fly.toml defaults)

These are set in fly.toml for the Fly.io deployment:

VariableValueDescription
PORT8080HTTP listen port
GRC_PROVIDERmemoryIn-memory GRC backend
APP_ENVproductionProduction mode
RATE_LIMIT_ENABLEDtrueRate limiting on
CORS_ALLOWED_ORIGINShttps://cloudaegis-demo.lvonguyen.comCloudflare Pages domain

Observability / Tracing

VariableDefaultRequiredDescription
AEGIS_TRACING_ENABLEDfalseNoEnable OpenTelemetry distributed tracing
AEGIS_OTLP_ENDPOINTlocalhost:4317NoOTLP collector gRPC endpoint
AEGIS_SAMPLING_RATE1.0NoTrace sampling rate (0.0–1.0)

Feature Flags

VariableDefaultRequiredDescription
AEGIS_RUST_PATHSfalseNoEnable Rust FFI attack path engine (requires rust build tag; falls back to pure-Go engine)

Frontend (Vite Build-Time)

These variables are embedded at build time via Vite's import.meta.env:

VariableDefaultDescription
VITE_API_URL/api/v1API base URL override (e.g., http://localhost:8080)
VITE_DEMO_MODE(empty)Set true to enable demo access and mock fallbacks
VITE_OKTA_ISSUER(empty)Okta OIDC issuer URL for frontend auth
VITE_OKTA_CLIENT_ID(empty)Okta OIDC client ID
VITE_WS_URL(empty)WebSocket server URL for SSE events
VITE_DEV_TOKEN(empty)Dev-mode auth token override
VITE_COMPANY_NAMEContosoWhite-label company name
VITE_PRODUCT_NAMECloud AegisWhite-label product name
VITE_LOGO_PATH/icons/aegis-logo.svgPath to logo SVG
VITE_EMAIL_DOMAINcontoso.devDomain used in demo email addresses
VITE_REPO_PREFIXgithub.com/contosoRepository URL prefix
VITE_ENABLED_MODULESaegis,cspm-aggregatorComma-separated enabled module list
VITE_STORAGE_PREFIXaegissessionStorage/localStorage key prefix
VITE_BRAND_PRIMARY(empty)Primary brand color override (hex)
VITE_BRAND_SECONDARY(empty)Secondary brand color override (hex)
VITE_BRAND_ACCENT(empty)Accent brand color override (hex)
VITE_THEME(empty)Default theme (light, dark)
VITE_DEMO_ACCESS_ENABLED(empty)Set true to enable demo access button

Graceful Degradation

When optional services are unavailable, the server degrades gracefully:

MissingBehavior
RedisLocal in-memory rate limiting
AI credentialsEnrichment endpoint returns 503
Okta/Entra env varsMock identity providers
PuppyGraph URLGraph query endpoint disabled
Threat intel API keysRespective feed skipped
ws-server URLDeploy preview SSE disabled
Jira URLMock ticket provider
AEGIS_DATABASE_URLIn-memory audit logging only
WORKFLOW_ENGINEIn-memory workflow stubs
WAF_PROVIDERIn-memory WAF stubs
SECRETS_PROVIDERIn-memory secrets scanner