Project separate lifecycle and intake audiences for the selected workload
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a10780-6d41-7952-9718-dfbc1f41236f
This commit is contained in:
parent
4a59b234b9
commit
a64aa58b38
2 changed files with 26 additions and 3 deletions
|
|
@ -25,9 +25,10 @@ Concurrent enqueue may report queue_busy while dispatch is in flight; retry the
|
|||
same explicit enqueue after the bounded attempt. SIGTERM stops between attempts.
|
||||
|
||||
The worker uses the selected existing State Hub service account. It has no
|
||||
Service/Ingress, database credential, browser route or approval scopes. Only the
|
||||
intake-audience token is mounted: lifecycle API clients must use their separately
|
||||
admitted lifecycle-audience token. Token mounts are read-only without subPath.
|
||||
Service/Ingress, database credential, browser route or approval scopes. Separate 600-second tokens are projected for intake and lifecycle audiences.
|
||||
The dispatcher reads only intake-token; admitted headless lifecycle clients use
|
||||
lifecycle-token inside this workload context. Neither token is printed or
|
||||
exported through the Hub API. Token mounts are read-only without subPath.
|
||||
The worker image does not change the Hub API image or PostgreSQL schema.
|
||||
|
||||
All execution that can write this private queue or run commands as this workload
|
||||
|
|
@ -40,3 +41,18 @@ requester delivery, the INFD lifecycle service and policy candidates. Retain the
|
|||
PVC and rows on withdrawal; rollback stops the worker but does not undo submitted
|
||||
memos, native approvals or human acts. Native human acceptance and audit receipts
|
||||
remain STATE-WP-0096-T03 / INFD-WP-0007-T07.
|
||||
|
||||
|
||||
Explicit queueing from an authorized workstation session (the file contains the
|
||||
exact envelope returned by lifecycle request-review, not an access token):
|
||||
|
||||
```sh
|
||||
kubectl -n state-hub exec -i deployment/state-hub-memo-dispatch -- \
|
||||
python -m api.services.memo_dispatch --queue /data/private enqueue \
|
||||
--envelope /dev/stdin < /private/review-envelope.json
|
||||
```
|
||||
|
||||
This is a per-decision data operation, not a deployment. Headless clients call
|
||||
8081 with the appropriate projected audience and the normal API idempotency key;
|
||||
they never request approval:approve or approval:consume. Automatic scanning and
|
||||
a public delegate endpoint are deliberately outside this worker's contract.
|
||||
|
|
|
|||
|
|
@ -120,6 +120,13 @@
|
|||
"expirationSeconds": 600,
|
||||
"path": "intake-token"
|
||||
}
|
||||
},
|
||||
{
|
||||
"serviceAccountToken": {
|
||||
"audience": "informed-decision-lifecycle",
|
||||
"expirationSeconds": 600,
|
||||
"path": "lifecycle-token"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue