fix(minimax,z-ai): stage api_key as root, restore mount mode 0400

Mirrors agent-runtimes commit 6f20b51. CRS serves these harness files to
dispatchers, so this repo must match.

Switches from "mount mode 0444 so the agent user can `cat` the ESO file"
to the gitea-ssh staging pattern: keep the ESO mount root-only (0400),
init.sh as root `install`s a per-secret 0600 agent-owned copy, and
apiKeyHelper points at the staged copy. Stronger blast-radius guarantee
— if the ESO Secret later grows additional keys, they remain root-only
unless the harness explicitly stages them.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Paul O'Reilly
2026-05-07 20:43:13 +12:00
parent d68d1b0f6b
commit 12c2172835
4 changed files with 82 additions and 70 deletions

View File

@@ -15,10 +15,12 @@ secrets_required:
- name: z-ai
account_ref: "z-ai"
mount_path: /run/agent/secrets/z-ai
# 0444 — readable by the agent user that runs `claude` (and thus
# apiKeyHelper). Pod-local tmpfs; "world readable" only means readable
# by processes in this pod.
mode: "0444"
# 0400 (root-only) — defense in depth. The agent user cannot read this
# mount. init.sh runs as root and stages the auth_token into the agent's
# home with mode 0600. apiKeyHelper points at the staged copy. Matches
# the gitea-ssh pattern; if the ESO Secret later carries additional
# files (e.g. base_url is already there), they remain inaccessible.
mode: "0400"
scripts:
init: "./init.sh"