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:8200Environment Variables
Core Configuration
| Variable | Purpose | Example | Required |
|---|---|---|---|
CASCADE_ENV | Environment | production, staging, development | ✓ |
CASCADE_PORT | Server port | 8080 | |
CASCADE_LOG_LEVEL | Log level | debug, info, warn, error |
Database
| Variable | Purpose | Example | Required |
|---|---|---|---|
DATABASE_URL | Connection string | postgres://user:pass@host:5432/db | ✓ |
DATABASE_MAX_CONNECTIONS | Connection pool size | 20 | |
DATABASE_SSL_MODE | SSL mode | require, disable, prefer |
Cache
| Variable | Purpose | Example | Required |
|---|---|---|---|
REDIS_URL | Redis connection | redis://localhost:6379/0 | |
CACHE_TTL | Default TTL | 1h, 3600s |
Temporal
| Variable | Purpose | Example | Required |
|---|---|---|---|
TEMPORAL_HOST | Host | localhost | ✓ |
TEMPORAL_PORT | Port | 7233 | ✓ |
TEMPORAL_NAMESPACE | Namespace | default | ✓ |
TEMPORAL_TASK_QUEUE | Task queue | cascade_tasks | ✓ |
Security
| Variable | Purpose | Example | Required |
|---|---|---|---|
AUTH_PROVIDER | Auth system | kratos, oauth2 | ✓ |
ENCRYPTION_KEY | Encryption key | (generated key) | ✓ |
JWT_SECRET | JWT secret | (secret) | ✓ |
Observability
| Variable | Purpose | Example | Required |
|---|---|---|---|
JAEGER_ENDPOINT | Tracing | http://localhost:14268 | |
PROMETHEUS_METRICS_PORT | Metrics | 9090 | |
LOKI_ENDPOINT | Logs | http://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: 7233Staging
# Pre-production
environment: staging
log_level: info
replicas: 2
database:
driver: postgres
ssl_mode: prefer
temporal:
namespace: stagingProduction
# 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: spicedbCommand-Line Flags
cascade app apply
cascade app apply \
--file app.yaml \
--namespace default \
--replicas 3 \
--wait| Flag | Purpose | Example |
|---|---|---|
--file | CDL file | app.yaml |
--namespace | Kubernetes namespace | default |
--replicas | Deployment replicas | 3 |
--wait | Wait for ready | true |
--timeout | Timeout | 5m |
cascade process start
cascade process start \
--app myapp \
--workflow ProcessOrder \
--input '{"order_id":"123"}' \
--timeout 10m| Flag | Purpose | Example |
|---|---|---|
--app | Application name | myapp |
--workflow | Workflow name | ProcessOrder |
--input | JSON input | {...} |
--timeout | Execution timeout | 10m |
Performance Tuning
Database Connection Pool
database:
max_connections: 20 # Concurrent connections
idle_timeout: 30s # Close idle after 30s
max_lifetime: 5m # Max connection lifetimeCaching Strategy
cache:
ttl: 1h # Default TTL
max_entries: 10000 # Max cached items
eviction: lru # Eviction policyActivity Concurrency
temporal:
activity_workers: 10 # Parallel activities
max_concurrent_activities: 100Monitoring & 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_totalAlert 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: escalateSecurity Configuration
Authentication
auth:
provider: kratos
endpoints:
admin: http://kratos-admin:80
public: http://kratos-public:80
session:
timeout: 24h
refresh_enabled: trueAuthorization
authorization:
provider: spicedb
relationships:
- user:alice can view:app:1
- user:bob can admin:app:1Encryption
encryption:
enabled: true
algorithm: AES-256-GCM
key_rotation:
enabled: true
interval: 90dLogging 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: 5Best 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 statusUpdated: October 29, 2025
Version: 1.0
Last updated on