Backend: app-owned space membership store in the encrypted state-backend #213
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Cordy/Cairn#213
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent: #211.
A Cairn-owned membership object per app-created space:
{ space, owner, members: [{user, role}] }, persisted under.cairn-state/(age-encrypted, likeshares.json/holds.json) — the source of truth for spaces Cairn creates, independent of any IdP.Scope
write/read,-roread-only parity).local/oidc/ldapauth and any key custody.validSpaceName; refuse names colliding with an existing IdP group the user is in (avoid two spaces of the same name).Acceptance: unit tests for CRUD + role transitions + persistence round-trip through the state-backend; owner cannot be demoted/removed; concurrent writers safe (single-writer instance assumption holds).
TDD from the start.
Done —
internal/spacestoremerged (PR #220). Owner + members per Cairn space, persisted throughstatestore(age-encrypted in the backend like shares/holds), atomic clone-then-commit, no IdP calls. CRUD +RoleFor/SpacesForUser/List; owner is always write and cannot be demoted or removed. CI green (vet + tests including the round-trip, both-arch build). Next: #214 wires it into the scope driver.