Skip to Content
ReferenceConfiguration

Configuration Reference

Complete reference for Cascade Platform configuration files and environment variables

This page documents all configuration options for deploying and operating Cascade.


Application Configuration

cascade.yaml

Main configuration file for Cascade Platform deployment.

# cascade.yaml version: "1.0" environment: production # Platform settings platform: name: "loan-processor" namespace: default replicas: 3 # Resource limits resources: requests: cpu: 500m memory: 512Mi limits: cpu: 2000m memory: 2Gi # Database database: driver: postgres host: postgres.default.svc.cluster.local port: 5432 name: cascade_db ssl_mode: require max_connections: 20 connection_timeout: 10s # Redis (for caching, sessions) cache: driver: redis host: redis.default.svc.cluster.local port: 6379 database: 0 ttl: 1h # Temporal (workflow engine) temporal: host: temporal.default.svc.cluster.local port: 7233 namespace: default task_queue: cascade_tasks # Observability observability: tracing: enabled: true provider: jaeger endpoint: http://jaeger.default.svc.cluster.local:14268 metrics: enabled: true provider: prometheus port: 9090 logs: provider: loki endpoint: http://loki.default.svc.cluster.local:3100 # Security security: auth: provider: kratos # OAuth, Kratos endpoint: http://kratos.default.svc.cluster.local authorization: provider: spicedb endpoint: spicedb.default.svc.cluster.local:50051 encryption: enabled: true key_provider: vault endpoint: http://vault.default.svc.cluster.local:8200

Environment Variables

Core Configuration

VariablePurposeExampleRequired
CASCADE_ENVEnvironmentproduction, staging, development
CASCADE_PORTServer port8080
CASCADE_LOG_LEVELLog leveldebug, info, warn, error

Database

VariablePurposeExampleRequired
DATABASE_URLConnection stringpostgres://user:pass@host:5432/db
DATABASE_MAX_CONNECTIONSConnection pool size20
DATABASE_SSL_MODESSL moderequire, disable, prefer

Cache

VariablePurposeExampleRequired
REDIS_URLRedis connectionredis://localhost:6379/0
CACHE_TTLDefault TTL1h, 3600s

Temporal

VariablePurposeExampleRequired
TEMPORAL_HOSTHostlocalhost
TEMPORAL_PORTPort7233
TEMPORAL_NAMESPACENamespacedefault
TEMPORAL_TASK_QUEUETask queuecascade_tasks

Security

VariablePurposeExampleRequired
AUTH_PROVIDERAuth systemkratos, oauth2
ENCRYPTION_KEYEncryption key(generated key)
JWT_SECRETJWT secret(secret)

Observability

VariablePurposeExampleRequired
JAEGER_ENDPOINTTracinghttp://localhost:14268
PROMETHEUS_METRICS_PORTMetrics9090
LOKI_ENDPOINTLogshttp://localhost:3100

Deployment Profiles

Development

# Minimal local setup environment: development log_level: debug database: driver: sqlite path: ./cascade.db cache: driver: memory # In-memory cache temporal: host: localhost port: 7233

Staging

# Pre-production environment: staging log_level: info replicas: 2 database: driver: postgres ssl_mode: prefer temporal: namespace: staging

Production

# High availability environment: production log_level: warn replicas: 3 database: driver: postgres max_connections: 50 ssl_mode: require temporal: namespace: production security: encryption: enabled: true authorization: provider: spicedb

Command-Line Flags

cascade app apply

cascade app apply \ --file app.yaml \ --namespace default \ --replicas 3 \ --wait
FlagPurposeExample
--fileCDL fileapp.yaml
--namespaceKubernetes namespacedefault
--replicasDeployment replicas3
--waitWait for readytrue
--timeoutTimeout5m

cascade process start

cascade process start \ --app myapp \ --workflow ProcessOrder \ --input '{"order_id":"123"}' \ --timeout 10m
FlagPurposeExample
--appApplication namemyapp
--workflowWorkflow nameProcessOrder
--inputJSON input{...}
--timeoutExecution timeout10m

Performance Tuning

Database Connection Pool

database: max_connections: 20 # Concurrent connections idle_timeout: 30s # Close idle after 30s max_lifetime: 5m # Max connection lifetime

Caching Strategy

cache: ttl: 1h # Default TTL max_entries: 10000 # Max cached items eviction: lru # Eviction policy

Activity Concurrency

temporal: activity_workers: 10 # Parallel activities max_concurrent_activities: 100

Monitoring & Alerting

Metrics to Monitor

# Workflow metrics cascade_workflow_duration_seconds cascade_workflow_errors_total cascade_workflow_active # Activity metrics cascade_activity_duration_seconds cascade_activity_errors_total # System metrics cascade_database_connections cascade_cache_hit_rate cascade_memory_bytes_total

Alert Rules

alerts: - name: HighErrorRate condition: "rate(cascade_errors_total[5m]) > 0.05" action: page - name: DatabaseLatency condition: "cascade_db_latency_ms > 100" action: notify - name: WorkflowTimeout condition: "cascade_workflow_duration_seconds > 3600" action: escalate

Security Configuration

Authentication

auth: provider: kratos endpoints: admin: http://kratos-admin:80 public: http://kratos-public:80 session: timeout: 24h refresh_enabled: true

Authorization

authorization: provider: spicedb relationships: - user:alice can view:app:1 - user:bob can admin:app:1

Encryption

encryption: enabled: true algorithm: AES-256-GCM key_rotation: enabled: true interval: 90d

Logging Configuration

logging: level: info format: json # json or text output: stdout # stdout, file, both file: path: /var/log/cascade.log max_size: 100M max_age: 30d max_backups: 5

Best Practices

DO:

  • Use environment variables for secrets
  • Set appropriate log levels per environment
  • Monitor key metrics continuously
  • Regularly rotate encryption keys
  • Use connection pooling
  • Set resource limits

DON’T:

  • Hard-code secrets in config files
  • Run debug logging in production
  • Disable SSL in production
  • Use default passwords
  • Forget to backup configurations

Quick Reference

# Set environment export CASCADE_ENV=production export DATABASE_URL=postgres://... export TEMPORAL_HOST=temporal.default # Start application cascade start --config cascade.yaml # Apply application cascade app apply -f app.yaml # Check status cascade system status

Updated: October 29, 2025
Version: 1.0

Last updated on