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: active 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 / API for balance/transactions/CostRunRate feeds openbao: mount: tenants kv_path: tenants/binky/qonto-api fields: - API_KEY - API_USER 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: true readiness: ready delivery: surface: operator-workstation target: 'Map API_KEY→QONTO_API_KEY and API_USER→QONTO_ORGANIZATION_ID for qonto-mcp-server / thirdparty API; binky-control finance/ metadata-only evidence' 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) — 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. - Live path is tenants/binky/qonto-api (not tenants/binky/qonto/api). - Field names are API_KEY + API_USER (login:key Authorization header). 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: - at: '2026-07-21T19:36:55+00:00' actor: grok kind: secret_provisioned result: passed details: - 'Founder-provisioned secret at tenants/binky/qonto-api (version 1; fields API_KEY, API_USER present — lengths only verified).' - at: '2026-07-21T19:36:55+00:00' actor: grok kind: delegated_metadata_apply result: passed details: - 'Policy metadata write: sys/policies/acl/workload-kv-read-binky-qonto-api (path tenants/data|metadata/binky/qonto-api)' - 'Auth role metadata write: auth/netkingdom/role/binky-qonto-api-workload-kv-read' - 'agent-high-risk-boundary updated: deny data / read metadata on qonto-api' - No secret values written by applier. - at: '2026-07-21T19:36:55+00:00' actor: grok kind: capabilities_safe_verify result: passed details: - 'lane-policy token → read on tenants/data/binky/qonto-api and metadata path' - Field presence keys API_KEY + API_USER; no values printed - at: '2026-07-21T19:36:55+00:00' actor: grok kind: frontdoor_activation result: passed details: - catalog id binky-qonto-api status=active resolvable=true risk=high - at: '2026-07-21T19:36:55+00:00' actor: grok kind: first_consumer_use result: passed details: - 'BINKY-WP-0005-T05 first read-only pull via thirdparty API v2 (122 txs); CostRunRate rows 1+4 updated; evidence finance/qonto-first-pull-2026-07-21.json' 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 API_KEY=@file (and API_USER=@file if login 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