id: CCR-2026-0008 kind: credential-change-request schema_version: 1 request_type: workload-kv-read title: Binky Qonto bank API credentials (tenant lane, read-only MCP) status: approved created: '2026-07-21' updated: '2026-07-21' requester: agent: grok reason: Establish OpenBao custody for Binky Hedgehog GmbH / Operational Knowledge GmbH Qonto API credentials used by the self-hosted qonto/qonto-mcp-server (binky-control BINKY-WP-0005; DEC-2026-004 approved). Read-only use enforced at harness tool allow-list; payments/transfers remain founder Red lane forever. review: required: true required_approvers: - platform-operator comments: - at: '2026-07-21T19:26:02+00:00' reviewer: bernd.worsch decision: approved comment: 'Approved as platform implemention of DEC-2026-004 (founder 2026-07-19): self-hosted qonto-mcp-server, tenants/binky/qonto/api custody, read-only harness. Proceed with policy+OIDC role apply; secret values remain founder Red-lane only.' target: domain: financials tenant: binky workload: qonto environment: production purpose: Read-only Qonto MCP for balance/transactions/CostRunRate feeds openbao: mount: tenants kv_path: tenants/binky/qonto/api fields: - QONTO_API_KEY - QONTO_ORGANIZATION_ID policy_name: workload-kv-read-binky-qonto-api policy_file: openbao/policies/workload-kv-read-binky-qonto-api.hcl auth: method: oidc mount: netkingdom role: binky-qonto-api-workload-kv-read allowed_redirect_uris: - https://bao.coulomb.social/ui/vault/auth/netkingdom/oidc/callback - http://localhost:8250/oidc/callback - http://127.0.0.1:8250/oidc/callback oidc_scopes: - openid - profile - email - groups user_claim: sub groups_claim: groups bound_claims: groups: - net-kingdom-admins bound_claims_confirmed: true policies: - workload-kv-read-binky-qonto-api ttl: 15m access_frontdoor: type: ops-warden catalog_id: binky-qonto-api selector: binky qonto api bank command: warden access binky-qonto-api --out FILE resolvable: false readiness: approved-pending-apply delivery: surface: operator-workstation target: qonto-mcp-server via env QONTO_API_KEY/QONTO_ORGANIZATION_ID (names only); binky-control finance/ for metadata-only evidence (no bulk statements in git) risk: classification: high notes: - Full-scope bank API key (Qonto keys are not scope-limited server-side). - Read-only is harness-enforced (tool allow-list); never allow payment/transfer tools. - "High-risk lane (WP-0026 T04) \u2014 agents must not stream raw values; use --out/--exec/--wrap." - Values must not appear in Git, State Hub, chat, or workplans. - ops-warden proxies as the caller and must not retain values. - Distinct from platform/workloads/* fleet lanes; lives on mount tenants/. verification: positive: - Approved net-kingdom-admins identity can read the data path (capabilities include read) without printing values. negative: - default-policy token denied on tenants/data/binky/qonto/api. activation_conditions: - tenants/ KV v2 mount enabled on bao.coulomb.social (already from CCR-2026-0007). - Policy and OIDC role applied. - Secret values provisioned by founder (Red lane) through approved custody. - Positive and negative capabilities-safe verification recorded. - ops-warden catalog promoted after verify + provision. evidence: [] lifecycle: deactivate: Disable ops-warden catalog entry and detach OIDC role policy; revoke API key in Qonto dashboard. rotate: Mint a new API key in Qonto /settings/integrations; bao kv put tenants/binky/qonto/api QONTO_API_KEY=@file (and QONTO_ORGANIZATION_ID if changed); revoke old key; verify capabilities-safe. compromised: Deactivate front door, revoke key in Qonto, clear EXPOSED taint after rotation, record blast-radius notes. state_hub: workplan_id: BINKY-WP-0005