diff --git a/03-DESIGN/01-to-be/41-the-shell-and-the-accounts-environment.md b/03-DESIGN/01-to-be/41-the-shell-and-the-accounts-environment.md index f5b9c46d..9681c8a6 100644 --- a/03-DESIGN/01-to-be/41-the-shell-and-the-accounts-environment.md +++ b/03-DESIGN/01-to-be/41-the-shell-and-the-accounts-environment.md @@ -91,7 +91,7 @@ WP5 assign and prove (operator-gated) needs WP WP6 a module puts the account in a group (mesh-host, mesh-controller, mesh-catalog) issue 247 WP7 the control-node withholds execute (mesh-controller, mesh-catalog) ADR 0268 WP8 a node's files and accounts are read (mesh-sdk, mesh-catalog, mesh-controller) ADR 0310, issue 418 -WP9 every file on a node is managed (mesh-tools, mesh-controller) ADR 0394, issue 900 +WP9 every file on a node is managed (mesh-catalog, mesh-controller) ADR 0394, issue 900 ``` WP1, WP2 and WP4 are independent, and are built in parallel on one feature branch per repository @@ -371,13 +371,14 @@ server, and the agent's credentials file on the laptop is refused. ## WP9 — Every file on a node is managed through `node-files` -*`mesh-tools`, `mesh-controller`. ADR 0394; tracked by issue 900.* +*`mesh-catalog`, `mesh-controller`. ADR 0394; tracked by issue 900.* `node-reads` only reads, and as an account that cannot open a person's home, so nothing in the mesh could copy, move, write or delete a file, and a cleanup needed a shell on the machine. Most files belong to no module: homes, project folders, downloads, logs, scratch. -- **A node seat, `node-files`, on every node**, held by the tool runner, with a verb for each file action: list, +- **A node seat, `node-files`, on every node**, held by a module of its own, `mesh-files`, beside `mesh-reads` + in the catalogue; the controller holds the seat's definition beside the other node seats. It has a verb for each file action: list, stat, read, search, write, copy, move, delete, make a folder, change mode, change owner, and the trash's list and restore. Each says what it replaces (ADR 0245): `ls`, `stat`, `cat`, `grep`, `cp`, `mv`, `rm`, `mkdir`, `chmod`, `chown`, and `ssh cp` for a copy between nodes. @@ -392,7 +393,7 @@ project folders, downloads, logs, scratch. of a known credential file or a secret place (the mesh never prints a token); copying or moving one is allowed. -**Proof.** The tool runner's tests: each verb against a temporary tree keeps owner and modes, a new file takes its +**Proof.** The module's tests: each verb against a temporary tree keeps owner and modes, a new file takes its folder's owner, a delete is restorable from the trash and gone after 7 days, an owned path is refused and an override recorded, a credential file's content is never returned. Live: the operator's `~/.claude` on shanks is listed, and a file copied from one node to another arrives with its owner and modes.