Services
RPC methods exposed by this API.ExternalSyncService
| Method | Request | Response | Description |
|---|---|---|---|
| SyncOrganization | SyncOrganizationRequest | SyncOrganizationResponse | |
| GenerateToken | GenerateTokenRequest | GenerateTokenResponse | |
| GetExternalSync | GetExternalSyncRequest | GetExternalSyncResponse | |
| ListExternalSyncTokens | ListExternalSyncTokensRequest | ListExternalSyncTokensResponse | |
| ListExternalSyncRuns | ListExternalSyncRunsRequest | ListExternalSyncRunsResponse | |
| GetExternalSyncRun | GetExternalSyncRunRequest | GetExternalSyncRunResponse | |
| GetIsOrgExternallyProvisioned | GetIsOrgExternallyProvisionedRequest | GetIsOrgExternallyProvisionedResponse | Organization admins (Admin role in the org) and platform admins may call. Returns whether the org has IdP/SCIM external sync configured (users should be provisioned via the identity provider). Organization is taken from request context. |
Messages
Data models used across requests/responses.ExternalSync
| Field | Type | Label | Description |
|---|---|---|---|
| organization_id | string | ||
| most_recent_sync_date | google.protobuf.Timestamp | optional | |
| most_recent_sync_by_user_id | string | optional | |
| scim_server_url | string | ||
| token_created_date | google.protobuf.Timestamp | optional | |
| token_lifetime_seconds | uint32 | ||
| most_recent_token_by_user_id | string | optional |
ExternalSyncGroupRef
Sift user group identity for display (group_name) and stable API use (user_group_id).| Field | Type | Label | Description |
|---|---|---|---|
| user_group_id | string | ||
| group_name | string |
ExternalSyncMembershipChange
One membership edge that changed during the sync.| Field | Type | Label | Description |
|---|---|---|---|
| user_id | string | ||
| user_name | string | ||
| user_group_id | string | ||
| group_name | string |
ExternalSyncRun
| Field | Type | Label | Description |
|---|---|---|---|
| external_sync_run_id | string | ||
| synced_at | google.protobuf.Timestamp | ||
| trigger_type | ExternalSyncRunTriggerType | ||
| triggered_by_user_id | string | optional | |
| diff | ExternalSyncRunDiff |
ExternalSyncRunDiff
Snapshot of membership and lifecycle changes from one external sync run. Identifiers are Siftuser_id / user_group_id UUIDs and human-readable names as stored in Sift
(not Keycloak SCIM ids). Older stored runs may have empty ids with names only.
| Field | Type | Label | Description |
|---|---|---|---|
| users_activated | ExternalSyncUserRef | repeated | |
| users_deactivated | ExternalSyncUserRef | repeated | |
| groups_created | ExternalSyncGroupRef | repeated | |
| groups_deleted | ExternalSyncGroupRef | repeated | |
| users_added_to_groups | ExternalSyncMembershipChange | repeated | |
| users_removed_from_groups | ExternalSyncMembershipChange | repeated |
ExternalSyncRunSummary
| Field | Type | Label | Description |
|---|---|---|---|
| external_sync_run_id | string | ||
| synced_at | google.protobuf.Timestamp | ||
| trigger_type | ExternalSyncRunTriggerType | ||
| triggered_by_user_id | string | optional | |
| users_activated_count | uint32 | ||
| users_deactivated_count | uint32 | ||
| groups_created_count | uint32 | ||
| groups_deleted_count | uint32 | ||
| users_added_to_groups_count | uint32 | ||
| users_removed_from_groups_count | uint32 |
ExternalSyncToken
The actual token value is not returned after it is first generated.| Field | Type | Label | Description |
|---|---|---|---|
| token_id | string | ||
| lifetime_seconds | uint32 | ||
| created_date | google.protobuf.Timestamp | ||
| created_by_user_id | string |
ExternalSyncUserRef
Sift user identity for display (user_name) and stable API use (user_id).| Field | Type | Label | Description |
|---|---|---|---|
| user_id | string | ||
| user_name | string |
GenerateTokenRequest
This message has no fields.GenerateTokenResponse
| Field | Type | Label | Description |
|---|---|---|---|
| external_sync | ExternalSync | ||
| token | string |
GetExternalSyncRequest
This message has no fields.GetExternalSyncResponse
| Field | Type | Label | Description |
|---|---|---|---|
| success | bool | ||
| external_sync | ExternalSync |
GetExternalSyncRunRequest
| Field | Type | Label | Description |
|---|---|---|---|
| external_sync_run_id | string |
GetExternalSyncRunResponse
| Field | Type | Label | Description |
|---|---|---|---|
| external_sync_run | ExternalSyncRun |
GetIsOrgExternallyProvisionedRequest
This message has no fields.GetIsOrgExternallyProvisionedResponse
| Field | Type | Label | Description |
|---|---|---|---|
| is_externally_provisioned | bool |
ListExternalSyncRunsRequest
| Field | Type | Label | Description |
|---|---|---|---|
| page_size | uint32 | ||
| page_token | string | ||
| filter | string | ||
| order_by | string |
ListExternalSyncRunsResponse
| Field | Type | Label | Description |
|---|---|---|---|
| external_sync_run_summaries | ExternalSyncRunSummary | repeated | |
| next_page_token | string |
ListExternalSyncTokensRequest
| Field | Type | Label | Description |
|---|---|---|---|
| page_size | uint32 | The maximum number of tokens to return. The service may return fewer than this value. If unspecified, at most 50 tokens will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000. Optional. | |
| page_token | string | A page token, received from a previous ListExternalSyncTokens call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListExternalSyncTokens must match the call that provided the page token. Optional. | |
| filter | string | A Common Expression Language (CEL) filter string. There are currently no available fields. For further information about how to use CELs, please refer to this guide. | |
| order_by | string | How to order the retrieved user defined functions. Formatted as a comma-separated string i.e. “FIELD_NAME[ desc],…”. Available field to order_by is created_date. If left empty, items are ordered by created_date in descending order (newest-first). For more information about the format of this field, read this Example: “created_date asc”. |
ListExternalSyncTokensResponse
| Field | Type | Label | Description |
|---|---|---|---|
| external_sync_tokens | ExternalSyncToken | repeated | |
| next_page_token | string |
SyncOrganizationRequest
This message has no fields.SyncOrganizationResponse
| Field | Type | Label | Description |
|---|---|---|---|
| external_sync | ExternalSync | ||
| existing_user_count | uint32 | ||
| added_to_organization_user_ids | string | repeated | |
| created_users | sift.common.type.v1.User | repeated | |
| deactivated_user_ids | string | repeated | |
| existing_group_count | uint32 | ||
| created_user_groups | sift.user_groups.v2.UserGroup | repeated | |
| deleted_user_group_names | string | repeated |
Enums
Allowed constant values used in message fields.ExternalSyncRunTriggerType
| Name | Number | Description |
|---|---|---|
| EXTERNAL_SYNC_RUN_TRIGGER_TYPE_UNSPECIFIED | 0 | |
| EXTERNAL_SYNC_RUN_TRIGGER_TYPE_MANUAL_USER | 1 | User triggered sync via the Sift UI or API. |
| EXTERNAL_SYNC_RUN_TRIGGER_TYPE_SCHEDULED | 2 |