Skip to content

feat: rework membership statuses and OIDC group mapping - #4

Draft
duszmox wants to merge 4 commits into
mainfrom
feature/membership-status-rework
Draft

feat: rework membership statuses and OIDC group mapping#4
duszmox wants to merge 4 commits into
mainfrom
feature/membership-status-rework

Conversation

@duszmox

@duszmox duszmox commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Replace membership status enum (studio_applicant/studio_candidate/studio_member/senior_active/senior_archived/contributor) with MEMBER_CANDIDATE_CANDIDATE, MEMBER_CANDIDATE, MEMBER, ACTIVE_ALUMNI, ALUMNI
  • Add Drizzle migration that rewrites existing member_cache.membership_status rows (contributors and archived seniors map to ALUMNI) before recreating the Postgres enum
  • Rework OIDC group mapping in OOB config: new admin, studio, studioCandidate, studioCandidateCandidate, leadership, alumni keys; claim mapping reduced to sub only
  • Drop the schönherz group — users without a member group see only public videos; add admin-dev bootstrap user and update README dev-role docs
  • Remove the public /members/contributors page and refresh member labels, admin member filters, webhook OpenAPI spec and OOB docs/examples

Testing

  • Run unit tests for OIDC group mapping, auth policy, member ingest, OOB config schema and local bootstrap (tests/unit/auth-oidc.test.ts, tests/unit/auth-policy.test.ts, tests/unit/member-ingest.test.ts, tests/unit/oob-config.test.ts, tests/unit/local-bootstrap.test.ts)
  • Run integration suites covering member pages, members webhook, admin access, auth flow/policy and schema migration (tests/integration/member-pages.test.ts, member-webhook.test.ts, admin-access.test.ts, auth-*.test.ts, schema.migration.test.ts)
  • Not run: manual OIDC login against a real Authentik instance with the new group names
  • Not run: migration rehearsal against a database with pre-existing member_cache rows

- rename membership_status enum to MEMBER_CANDIDATE_CANDIDATE/MEMBER_CANDIDATE/MEMBER/ACTIVE_ALUMNI/ALUMNI and drop contributor status
- reduce OIDC claim mapping to sub; map six Authentik groups (admin, studio, candidates, leadership, alumni)
- remove contributors page and migrate member_cache enum
@duszmox
duszmox marked this pull request as draft August 31, 2026 20:21
- replace `delete` operation with `archive` in members webhook API; response now reports `archived` count
- rename `member_cache.deleted_at` to `archived_at` and `webhook_deliveries.deleted_count` to `archived_count` (migration)
- update OpenAPI spec, ingest logic, admin diagnostics, sitemap/search filtering, and tests
- alias v.id as "videoId" in activity query so mapped rows include it
- assert videoId values in member activity integration test
- Include archived members in search results with (Archivált) label
- Show Archivált label on member profiles
- List archived members on archive pages
- Extract shared event/member result rows on search page
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant