The store seat promises two verbs, databases and query (ADR 0159) #186

Merged
mesh-admin merged 3 commits from feat/the-store-seat-has-verbs into main 2026-10-01 13:45:31 +00:00
Contributor

novox/hq ADR 0159. Seeded additively into the seat's row at the controller's next start. A holder must list tools of these names at registration (design 33 §3), so this merges after mesh-catalog #203 has registered postgres with them; then the broker node is pushed so the holder's grant carries the two verb subjects.

novox/hq ADR 0159. Seeded additively into the seat's row at the controller's next start. A holder must list tools of these names at registration (design 33 §3), so this merges **after** mesh-catalog #203 has registered postgres with them; then the broker node is pushed so the holder's grant carries the two verb subjects.
mesh-admin added 1 commit 2026-10-01 12:03:10 +00:00
Seeded additively into the seat's row at the controller's next start; a holder must list tools of
these names (design 33 §3), so this merges after the database engine's definition does.
Author
Contributor

Added on this branch (ADR 0160, after the seat/module split was settled): a claim may name the verbs it serves for its seat — claims: [{name: mesh-store, scope: mesh, serves: [databases, query]}]. CanHold and the declared-seat check judge the claim's serves when given, else the module's own tools as before (which is how a module named like its seat says they are one and the same); a claim naming a verb the seat never promised is refused at registration; the credential's claims carry the claim's own verbs to the runtime. Tests in holdings_test.go and seats_declared_test.go. make check run on the branch with main merged in.

Order: this merges before mesh-catalog #203 (the manifest word ships one release ahead); #189 (the controller's grant to publish memberships) can merge independently.

Added on this branch (ADR 0160, after the seat/module split was settled): a claim may name the verbs it serves for its seat — `claims: [{name: mesh-store, scope: mesh, serves: [databases, query]}]`. `CanHold` and the declared-seat check judge the claim's `serves` when given, else the module's own `tools` as before (which is how a module named like its seat says they are one and the same); a claim naming a verb the seat never promised is refused at registration; the credential's claims carry the claim's own verbs to the runtime. Tests in `holdings_test.go` and `seats_declared_test.go`. `make check` run on the branch with main merged in. Order: this merges before mesh-catalog #203 (the manifest word ships one release ahead); #189 (the controller's grant to publish memberships) can merge independently.
jschoubben added 2 commits 2026-10-01 13:23:28 +00:00
The store's databases is not postgres's postgres_list_databases, and a holder may serve both. A
claim's serves names the seat's verbs the module implements for the role; absent, the module's own
tools must list every verb the seat promises, which is how a module named like its seat says they
are one and the same. Registration refuses a claim naming a verb the seat never promised, and the
credential's claims carry the claim's own verbs to the runtime.
mesh-admin merged commit 1edc44b25f into main 2026-10-01 13:45:31 +00:00
mesh-admin deleted branch feat/the-store-seat-has-verbs 2026-10-01 13:45:32 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#186