Give back only the groups the mesh added, and say when a new login is needed (hq ADR 0251, issue 247)
mesh/delivery-group group feat/module-groups checking: 0 of 2 member(s) ready
mesh/delivery superseded: a newer head of the same pull request
mesh/merge-gate pass: builds mesh-host → ace, g14, novox, shanks; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed

A module puts the operator's account in a group by declaring the account with that group alone.
The node-engine now records each group it added, takes back only those when nothing declared still
asks for them, refuses a group the machine lacks before usermod runs, and states each such account
as its module's resource of kind account: relogin needed while the running session lacks the group.
This commit is contained in:
jochen
2026-10-08 12:02:31 +02:00
parent ef8378a990
commit 73a5cd1ad2
13 changed files with 1096 additions and 31 deletions
+7
View File
@@ -117,6 +117,13 @@ type Applied struct {
// still has the mesh's; absent when the mesh never changed it.
Linger *Lingering `json:"linger,omitempty"`
// Groups is, for a user, every group the mesh put the account in that it was not in before
// (novox/hq ADR 0251). Never a group the account was found in: that one is the machine's, or the
// operator's, and stays when the resource goes. Removal takes the account out of each of these that
// no other declared resource still asks for. Absent on a record written before the host kept it,
// and then every group is left as it is.
Groups []string `json:"groups,omitempty"`
// Unpacked is, for an archive, what it put on the machine (novox/hq issue 162): the files and
// directories it unpacked, and whether the directory it was unpacked into and the parents above
// it were made by the host. Removal takes away exactly that and nothing else. Absent on a