diff --git a/plugins/catalog-backend-module-msgraph-incremental/src/MicrosoftGraphIncrementalEntityProvider.test.ts b/plugins/catalog-backend-module-msgraph-incremental/src/MicrosoftGraphIncrementalEntityProvider.test.ts index cc10e03b68..7e65d8a728 100644 --- a/plugins/catalog-backend-module-msgraph-incremental/src/MicrosoftGraphIncrementalEntityProvider.test.ts +++ b/plugins/catalog-backend-module-msgraph-incremental/src/MicrosoftGraphIncrementalEntityProvider.test.ts @@ -586,6 +586,17 @@ describe('MicrosoftGraphIncrementalEntityProvider', () => { expect(groupEntity!.entity.spec?.members).toContain( 'user:default/alice_example.com', ); + // Verify $select is passed so member objects are never sparse + expect(mockClient.getGroupMembers).toHaveBeenCalledWith( + 'grp-1', + expect.objectContaining({ + select: expect.arrayContaining([ + 'id', + 'displayName', + 'userPrincipalName', + ]), + }), + ); }); it('populates spec.children with nested group refs from getGroupMembers', async () => { diff --git a/plugins/catalog-backend-module-msgraph-incremental/src/MicrosoftGraphIncrementalEntityProvider.ts b/plugins/catalog-backend-module-msgraph-incremental/src/MicrosoftGraphIncrementalEntityProvider.ts index 06e125789c..6c290f17ea 100644 --- a/plugins/catalog-backend-module-msgraph-incremental/src/MicrosoftGraphIncrementalEntityProvider.ts +++ b/plugins/catalog-backend-module-msgraph-incremental/src/MicrosoftGraphIncrementalEntityProvider.ts @@ -429,6 +429,17 @@ export class MicrosoftGraphIncrementalEntityProvider for await (const member of client.getGroupMembers(group.id!, { top: GROUP_PAGE_SIZE, + // Request the minimum fields needed by defaultUserTransformer and + // defaultGroupTransformer so member objects are never sparse. + select: [ + 'id', + 'displayName', + 'mail', + 'mailNickname', + 'userPrincipalName', + 'description', + 'securityEnabled', + ], })) { if (member['@odata.type'] === '#microsoft.graph.user') { try {