Domain Model
External Connection
Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string.uuid | Yes | — | Id |
| createdAt | string.date-time | Yes | — | Created at |
| updatedAt | string.date-time | Yes | — | Updated at |
| provider | enum(google_workspace, telegram, whatsapp, discord, generic_monitoring, slack, microsoft_teams, jira, github, openclaw) | Yes | — | Provider |
| connectionType | enum(user_oauth, service_account, bot_token, webhook, github_app) | Yes | — | Connection type |
| connectionStatus | enum(active, disconnected, expired, revoked, error) | Yes | — | Connection status |
| owningWorkspaceId | string | No | — | ID of the associated owning workspace |
| owningUserId | string | No | — | ID of the associated owning user |
| label | string | No | — | Label |
| scopesJson | string[] | No | — | Scopes json |
| encryptedCredentialsRef | string | No | — | Encrypted credentials ref |
| externalPrincipalId | string | No | — | ID of the associated external principal |
| configurationJson | object | No | — | Configuration json |
| lastSyncAt | string.date-time | No | — | Last sync at |
| workspaceId | string | Yes | — | ID of the associated workspace |
| visibilityMode | enum(global, workspace_local, shared) | Yes | — | Visibility mode |
| connectionRole | enum(orchestrator, personal) | Yes | — | Connection role |
| aiAccessEnabled | boolean | Yes | — | Ai access enabled |
Create Schema
Fields accepted when creating a new record:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| provider | enum(google_workspace, telegram, whatsapp, discord, generic_monitoring, slack, microsoft_teams, jira, github, openclaw) | Yes | — | Provider |
| connectionType | enum(user_oauth, service_account, bot_token, webhook, github_app) | Yes | — | Connection type |
| connectionStatus | enum(active, disconnected, expired, revoked, error) | Yes | "active" | Connection status |
| owningWorkspaceId | string | No | — | ID of the associated owning workspace |
| owningUserId | string | No | — | ID of the associated owning user |
| label | string | No | — | Label |
| scopesJson | string[] | No | — | Scopes json |
| encryptedCredentialsRef | string | No | — | Encrypted credentials ref |
| externalPrincipalId | string | No | — | ID of the associated external principal |
| configurationJson | object | No | — | Configuration json |
| lastSyncAt | string.date-time | No | — | Last sync at |
| workspaceId | string | Yes | — | ID of the associated workspace |
| visibilityMode | enum(global, workspace_local, shared) | Yes | — | Visibility mode |
| externalSub | string | No | — | External sub |
| connectionRole | enum(orchestrator, personal) | Yes | "personal" | Connection role |
| aiAccessEnabled | boolean | Yes | false | Ai access enabled |
Update Schema
All fields are optional when updating:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| connectionStatus | enum(active, disconnected, expired, revoked, error) | No | "active" | Connection status |
| owningWorkspaceId | string | No | — | ID of the associated owning workspace |
| owningUserId | string | No | — | ID of the associated owning user |
| label | string | No | — | Label |
| scopesJson | string[] | No | — | Scopes json |
| encryptedCredentialsRef | string | No | — | Encrypted credentials ref |
| externalPrincipalId | string | No | — | ID of the associated external principal |
| configurationJson | object | No | — | Configuration json |
| lastSyncAt | string.date-time | No | — | Last sync at |
| externalSub | string | No | — | External sub |
| connectionRole | enum(orchestrator, personal) | No | — | Connection role |
| aiAccessEnabled | boolean | No | — | Ai access enabled |