Skip to content

Credential consumers

pkg/platforminventory.CredentialSets is the allowlist of generated consumer Secrets. CredentialPlacement returns the Secret name and namespace for a key. Setup reads and writes that owner object.

Each Secret is created in the namespace of its first consumer. The signing key has no consumer and stays in mcp-platform. Shared API authentication keys belong to mcp-platform-api-credentials and are copied only onto the consumer sets that declare them. UI session keys (UI_SESSION_DATABASE_URL, UI_SESSION_ENCRYPTION_KEY) and UI_API_KEY belong to mcp-ui-credentials. INGEST_API_KEYS belongs to mcp-ingest-credentials in mcp-observability; runtime-api receives its own copy in mcp-runtime-ingest-credentials. Postgres role credentials stay on mcp-postgres-credentials. The platform API connection string stays on mcp-platform-api-credentials.

A rerun snapshots each owner Secret and keeps the stored value, including an intentional empty optional key. A required key that is present and empty fails setup instead of generating a replacement. An undeclared key blocks rendering.

Grafana's persisted admin password and Postgres's database role still need their existing reconciliation procedures. Copying a Secret does not rotate those stores. The Grafana password is GRAFANA_ADMIN_PASSWORD in mcp-grafana-credentials.