Repository navigation
[People] Roadmap: People, Soci and census across auth, backend and admin #146
Copy link
Copy link
Open
Feature
1 / 41 of 4 issues completed
Copy link
Labels
peoplePeople: Group Admins, Capo Admins, Teams, Soci and census (see the People roadmap)People: Group Admins, Capo Admins, Teams, Soci and census (see the People roadmap)
Description
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)
- 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.
- 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.
- Linking: an email invite the person accepts by signing in with any account, or a manual link by someone with the new
people:linkpermission. No automatic matching. - Only predetermined roles: roles bound in Auth to
admin,capo,team:<key>:memberorteam:<key>:lead, never withidp:*permissions. Clearance comes from RBAC, and Auth checks it on every change. - Capo Admin is part of Phase 1 (the
capo-adminrole already exists). Capo Admins may later manage the admins under them. That's not built now, but it's designed for. - Soci in People is removed outright, to be rebuilt from scratch on Entra ID users in Phase 2.
- Nothing is migrated. Every People table holds only test data.
- Administrative capabilities are RBAC permissions, not hard-coded Master Admin checks (e.g. binding a role to People).
What's in production
- admin: a People area with Overview, Admins, Teams, Census, Linking, Capo Admin, My area, the Soci register, fees and receipts: feat(people): add people records, roles and census workflows #97, feat(people): add fee renewal and signed receipts #100, fix(people): accept unknown Telegram group admins in the Capo area #134. It's empty and not connected to RBAC.
- backend: the
people.*API (feat(people): add the people api for the admin dashboard backend#83, fix(people): classify pending telegram admin removals backend#94). It holds all of that, plus creating Microsoft 365 accounts and the eSign receipt bridge. - auth: no People code on
main.people:*permissions exist, granted todirettivoandit-lead.- Team roles (
hr-*,design-*,intl-*,events-*) andcapo-adminexist, but nothing binds them to People yet.
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
peoplelabel, 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.
Reacted by coderabbitai
Metadata
Metadata
Assignees
Labels
peoplePeople: Group Admins, Capo Admins, Teams, Soci and census (see the People roadmap)People: Group Admins, Capo Admins, Teams, Soci and census (see the People roadmap)
Activity
coderabbitai commentedon Oct 29, 2026
🔗 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 plancommand to generate an implementation plan and prompts that you can use with your favorite coding assistant.🧪 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:💬 Have feedback or questions? Drop into our discord!
docs: refresh dashboard PRDs and roadmap for current platform