2026-09-06 19:57:15 +02:00
|
|
|
# Production dependency handoffs
|
|
|
|
|
|
|
|
|
|
Prepared 2026-09-06 from GLAS-WP-0012 and the deployed policy-service evidence.
|
2026-09-06 20:23:56 +02:00
|
|
|
Sent to the seven owners on 2026-09-06 after explicit user authorization.
|
|
|
|
|
Receipt IDs are in [production-handoff-receipts.json](production-handoff-receipts.json).
|
|
|
|
|
Delivery does not establish owner acceptance or an authority grant.
|
2026-09-06 19:57:15 +02:00
|
|
|
Glas coordinates acceptance; each owner retains implementation and authorization.
|
|
|
|
|
No credential values belong in responses.
|
|
|
|
|
|
|
|
|
|
## Ready infrastructure
|
|
|
|
|
|
|
|
|
|
FLEX-WP-0021-T04 deployed flex-auth-secrets-engine revision 1, available 1/1,
|
|
|
|
|
with five policy fixtures and positive/negative network probes passing.
|
|
|
|
|
Endpoint: http://flex-auth-secrets-engine.flex-auth.svc.cluster.local:8080.
|
|
|
|
|
Package: secrets-engine.catalog-lane.lifecycle v1.
|
|
|
|
|
Image: sha256:89086c02c74a931068423e70937d03df7850fa0db9c63e70be56b3558f1756af.
|
|
|
|
|
Caller-auth is warn. Direct cluster ingress requires namespace secrets-engine
|
|
|
|
|
and pod label app.kubernetes.io/name=secrets-engine. A workstation process needs
|
|
|
|
|
an explicitly supported owner access path; Service DNS is not workstation
|
|
|
|
|
connectivity. Do not turn warn into enforce before caller adoption is proved.
|
|
|
|
|
|
|
|
|
|
## 1. Tenant alignment — key-cape, approval-engine, secrets-engine, flex-auth
|
|
|
|
|
|
|
|
|
|
Before materializing credentials, reconcile three existing values:
|
|
|
|
|
approval store `platform`, proposed client JWT `tenant:coulomb`, policy tenant
|
|
|
|
|
`tenant:platform`. JWT/store comparison is exact. These may identify distinct
|
|
|
|
|
layers, but an explicit owner-reviewed mapping is required; spelling similarity
|
|
|
|
|
is not a valid mapping.
|
|
|
|
|
|
|
|
|
|
Return: the exact store tenant, JWT tenant, CheckRequest tenant and any permitted
|
|
|
|
|
mapping, with a decision/contract reference and wrong-tenant denial evidence.
|
|
|
|
|
No unilateral change to live clients or policy subjects is requested.
|
|
|
|
|
Related: KEY-WP-0013-T02, APPROVAL-WP-0002-T01, SECRETS-WP-0009-T03.
|
|
|
|
|
|
|
|
|
|
## 2. Admit service-client custody — railiance-platform with key-cape
|
|
|
|
|
|
|
|
|
|
Use key-cape/docs/approval-engine-provisioning-request.yaml, not a new invented
|
|
|
|
|
lane. After tenant alignment, admit these proposed exact coordinates:
|
|
|
|
|
|
|
|
|
|
| Client | OpenBao entry | Secret field | Kubernetes delivery |
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
| secrets-engine-approval | platform/workloads/secrets-engine/approval-client | client_secret | sso/keycape-secrets-engine-approval-client, key client-secret |
|
|
|
|
|
| approval-engine-operator | platform/workloads/approval-engine/operator-client | client_secret | sso/keycape-approval-engine-operator-client, key client-secret |
|
|
|
|
|
|
|
|
|
|
Resolve first-provision authority through the custody owner. Do not bootstrap
|
|
|
|
|
these via the very production lane whose authorization they enable. Record
|
|
|
|
|
admission/CCR ids, field names, reader/writer scope, revocation and delivery
|
|
|
|
|
receipts, never values. Supply protected delivery for KeyCape and the intended
|
|
|
|
|
client process; a KeyCape-side Secret alone does not provision the consumer.
|
|
|
|
|
|
|
|
|
|
Return: admitted owner records, protected materialization and exact consumer
|
|
|
|
|
bindings, plus negative sibling/read/write tests where applicable. Local
|
|
|
|
|
KEY-WP-0013 source registration is not evidence of live provisioning.
|
|
|
|
|
|
|
|
|
|
## 3. Deploy and prove KeyCape clients — key-cape
|
|
|
|
|
|
|
|
|
|
KEY-WP-0013-T02: roll out resource-audience support and both registrations with
|
|
|
|
|
the approved custody inputs. Live issuer is https://kc.coulomb.social; JWKS
|
|
|
|
|
service is keycape.sso.svc.cluster.local:8080/jwks. Verify JWT signature,
|
|
|
|
|
resource audience approval-engine, exact agreed tenant, subject, scopes,
|
|
|
|
|
principal type and lifetime (15m), plus excessive-scope/wrong-secret denial.
|
|
|
|
|
Preserve existing registrations and signing key.
|
|
|
|
|
|
|
|
|
|
Return immutable image and claim-contract proof references; no tokens. Identify
|
|
|
|
|
whether missing human callback registration blocks this service-only phase or
|
|
|
|
|
can remain separately tracked. Do not invent a human callback or relax MFA.
|
|
|
|
|
|
|
|
|
|
## 4. Register approval audit source — audit-core with railiance-platform
|
|
|
|
|
|
|
|
|
|
AUDIT-WP-0009-T09 / AUDIT-IN-0001 is now on the deployment critical path:
|
|
|
|
|
approval-engine production startup requires audit delivery. Its task currently
|
|
|
|
|
says low priority and "not blocking" because the producer is not emitting;
|
|
|
|
|
please review that dependency against the concrete startup gate.
|
|
|
|
|
|
|
|
|
|
Register source/sender approval-engine, agreed tenancy, the four event classes,
|
|
|
|
|
retention/access/export policy and load-bearing evidence handling. Provision
|
|
|
|
|
its token by the approved custody path to approval-engine/approval-engine-audit
|
|
|
|
|
key audit-token; add narrowly scoped receiver ingress and receiver config.
|
|
|
|
|
Keep user-engine's sender unchanged.
|
|
|
|
|
|
|
|
|
|
Return: registration/custody references, accepted/duplicate and wrong-token
|
|
|
|
|
proof, approved ingress, and the remaining cadence/reconciliation gates
|
|
|
|
|
(AUDIT-WP-0009-T04/T06/T09). No sender token in the response.
|
|
|
|
|
|
|
|
|
|
## 5. Release approval-engine — approval-engine
|
|
|
|
|
|
|
|
|
|
APPROVAL-WP-0002-T03: build/scan an immutable image for current migrated schema,
|
|
|
|
|
render corrected issuer/JWKS and agreed tenant, and validate deployment inputs.
|
|
|
|
|
Image preparation can proceed before live credential materialization. Deploy
|
|
|
|
|
only when identity and audit requirements pass; retain single-writer PVC and
|
|
|
|
|
migration semantics. For first install record no prior DB; for replacement
|
|
|
|
|
require verified backup. Prove readiness, restart persistence and restore.
|
|
|
|
|
|
|
|
|
|
Return deployed base URL, image digest, migration/storage/restart/restore and
|
|
|
|
|
audit evidence. Existing manifest endpoint fixes at 06544b0 do not close T03.
|
|
|
|
|
|
|
|
|
|
## 6. Adopt authorization and activate lane — secrets-engine with flex-auth
|
|
|
|
|
|
|
|
|
|
SECRETS-WP-0009-T03 / FLEX-WP-0021-T05: consume the deployed policy coordinates
|
|
|
|
|
above through a verified caller access path. Confirm exact package/image and
|
|
|
|
|
CheckRequest/claim binding against the real service; adopt the caller identity
|
|
|
|
|
before authentication enforcement. Configure the approval endpoint and per-lane
|
|
|
|
|
authorization id only after the owner service and approval exist.
|
|
|
|
|
|
|
|
|
|
Then apply the exact data-only read policy/AppRole, verify positive and negative
|
|
|
|
|
access and protected owner delivery for glas-claude-agent-dev-anthropic.
|
|
|
|
|
Custody CCR-2026-0016 is not a per-action authorization. Do not use a human
|
|
|
|
|
runtime token or unsafe-demo. Return activation and scoped delivery receipts.
|
|
|
|
|
|
|
|
|
|
## 7. Pin combined runtime — sand-boxer with rein-aharness
|
|
|
|
|
|
|
|
|
|
SAND-WP-0015-T04: pin Claude executable plus the rein Python artifact, prepare
|
|
|
|
|
the exact combined sandbox profile and credential-route binding, and prove
|
|
|
|
|
startup/private state/egress through the owner path Glas uses. Runtime work
|
|
|
|
|
can proceed in parallel with identity/audit deployment.
|
|
|
|
|
|
|
|
|
|
Resolve the currently different project examples explicitly: the Glas real
|
|
|
|
|
acceptance runner uses actor agt/project glas-local-proof; the owner delivery
|
|
|
|
|
documentation example uses project glas-harness. Return the reviewed binding
|
|
|
|
|
and adapt the fixture/config together; do not broaden the route to all projects.
|
|
|
|
|
|
|
|
|
|
Return: profile id/revision, host scope, runtime digest/executable paths, exact
|
|
|
|
|
consumer tuple, declared egress and denial/cleanup evidence. GLAS-WP-0012 then
|
|
|
|
|
reviews version 1.1.0, executes its real artifact proof and promotes only the
|
|
|
|
|
proven candidate. Provider workspace scope and spend limit remain operator
|
|
|
|
|
inputs; model budget_tokens does not establish a provider spend limit.
|
2026-09-06 20:23:56 +02:00
|
|
|
|
|
|
|
|
## Repository access for owner sessions
|
|
|
|
|
|
|
|
|
|
Primary owner workspaces: key-cape, railiance-platform, audit-core,
|
|
|
|
|
approval-engine, secrets-engine, flex-auth and sand-boxer. Give each owner
|
|
|
|
|
read access to glas-harness for this packet and the acceptance contract.
|
|
|
|
|
Sand-boxer also needs rein-aharness as a sibling for runtime packaging/startup.
|
|
|
|
|
KeyCape/custody/audit preparation and approval-image/runtime preparation can
|
|
|
|
|
proceed in parallel; final native activation follows the verified prerequisites.
|