Repository navigation
Conversation
Observer is a read-only org role for people who follow the product without operating it. It ranks below member, so every permission in the table already excludes it. A role string this code does not know now reads as observer, the least a session can hold, where it read as member. A tenant with no roles still reads as member: only Maple's own agents arrive without one. Nothing assigns the role yet, and the Members page does not offer it.
Maple review🟡 Confidence 6/10 · needs attention. Held at 6 because a correctness warning is open. Adds
Before merge
Findings🟠 Warning · F1 · An
|
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 38 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
First layer of the Observer role: a read-only org role for people who follow the product without operating it (support, product, finance, founders).
What changed
observerjoins the role ladder belowmember, with the keyorg:observer.Nothing assigns the role yet and the Members page does not offer it, so this layer changes no behaviour for existing sessions. One edge: a membership moved to a role key the code does not know now retires that person's member-pinned credentials, where it kept them before.
Verified
packages/domain:vitest run src/policy/policy.test.ts, 16 passed. New cases: an observer holds no grants, stays an observer next to an unknown role, takes the higher of two roles, and a member-pinned credential outranks an observer.packages/backend:MembershipRevocationService.test.ts, 10 passed.apps/web: members page, org membership kit and ingest key tests, 20 passed.@maple/domaintypecheck and the CI lint config onpackages/domain/src/policy: clean.Next layers
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.