feat(platform): add Groups service for organization group management [APPS-37218] - #664
Open
Sarath1018 wants to merge 3 commits into
Open
Sarath1018 wants to merge 3 commits into
Sarath1018 wants to merge 3 commits into
Conversation
Contributor
|
Contributor
|
Two missing error-scenario tests in the model test file; everything else looks good. New findings this run:
Both inline comments include a drop-in suggestion. Service-level and integration tests are complete; the transform pipeline, wire-name mapping, fetch-all loop, GUID generation, pagination, JSDoc, and docs pages are all convention-compliant. |
This was referenced Aug 13, 2026
Sarath1018
force-pushed
the
feat/platform-groups
branch
from
September 9, 2026 18:02
546de22 to
5681eae
Compare
Sarath1018
force-pushed
the
feat/platform-groups
branch
from
September 10, 2026 19:14
5681eae to
0632b0e
Compare
Contributor
|
New finding this run:
(The two open threads about missing |
Adds PlatformGroupService (exported as Groups) to the /platform subpath: - getAll(organizationId) — all local and built-in groups - getById(groupId, organizationId) - create(name, organizationId, options?) — the API requires a client-generated group GUID, so the SDK generates it; initial members via memberUserIds - updateById(groupId, organizationId, name, options?) — the API requires the name on every update (409 without it, live-verified), so it is a required positional; membership edits via memberUserIdsToAdd/ memberUserIdsToRemove; the bound group.update() auto-fills the current name - deleteById(groupId, organizationId) - getMembers(groupId, organizationId, options?) — paged member references with fetch-all default Groups are enriched with organizationId (not on the wire) so bound update/delete/getMembers capture full context. Numeric GroupType codes mapped to enums; members/mappedRole/scope dropped from the public shape (members is always empty on the wire — membership is served by getMembers). Verified against the live API: 2389 unit tests passing, integration 8/8 (full CRUD, membership round-trips from both group and user side, pagination), runtime E2E through packed dist bundles. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ound-method tests - Say which /platform operations are user-scoped vs organization-scoped in the module JSDoc - Cover the missing organization id guard for the bound delete() and getMembers() Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sarath1018
force-pushed
the
feat/platform-groups
branch
from
September 15, 2026 04:48
0632b0e to
861dc03
Compare
Contributor
|
✅ No issues found. Checked for bugs and CLAUDE.md compliance. |
…t from every method Groups now uses the shared organization id resolver like Users: no method takes organizationId, and the response no longer carries the SDK-added organizationId field. Bound methods only guard the group id. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Contributor
|
✅ No issues found. Checked for bugs and CLAUDE.md compliance. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PR 2/4 in the platform RBAC stack (Users → Groups → Directory → Roles). Stacked on #663 — merge that first; this PR's diff is Groups-only.
Adds
PlatformGroupService(exported asGroups) to the/platformsubpath.getAll(organizationId)GET /identity_/api/Group/{org}getById(groupId, organizationId)GET /identity_/api/Group/{org}/{groupId}create(name, organizationId, options?)POST /identity_/api/GroupmemberUserIdsupdateById(groupId, organizationId, name, options?)PUT /identity_/api/Group/{groupId}nameis required by the API on every update (409 without it — live-verified); boundgroup.update()auto-fills the current namedeleteById(groupId, organizationId)DELETE /identity_/api/Group/{org}/{groupId}getMembers(groupId, organizationId, options?)GET .../Memberstop/skip); fetch-all defaultDesign decisions (validated against the live API)
organizationId(not on the wire) so boundupdate()/delete()/getMembers()capture full contextGroupTypearrives as0/1despite the spec's string enum — mapped toPlatformGroupType.BuiltIn/.Custommembers(always empty on the wire — membership served bygetMembers()),mappedRole,scope(undocumented nulls)directoryUserMemberIDs(create) vsdirectoryUserIDsToAdd/Remove(update); the SDK exposes uniformmemberUserIds*namesupdate/delete/getMembers(state-changing + contextual read); entry points not boundTesting
users.updateById+groupIdsToAdd— completes the RBAC grant/revoke flow), members pagination against a built-in groupDocs
docs/oauth-scopes.md(PM.Group),docs/pagination.md(getMembers),mkdocs.ymlnav.Stack
mainfeat/platform-usersfeat/platform-groupsfeat/platform-directory🤖 Generated with Claude Code