This module incrementally ingests users and groups from Microsoft Graph into the Backstage catalog, one page at a time. It is suitable for large Azure AD tenants where holding the full dataset in memory at once is not practical.
@odata.nextLink URL is persisted as the
cursor, so a pod restart during ingestion resumes from the last completed page
rather than starting over.microsoftGraphIncrementalEntityProviderTransformExtensionPoint.This module requires the incremental ingestion framework to be installed:
backend.add(
import('@backstage/plugin-catalog-backend-module-incremental-ingestion'),
);
// packages/backend/src/index.ts
backend.add(
import('@backstage/plugin-catalog-backend-module-incremental-ingestion'),
);
backend.add(
import('@backstage/plugin-catalog-backend-module-msgraph-incremental'),
);
Uses the same catalog.providers.microsoftGraphOrg configuration as
@backstage/plugin-catalog-backend-module-msgraph. See that package's
documentation for full config reference.
catalog:
providers:
microsoftGraphOrg:
default:
tenantId: ${AZURE_TENANT_ID}
clientId: ${AZURE_CLIENT_ID}
clientSecret: ${AZURE_CLIENT_SECRET}
queryMode: advanced
user:
filter: 'accountEnabled eq true'
group:
filter: 'securityEnabled eq true'
schedule:
frequency: { hours: 12 }
timeout: { hours: 4 }
MicrosoftGraphOrgEntityProviderMicrosoftGraphOrgEntityProvider |
This module | |
|---|---|---|
| Memory usage | Full dataset in RAM | One page at a time |
| Resume on restart | Starts from scratch | Resumes from cursor |
userGroupMember* options |
Supported | Not supported |
groupIncludeSubGroups |
Supported | Not supported |
| Suitable for large tenants | No | Yes |