User Identity And Change Monitor Notifications
These resources model the authenticated Firetiger user, their typed linked external identities, and the Change Monitor notification preference that controls Slack DMs to PR authors and the weekly Impact Report email.
User
User is Firetiger’s local projection of the authenticated Clerk user.
| Field | Type | Behavior | Description |
|---|---|---|---|
name |
string | OUTPUT_ONLY | Resource name (users/{user}) |
clerk_user_id |
string | OUTPUT_ONLY | Authenticated Clerk user identifier |
primary_email |
string | User’s primary email address | |
full_name |
string | User’s display name, when available | |
image_url |
string | User avatar URL, when available | |
create_time |
timestamp | OUTPUT_ONLY | When the user projection was created |
update_time |
timestamp | OUTPUT_ONLY | When the user projection was last modified |
delete_time |
timestamp | OUTPUT_ONLY | When the user projection was soft-deleted |
last_synced_at |
timestamp | OUTPUT_ONLY | When Firetiger last refreshed this projection |
roles |
repeated string | OUTPUT_ONLY | Role resource names (roles/{role}) assigned to this user. Managed through the Roles service (AssignRoles); the user’s effective permissions are the union of these roles’ permissions |
rbac_bootstrap_time |
timestamp | OUTPUT_ONLY | When role-based access control first provisioned this user (assigned their initial role) |
clerk_membership_role |
string | OUTPUT_ONLY | Internal marker recording the organization role this user was last reconciled to. Not intended for API-client consumption |
ExternalIdentity
ExternalIdentity is Firetiger’s queryable projection of a verified external
account linked through Clerk.
| Field | Type | Behavior | Description |
|---|---|---|---|
name |
string | OUTPUT_ONLY | Resource name (external-identities/{external_identity}) |
user |
string | User resource that owns this identity | |
clerk_user_id |
string | OUTPUT_ONLY | Authenticated Clerk user identifier |
github |
GitHubIdentity | GitHub account payload. Mutually exclusive with slack. |
|
slack |
SlackIdentity | Slack account payload. Mutually exclusive with github. |
|
create_time |
timestamp | OUTPUT_ONLY | When the identity was created |
update_time |
timestamp | OUTPUT_ONLY | When the identity was last modified |
delete_time |
timestamp | OUTPUT_ONLY | When the identity was soft-deleted after unlinking |
last_synced_at |
timestamp | OUTPUT_ONLY | When Firetiger last refreshed this projection |
GitHubIdentity
GitHubIdentity is the typed payload for a linked GitHub account.
| Field | Type | Behavior | Description |
|---|---|---|---|
github_user_id |
string | Globally stable GitHub user ID | |
username |
string | GitHub username, when available | |
email |
string | Email address reported by GitHub |
SlackIdentity
SlackIdentity is the typed payload for a linked Slack account.
| Field | Type | Behavior | Description |
|---|---|---|---|
slack_user_id |
string | Slack user ID from the linked identity | |
username |
string | Slack username, when available | |
email |
string | Email address reported by Slack | |
workspace_id |
string | Slack workspace ID for the linked identity | |
workspace_name |
string | Slack workspace name for the linked identity |
ChangeMonitorNotificationPreference
ChangeMonitorNotificationPreference captures the caller’s Change Monitor
notification choices: whether they have opted in to Slack DM notifications and
where those are delivered, and whether they have opted out of weekly Impact
Report emails.
| Field | Type | Behavior | Description |
|---|---|---|---|
name |
string | OUTPUT_ONLY | Resource name (change-monitor-notification-preferences/{preference}) |
enabled |
boolean | Whether Change Monitor Slack DM notifications are enabled | |
slack_dm |
ChangeMonitorSlackDMDestination | Verified Slack DM destination | |
impact_report_emails_disabled |
boolean | Opt-out for weekly Impact Report emails. Emails are on by default for engineers with a change monitor: false — including a missing preference — means the user receives them |
|
create_time |
timestamp | OUTPUT_ONLY | When the preference was created |
update_time |
timestamp | OUTPUT_ONLY | When the preference was last modified |
delete_time |
timestamp | OUTPUT_ONLY | When the preference was soft-deleted |
ChangeMonitorSlackDMDestination
ChangeMonitorSlackDMDestination captures the verified Slack delivery target
for Change Monitor notifications.
| Field | Type | Behavior | Description |
|---|---|---|---|
external_identity |
string | Linked Slack ExternalIdentity that proves account ownership | |
slack_connection |
string | Slack Connection used for delivery |
ChangeMonitorNotificationSetupStatus
ChangeMonitorNotificationSetupStatus summarizes whether the authenticated
user has the linked identities and verified Slack DM destination needed for
Change Monitor notifications.
| Field | Type | Behavior | Description |
|---|---|---|---|
github_identity_linked |
boolean | Whether the user has linked a GitHub identity | |
slack_identity_linked |
boolean | Whether the user has linked a Slack identity | |
slack_dm_verified |
boolean | Whether the user has verified a Slack DM destination |