autumn-cli 0.10.0

CLI tool for the Autumn web framework
# Production configuration for {{project_name}}.
# Copy to autumn.toml (or load via AUTUMN_PROFILE=prod) and replace placeholder values.
# WARNING: Never commit real credentials — use environment variables for secrets.

[server]
host = "0.0.0.0"
port = 3000
# Request timeout (30 s) + 5 s, so a request that starts at shutdown can end.
# shutdown_timeout_secs = 35

# The prod profile sets connection limits. See docs/guide/connection-limits.md.
# [server.http]
# header_read_timeout_ms = 10000
# max_connections = 10000

[log]
level = "info"
format = "Json"

[health]
path = "/health"
# live_path = "/live"
# ready_path = "/ready"
# The release templates (Dockerfile, Terraform, fly.toml) probe /live, /ready
# and /startup. If you change these paths, change the templates too.

# Database topology:
# - primary_url is the write role used by Db, transactions, advisory locks, and migrations.
# - replica_url is optional; use it only for read replicas that have replayed migrations.
# - database.url and DATABASE_URL remain valid single-primary compatibility paths.
# Prefer AUTUMN_DATABASE__PRIMARY_URL for real production secrets.
[database]
primary_url = "postgres://user:CHANGE_ME@localhost:5432/{{project_name}}_prod"
# replica_url = "postgres://user:CHANGE_ME@replica:5432/{{project_name}}_prod"
pool_size = 10
# primary_pool_size = 10
# replica_pool_size = 5
replica_fallback = "fail_readiness" # fail_readiness | primary
# replica_max_lag_ms = 5000   # reads use the primary above this replica lag
# warn_on_pooler = false      # silence the PgBouncer / RDS Proxy boot warning
connect_timeout_secs = 5
# Production migrations belong to one explicit primary-role job:
#   AUTUMN_DATABASE__PRIMARY_URL=... autumn migrate
# Keep web replicas out of migration ownership.
auto_migrate_in_production = false

# ── Signing secret (REQUIRED in production) ─────────────────────────────────
#
# The signing secret protects sessions, CSRF tokens, flash/signed-cookie state,
# and local-storage signed URLs. Production startup will refuse to bind if this
# is missing, shorter than 32 bytes, or matches a known demo value.
#
# Generate:  openssl rand -hex 32
# Set via environment variable — NEVER commit the actual value here:
#
#   export AUTUMN_SECURITY__SIGNING_SECRET="<generated-value>"
#
# All replicas must use the same value. See docs/guide/signing-secrets.md for
# the full contract including rotation and multi-replica setup.
#
# Rotation grace window: add the old secret here while deploying the new one.
# Remove it after session.max_age_secs has elapsed.
# [security.signing_secret]
# previous_secrets = []

# Uncomment for OpenTelemetry / OTLP tracing:
# [telemetry]
# enabled = true
# service_name = "{{project_name}}"
# service_namespace = "apps"
# environment = "production"
# otlp_endpoint = "http://otel-collector:4317"
# protocol = "Grpc"