diff --git a/docs/pages/product/apis-integrations/embed-apis/chat-api.mdx b/docs/pages/product/apis-integrations/embed-apis/chat-api.mdx index 54afb1b774dbc..a3c3c3a9a4584 100644 --- a/docs/pages/product/apis-integrations/embed-apis/chat-api.mdx +++ b/docs/pages/product/apis-integrations/embed-apis/chat-api.mdx @@ -81,16 +81,16 @@ while (true) { |-------|------|----------|-------------| | `input` | string | No | The user's message or question. If omitted returns current state of thread with provided chatId. | | `chatId` | string | No | Chat thread ID. If omitted, a new thread is created automatically. If provided, it should match the previously returned `chatId` from a message with id `__cutoff__` sent as the `state.chatId` field. | -| `sessionSettings.externalId` | string | No | Unique identifier for the external user, lowercase and without spaces. Either `externalId` or `internalUsername` should be provided. | -| `sessionSettings.internalUsername` | string | No | Username of an internal Cube Cloud user. Either `externalId` or `internalUsername` should be provided. | +| `sessionSettings.externalId` | string | No | Unique identifier for the external user, lowercase and without spaces. Either `externalId` or `internalId` should be provided. | +| `sessionSettings.internalId` | string | No | Email of an internal Cube Cloud user. Either `externalId` or `internalId` should be provided. | | `sessionSettings.email` | string | No | User's email address | -| `sessionSettings.userAttributes` | array | No | Array of `{name, value}` pairs for row-level security. Not allowed with `internalUsername`. | -| `sessionSettings.groups` | string[] | No | Array of group names the user belongs to. Not allowed with `internalUsername`. | -| `sessionSettings.securityContext` | object | No | Custom security context object passed to Cube queries. Not allowed with `internalUsername`. | +| `sessionSettings.userAttributes` | array | No | Array of `{name, value}` pairs for row-level security. Not allowed with `internalId`. | +| `sessionSettings.groups` | string[] | No | Array of group names the user belongs to. Not allowed with `internalId`. | +| `sessionSettings.securityContext` | object | No | Custom security context object passed to Cube queries. Not allowed with `internalId`. | -When using `internalUsername`, the user must already exist in Cube Cloud. You cannot specify `roles`, `groups`, `userAttributes`, or `securityContext` with `internalUsername` — the internal user's existing permissions are used instead. +When using `internalId`, the user must already exist in Cube Cloud. You cannot specify `roles`, `groups`, `userAttributes`, or `securityContext` with `internalId` — the internal user's existing permissions are used instead. @@ -103,8 +103,8 @@ User attributes must first be configured in your Cube admin panel before they ca **Supported Fields:** -- `externalId` (optional): Unique identifier for the external user. Either `externalId` or `internalUsername` should be provided. -- `internalUsername` (optional): Username of an internal Cube Cloud user. The user must already exist. Either `externalId` or `internalUsername` should be provided. +- `externalId` (optional): Unique identifier for the external user. Either `externalId` or `internalId` should be provided. +- `internalId` (optional): Email of an internal Cube Cloud user. The user must already exist. Either `externalId` or `internalId` should be provided. - `email` (optional): User's email address - `userAttributes` (optional): Array of key-value pairs containing user metadata. Only available with `externalId`. @@ -154,12 +154,12 @@ Copy the complete Chat API URL from your agent settings (**Chat API URL** field) - **`input`** (string): User message or query to send to the AI agent, e.g. "What is our revenue last month?". If omitted, returns current state of thread with provided `chatId`. - **`chatId`** (string): Chat thread ID. If omitted, a new thread is created automatically. If provided, it should match the previously returned `chatId` from a message with id `__cutoff__`. - **`sessionSettings`** (object, required): Session configuration for the user - - **`externalId`** (string): Unique identifier for the external user. Either `externalId` or `internalUsername` should be provided. - - **`internalUsername`** (string): Username of an internal Cube Cloud user. The user must already exist. Either `externalId` or `internalUsername` should be provided. + - **`externalId`** (string): Unique identifier for the external user. Either `externalId` or `internalId` should be provided. + - **`internalId`** (string): Email of an internal Cube Cloud user. The user must already exist. Either `externalId` or `internalId` should be provided. - **`email`** (string): User's email address - - **`userAttributes`** (array): Array of `{name, value}` pairs for row-level security. Not allowed with `internalUsername`. - - **`groups`** (string[]): Array of group names for user. Not allowed with `internalUsername`. - - **`securityContext`** (object): Custom security context object passed to Cube queries. Not allowed with `internalUsername`. + - **`userAttributes`** (array): Array of `{name, value}` pairs for row-level security. Not allowed with `internalId`. + - **`groups`** (string[]): Array of group names for user. Not allowed with `internalId`. + - **`securityContext`** (object): Custom security context object passed to Cube queries. Not allowed with `internalId`. ## Response Format diff --git a/docs/pages/product/apis-integrations/embed-apis/generate-session.mdx b/docs/pages/product/apis-integrations/embed-apis/generate-session.mdx index e81aa2f4bb2a2..9112d2d663da1 100644 --- a/docs/pages/product/apis-integrations/embed-apis/generate-session.mdx +++ b/docs/pages/product/apis-integrations/embed-apis/generate-session.mdx @@ -29,11 +29,17 @@ POST https://{accountName}.cubecloud.dev/api/v1/embed/generate-session | Field | Type | Required | Description | |-------|------|----------|-------------| -| `externalId` | string | Yes | Unique identifier for the external user | -| `email` | string | No | User's email address | -| `userAttributes` | array | No | Array of `{name, value}` pairs for row-level security | -| `groups` | string[] | No | Array of group names for user | -| `securityContext` | object | No | Custom security context object passed to Cube queries | +| `externalId` | string | No | Unique identifier for the external user. Either `externalId` or `internalId` should be provided. | +| `internalId` | string | No | Email of an internal Cube Cloud user. Either `externalId` or `internalId` should be provided. | +| `userAttributes` | array | No | Array of `{name, value}` pairs for row-level security. Not allowed with `internalId`. | +| `groups` | string[] | No | Array of group names for user. Not allowed with `internalId`. | +| `securityContext` | object | No | Custom security context object passed to Cube queries. Not allowed with `internalId`. | + + + +When using `internalId`, the user must already exist in Cube Cloud. You cannot specify `roles`, `groups`, `userAttributes`, or `securityContext` with `internalId` — the internal user's existing permissions are used instead. + + @@ -76,7 +82,6 @@ const response = await fetch( }, body: JSON.stringify({ externalId: 'user@example.com', - email: 'user@example.com', userAttributes: [ { name: 'department', value: 'Sales' } ] @@ -102,7 +107,6 @@ response = requests.post( }, json={ 'externalId': 'user@example.com', - 'email': 'user@example.com', 'userAttributes': [ {'name': 'department', 'value': 'Sales'} ] @@ -118,7 +122,6 @@ curl -X POST "https://your-account.cubecloud.dev/api/v1/embed/generate-session" -H "Authorization: Api-Key YOUR_API_KEY" \ -d '{ "externalId": "user@example.com", - "email": "user@example.com", "userAttributes": [ {"name": "department", "value": "Sales"} ]