Files
felhom-agent/REPORT.md
T
admin 9e3513557f docs(v0.22.0): REPORT for durable_id exposure
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 20:01:02 +02:00

2.0 KiB

REPORT — agent v0.22.0: expose durable_id in GET /disks (2026-06-11)

Repo: felhom-agent · Version: 0.22.0 · Pushed commit: 4734d4a · paired with felhom-controller v0.43.0 (the controller-side storage-management rebuild that needs this).

What shipped (one read-only field)

internal/localapi/DiskInfo gains durable_id (mapped directly from StorageTarget.DurableID — e.g. "uuid:<fs-uuid>" for usb/local-dir, "path:…"/"store:…" otherwise). That's the entire change.

Why it's necessary: the de-privileged controller cannot read a device's filesystem UUID itself, yet POST /disks/assign mounts strictly by fs UUID (EnsureMount/dev/disk/by-uuid/<UUID>). Without the UUID surfaced somewhere the controller can reach, the guided init/attach flows could not complete the mount. GET /disks already carried everything else (name/type/state/device/mount/class/data_bearing) but dropped the durable id. The controller strips the uuid: prefix to get the assign key.

Security: no new privilege, no subprocess, no behaviour change to format/assign/eject or the data-bearing signature gate. The agent still inspects the device itself at format time and refuses a data-bearing wipe with a pending_op (the controller surfaces the felhom-opsign command).

Validation (live, guest 9201)

GET /disks (via the controller's /api/disks proxy) now returns durable_id per disk, e.g. felhom-usb/dev/sdb1, data_bearing:true, durable_id:uuid:277a2179-a764-4758-b840-9ea741517914. The controller's guided init on sdb correctly drove the agent to a data-bearing refusal (HTTP 403 → pending_op{op:storage_wipe, host_scope:demo-felhom-01, durable_id:byid:wwn-0x5000039ddb108568-part1}), which the controller surfaced as the operator felhom-opsign command — the gate held end-to-end.

Notes

This pairs with the controller's storage-management rebuild (build-golden default bumped to controller 0.43.0; golden rebaked). No other agent change.