docs(v0.43.0): REPORT (storage mgmt rebuild) + README agent-delegated storage note
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -514,6 +514,28 @@ not just those with HDD data. Non-HDD apps can configure destination, method, an
|
||||
|
||||
### 4. Storage Management
|
||||
|
||||
> **⚠️ Rebuilt on the agent-delegated disk model (v0.43.0).** After the 8C de-privileging, the controller
|
||||
> holds **no Proxmox/disk credentials and no destructive authority** — disk execution + the data-bearing
|
||||
> signature gate live entirely in the **host agent**. The controller is now a thin presenter/orchestrator:
|
||||
> - **Overview** (`settings.html` ← `GET /api/disks`): the agent's live disk view (name/type/state/device/
|
||||
> mount/class) + the **`data_bearing`** badge + "registered?" cross-reference.
|
||||
> - **Guided init** (`/settings/storage/init`, `POST /api/storage/init`, `web/storage_handlers.go`): format
|
||||
> → resolve the new fs UUID from the re-listed disks (`durable_id`, `uuid:`-stripped) → `assign` (mount)
|
||||
> → register a `StoragePath`. **A data-bearing device is REFUSED by the agent** (`pending_op`); the UI
|
||||
> surfaces the exact `felhom-opsign -op storage_wipe -host … -durable-id …` command and stops — **there
|
||||
> is no force-format**. The agent's `data_bearing` verdict (it inspects the device) is ground truth.
|
||||
> - **Guided attach** (`/settings/storage/attach`, `POST /api/storage/attach`): non-destructive — resolve
|
||||
> the existing fs UUID → `assign` → register.
|
||||
> - **Eject** (`POST /api/storage/eject`): benign unmount + deregister, with the agent's dependent-guest warning.
|
||||
> - **`agentapi`** (`internal/agentapi`) is the pinned client to the agent local API: `Disks`/`AssignDisk`/
|
||||
> `EjectDisk`/`FormatDisk`; `DiskInfo.FSUUID()` + `FormatResult.PendingOp.OpsignCommand()`.
|
||||
> - The **`StoragePath` registry** (`settings.go`: `AddStoragePath`/default/schedulable/label) is unchanged —
|
||||
> init/attach register into it; the existing per-path management handlers stay.
|
||||
> - **Migration** (drive + per-stack) is **deferred** to its own slice (buttons disabled "Hamarosan").
|
||||
>
|
||||
> The privileged controller-side disk subsections **below are historical** (the `internal/storage/*` scan/
|
||||
> format code was removed in 8C — execution is the agent's now).
|
||||
|
||||
The storage subsystem handles the full lifecycle of external storage: detection, initialization, path registration, and data migration.
|
||||
|
||||
#### Disk Scanning (`internal/storage/scan.go`)
|
||||
|
||||
Reference in New Issue
Block a user