Skip to content

[People] Roadmap: People, Soci and census across auth, backend and admin #146

Open
1 of 4 issues completed
Open

Description

@toto04

This is the root of the People work across auth, backend and admin. Until now People was built without a clear direction. This issue sets the direction, records what happens to the existing code and PRs, and links every piece of work. Reviews of People PRs are paused until the sub-issues below say otherwise.

Phases

Phase Issue Status
Cleanup #142: remove Soci, fees, receipts, census and record matching from People Ready
1 #143: Group Admins, Capo Admins and Team members, linked to Auth accounts and given RBAC roles Ready
2 #144: Soci and association fees, rebuilt on Entra ID Design needed
3 #145: admin census in the dashboard Design needed

Progress shows in the sub-issue tree below. Each issue's order is set with GitHub "blocked by" links.

Decisions (29 October 2026)

  1. Three separate concerns, little overlap. Phase 1 is People ↔ Auth accounts ↔ RBAC roles. Soci and fees (Phase 2) and the census (Phase 3) are separate, and are built after it.
  2. People without a linked account live only in the backend, never as placeholder users in Auth. We often don't know which account someone will sign in with (Entra ID if they're a socio, otherwise any Google account), and the email and name we have may not match it.
  3. Linking: an email invite the person accepts by signing in with any account, or a manual link by someone with the new people:link permission. No automatic matching.
  4. Only predetermined roles: roles bound in Auth to admin, capo, team:<key>:member or team:<key>:lead, never with idp:* permissions. Clearance comes from RBAC, and Auth checks it on every change.
  5. Capo Admin is part of Phase 1 (the capo-admin role already exists). Capo Admins may later manage the admins under them. That's not built now, but it's designed for.
  6. Soci in People is removed outright, to be rebuilt from scratch on Entra ID users in Phase 2.
  7. Nothing is migrated. Every People table holds only test data.
  8. Administrative capabilities are RBAC permissions, not hard-coded Master Admin checks (e.g. binding a role to People).

What's in production

What happens to the open PRs

PR What happens Tracked in
PoliNetworkOrg/auth#73 Keep, rework. Reset to d698d3c, then remove Soci from the read endpoint, add capo, add a binding permission, restructure the delegation rules. Needs a new review. PoliNetworkOrg/auth#78
PoliNetworkOrg/auth#75 (merged into #73's branch) Drop. Placeholder users and Master Admin link approval; it also broke invite and manual linking. PoliNetworkOrg/auth#78
PoliNetworkOrg/backend#99 Don't merge. Superseded; reuse src/people/roles.ts and its tests. PoliNetworkOrg/backend#101, PoliNetworkOrg/backend#102
#132 Don't merge. Superseded; reuse its missing-profile-value handling and the team rename. #139
#136 Don't merge. Superseded; reuse its Telegram group removal. #138, #139, #140

Older issues covering parts of this: #23, #24, #25.

How to follow along

  • Every issue has the people label, and its title starts with [People], [People · Cleanup] or [People · Phase N].
  • Each repo issue is a sub-issue of its phase, and each phase is a sub-issue of this one.
  • PRs should say Closes <issue> so progress rolls up here.

Activity

  1. added theissue type on Oct 29, 2026
  2. added
    peoplePeople: Group Admins, Capo Admins, Teams, Soci and census (see the People roadmap)
    on Oct 29, 2026
  3. coderabbitai commented on Oct 29, 2026

    @coderabbitai
    Contributor
    🔗 Related PRs

    #132 - feat(people): show records filled from PoliNetwork Auth and Microsoft 365 [open]


    📝 Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    peoplePeople: Group Admins, Capo Admins, Teams, Soci and census (see the People roadmap)

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions