Support atomic organization role sets and owner-managed invitations
verify / verify (push) Successful in 4m17s

Signed-off-by: Cole Speelman <crspeelman@gmail.com>
This commit is contained in:
2026-09-05 00:10:08 -04:00
parent ed0cc8ceff
commit c0986168bc
19 changed files with 1052 additions and 69 deletions
+13
View File
@@ -8,6 +8,19 @@ application concern belongs in the shared module.
## Gamertan accounts and commerce
- A customer may need both purchasing and billing access. Replacing one role at
a time would create partial permission states and misleading audit history.
The role-set extension commits all direct roles together with optimistic
binding IDs and current owner authority. Multiple-role invitations carry the
same combination atomically, with stored owner-managed policy rechecked when
accepted. SQLite tests cover concurrent winners, write rollback, demoted or
removed grantors, and attempted implicit reactivation of suspended members.
This adds schema 10; application vocabulary, allowed roles, invitation delivery,
ordinary-customer authentication, and UI/API commands remain application-owned.
- The public export allowlist omitted the owned-organization files introduced
in preview 22. Including them and building the exported tree tests the actual
distribution boundary rather than only comparing its path list with itself.
- Shared business purchasing exposed the difference between an initial member
and an initial RBAC owner. The historical organization creation method commits
membership but no access binding. The new `CreateOwnedOrganization` extension