You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The client cannot reliably identify built-in (seeded) groups. CreateAdminGroup assigns Provider: BuiltInProvider ("tmi") to every admin-created group (api/admin_group_handlers.go), the same provider the six seeded groups get, and AdminGroup carries no is_builtin field. Expose the distinction in the API.
Background
Found while implementing ericfitz/tmi-ux#806 (Built-in badge + filter on the admin groups page). The client currently works around it by matching the seeded group names (everyone, security-reviewers, administrators, confidential-project-reviewers, embedding-automation, tmi-automation) transcribed from api/seed/seed.go — a list that silently drifts if seeding changes — and its filter toggle can only express provider=tmi, which selects seeded and admin-created groups. See the discussion on ericfitz/tmi-ux#806 (comment from PR ericfitz/tmi-ux#814).
Acceptance Criteria
AdminGroup (admin groups list/detail responses) includes a boolean is_builtin that is true only for server-seeded groups
GET /admin/groups accepts a built_in boolean filter param usable alongside the existing provider/group_name filters and pagination
OpenAPI spec updated so the client codegen picks both up
Notes
Implementation likely needs a persisted flag (column set at seed time) rather than a name match, so admin-created groups can never collide with a future seeded name.
Summary
The client cannot reliably identify built-in (seeded) groups.
CreateAdminGroupassignsProvider: BuiltInProvider("tmi") to every admin-created group (api/admin_group_handlers.go), the same provider the six seeded groups get, andAdminGroupcarries nois_builtinfield. Expose the distinction in the API.Background
Found while implementing ericfitz/tmi-ux#806 (Built-in badge + filter on the admin groups page). The client currently works around it by matching the seeded group names (
everyone,security-reviewers,administrators,confidential-project-reviewers,embedding-automation,tmi-automation) transcribed fromapi/seed/seed.go— a list that silently drifts if seeding changes — and its filter toggle can only expressprovider=tmi, which selects seeded and admin-created groups. See the discussion on ericfitz/tmi-ux#806 (comment from PR ericfitz/tmi-ux#814).Acceptance Criteria
AdminGroup(admin groups list/detail responses) includes a booleanis_builtinthat is true only for server-seeded groupsGET /admin/groupsaccepts abuilt_inboolean filter param usable alongside the existingprovider/group_namefilters and paginationNotes
admin-groups.component.ts(BUILT_IN_GROUP_NAMES) withis_builtin, and repoint the "Show TMI groups only." toggle (or add a second, accurate "built-in only" filter) — tracked on feat: admin groups — usage badge tooltips, built-in badge and filter toggle tmi-ux#806.