docs(orchestrator): tighten auth-provisioning wording to concrete services
test / integration-docker (pull_request) Successful in 18s
tracker-policy-pr / check-pr (pull_request) Successful in 21s
test / integration-firecracker (pull_request) Successful in 3m51s
test / unit (pull_request) Failing after 11m53s
test / coverage (pull_request) Has been skipped
test / publish-infra (pull_request) Has been skipped

Address review on #482: drop the generic "credential boundary" framing in the
PRD and docstrings and talk about the specific services — the orchestrator holds
the control-plane key; the host controller (#468) gets a separate key the
orchestrator never holds, so the orchestrator can't mint the credentials it uses
to talk to the host controller that owns its lifecycle. Lead with that concrete
win. No code behaviour change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-26 01:14:06 +00:00
parent 45f3cefbc5
commit 8f6148d571
4 changed files with 137 additions and 216 deletions
+6 -8
View File
@@ -101,14 +101,12 @@ def host_signing_key(filename: str) -> str:
"""A per-host signing key at `<root>/<filename>`, minted (256-bit, url-safe)
and persisted 0600 on first use, then reused.
The generic form of `host_orchestrator_token()`: a *trust domain*
(`trust_domain.py`) names its own key file so each credential boundary gets a
distinct host-canonical key — the orchestrator control plane names one file,
a separate boundary (e.g. a host controller) names another, and neither can
read the other's key (issues #476/#468). It is a *host* artifact: the file
lives under the root the agent never mounts, and its value is injected only
into the trusted control-plane process, so reading it here is safe on the
host launch path but the value never reaches a bottle."""
The generic form of `host_orchestrator_token()`: each service names its own
key file (`trust_domain.py`), so the orchestrator and a separate service like
the host controller (#468) get distinct keys neither can read. It is a *host*
artifact — the file lives under the root the agent never mounts, and its value
is injected only into the trusted control-plane process — so reading it here
is safe on the launch path but the value never reaches a bottle."""
path = bot_bottle_root() / filename
try:
existing = path.read_text().strip()