# ============================================================================= # AI Software Factory — ConfigMap (NON-SENSITIVE configuration) # # Anything secret (passwords, tokens, keys) lives in the `factory-secrets` # Secret instead (see secret.example.yaml). Keep this file free of secrets. # ============================================================================= apiVersion: v1 kind: ConfigMap metadata: name: factory-config data: NODE_ENV: "production" # Ports PORT: "4000" REALTIME_PORT: "4001" # Public URLs (what browsers / email links use) PUBLIC_BASE_URL: "https://factory.example.com" WEB_URL: "https://factory.example.com" API_URL: "https://factory.example.com/api" REALTIME_URL: "wss://factory.example.com/ws" # Service endpoints INSIDE the cluster (stable ClusterIP service names). # The app reads the assembled URLs below (same variable names as # .env.example). DATABASE_URL contains credentials, so it lives in the # factory-secrets Secret instead; envFrom sources are applied in order, so # secret values win over configmap values for any key defined in both. REDIS_URL: "redis://factory-redis:6379" S3_ENDPOINT: "https://s3.us-east-1.amazonaws.com" DATABASE_HOST: "factory-db" DATABASE_PORT: "5432" REDIS_HOST: "factory-redis" REDIS_PORT: "6379" # Search (OpenSearch) — username/password, if any, go in the Secret. # `opensearch:9200` is a PLACEHOLDER for the managed/cluster-internal # endpoint (e.g. https://search-factory-xxxx.us-east-1.es.amazonaws.com # for Amazon OpenSearch Service, or a StatefulSet Service you deploy). SEARCH_URL: "http://opensearch:9200" SEARCH_INDEX_PREFIX: "factory" # Object storage (S3-compatible). Endpoint + credentials live in the # Secret; bucket/region/path-style are non-sensitive. S3_BUCKET: "factory-uploads" S3_REGION: "us-east-1" S3_FORCE_PATH_STYLE: "false" # Auth / session tuning (values, not secrets) JWT_EXPIRES_IN: "15m" REFRESH_TOKEN_TTL_DAYS: "30" BCRYPT_ROUNDS: "12" # Realtime REALTIME_HEARTBEAT_MS: "30000" YJS_STORAGE_PREFIX: "yjs" # Webhooks WEBHOOK_RETRY_MAX: "8" WEBHOOK_TIMEOUT_MS: "10000" # Rate limiting RATE_LIMIT_WINDOW_MS: "60000" RATE_LIMIT_MAX: "300" # Observability (Phase 15) OTEL_ENABLED: "false" OTEL_EXPORTER_OTLP_ENDPOINT: "http://otel-collector.monitoring.svc.cluster.local:4318"