📘 Configuration Guide
This guide provides the production parameter map for DevOps teams deploying Control Core. It focuses only on customer-operable settings.
🤖 Configuration domains
- Control Plane runtime and ingress
- Bouncer registration and resource mapping
- Database and Redis connectivity
- GitHub controls repository sync
- Security controls and key rotation
- Licensing and telemetry behavior
📌 Control Plane required parameters
Minimum set:
CONTROL_PLANE_PUBLIC_URLDATABASE_URLREDIS_URLSECRET_KEYJWT_SECRET_KEYGITHUB_REPO_URLGITHUB_BRANCHGITHUB_TOKEN
Recommended additions:
CONTROL_PLANE_HEALTH_URLCORS_ORIGINSLOG_LEVELBACKUP_SCHEDULE
📌 Bouncer required parameters
Minimum set:
BOUNCER_IDBOUNCER_NAMEBOUNCER_TYPEENVIRONMENT(sandboxorproduction)PAP_API_URLAPI_KEYRESOURCE_NAMERESOURCE_TYPETARGET_HOSTORIGINAL_HOST_URLSECURITY_POSTURE
Recommended additions:
DEPLOYMENT_PLATFORMBOUNCER_PUBLIC_URLLOG_LEVELHEARTBEAT_INTERVAL
📌 Bouncer and resource discovery mapping
For clean resource registration:
- Keep
RESOURCE_NAMEstable for Sandbox and Production counterparts. - Set
RESOURCE_TYPEto actual workload category (api,webapp,database,ai-agent,mcp-server). - Use internal address in
TARGET_HOST. - Use externally reachable URL in
ORIGINAL_HOST_URL. - Use environment-specific
API_KEY.
📌 GitHub controls sync configuration
Control Plane must have:
GITHUB_REPO_URL(controls repository)GITHUB_BRANCH(deployment branch)GITHUB_TOKEN(least-privilege token)
Operational guardrails:
- Branch protection enabled for controls branch.
- Token stored in secret manager, not committed files.
- Repo access test included in deployment validation.
📌 Helm values pattern
global:
controlPlanePublicUrl: "https://controlplane.customer-domain.com"
controlPlane:
env:
DATABASE_URL: "postgresql://<user>:<password>@<db-host>:5432/<db-name>"
REDIS_URL: "redis://:<password>@<redis-host>:6379/0"
SECRET_KEY: "<strong-random-secret>"
JWT_SECRET_KEY: "<strong-random-jwt-secret>"
GITHUB_REPO_URL: "https://github.com/<org>/<controls-repo>"
GITHUB_BRANCH: "main"
GITHUB_TOKEN: "<github-token>"
bouncer:
env:
BOUNCER_ID: "bouncer-sandbox-01"
BOUNCER_NAME: "Sandbox API Bouncer"
BOUNCER_TYPE: "sidecar"
ENVIRONMENT: "sandbox"
PAP_API_URL: "https://controlplane.customer-domain.com"
API_KEY: "<sandbox-api-key>"
RESOURCE_NAME: "Customer API"
RESOURCE_TYPE: "api"
TARGET_HOST: "customer-api.default.svc.cluster.local:8080"
ORIGINAL_HOST_URL: "https://api.customer-domain.com"
SECURITY_POSTURE: "deny-all"
📌 Docker Compose env pattern
CONTROL_PLANE_PUBLIC_URL=https://controlplane.customer-domain.com
DATABASE_URL=postgresql://<user>:<password>@<db-host>:5432/<db-name>
REDIS_URL=redis://:<password>@<redis-host>:6379/0
SECRET_KEY=<strong-random-secret>
JWT_SECRET_KEY=<strong-random-jwt-secret>
GITHUB_REPO_URL=https://github.com/<org>/<controls-repo>
GITHUB_BRANCH=main
GITHUB_TOKEN=<github-token>
BOUNCER_ID=bouncer-sandbox-01
BOUNCER_NAME=Sandbox API Bouncer
BOUNCER_TYPE=sidecar
ENVIRONMENT=sandbox
PAP_API_URL=https://controlplane.customer-domain.com
API_KEY=<sandbox-api-key>
RESOURCE_NAME=Customer API
RESOURCE_TYPE=api
TARGET_HOST=customer-api:8080
ORIGINAL_HOST_URL=https://api.customer-domain.com
SECURITY_POSTURE=deny-all
🔒 Security and domain baseline
- TLS 1.2+ on all external domains.
- Customer-managed certificates and secret rotation.
- Private network-only database and Redis.
- Environment-scoped API keys with regular rotation.
- Least-privilege deployment identities.
👁️ Licensing and telemetry
- Trial default: 90 days.
- Extension codes applied in Settings -> Subscription.
- Telemetry endpoint is configurable; offline extension workflow remains available.