diff --git a/02-DECISIONS/0283-a-part-that-waits-for-the-operators-secret-or-setting-is-said-as-waiting-passes-the-first-node-gate-and-names-the-act.md b/02-DECISIONS/0283-a-part-that-waits-for-the-operators-secret-or-setting-is-said-as-waiting-passes-the-first-node-gate-and-names-the-act.md index e8b65825..90d9b0a5 100644 --- a/02-DECISIONS/0283-a-part-that-waits-for-the-operators-secret-or-setting-is-said-as-waiting-passes-the-first-node-gate-and-names-the-act.md +++ b/02-DECISIONS/0283-a-part-that-waits-for-the-operators-secret-or-setting-is-said-as-waiting-passes-the-first-node-gate-and-names-the-act.md @@ -152,6 +152,8 @@ named exactly, once. Nothing here conflicts with GENESIS. > therefore carried in the source's own entry of the setting `sources`, as the user part of its address > (`name=smb://@/@`), which is already the operator's value and already > travels through a settings proposal. A source whose entry names no user waits for the setting `sources`. + > Row 7 of the table below said "a source without username waits for `smb-users`"; it now says the + > source waits for `sources`, and that a password written in the address is refused and never said. > What was decided stands: the username is an ordinary setting, the password a one-line secret per source. ## Consequences @@ -190,7 +192,7 @@ named exactly, once. Nothing here conflicts with GENESIS. | 4 The gate | controller tests: a module whose only resource not healthy is an excused wait passes with the wait in the verdict; the same with a second resource unhealthy is not yet; a later build is excused too | | 5 The condition | controller tests: two statements of an excused wait raise `needs-operator`, a warning, resolver operator, its needs naming the desk prompt for a secret and the approval for a setting, never "nothing for you to do"; a statement without it clears it; a wait that fails the check raises `unhealthy` | | 6 Families | controller tests: `module check` refuses each malformed family; a member is accepted and asked for at the desk by its full name, a name outside the family is refused, and so is a member whose suffix holds a `/`, a `.` or an upper-case letter; a member given is placed at its path; a member not given places nothing and composes | -| 7 mounts | the module's tests: a source without username waits for `smb-users`, without password waits for `smb-password-`, with both is written; a password file is read as one line; health answers `waits` and not `unhealthy`; nothing logs or answers a password | +| 7 mounts | the module's tests: a source with no user in its entry waits for `sources`, a password in the address is refused and never said, without password it waits for `smb-password-`, with both is written; a password file is read as one line; health answers `waits` and not `unhealthy`; nothing logs or answers a password | | live | on the workstation, before the password: `conditions` shows `module.mounts..needs-operator` naming the desk prompt, no `unhealthy`, and the next mounts walk passes its gate. After `secret-ask` and the operator's typing: the condition clears, and the source mounts when the device is on | ## References diff --git a/03-DESIGN/01-to-be/48-a-module-says-how-it-is-healthy.md b/03-DESIGN/01-to-be/48-a-module-says-how-it-is-healthy.md index 842735e1..59be9292 100644 --- a/03-DESIGN/01-to-be/48-a-module-says-how-it-is-healthy.md +++ b/03-DESIGN/01-to-be/48-a-module-says-how-it-is-healthy.md @@ -160,7 +160,7 @@ in place of `unhealthy` (ADR 0283): a warning, the operator's, never escalated b above. The controller first checks the wait: a secret it names must be the module's own, declared issued outside the mesh, and hold no value given on that machine; a setting must be one the module declares. Its plain words name the act — "Needs you: type the password of the source … at 's desk prompt", or -approve the setting when an agent proposes it — and never say there is nothing to do. A wait that fails the +approve the setting when it is proposed to you — and never say there is nothing to do. A wait that fails the check is said as `unhealthy`, with why. **`status`** lists it with the other conditions; **`node show`** shows each module's resources with their