Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .changeset/23887-anchor-docblock-guest-no-door.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
'@objectstack/spec': patch
---

Clause-②: no

The docblock on `EVERYONE_POSITION` and `GUEST_POSITION` no longer says that packages suggest
bindings to both audience anchors. It now reads that packages suggest bindings to `everyone` at
install time and the admin confirms each one, never auto-bound, and that no door binds a
permission set to `guest` until ADR-0138 D3 item 5's bind door is built, an act of the
environment's administrator and never of a package. The docblock ships in the package's
`src/**/*.zod.ts` files and in the JSDoc of `dist/*.d.ts`, so it is the hover text an author or an
AI reads on the two constants. No key, schema, export or accepted value changes.
14 changes: 11 additions & 3 deletions content/docs/permissions/authorization.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,17 @@ session from protected resources while keeping remediation reachable), and
since ADR-0090 D12 every RBAC-table write is additionally checked by the
**[delegated-admin gate](/docs/permissions/delegated-administration)**: tenant admins pass, delegates are confined to their
`adminScope` (BU subtree + assignable-set allowlist, no self-escalation,
strict containment for scope grants), and everyone else is denied. The
`everyone`/`guest` audience-anchor bindings reject high-privilege sets at the
data layer for every caller.
strict containment for scope grants), and everyone else is denied. No caller
writes either audience anchor's definition (`everyone`, `guest`), and a
high-privilege set is refused at each point where one can reach `everyone`:
accepting a package's `isDefault` suggestion answers `403 PERMISSION_DENIED`;
every derivation of the anchor's definition (boot, accept, revoke, uninstall,
package publish) leaves out a baseline, accepted or host-declared set that
carries a forbidden bit and logs it; and the author-time rule
`security-anchor-high-privilege` reports such an `isDefault` set as an error in
`os validate`, `os build` and `os lint`, and the metadata door refuses to
publish it (`422`). No door binds a set to `guest` until ADR-0138 D3 item 5's
bind door is built ([Permission sets](/docs/permissions/permission-sets#package-suggestion--isdefault-adr-0090-d5)).

### The MCP execution surface (ADR-0096 / ADR-0101)

Expand Down
Loading