@epilot/sdk 2.1.6 → 2.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/definitions/kanban.json +25 -1
- package/definitions/permissions.json +41 -6
- package/dist/apis/access-token.cjs +6 -6
- package/dist/apis/access-token.js +1 -1
- package/dist/apis/address-suggestions.cjs +6 -6
- package/dist/apis/address-suggestions.js +1 -1
- package/dist/apis/address.cjs +6 -6
- package/dist/apis/address.js +1 -1
- package/dist/apis/ai-agents.cjs +6 -6
- package/dist/apis/ai-agents.js +1 -1
- package/dist/apis/app.cjs +6 -6
- package/dist/apis/app.js +1 -1
- package/dist/apis/audit-logs.cjs +6 -6
- package/dist/apis/audit-logs.js +1 -1
- package/dist/apis/automation.cjs +6 -6
- package/dist/apis/automation.js +1 -1
- package/dist/apis/billing.cjs +6 -6
- package/dist/apis/billing.js +1 -1
- package/dist/apis/blueprint-manifest.cjs +6 -6
- package/dist/apis/blueprint-manifest.js +1 -1
- package/dist/apis/consent.cjs +6 -6
- package/dist/apis/consent.js +1 -1
- package/dist/apis/customer-portal.cjs +6 -6
- package/dist/apis/customer-portal.js +1 -1
- package/dist/apis/dashboard.cjs +6 -6
- package/dist/apis/dashboard.js +1 -1
- package/dist/apis/data-management.cjs +6 -6
- package/dist/apis/data-management.js +1 -1
- package/dist/apis/deduplication.cjs +6 -6
- package/dist/apis/deduplication.js +1 -1
- package/dist/apis/design.cjs +6 -6
- package/dist/apis/design.js +1 -1
- package/dist/apis/document.cjs +6 -6
- package/dist/apis/document.js +1 -1
- package/dist/apis/email-settings.cjs +6 -6
- package/dist/apis/email-settings.js +1 -1
- package/dist/apis/email-template.cjs +6 -6
- package/dist/apis/email-template.js +1 -1
- package/dist/apis/entity-mapping.cjs +6 -6
- package/dist/apis/entity-mapping.js +1 -1
- package/dist/apis/entity.cjs +6 -6
- package/dist/apis/entity.js +1 -1
- package/dist/apis/environments.cjs +6 -6
- package/dist/apis/environments.js +1 -1
- package/dist/apis/erp-integration.cjs +6 -6
- package/dist/apis/erp-integration.js +1 -1
- package/dist/apis/event-catalog.cjs +6 -6
- package/dist/apis/event-catalog.js +1 -1
- package/dist/apis/file.cjs +6 -6
- package/dist/apis/file.js +1 -1
- package/dist/apis/iban.cjs +6 -6
- package/dist/apis/iban.js +1 -1
- package/dist/apis/journey.cjs +6 -6
- package/dist/apis/journey.js +1 -1
- package/dist/apis/kanban.cjs +6 -6
- package/dist/apis/kanban.d.cts +2 -2
- package/dist/apis/kanban.d.ts +2 -2
- package/dist/apis/kanban.js +1 -1
- package/dist/apis/message.cjs +6 -6
- package/dist/apis/message.js +1 -1
- package/dist/apis/metering.cjs +6 -6
- package/dist/apis/metering.js +1 -1
- package/dist/apis/notes.cjs +6 -6
- package/dist/apis/notes.js +1 -1
- package/dist/apis/notification.cjs +6 -6
- package/dist/apis/notification.js +1 -1
- package/dist/apis/organization.cjs +6 -6
- package/dist/apis/organization.js +1 -1
- package/dist/apis/partner-directory.cjs +6 -6
- package/dist/apis/partner-directory.js +1 -1
- package/dist/apis/permissions.cjs +6 -6
- package/dist/apis/permissions.d.cts +2 -2
- package/dist/apis/permissions.d.ts +2 -2
- package/dist/apis/permissions.js +1 -1
- package/dist/apis/pricing-tier.cjs +6 -6
- package/dist/apis/pricing-tier.js +1 -1
- package/dist/apis/pricing.cjs +6 -6
- package/dist/apis/pricing.js +1 -1
- package/dist/apis/purpose.cjs +6 -6
- package/dist/apis/purpose.js +1 -1
- package/dist/apis/sandbox.cjs +6 -6
- package/dist/apis/sandbox.js +1 -1
- package/dist/apis/submission.cjs +6 -6
- package/dist/apis/submission.js +1 -1
- package/dist/apis/targeting.cjs +6 -6
- package/dist/apis/targeting.js +1 -1
- package/dist/apis/template-variables.cjs +6 -6
- package/dist/apis/template-variables.js +1 -1
- package/dist/apis/user.cjs +6 -6
- package/dist/apis/user.js +1 -1
- package/dist/apis/validation-rules.cjs +6 -6
- package/dist/apis/validation-rules.js +1 -1
- package/dist/apis/webhooks.cjs +6 -6
- package/dist/apis/webhooks.js +1 -1
- package/dist/apis/workflow-definition.cjs +6 -6
- package/dist/apis/workflow-definition.js +1 -1
- package/dist/apis/workflow.cjs +6 -6
- package/dist/apis/workflow.js +1 -1
- package/dist/{chunk-DDMVRJDZ.cjs → chunk-GHAEATNY.cjs} +2 -2
- package/dist/{chunk-EQYWNVI2.js → chunk-V3SZ5A6F.js} +2 -2
- package/dist/index.cjs +8 -8
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/kanban-E2UOBVBK.cjs +7 -0
- package/dist/kanban-PMG5TXE5.js +7 -0
- package/dist/{kanban.d-CtSt3uX2.d.cts → kanban.d-B99GucT_.d.cts} +18 -3
- package/dist/{kanban.d-CtSt3uX2.d.ts → kanban.d-B99GucT_.d.ts} +18 -3
- package/dist/permissions-X3SJVSPC.js +7 -0
- package/dist/permissions-ZJHUIBWY.cjs +7 -0
- package/dist/{permissions.d-BHB1FFS5.d.ts → permissions.d-l6AT8SYP.d.cts} +31 -4
- package/dist/{permissions.d-BHB1FFS5.d.cts → permissions.d-l6AT8SYP.d.ts} +31 -4
- package/docs/kanban.md +39 -1
- package/docs/permissions.md +34 -9
- package/package.json +1 -1
- package/dist/kanban-CHTH2ZSY.cjs +0 -7
- package/dist/kanban-HI6LL5WY.js +0 -7
- package/dist/permissions-4T3GFNB4.js +0 -7
- package/dist/permissions-FGBIJNN7.cjs +0 -7
package/dist/index.d.ts
CHANGED
|
@@ -29,14 +29,14 @@ import { C as Client$m } from './event-catalog.d-ENw6HO-w.js';
|
|
|
29
29
|
import { C as Client$n } from './file.d-DcTJxjp7.js';
|
|
30
30
|
import { C as Client$o } from './iban.d-BwdiGbxi.js';
|
|
31
31
|
import { C as Client$p } from './journey.d-C4N4t1Rh.js';
|
|
32
|
-
import { C as Client$q } from './kanban.d-
|
|
32
|
+
import { C as Client$q } from './kanban.d-B99GucT_.js';
|
|
33
33
|
import { C as Client$r } from './message.d-YEv1kmQd.js';
|
|
34
34
|
import { C as Client$s } from './metering.d-DvtPv7wk.js';
|
|
35
35
|
import { C as Client$t } from './notes.d-BC-scR42.js';
|
|
36
36
|
import { C as Client$u } from './notification.d-BfBL3lga.js';
|
|
37
37
|
import { C as Client$v } from './organization.d-DqwnNxMg.js';
|
|
38
38
|
import { C as Client$w } from './partner-directory.d-BCIjHoGs.js';
|
|
39
|
-
import { C as Client$x } from './permissions.d-
|
|
39
|
+
import { C as Client$x } from './permissions.d-l6AT8SYP.js';
|
|
40
40
|
import { C as Client$y } from './pricing.d-Cv39plGm.js';
|
|
41
41
|
import { C as Client$z } from './pricing-tier.d-Cg0jl6n_.js';
|
|
42
42
|
import { C as Client$A } from './purpose.d-CbIYfTua.js';
|
package/dist/index.js
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-NJK5F5TF.cjs');
|
|
2
|
+
|
|
3
|
+
// src/docs/kanban.json
|
|
4
|
+
var kanban_default = '# Kanban API\n\n- **Base URL:** `https://kanban.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/kanban](https://docs.epilot.io/api/kanban)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.kanban.createKanbanBoard(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/kanban\'\n\nconst kanbanClient = getClient()\nauthorize(kanbanClient, () => \'<token>\')\nconst { data } = await kanbanClient.createKanbanBoard(...)\n```\n\n## Operations\n\n**Kanban**\n- [`createKanbanBoard`](#createkanbanboard)\n- [`getKanbanBoards`](#getkanbanboards)\n- [`getKanbanBoard`](#getkanbanboard)\n- [`updateKanbanBoard`](#updatekanbanboard)\n- [`patchKanbanBoard`](#patchkanbanboard)\n- [`deleteKanbanBoard`](#deletekanbanboard)\n- [`setDefaultKanbanBoard`](#setdefaultkanbanboard)\n- [`clearDefaultKanbanBoard`](#cleardefaultkanbanboard)\n\n**Query**\n- [`flowsAutocomplete`](#flowsautocomplete)\n- [`executeFlowsQuery`](#executeflowsquery)\n\n**Schemas**\n- [`Error`](#error)\n- [`BoardSummary`](#boardsummary)\n- [`Board`](#board)\n- [`Swimlane`](#swimlane)\n- [`Sorting`](#sorting)\n- [`GroupBy`](#groupby)\n- [`BoardFilter`](#boardfilter)\n- [`FilterGroup`](#filtergroup)\n- [`FilterOperator`](#filteroperator)\n- [`DynamicDateValue`](#dynamicdatevalue)\n- [`ValueType`](#valuetype)\n- [`FlowsQueryRequest`](#flowsqueryrequest)\n- [`FlowsQueryResult`](#flowsqueryresult)\n- [`FilterItem`](#filteritem)\n\n### `createKanbanBoard`\n\nCreates a new Kanban board with the provided configuration.\n\n`POST /v1/kanban/board`\n\n```ts\nconst { data } = await client.createKanbanBoard(\n null,\n {\n id: \'string\',\n title: \'Board 1\',\n description: \'Board description\',\n created_at: \'1970-01-01T00:00:00.000Z\',\n updated_at: \'1970-01-01T00:00:00.000Z\',\n created_by: \'string\',\n org_id: \'string\',\n updated_by: \'string\',\n shared_with: [\'string\'],\n shared_with_org: true,\n owners: [\'string\'],\n config: {\n dataset: \'workflow_tasks_overview\',\n swimlanes: [\n {\n id: \'string\',\n title: \'Swimlane 1\',\n position: 1,\n filter: {\n items: [\n {\n key: \'assignee\',\n operator: \'EQUALS\',\n value: \'100020\',\n data_type: \'string\'\n }\n ],\n combination: \'OR\'\n },\n title_chip_variant: \'success\'\n }\n ],\n card_config: {\n fields: [\'assignee\']\n },\n board_filter: {\n items: [\n {\n key: \'assignee\',\n operator: \'EQUALS\',\n value: \'100020\',\n data_type: \'string\'\n }\n ],\n combination: \'OR\'\n },\n sorting: {\n field: \'created_at\',\n direction: \'asc\'\n },\n group_by: {\n field: \'context_entity\'\n },\n search_query: \'task 1\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "title": "Board 1",\n "description": "Board description",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "created_by": "string",\n "org_id": "string",\n "updated_by": "string",\n "shared_with": ["string"],\n "shared_with_org": true,\n "owners": ["string"],\n "config": {\n "dataset": "workflow_tasks_overview",\n "swimlanes": [\n {\n "id": "string",\n "title": "Swimlane 1",\n "position": 1,\n "filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "title_chip_variant": "success"\n }\n ],\n "card_config": {\n "fields": ["assignee"]\n },\n "board_filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "sorting": {\n "field": "created_at",\n "direction": "asc"\n },\n "group_by": {\n "field": "context_entity"\n },\n "search_query": "task 1"\n }\n}\n```\n\n</details>\n\n---\n\n### `getKanbanBoards`\n\nReturns a list of all Kanban boards accessible to the authenticated user.\n\n`GET /v1/kanban/boards`\n\n```ts\nconst { data } = await client.getKanbanBoards({\n filter: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "id": "string",\n "title": "Board 1",\n "description": "Board description",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "created_by": "string",\n "org_id": "string",\n "updated_by": "string",\n "shared_with": ["string"],\n "shared_with_org": true,\n "owners": ["string"]\n }\n]\n```\n\n</details>\n\n---\n\n### `getKanbanBoard`\n\nRetrieves a Kanban board by ID, including its full configuration (swimlanes, filters, sorting, card fields).\n\n`GET /v1/kanban/board/{boardId}`\n\n```ts\nconst { data } = await client.getKanbanBoard({\n boardId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "title": "Board 1",\n "description": "Board description",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "created_by": "string",\n "org_id": "string",\n "updated_by": "string",\n "shared_with": ["string"],\n "shared_with_org": true,\n "owners": ["string"],\n "config": {\n "dataset": "workflow_tasks_overview",\n "swimlanes": [\n {\n "id": "string",\n "title": "Swimlane 1",\n "position": 1,\n "filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "title_chip_variant": "success"\n }\n ],\n "card_config": {\n "fields": ["assignee"]\n },\n "board_filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "sorting": {\n "field": "created_at",\n "direction": "asc"\n },\n "group_by": {\n "field": "context_entity"\n },\n "search_query": "task 1"\n }\n}\n```\n\n</details>\n\n---\n\n### `updateKanbanBoard`\n\nFully replaces the configuration of an existing Kanban board by ID.\n\n`PUT /v1/kanban/board/{boardId}`\n\n```ts\nconst { data } = await client.updateKanbanBoard(\n {\n boardId: \'example\',\n },\n {\n id: \'string\',\n title: \'Board 1\',\n description: \'Board description\',\n created_at: \'1970-01-01T00:00:00.000Z\',\n updated_at: \'1970-01-01T00:00:00.000Z\',\n created_by: \'string\',\n org_id: \'string\',\n updated_by: \'string\',\n shared_with: [\'string\'],\n shared_with_org: true,\n owners: [\'string\'],\n config: {\n dataset: \'workflow_tasks_overview\',\n swimlanes: [\n {\n id: \'string\',\n title: \'Swimlane 1\',\n position: 1,\n filter: {\n items: [\n {\n key: \'assignee\',\n operator: \'EQUALS\',\n value: \'100020\',\n data_type: \'string\'\n }\n ],\n combination: \'OR\'\n },\n title_chip_variant: \'success\'\n }\n ],\n card_config: {\n fields: [\'assignee\']\n },\n board_filter: {\n items: [\n {\n key: \'assignee\',\n operator: \'EQUALS\',\n value: \'100020\',\n data_type: \'string\'\n }\n ],\n combination: \'OR\'\n },\n sorting: {\n field: \'created_at\',\n direction: \'asc\'\n },\n group_by: {\n field: \'context_entity\'\n },\n search_query: \'task 1\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "title": "Board 1",\n "description": "Board description",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "created_by": "string",\n "org_id": "string",\n "updated_by": "string",\n "shared_with": ["string"],\n "shared_with_org": true,\n "owners": ["string"],\n "config": {\n "dataset": "workflow_tasks_overview",\n "swimlanes": [\n {\n "id": "string",\n "title": "Swimlane 1",\n "position": 1,\n "filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "title_chip_variant": "success"\n }\n ],\n "card_config": {\n "fields": ["assignee"]\n },\n "board_filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "sorting": {\n "field": "created_at",\n "direction": "asc"\n },\n "group_by": {\n "field": "context_entity"\n },\n "search_query": "task 1"\n }\n}\n```\n\n</details>\n\n---\n\n### `patchKanbanBoard`\n\nPartially updates fields of an existing Kanban board by ID.\n\n`PATCH /v1/kanban/board/{boardId}`\n\n```ts\nconst { data } = await client.patchKanbanBoard(\n {\n boardId: \'example\',\n },\n {\n title: \'Board 1\',\n description: \'Board description\',\n shared_with: [\'string\'],\n shared_with_org: true,\n owners: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "title": "Board 1",\n "description": "Board description",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "created_by": "string",\n "org_id": "string",\n "updated_by": "string",\n "shared_with": ["string"],\n "shared_with_org": true,\n "owners": ["string"],\n "config": {\n "dataset": "workflow_tasks_overview",\n "swimlanes": [\n {\n "id": "string",\n "title": "Swimlane 1",\n "position": 1,\n "filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "title_chip_variant": "success"\n }\n ],\n "card_config": {\n "fields": ["assignee"]\n },\n "board_filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "sorting": {\n "field": "created_at",\n "direction": "asc"\n },\n "group_by": {\n "field": "context_entity"\n },\n "search_query": "task 1"\n }\n}\n```\n\n</details>\n\n---\n\n### `deleteKanbanBoard`\n\nPermanently deletes a Kanban board by ID. This action is irreversible.\n\n`DELETE /v1/kanban/board/{boardId}`\n\n```ts\nconst { data } = await client.deleteKanbanBoard({\n boardId: \'example\',\n})\n```\n\n---\n\n### `setDefaultKanbanBoard`\n\nSets a Kanban board as the default board for the organization.\n\n`PUT /v1/kanban/org/default-board`\n\n```ts\nconst { data } = await client.setDefaultKanbanBoard({\n boardId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string",\n "default_board_id": "string"\n}\n```\n\n</details>\n\n---\n\n### `clearDefaultKanbanBoard`\n\nRemoves the default board configuration for the organization.\n\n`DELETE /v1/kanban/org/default-board`\n\n```ts\nconst { data } = await client.clearDefaultKanbanBoard()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string",\n "default_board_id": "string"\n}\n```\n\n</details>\n\n---\n\n### `flowsAutocomplete`\n\nReturns autocomplete suggestions for a given attribute in the Flows dataset.\n\n`GET /v1/kanban/query/flows:autocomplete`\n\n```ts\nconst { data } = await client.flowsAutocomplete({\n input: \'example\',\n attribute: \'example\',\n size: 1,\n from: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": ["value"],\n "hits": 42\n}\n```\n\n</details>\n\n---\n\n### `executeFlowsQuery`\n\nExecutes a query against the Flows dataset and returns paginated results for use in Kanban card rendering.\n\n`POST /v1/kanban/query/flows:execute`\n\n```ts\nconst { data } = await client.executeFlowsQuery(\n null,\n {\n filters: {\n items: [\n {\n key: \'assignee\',\n operator: \'EQUALS\',\n value: \'100020\',\n data_type: \'string\'\n }\n ],\n combination: \'OR\'\n },\n sorting: {\n field: \'created_at\',\n direction: \'asc\'\n },\n group_by: {\n field: \'context_entity\'\n },\n from: 0,\n size: 10\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {}\n ],\n "hits": 42,\n "page_number": 1,\n "page_size": 10,\n "total_pages": 5\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `Error`\n\nStandard error response\n\n```ts\ntype Error = {\n message?: string\n status?: number\n}\n```\n\n### `BoardSummary`\n\nSummary representation of a Kanban board, returned in list responses. Does not include swimlane and filter configuration details.\n\n```ts\ntype BoardSummary = {\n id?: string\n title?: string\n description?: string\n created_at?: string // date-time\n updated_at?: string // date-time\n created_by?: string\n org_id?: string\n updated_by?: string\n shared_with?: string[]\n shared_with_org?: boolean\n owners?: string[]\n}\n```\n\n### `Board`\n\nFull representation of a Kanban board, including swimlane layout, filter configuration, card display fields, and sorting options.\n\n```ts\ntype Board = {\n id?: string\n title: string\n description?: string\n created_at?: string // date-time\n updated_at?: string // date-time\n created_by?: string\n org_id?: string\n updated_by?: string\n shared_with?: string[]\n shared_with_org?: boolean\n owners?: string[]\n config: {\n dataset?: string\n swimlanes?: Array<{\n id?: { ... }\n title?: { ... }\n position?: { ... }\n filter?: { ... }\n title_chip_variant?: { ... }\n }>\n card_config?: {\n fields?: { ... }\n }\n board_filter?: {\n items: { ... }\n combination: { ... }\n }\n sorting?: {\n field: { ... }\n direction?: { ... }\n }\n group_by?: {\n field: { ... }\n }\n search_query?: string\n }\n}\n```\n\n### `Swimlane`\n\nA vertical column in a Kanban board that groups workflow tasks or entities matching its filter criteria. Each swimlane has an independent filter and a display position.\n\n```ts\ntype Swimlane = {\n id?: string\n title?: string\n position?: number\n filter?: {\n items: Array<{\n key: { ... }\n operator: { ... }\n value?: { ... }\n data_type?: { ... }\n } | {\n items: { ... }\n combination: { ... }\n }>\n combination: "AND" | "OR"\n }\n title_chip_variant?: string\n}\n```\n\n### `Sorting`\n\nDefines how query results should be sorted. Specify a field name and sort direction.\n\n```ts\ntype Sorting = {\n field: string\n direction?: "asc" | "desc"\n}\n```\n\n### `GroupBy`\n\nDefines how tasks should be grouped within each swimlane. Tasks with the same group value are returned adjacently in the result set.\n\n```ts\ntype GroupBy = {\n field: "context_entity" | "phase"\n}\n```\n\n### `BoardFilter`\n\nA filter group containing one or more filter items or nested filter groups. Items are combined using the specified logical operator (AND/OR).\n\n```ts\ntype BoardFilter = {\n items: Array<{\n key: string\n operator: "EQUALS" | "NOT_EQUALS" | "EMPTY" | "NOT_EMPTY" | "CONTAINS" | "NOT_CONTAINS" | "IS_ONE_OF" | "IS_NONE_OF" | "GREATER_THAN" | "LESS_THAN" | "GREATER_THAN_OR_EQUAL" | "LESS_THAN_OR_EQUAL"\n value?: string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean | string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean[]\n data_type?: "string" | "number" | "boolean" | "date"\n } | {\n items: Array<{\n key: { ... }\n operator: { ... }\n value?: { ... }\n data_type?: { ... }\n }>\n combination: "AND" | "OR"\n }>\n combination: "AND" | "OR"\n}\n```\n\n### `FilterGroup`\n\n```ts\ntype FilterGroup = {\n items: Array<{\n key: string\n operator: "EQUALS" | "NOT_EQUALS" | "EMPTY" | "NOT_EMPTY" | "CONTAINS" | "NOT_CONTAINS" | "IS_ONE_OF" | "IS_NONE_OF" | "GREATER_THAN" | "LESS_THAN" | "GREATER_THAN_OR_EQUAL" | "LESS_THAN_OR_EQUAL"\n value?: string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean | string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean[]\n data_type?: "string" | "number" | "boolean" | "date"\n }>\n combination: "AND" | "OR"\n}\n```\n\n### `FilterOperator`\n\nThe comparison operator for filtering\n\n```ts\ntype FilterOperator = "EQUALS" | "NOT_EQUALS" | "EMPTY" | "NOT_EMPTY" | "CONTAINS" | "NOT_CONTAINS" | "IS_ONE_OF" | "IS_NONE_OF" | "GREATER_THAN" | "LESS_THAN" | "GREATER_THAN_OR_EQUAL" | "LESS_THAN_OR_EQUAL"\n```\n\n### `DynamicDateValue`\n\nDynamic date keywords that resolve to actual dates at runtime\n\n```ts\ntype DynamicDateValue = "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER"\n```\n\n### `ValueType`\n\nThe value to compare against - can be a single value (string, number, boolean, or dynamic date) or an array of values\n\n```ts\ntype ValueType = string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean | string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean[]\n```\n\n### `FlowsQueryRequest`\n\nRequest payload for executing a query against the Flows dataset. Supports filter conditions, sorting, grouping, and offset-based pagination.\n\n```ts\ntype FlowsQueryRequest = {\n filters?: {\n items: Array<{\n key: { ... }\n operator: { ... }\n value?: { ... }\n data_type?: { ... }\n } | {\n items: { ... }\n combination: { ... }\n }>\n combination: "AND" | "OR"\n }\n sorting?: {\n field: string\n direction?: "asc" | "desc"\n }\n group_by?: {\n field: "context_entity" | "phase"\n }\n from?: number\n size?: number\n}\n```\n\n### `FlowsQueryResult`\n\nPaginated result set returned from a Flows query. Each item in `results` is a workflow task record with dynamic fields depending on the dataset configuration.\n\n```ts\ntype FlowsQueryResult = {\n results?: Record<string, unknown>[]\n hits?: number\n page_number?: number\n page_size?: number\n total_pages?: number\n}\n```\n\n### `FilterItem`\n\n```ts\ntype FilterItem = {\n key: string\n operator: "EQUALS" | "NOT_EQUALS" | "EMPTY" | "NOT_EMPTY" | "CONTAINS" | "NOT_CONTAINS" | "IS_ONE_OF" | "IS_NONE_OF" | "GREATER_THAN" | "LESS_THAN" | "GREATER_THAN_OR_EQUAL" | "LESS_THAN_OR_EQUAL"\n value?: string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean | string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean[]\n data_type?: "string" | "number" | "boolean" | "date"\n}\n```\n';
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
exports.default = kanban_default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import "./chunk-YPSWSI3M.js";
|
|
2
|
+
|
|
3
|
+
// src/docs/kanban.json
|
|
4
|
+
var kanban_default = '# Kanban API\n\n- **Base URL:** `https://kanban.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/kanban](https://docs.epilot.io/api/kanban)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.kanban.createKanbanBoard(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/kanban\'\n\nconst kanbanClient = getClient()\nauthorize(kanbanClient, () => \'<token>\')\nconst { data } = await kanbanClient.createKanbanBoard(...)\n```\n\n## Operations\n\n**Kanban**\n- [`createKanbanBoard`](#createkanbanboard)\n- [`getKanbanBoards`](#getkanbanboards)\n- [`getKanbanBoard`](#getkanbanboard)\n- [`updateKanbanBoard`](#updatekanbanboard)\n- [`patchKanbanBoard`](#patchkanbanboard)\n- [`deleteKanbanBoard`](#deletekanbanboard)\n- [`setDefaultKanbanBoard`](#setdefaultkanbanboard)\n- [`clearDefaultKanbanBoard`](#cleardefaultkanbanboard)\n\n**Query**\n- [`flowsAutocomplete`](#flowsautocomplete)\n- [`executeFlowsQuery`](#executeflowsquery)\n\n**Schemas**\n- [`Error`](#error)\n- [`BoardSummary`](#boardsummary)\n- [`Board`](#board)\n- [`Swimlane`](#swimlane)\n- [`Sorting`](#sorting)\n- [`GroupBy`](#groupby)\n- [`BoardFilter`](#boardfilter)\n- [`FilterGroup`](#filtergroup)\n- [`FilterOperator`](#filteroperator)\n- [`DynamicDateValue`](#dynamicdatevalue)\n- [`ValueType`](#valuetype)\n- [`FlowsQueryRequest`](#flowsqueryrequest)\n- [`FlowsQueryResult`](#flowsqueryresult)\n- [`FilterItem`](#filteritem)\n\n### `createKanbanBoard`\n\nCreates a new Kanban board with the provided configuration.\n\n`POST /v1/kanban/board`\n\n```ts\nconst { data } = await client.createKanbanBoard(\n null,\n {\n id: \'string\',\n title: \'Board 1\',\n description: \'Board description\',\n created_at: \'1970-01-01T00:00:00.000Z\',\n updated_at: \'1970-01-01T00:00:00.000Z\',\n created_by: \'string\',\n org_id: \'string\',\n updated_by: \'string\',\n shared_with: [\'string\'],\n shared_with_org: true,\n owners: [\'string\'],\n config: {\n dataset: \'workflow_tasks_overview\',\n swimlanes: [\n {\n id: \'string\',\n title: \'Swimlane 1\',\n position: 1,\n filter: {\n items: [\n {\n key: \'assignee\',\n operator: \'EQUALS\',\n value: \'100020\',\n data_type: \'string\'\n }\n ],\n combination: \'OR\'\n },\n title_chip_variant: \'success\'\n }\n ],\n card_config: {\n fields: [\'assignee\']\n },\n board_filter: {\n items: [\n {\n key: \'assignee\',\n operator: \'EQUALS\',\n value: \'100020\',\n data_type: \'string\'\n }\n ],\n combination: \'OR\'\n },\n sorting: {\n field: \'created_at\',\n direction: \'asc\'\n },\n group_by: {\n field: \'context_entity\'\n },\n search_query: \'task 1\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "title": "Board 1",\n "description": "Board description",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "created_by": "string",\n "org_id": "string",\n "updated_by": "string",\n "shared_with": ["string"],\n "shared_with_org": true,\n "owners": ["string"],\n "config": {\n "dataset": "workflow_tasks_overview",\n "swimlanes": [\n {\n "id": "string",\n "title": "Swimlane 1",\n "position": 1,\n "filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "title_chip_variant": "success"\n }\n ],\n "card_config": {\n "fields": ["assignee"]\n },\n "board_filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "sorting": {\n "field": "created_at",\n "direction": "asc"\n },\n "group_by": {\n "field": "context_entity"\n },\n "search_query": "task 1"\n }\n}\n```\n\n</details>\n\n---\n\n### `getKanbanBoards`\n\nReturns a list of all Kanban boards accessible to the authenticated user.\n\n`GET /v1/kanban/boards`\n\n```ts\nconst { data } = await client.getKanbanBoards({\n filter: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "id": "string",\n "title": "Board 1",\n "description": "Board description",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "created_by": "string",\n "org_id": "string",\n "updated_by": "string",\n "shared_with": ["string"],\n "shared_with_org": true,\n "owners": ["string"]\n }\n]\n```\n\n</details>\n\n---\n\n### `getKanbanBoard`\n\nRetrieves a Kanban board by ID, including its full configuration (swimlanes, filters, sorting, card fields).\n\n`GET /v1/kanban/board/{boardId}`\n\n```ts\nconst { data } = await client.getKanbanBoard({\n boardId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "title": "Board 1",\n "description": "Board description",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "created_by": "string",\n "org_id": "string",\n "updated_by": "string",\n "shared_with": ["string"],\n "shared_with_org": true,\n "owners": ["string"],\n "config": {\n "dataset": "workflow_tasks_overview",\n "swimlanes": [\n {\n "id": "string",\n "title": "Swimlane 1",\n "position": 1,\n "filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "title_chip_variant": "success"\n }\n ],\n "card_config": {\n "fields": ["assignee"]\n },\n "board_filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "sorting": {\n "field": "created_at",\n "direction": "asc"\n },\n "group_by": {\n "field": "context_entity"\n },\n "search_query": "task 1"\n }\n}\n```\n\n</details>\n\n---\n\n### `updateKanbanBoard`\n\nFully replaces the configuration of an existing Kanban board by ID.\n\n`PUT /v1/kanban/board/{boardId}`\n\n```ts\nconst { data } = await client.updateKanbanBoard(\n {\n boardId: \'example\',\n },\n {\n id: \'string\',\n title: \'Board 1\',\n description: \'Board description\',\n created_at: \'1970-01-01T00:00:00.000Z\',\n updated_at: \'1970-01-01T00:00:00.000Z\',\n created_by: \'string\',\n org_id: \'string\',\n updated_by: \'string\',\n shared_with: [\'string\'],\n shared_with_org: true,\n owners: [\'string\'],\n config: {\n dataset: \'workflow_tasks_overview\',\n swimlanes: [\n {\n id: \'string\',\n title: \'Swimlane 1\',\n position: 1,\n filter: {\n items: [\n {\n key: \'assignee\',\n operator: \'EQUALS\',\n value: \'100020\',\n data_type: \'string\'\n }\n ],\n combination: \'OR\'\n },\n title_chip_variant: \'success\'\n }\n ],\n card_config: {\n fields: [\'assignee\']\n },\n board_filter: {\n items: [\n {\n key: \'assignee\',\n operator: \'EQUALS\',\n value: \'100020\',\n data_type: \'string\'\n }\n ],\n combination: \'OR\'\n },\n sorting: {\n field: \'created_at\',\n direction: \'asc\'\n },\n group_by: {\n field: \'context_entity\'\n },\n search_query: \'task 1\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "title": "Board 1",\n "description": "Board description",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "created_by": "string",\n "org_id": "string",\n "updated_by": "string",\n "shared_with": ["string"],\n "shared_with_org": true,\n "owners": ["string"],\n "config": {\n "dataset": "workflow_tasks_overview",\n "swimlanes": [\n {\n "id": "string",\n "title": "Swimlane 1",\n "position": 1,\n "filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "title_chip_variant": "success"\n }\n ],\n "card_config": {\n "fields": ["assignee"]\n },\n "board_filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "sorting": {\n "field": "created_at",\n "direction": "asc"\n },\n "group_by": {\n "field": "context_entity"\n },\n "search_query": "task 1"\n }\n}\n```\n\n</details>\n\n---\n\n### `patchKanbanBoard`\n\nPartially updates fields of an existing Kanban board by ID.\n\n`PATCH /v1/kanban/board/{boardId}`\n\n```ts\nconst { data } = await client.patchKanbanBoard(\n {\n boardId: \'example\',\n },\n {\n title: \'Board 1\',\n description: \'Board description\',\n shared_with: [\'string\'],\n shared_with_org: true,\n owners: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "title": "Board 1",\n "description": "Board description",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "created_by": "string",\n "org_id": "string",\n "updated_by": "string",\n "shared_with": ["string"],\n "shared_with_org": true,\n "owners": ["string"],\n "config": {\n "dataset": "workflow_tasks_overview",\n "swimlanes": [\n {\n "id": "string",\n "title": "Swimlane 1",\n "position": 1,\n "filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "title_chip_variant": "success"\n }\n ],\n "card_config": {\n "fields": ["assignee"]\n },\n "board_filter": {\n "items": [\n {\n "key": "assignee",\n "operator": "EQUALS",\n "value": "100020",\n "data_type": "string"\n }\n ],\n "combination": "OR"\n },\n "sorting": {\n "field": "created_at",\n "direction": "asc"\n },\n "group_by": {\n "field": "context_entity"\n },\n "search_query": "task 1"\n }\n}\n```\n\n</details>\n\n---\n\n### `deleteKanbanBoard`\n\nPermanently deletes a Kanban board by ID. This action is irreversible.\n\n`DELETE /v1/kanban/board/{boardId}`\n\n```ts\nconst { data } = await client.deleteKanbanBoard({\n boardId: \'example\',\n})\n```\n\n---\n\n### `setDefaultKanbanBoard`\n\nSets a Kanban board as the default board for the organization.\n\n`PUT /v1/kanban/org/default-board`\n\n```ts\nconst { data } = await client.setDefaultKanbanBoard({\n boardId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string",\n "default_board_id": "string"\n}\n```\n\n</details>\n\n---\n\n### `clearDefaultKanbanBoard`\n\nRemoves the default board configuration for the organization.\n\n`DELETE /v1/kanban/org/default-board`\n\n```ts\nconst { data } = await client.clearDefaultKanbanBoard()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "message": "string",\n "default_board_id": "string"\n}\n```\n\n</details>\n\n---\n\n### `flowsAutocomplete`\n\nReturns autocomplete suggestions for a given attribute in the Flows dataset.\n\n`GET /v1/kanban/query/flows:autocomplete`\n\n```ts\nconst { data } = await client.flowsAutocomplete({\n input: \'example\',\n attribute: \'example\',\n size: 1,\n from: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": ["value"],\n "hits": 42\n}\n```\n\n</details>\n\n---\n\n### `executeFlowsQuery`\n\nExecutes a query against the Flows dataset and returns paginated results for use in Kanban card rendering.\n\n`POST /v1/kanban/query/flows:execute`\n\n```ts\nconst { data } = await client.executeFlowsQuery(\n null,\n {\n filters: {\n items: [\n {\n key: \'assignee\',\n operator: \'EQUALS\',\n value: \'100020\',\n data_type: \'string\'\n }\n ],\n combination: \'OR\'\n },\n sorting: {\n field: \'created_at\',\n direction: \'asc\'\n },\n group_by: {\n field: \'context_entity\'\n },\n from: 0,\n size: 10\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {}\n ],\n "hits": 42,\n "page_number": 1,\n "page_size": 10,\n "total_pages": 5\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `Error`\n\nStandard error response\n\n```ts\ntype Error = {\n message?: string\n status?: number\n}\n```\n\n### `BoardSummary`\n\nSummary representation of a Kanban board, returned in list responses. Does not include swimlane and filter configuration details.\n\n```ts\ntype BoardSummary = {\n id?: string\n title?: string\n description?: string\n created_at?: string // date-time\n updated_at?: string // date-time\n created_by?: string\n org_id?: string\n updated_by?: string\n shared_with?: string[]\n shared_with_org?: boolean\n owners?: string[]\n}\n```\n\n### `Board`\n\nFull representation of a Kanban board, including swimlane layout, filter configuration, card display fields, and sorting options.\n\n```ts\ntype Board = {\n id?: string\n title: string\n description?: string\n created_at?: string // date-time\n updated_at?: string // date-time\n created_by?: string\n org_id?: string\n updated_by?: string\n shared_with?: string[]\n shared_with_org?: boolean\n owners?: string[]\n config: {\n dataset?: string\n swimlanes?: Array<{\n id?: { ... }\n title?: { ... }\n position?: { ... }\n filter?: { ... }\n title_chip_variant?: { ... }\n }>\n card_config?: {\n fields?: { ... }\n }\n board_filter?: {\n items: { ... }\n combination: { ... }\n }\n sorting?: {\n field: { ... }\n direction?: { ... }\n }\n group_by?: {\n field: { ... }\n }\n search_query?: string\n }\n}\n```\n\n### `Swimlane`\n\nA vertical column in a Kanban board that groups workflow tasks or entities matching its filter criteria. Each swimlane has an independent filter and a display position.\n\n```ts\ntype Swimlane = {\n id?: string\n title?: string\n position?: number\n filter?: {\n items: Array<{\n key: { ... }\n operator: { ... }\n value?: { ... }\n data_type?: { ... }\n } | {\n items: { ... }\n combination: { ... }\n }>\n combination: "AND" | "OR"\n }\n title_chip_variant?: string\n}\n```\n\n### `Sorting`\n\nDefines how query results should be sorted. Specify a field name and sort direction.\n\n```ts\ntype Sorting = {\n field: string\n direction?: "asc" | "desc"\n}\n```\n\n### `GroupBy`\n\nDefines how tasks should be grouped within each swimlane. Tasks with the same group value are returned adjacently in the result set.\n\n```ts\ntype GroupBy = {\n field: "context_entity" | "phase"\n}\n```\n\n### `BoardFilter`\n\nA filter group containing one or more filter items or nested filter groups. Items are combined using the specified logical operator (AND/OR).\n\n```ts\ntype BoardFilter = {\n items: Array<{\n key: string\n operator: "EQUALS" | "NOT_EQUALS" | "EMPTY" | "NOT_EMPTY" | "CONTAINS" | "NOT_CONTAINS" | "IS_ONE_OF" | "IS_NONE_OF" | "GREATER_THAN" | "LESS_THAN" | "GREATER_THAN_OR_EQUAL" | "LESS_THAN_OR_EQUAL"\n value?: string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean | string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean[]\n data_type?: "string" | "number" | "boolean" | "date"\n } | {\n items: Array<{\n key: { ... }\n operator: { ... }\n value?: { ... }\n data_type?: { ... }\n }>\n combination: "AND" | "OR"\n }>\n combination: "AND" | "OR"\n}\n```\n\n### `FilterGroup`\n\n```ts\ntype FilterGroup = {\n items: Array<{\n key: string\n operator: "EQUALS" | "NOT_EQUALS" | "EMPTY" | "NOT_EMPTY" | "CONTAINS" | "NOT_CONTAINS" | "IS_ONE_OF" | "IS_NONE_OF" | "GREATER_THAN" | "LESS_THAN" | "GREATER_THAN_OR_EQUAL" | "LESS_THAN_OR_EQUAL"\n value?: string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean | string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean[]\n data_type?: "string" | "number" | "boolean" | "date"\n }>\n combination: "AND" | "OR"\n}\n```\n\n### `FilterOperator`\n\nThe comparison operator for filtering\n\n```ts\ntype FilterOperator = "EQUALS" | "NOT_EQUALS" | "EMPTY" | "NOT_EMPTY" | "CONTAINS" | "NOT_CONTAINS" | "IS_ONE_OF" | "IS_NONE_OF" | "GREATER_THAN" | "LESS_THAN" | "GREATER_THAN_OR_EQUAL" | "LESS_THAN_OR_EQUAL"\n```\n\n### `DynamicDateValue`\n\nDynamic date keywords that resolve to actual dates at runtime\n\n```ts\ntype DynamicDateValue = "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER"\n```\n\n### `ValueType`\n\nThe value to compare against - can be a single value (string, number, boolean, or dynamic date) or an array of values\n\n```ts\ntype ValueType = string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean | string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean[]\n```\n\n### `FlowsQueryRequest`\n\nRequest payload for executing a query against the Flows dataset. Supports filter conditions, sorting, grouping, and offset-based pagination.\n\n```ts\ntype FlowsQueryRequest = {\n filters?: {\n items: Array<{\n key: { ... }\n operator: { ... }\n value?: { ... }\n data_type?: { ... }\n } | {\n items: { ... }\n combination: { ... }\n }>\n combination: "AND" | "OR"\n }\n sorting?: {\n field: string\n direction?: "asc" | "desc"\n }\n group_by?: {\n field: "context_entity" | "phase"\n }\n from?: number\n size?: number\n}\n```\n\n### `FlowsQueryResult`\n\nPaginated result set returned from a Flows query. Each item in `results` is a workflow task record with dynamic fields depending on the dataset configuration.\n\n```ts\ntype FlowsQueryResult = {\n results?: Record<string, unknown>[]\n hits?: number\n page_number?: number\n page_size?: number\n total_pages?: number\n}\n```\n\n### `FilterItem`\n\n```ts\ntype FilterItem = {\n key: string\n operator: "EQUALS" | "NOT_EQUALS" | "EMPTY" | "NOT_EMPTY" | "CONTAINS" | "NOT_CONTAINS" | "IS_ONE_OF" | "IS_NONE_OF" | "GREATER_THAN" | "LESS_THAN" | "GREATER_THAN_OR_EQUAL" | "LESS_THAN_OR_EQUAL"\n value?: string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean | string | "TODAY" | "TOMORROW" | "YESTERDAY" | "IN_THE_FUTURE" | "IN_THE_PAST" | "THIS_WEEK" | "NEXT_WEEK" | "LAST_WEEK" | "THIS_MONTH" | "NEXT_MONTH" | "LAST_MONTH" | "TODAY_OR_EARLIER" | number | boolean[]\n data_type?: "string" | "number" | "boolean" | "date"\n}\n```\n';
|
|
5
|
+
export {
|
|
6
|
+
kanban_default as default
|
|
7
|
+
};
|
|
@@ -43,6 +43,7 @@ declare namespace Components {
|
|
|
43
43
|
};
|
|
44
44
|
board_filter?: /* A filter group containing one or more filter items or nested filter groups. Items are combined using the specified logical operator (AND/OR). */ BoardFilter;
|
|
45
45
|
sorting?: /* Defines how query results should be sorted. Specify a field name and sort direction. */ Sorting;
|
|
46
|
+
group_by?: /* Defines how tasks should be grouped within each swimlane. Tasks with the same group value are returned adjacently in the result set. */ GroupBy;
|
|
46
47
|
/**
|
|
47
48
|
* example:
|
|
48
49
|
* task 1
|
|
@@ -145,7 +146,7 @@ declare namespace Components {
|
|
|
145
146
|
*/
|
|
146
147
|
export type FilterOperator = "EQUALS" | "NOT_EQUALS" | "EMPTY" | "NOT_EMPTY" | "CONTAINS" | "NOT_CONTAINS" | "IS_ONE_OF" | "IS_NONE_OF" | "GREATER_THAN" | "LESS_THAN" | "GREATER_THAN_OR_EQUAL" | "LESS_THAN_OR_EQUAL";
|
|
147
148
|
/**
|
|
148
|
-
* Request payload for executing a query against the Flows dataset. Supports filter conditions, sorting, and offset-based pagination.
|
|
149
|
+
* Request payload for executing a query against the Flows dataset. Supports filter conditions, sorting, grouping, and offset-based pagination.
|
|
149
150
|
*/
|
|
150
151
|
export interface FlowsQueryRequest {
|
|
151
152
|
/**
|
|
@@ -156,6 +157,10 @@ declare namespace Components {
|
|
|
156
157
|
* Sort the results by a specific field and direction.
|
|
157
158
|
*/
|
|
158
159
|
sorting?: /* Defines how query results should be sorted. Specify a field name and sort direction. */ Sorting;
|
|
160
|
+
/**
|
|
161
|
+
* Group tasks by a shared property within each swimlane. Grouped tasks are returned adjacently in the result set.
|
|
162
|
+
*/
|
|
163
|
+
group_by?: /* Defines how tasks should be grouped within each swimlane. Tasks with the same group value are returned adjacently in the result set. */ GroupBy;
|
|
159
164
|
/**
|
|
160
165
|
* Zero-based offset for pagination. Use with `size` to paginate through results.
|
|
161
166
|
* example:
|
|
@@ -205,6 +210,15 @@ declare namespace Components {
|
|
|
205
210
|
*/
|
|
206
211
|
total_pages?: number;
|
|
207
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Defines how tasks should be grouped within each swimlane. Tasks with the same group value are returned adjacently in the result set.
|
|
215
|
+
*/
|
|
216
|
+
export interface GroupBy {
|
|
217
|
+
/**
|
|
218
|
+
* Property to group tasks by within each swimlane
|
|
219
|
+
*/
|
|
220
|
+
field: "context_entity" | "phase";
|
|
221
|
+
}
|
|
208
222
|
/**
|
|
209
223
|
* Defines how query results should be sorted. Specify a field name and sort direction.
|
|
210
224
|
*/
|
|
@@ -283,7 +297,7 @@ declare namespace Paths {
|
|
|
283
297
|
}
|
|
284
298
|
}
|
|
285
299
|
namespace ExecuteFlowsQuery {
|
|
286
|
-
export type RequestBody = /* Request payload for executing a query against the Flows dataset. Supports filter conditions, sorting, and offset-based pagination. */ Components.Schemas.FlowsQueryRequest;
|
|
300
|
+
export type RequestBody = /* Request payload for executing a query against the Flows dataset. Supports filter conditions, sorting, grouping, and offset-based pagination. */ Components.Schemas.FlowsQueryRequest;
|
|
287
301
|
namespace Responses {
|
|
288
302
|
export type $200 = /* Paginated result set returned from a Flows query. Each item in `results` is a workflow task record with dynamic fields depending on the dataset configuration. */ Components.Schemas.FlowsQueryResult;
|
|
289
303
|
export type $400 = /* Standard error response */ Components.Schemas.Error;
|
|
@@ -738,8 +752,9 @@ type FilterItem = Components.Schemas.FilterItem;
|
|
|
738
752
|
type FilterOperator = Components.Schemas.FilterOperator;
|
|
739
753
|
type FlowsQueryRequest = Components.Schemas.FlowsQueryRequest;
|
|
740
754
|
type FlowsQueryResult = Components.Schemas.FlowsQueryResult;
|
|
755
|
+
type GroupBy = Components.Schemas.GroupBy;
|
|
741
756
|
type Sorting = Components.Schemas.Sorting;
|
|
742
757
|
type Swimlane = Components.Schemas.Swimlane;
|
|
743
758
|
type ValueType = Components.Schemas.ValueType;
|
|
744
759
|
|
|
745
|
-
export { type Board as B, type Client as C, type DynamicDateValue as D, type Error as E, type FilterGroup as F, type OperationMethods as O, Paths as P, type Sorting as S, type ValueType as V, Components as a, type PathsDictionary as b, type BoardFilter as c, type BoardSummary as d, type FilterItem as e, type FilterOperator as f, type FlowsQueryRequest as g, type FlowsQueryResult as h, type Swimlane as i };
|
|
760
|
+
export { type Board as B, type Client as C, type DynamicDateValue as D, type Error as E, type FilterGroup as F, type GroupBy as G, type OperationMethods as O, Paths as P, type Sorting as S, type ValueType as V, Components as a, type PathsDictionary as b, type BoardFilter as c, type BoardSummary as d, type FilterItem as e, type FilterOperator as f, type FlowsQueryRequest as g, type FlowsQueryResult as h, type Swimlane as i };
|
|
@@ -43,6 +43,7 @@ declare namespace Components {
|
|
|
43
43
|
};
|
|
44
44
|
board_filter?: /* A filter group containing one or more filter items or nested filter groups. Items are combined using the specified logical operator (AND/OR). */ BoardFilter;
|
|
45
45
|
sorting?: /* Defines how query results should be sorted. Specify a field name and sort direction. */ Sorting;
|
|
46
|
+
group_by?: /* Defines how tasks should be grouped within each swimlane. Tasks with the same group value are returned adjacently in the result set. */ GroupBy;
|
|
46
47
|
/**
|
|
47
48
|
* example:
|
|
48
49
|
* task 1
|
|
@@ -145,7 +146,7 @@ declare namespace Components {
|
|
|
145
146
|
*/
|
|
146
147
|
export type FilterOperator = "EQUALS" | "NOT_EQUALS" | "EMPTY" | "NOT_EMPTY" | "CONTAINS" | "NOT_CONTAINS" | "IS_ONE_OF" | "IS_NONE_OF" | "GREATER_THAN" | "LESS_THAN" | "GREATER_THAN_OR_EQUAL" | "LESS_THAN_OR_EQUAL";
|
|
147
148
|
/**
|
|
148
|
-
* Request payload for executing a query against the Flows dataset. Supports filter conditions, sorting, and offset-based pagination.
|
|
149
|
+
* Request payload for executing a query against the Flows dataset. Supports filter conditions, sorting, grouping, and offset-based pagination.
|
|
149
150
|
*/
|
|
150
151
|
export interface FlowsQueryRequest {
|
|
151
152
|
/**
|
|
@@ -156,6 +157,10 @@ declare namespace Components {
|
|
|
156
157
|
* Sort the results by a specific field and direction.
|
|
157
158
|
*/
|
|
158
159
|
sorting?: /* Defines how query results should be sorted. Specify a field name and sort direction. */ Sorting;
|
|
160
|
+
/**
|
|
161
|
+
* Group tasks by a shared property within each swimlane. Grouped tasks are returned adjacently in the result set.
|
|
162
|
+
*/
|
|
163
|
+
group_by?: /* Defines how tasks should be grouped within each swimlane. Tasks with the same group value are returned adjacently in the result set. */ GroupBy;
|
|
159
164
|
/**
|
|
160
165
|
* Zero-based offset for pagination. Use with `size` to paginate through results.
|
|
161
166
|
* example:
|
|
@@ -205,6 +210,15 @@ declare namespace Components {
|
|
|
205
210
|
*/
|
|
206
211
|
total_pages?: number;
|
|
207
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Defines how tasks should be grouped within each swimlane. Tasks with the same group value are returned adjacently in the result set.
|
|
215
|
+
*/
|
|
216
|
+
export interface GroupBy {
|
|
217
|
+
/**
|
|
218
|
+
* Property to group tasks by within each swimlane
|
|
219
|
+
*/
|
|
220
|
+
field: "context_entity" | "phase";
|
|
221
|
+
}
|
|
208
222
|
/**
|
|
209
223
|
* Defines how query results should be sorted. Specify a field name and sort direction.
|
|
210
224
|
*/
|
|
@@ -283,7 +297,7 @@ declare namespace Paths {
|
|
|
283
297
|
}
|
|
284
298
|
}
|
|
285
299
|
namespace ExecuteFlowsQuery {
|
|
286
|
-
export type RequestBody = /* Request payload for executing a query against the Flows dataset. Supports filter conditions, sorting, and offset-based pagination. */ Components.Schemas.FlowsQueryRequest;
|
|
300
|
+
export type RequestBody = /* Request payload for executing a query against the Flows dataset. Supports filter conditions, sorting, grouping, and offset-based pagination. */ Components.Schemas.FlowsQueryRequest;
|
|
287
301
|
namespace Responses {
|
|
288
302
|
export type $200 = /* Paginated result set returned from a Flows query. Each item in `results` is a workflow task record with dynamic fields depending on the dataset configuration. */ Components.Schemas.FlowsQueryResult;
|
|
289
303
|
export type $400 = /* Standard error response */ Components.Schemas.Error;
|
|
@@ -738,8 +752,9 @@ type FilterItem = Components.Schemas.FilterItem;
|
|
|
738
752
|
type FilterOperator = Components.Schemas.FilterOperator;
|
|
739
753
|
type FlowsQueryRequest = Components.Schemas.FlowsQueryRequest;
|
|
740
754
|
type FlowsQueryResult = Components.Schemas.FlowsQueryResult;
|
|
755
|
+
type GroupBy = Components.Schemas.GroupBy;
|
|
741
756
|
type Sorting = Components.Schemas.Sorting;
|
|
742
757
|
type Swimlane = Components.Schemas.Swimlane;
|
|
743
758
|
type ValueType = Components.Schemas.ValueType;
|
|
744
759
|
|
|
745
|
-
export { type Board as B, type Client as C, type DynamicDateValue as D, type Error as E, type FilterGroup as F, type OperationMethods as O, Paths as P, type Sorting as S, type ValueType as V, Components as a, type PathsDictionary as b, type BoardFilter as c, type BoardSummary as d, type FilterItem as e, type FilterOperator as f, type FlowsQueryRequest as g, type FlowsQueryResult as h, type Swimlane as i };
|
|
760
|
+
export { type Board as B, type Client as C, type DynamicDateValue as D, type Error as E, type FilterGroup as F, type GroupBy as G, type OperationMethods as O, Paths as P, type Sorting as S, type ValueType as V, Components as a, type PathsDictionary as b, type BoardFilter as c, type BoardSummary as d, type FilterItem as e, type FilterOperator as f, type FlowsQueryRequest as g, type FlowsQueryResult as h, type Swimlane as i };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import "./chunk-YPSWSI3M.js";
|
|
2
|
+
|
|
3
|
+
// src/docs/permissions.json
|
|
4
|
+
var permissions_default = '# Permissions API\n\n- **Full API Docs:** [https://docs.epilot.io/api/permissions](https://docs.epilot.io/api/permissions)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.permissions.listCurrentRoles(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/permissions\'\n\nconst permissionsClient = getClient()\nauthorize(permissionsClient, () => \'<token>\')\nconst { data } = await permissionsClient.listCurrentRoles(...)\n```\n\n## Operations\n\n**Roles**\n- [`listCurrentRoles`](#listcurrentroles)\n- [`listAllRoles`](#listallroles)\n- [`createRole`](#createrole)\n- [`searchRoles`](#searchroles)\n- [`getRole`](#getrole)\n- [`putRole`](#putrole)\n- [`deleteRole`](#deleterole)\n- [`refreshPermissions`](#refreshpermissions)\n\n**Assignments**\n- [`getAssignedRolesForUser`](#getassignedrolesforuser)\n- [`assignRoles`](#assignroles)\n- [`addAssignment`](#addassignment)\n- [`removeAssignment`](#removeassignment)\n- [`listAllAssignments`](#listallassignments)\n\n**Schemas**\n- [`Grant`](#grant)\n- [`GrantWithDependencies`](#grantwithdependencies)\n- [`GrantCondition`](#grantcondition)\n- [`EqualsCurrentUserCondition`](#equalscurrentusercondition)\n- [`EqualsCondition`](#equalscondition)\n- [`RoleId`](#roleid)\n- [`BaseRole`](#baserole)\n- [`BaseRoleForCreate`](#baseroleforcreate)\n- [`UserRole`](#userrole)\n- [`OrgRole`](#orgrole)\n- [`ShareRole`](#sharerole)\n- [`PartnerRole`](#partnerrole)\n- [`PortalRole`](#portalrole)\n- [`Role`](#role)\n- [`RolePayload`](#rolepayload)\n- [`Assignment`](#assignment)\n- [`InternalAssignment`](#internalassignment)\n- [`OrgAssignments`](#orgassignments)\n- [`OrgRoles`](#orgroles)\n- [`Assignments`](#assignments)\n- [`UserId`](#userid)\n- [`OrganizationId`](#organizationid)\n- [`Slug`](#slug)\n- [`RoleSearchInput`](#rolesearchinput)\n- [`CreateRolePayload`](#createrolepayload)\n- [`Error`](#error)\n\n### `listCurrentRoles`\n\nReturns roles and grants assigned to current user\n\n`GET /v1/permissions/me`\n\n```ts\nconst { data } = await client.listCurrentRoles()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "roles": [\n {\n "id": "123:owner",\n "name": "Owner",\n "slug": "owner",\n "type": "user_role",\n "expires_at": "2028-07-21T17:32:28Z",\n "organization_id": "123",\n "grants": [\n {\n "action": "entity-read",\n "resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",\n "effect": "allow",\n "conditions": [\n {\n "attribute": "workflows.primary.task_name",\n "operation": "equals",\n "values": ["Qualification"]\n }\n ]\n }\n ],\n "parent_role": "123:owner",\n "vendor_created": true\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `listAllRoles`\n\nReturns list of all roles in organization\n\n`GET /v1/permissions/roles`\n\n```ts\nconst { data } = await client.listAllRoles()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "roles": [\n {\n "id": "123:owner",\n "name": "Owner",\n "slug": "owner",\n "type": "user_role",\n "expires_at": "2028-07-21T17:32:28Z",\n "organization_id": "123",\n "grants": [\n {\n "action": "entity-read",\n "resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",\n "effect": "allow",\n "conditions": [\n {\n "attribute": "workflows.primary.task_name",\n "operation": "equals",\n "values": ["Qualification"]\n }\n ]\n }\n ],\n "parent_role": "123:owner",\n "vendor_created": true\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createRole`\n\nCreate role\n\n`POST /v1/permissions/roles`\n\n```ts\nconst { data } = await client.createRole(\n null,\n {},\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "123:owner",\n "name": "Owner",\n "slug": "owner",\n "type": "user_role",\n "expires_at": "2028-07-21T17:32:28Z",\n "organization_id": "123",\n "grants": [\n {\n "action": "entity-read",\n "resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",\n "effect": "allow",\n "conditions": [\n {\n "attribute": "workflows.primary.task_name",\n "operation": "equals",\n "values": ["Qualification"]\n }\n ]\n }\n ],\n "parent_role": "123:owner",\n "vendor_created": true\n}\n```\n\n</details>\n\n---\n\n### `searchRoles`\n\nSearch Roles\n\n`POST /v1/permissions/roles:search`\n\n```ts\nconst { data } = await client.searchRoles(\n null,\n {\n role_ids: [\'123:manager\', \'456:owner\'],\n org_ids: [\'123\', \'456\'],\n slugs: [\'manager\', \'owner\'],\n query: \'Administrator\',\n limit: 1,\n offset: 1\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 0,\n "results": [\n {\n "id": "123:owner",\n "name": "Owner",\n "slug": "owner",\n "type": "user_role",\n "expires_at": "2028-07-21T17:32:28Z",\n "organization_id": "123",\n "grants": [\n {\n "action": "entity-read",\n "resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",\n "effect": "allow",\n "conditions": [\n {\n "attribute": "workflows.primary.task_name",\n "operation": "equals",\n "values": ["Qualification"]\n }\n ]\n }\n ],\n "parent_role": "123:owner",\n "vendor_created": true\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getRole`\n\nGet role by id\n\n`GET /v1/permissions/roles/{roleId}`\n\n```ts\nconst { data } = await client.getRole({\n roleId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "123:owner",\n "name": "Owner",\n "slug": "owner",\n "type": "user_role",\n "expires_at": "2028-07-21T17:32:28Z",\n "organization_id": "123",\n "grants": [\n {\n "action": "entity-read",\n "resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",\n "effect": "allow",\n "conditions": [\n {\n "attribute": "workflows.primary.task_name",\n "operation": "equals",\n "values": ["Qualification"]\n }\n ]\n }\n ],\n "parent_role": "123:owner",\n "vendor_created": true\n}\n```\n\n</details>\n\n---\n\n### `putRole`\n\nCreate or update role\n\n`PUT /v1/permissions/roles/{roleId}`\n\n```ts\nconst { data } = await client.putRole(\n {\n roleId: \'example\',\n },\n {\n id: \'123:owner\',\n name: \'Owner\',\n slug: \'owner\',\n type: \'user_role\',\n expires_at: \'2028-07-21T17:32:28Z\',\n organization_id: \'123\',\n grants: [\n {\n action: \'entity-read\',\n resource: \'entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947\',\n effect: \'allow\',\n conditions: [\n {\n attribute: \'workflows.primary.task_name\',\n operation: \'equals\',\n values: [\'Qualification\']\n }\n ]\n }\n ],\n parent_role: \'123:owner\',\n vendor_created: true\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "123:owner",\n "name": "Owner",\n "slug": "owner",\n "type": "user_role",\n "expires_at": "2028-07-21T17:32:28Z",\n "organization_id": "123",\n "grants": [\n {\n "action": "entity-read",\n "resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",\n "effect": "allow",\n "conditions": [\n {\n "attribute": "workflows.primary.task_name",\n "operation": "equals",\n "values": ["Qualification"]\n }\n ]\n }\n ],\n "parent_role": "123:owner",\n "vendor_created": true\n}\n```\n\n</details>\n\n---\n\n### `deleteRole`\n\nDelete role by id\n\n`DELETE /v1/permissions/roles/{roleId}`\n\n```ts\nconst { data } = await client.deleteRole({\n roleId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "123:owner",\n "name": "Owner",\n "slug": "owner",\n "type": "user_role",\n "expires_at": "2028-07-21T17:32:28Z",\n "organization_id": "123",\n "grants": [\n {\n "action": "entity-read",\n "resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",\n "effect": "allow",\n "conditions": [\n {\n "attribute": "workflows.primary.task_name",\n "operation": "equals",\n "values": ["Qualification"]\n }\n ]\n }\n ],\n "parent_role": "123:owner",\n "vendor_created": true\n}\n```\n\n</details>\n\n---\n\n### `refreshPermissions`\n\nMakes sure the user has a role in the organization\n\n`GET /v1/permissions/refresh`\n\n```ts\nconst { data } = await client.refreshPermissions()\n```\n\n---\n\n### `getAssignedRolesForUser`\n\nGet list of assigned roles by user id\n\n`GET /v1/permissions/assignments/{userId}`\n\n```ts\nconst { data } = await client.getAssignedRolesForUser({\n userId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n["123:owner"]\n```\n\n</details>\n\n---\n\n### `assignRoles`\n\nAssign / unassign roles to users.\n\n`PUT /v1/permissions/assignments/{userId}`\n\n```ts\nconst { data } = await client.assignRoles(\n {\n userId: \'example\',\n },\n [\'123:owner\'],\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n["123:owner"]\n```\n\n</details>\n\n---\n\n### `addAssignment`\n\nAssign a user to a role.\n\n`POST /v1/permissions/assignments/{userId}/{roleId}`\n\n```ts\nconst { data } = await client.addAssignment({\n userId: \'example\',\n roleId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "user_id": "1",\n "roles": ["123:owner"]\n}\n```\n\n</details>\n\n---\n\n### `removeAssignment`\n\nRemove role assignment from user\n\n`DELETE /v1/permissions/assignments/{userId}/{roleId}`\n\n```ts\nconst { data } = await client.removeAssignment({\n userId: \'example\',\n roleId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "user_id": "1",\n "roles": ["123:owner"]\n}\n```\n\n</details>\n\n---\n\n### `listAllAssignments`\n\nReturns list of all assignments in organization\n\n`GET /v1/permissions/assignments`\n\n```ts\nconst { data } = await client.listAllAssignments()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "assignments": [\n {\n "user_id": "1",\n "roles": ["123:owner"]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `Grant`\n\n```ts\ntype Grant = {\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n}\n```\n\n### `GrantWithDependencies`\n\n```ts\ntype GrantWithDependencies = {\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n dependencies?: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n}\n```\n\n### `GrantCondition`\n\n```ts\ntype GrantCondition = object\n```\n\n### `EqualsCurrentUserCondition`\n\nCheck if any relation_user attribute on the entity contains the current user. When attribute is provided, only that specific attribute path is checked.\n\n```ts\ntype EqualsCurrentUserCondition = {\n attribute?: string\n operation: "equals_current_user"\n}\n```\n\n### `EqualsCondition`\n\nCheck if attribute equals to any of the values\n\n```ts\ntype EqualsCondition = {\n attribute: string\n operation: "equals"\n values: unknown[]\n}\n```\n\n### `RoleId`\n\nFormat: `<organization_id>`:`<slug>`\n\n```ts\ntype RoleId = string\n```\n\n### `BaseRole`\n\n```ts\ntype BaseRole = {\n id: string\n name: string\n slug: string\n type: string\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n}\n```\n\n### `BaseRoleForCreate`\n\n```ts\ntype BaseRoleForCreate = {\n id?: string\n name: string\n slug: string\n type: string\n expires_at?: string // date-time\n organization_id?: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n}\n```\n\n### `UserRole`\n\n```ts\ntype UserRole = {\n id: string\n name: string\n slug: string\n type: "user_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n parent_role?: object\n vendor_created?: boolean\n}\n```\n\n### `OrgRole`\n\n```ts\ntype OrgRole = {\n id: string\n name: string\n slug: string\n type: "org_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n pricing_tier?: string\n}\n```\n\n### `ShareRole`\n\n```ts\ntype ShareRole = {\n id: string\n name: string\n slug: string\n type: "share_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n}\n```\n\n### `PartnerRole`\n\n```ts\ntype PartnerRole = {\n id: string\n name: string\n slug: string\n type: "partner_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n partner_org_id?: object\n vendor_enforced_user_limit?: number\n vendor_created?: boolean\n}\n```\n\n### `PortalRole`\n\n```ts\ntype PortalRole = {\n id: string\n name: string\n slug: string\n type: "portal_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n}\n```\n\n### `Role`\n\n```ts\ntype Role = {\n id: string\n name: string\n slug: string\n type: "user_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n parent_role?: object\n vendor_created?: boolean\n} | {\n id: string\n name: string\n slug: string\n type: "org_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n pricing_tier?: string\n} | {\n id: string\n name: string\n slug: string\n type: "share_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n} | {\n id: string\n name: string\n slug: string\n type: "partner_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n partner_org_id?: object\n vendor_enforced_user_limit?: number\n vendor_created?: boolean\n} | {\n id: string\n name: string\n slug: string\n type: "portal_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n}\n```\n\n### `RolePayload`\n\n```ts\ntype RolePayload = {\n grants?: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n dependencies?: Array<{\n action: { ... }\n resource?: { ... }\n effect?: { ... }\n conditions?: { ... }\n }>\n }>\n}\n```\n\n### `Assignment`\n\nA role attached to an user\n\n```ts\ntype Assignment = {\n user_id?: string\n roles?: string[]\n}\n```\n\n### `InternalAssignment`\n\nA role attached to an user\n\n```ts\ntype InternalAssignment = {\n userId?: string\n roles?: string[]\n}\n```\n\n### `OrgAssignments`\n\nAll roles attached to an users of an organization\n\n```ts\ntype OrgAssignments = {\n organizationId?: string\n assignments?: Array<{\n userId?: string\n roles?: string[]\n }>\n}\n```\n\n### `OrgRoles`\n\nAll roles attached to an users of an organization\n\n```ts\ntype OrgRoles = {\n organizationId?: string\n roles?: Array<{\n id: string\n name: string\n slug: string\n type: "user_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: { ... }\n resource?: { ... }\n effect?: { ... }\n conditions?: { ... }\n }>\n parent_role?: object\n vendor_created?: boolean\n } | {\n id: string\n name: string\n slug: string\n type: "org_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: { ... }\n resource?: { ... }\n effect?: { ... }\n conditions?: { ... }\n }>\n pricing_tier?: string\n } | {\n id: string\n name: string\n slug: string\n type: "share_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: { ... }\n resource?: { ... }\n effect?: { ... }\n conditions?: { ... }\n }>\n } | {\n id: string\n name: string\n slug: string\n type: "partner_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: { ... }\n resource?: { ... }\n effect?: { ... }\n conditions?: { ... }\n }>\n partner_org_id?: object\n vendor_enforced_user_limit?: number\n vendor_created?: boolean\n } | {\n id: string\n name: string\n slug: string\n type: "portal_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: { ... }\n resource?: { ... }\n effect?: { ... }\n conditions?: { ... }\n }>\n }>\n}\n```\n\n### `Assignments`\n\nList of role ids attached to an user\n\n```ts\ntype Assignments = string[]\n```\n\n### `UserId`\n\nId of a user\n\n```ts\ntype UserId = string\n```\n\n### `OrganizationId`\n\nId of an organization\n\n```ts\ntype OrganizationId = string\n```\n\n### `Slug`\n\nSlug of a role; for a role with id = 123:manager -> 123 is org_id & manager is slug\n\n```ts\ntype Slug = string\n```\n\n### `RoleSearchInput`\n\n```ts\ntype RoleSearchInput = {\n role_ids?: string[]\n org_ids?: string[]\n slugs?: string[]\n query?: string\n limit?: number\n offset?: number\n}\n```\n\n### `CreateRolePayload`\n\n```ts\ntype CreateRolePayload = {\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n id?: string\n name: string\n slug: string\n type: string\n expires_at?: string // date-time\n organization_id?: string\n}\n```\n\n### `Error`\n\nError response\n\n```ts\ntype Error = {\n message: string\n}\n```\n';
|
|
5
|
+
export {
|
|
6
|
+
permissions_default as default
|
|
7
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-NJK5F5TF.cjs');
|
|
2
|
+
|
|
3
|
+
// src/docs/permissions.json
|
|
4
|
+
var permissions_default = '# Permissions API\n\n- **Full API Docs:** [https://docs.epilot.io/api/permissions](https://docs.epilot.io/api/permissions)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.permissions.listCurrentRoles(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/permissions\'\n\nconst permissionsClient = getClient()\nauthorize(permissionsClient, () => \'<token>\')\nconst { data } = await permissionsClient.listCurrentRoles(...)\n```\n\n## Operations\n\n**Roles**\n- [`listCurrentRoles`](#listcurrentroles)\n- [`listAllRoles`](#listallroles)\n- [`createRole`](#createrole)\n- [`searchRoles`](#searchroles)\n- [`getRole`](#getrole)\n- [`putRole`](#putrole)\n- [`deleteRole`](#deleterole)\n- [`refreshPermissions`](#refreshpermissions)\n\n**Assignments**\n- [`getAssignedRolesForUser`](#getassignedrolesforuser)\n- [`assignRoles`](#assignroles)\n- [`addAssignment`](#addassignment)\n- [`removeAssignment`](#removeassignment)\n- [`listAllAssignments`](#listallassignments)\n\n**Schemas**\n- [`Grant`](#grant)\n- [`GrantWithDependencies`](#grantwithdependencies)\n- [`GrantCondition`](#grantcondition)\n- [`EqualsCurrentUserCondition`](#equalscurrentusercondition)\n- [`EqualsCondition`](#equalscondition)\n- [`RoleId`](#roleid)\n- [`BaseRole`](#baserole)\n- [`BaseRoleForCreate`](#baseroleforcreate)\n- [`UserRole`](#userrole)\n- [`OrgRole`](#orgrole)\n- [`ShareRole`](#sharerole)\n- [`PartnerRole`](#partnerrole)\n- [`PortalRole`](#portalrole)\n- [`Role`](#role)\n- [`RolePayload`](#rolepayload)\n- [`Assignment`](#assignment)\n- [`InternalAssignment`](#internalassignment)\n- [`OrgAssignments`](#orgassignments)\n- [`OrgRoles`](#orgroles)\n- [`Assignments`](#assignments)\n- [`UserId`](#userid)\n- [`OrganizationId`](#organizationid)\n- [`Slug`](#slug)\n- [`RoleSearchInput`](#rolesearchinput)\n- [`CreateRolePayload`](#createrolepayload)\n- [`Error`](#error)\n\n### `listCurrentRoles`\n\nReturns roles and grants assigned to current user\n\n`GET /v1/permissions/me`\n\n```ts\nconst { data } = await client.listCurrentRoles()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "roles": [\n {\n "id": "123:owner",\n "name": "Owner",\n "slug": "owner",\n "type": "user_role",\n "expires_at": "2028-07-21T17:32:28Z",\n "organization_id": "123",\n "grants": [\n {\n "action": "entity-read",\n "resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",\n "effect": "allow",\n "conditions": [\n {\n "attribute": "workflows.primary.task_name",\n "operation": "equals",\n "values": ["Qualification"]\n }\n ]\n }\n ],\n "parent_role": "123:owner",\n "vendor_created": true\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `listAllRoles`\n\nReturns list of all roles in organization\n\n`GET /v1/permissions/roles`\n\n```ts\nconst { data } = await client.listAllRoles()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "roles": [\n {\n "id": "123:owner",\n "name": "Owner",\n "slug": "owner",\n "type": "user_role",\n "expires_at": "2028-07-21T17:32:28Z",\n "organization_id": "123",\n "grants": [\n {\n "action": "entity-read",\n "resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",\n "effect": "allow",\n "conditions": [\n {\n "attribute": "workflows.primary.task_name",\n "operation": "equals",\n "values": ["Qualification"]\n }\n ]\n }\n ],\n "parent_role": "123:owner",\n "vendor_created": true\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createRole`\n\nCreate role\n\n`POST /v1/permissions/roles`\n\n```ts\nconst { data } = await client.createRole(\n null,\n {},\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "123:owner",\n "name": "Owner",\n "slug": "owner",\n "type": "user_role",\n "expires_at": "2028-07-21T17:32:28Z",\n "organization_id": "123",\n "grants": [\n {\n "action": "entity-read",\n "resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",\n "effect": "allow",\n "conditions": [\n {\n "attribute": "workflows.primary.task_name",\n "operation": "equals",\n "values": ["Qualification"]\n }\n ]\n }\n ],\n "parent_role": "123:owner",\n "vendor_created": true\n}\n```\n\n</details>\n\n---\n\n### `searchRoles`\n\nSearch Roles\n\n`POST /v1/permissions/roles:search`\n\n```ts\nconst { data } = await client.searchRoles(\n null,\n {\n role_ids: [\'123:manager\', \'456:owner\'],\n org_ids: [\'123\', \'456\'],\n slugs: [\'manager\', \'owner\'],\n query: \'Administrator\',\n limit: 1,\n offset: 1\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 0,\n "results": [\n {\n "id": "123:owner",\n "name": "Owner",\n "slug": "owner",\n "type": "user_role",\n "expires_at": "2028-07-21T17:32:28Z",\n "organization_id": "123",\n "grants": [\n {\n "action": "entity-read",\n "resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",\n "effect": "allow",\n "conditions": [\n {\n "attribute": "workflows.primary.task_name",\n "operation": "equals",\n "values": ["Qualification"]\n }\n ]\n }\n ],\n "parent_role": "123:owner",\n "vendor_created": true\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getRole`\n\nGet role by id\n\n`GET /v1/permissions/roles/{roleId}`\n\n```ts\nconst { data } = await client.getRole({\n roleId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "123:owner",\n "name": "Owner",\n "slug": "owner",\n "type": "user_role",\n "expires_at": "2028-07-21T17:32:28Z",\n "organization_id": "123",\n "grants": [\n {\n "action": "entity-read",\n "resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",\n "effect": "allow",\n "conditions": [\n {\n "attribute": "workflows.primary.task_name",\n "operation": "equals",\n "values": ["Qualification"]\n }\n ]\n }\n ],\n "parent_role": "123:owner",\n "vendor_created": true\n}\n```\n\n</details>\n\n---\n\n### `putRole`\n\nCreate or update role\n\n`PUT /v1/permissions/roles/{roleId}`\n\n```ts\nconst { data } = await client.putRole(\n {\n roleId: \'example\',\n },\n {\n id: \'123:owner\',\n name: \'Owner\',\n slug: \'owner\',\n type: \'user_role\',\n expires_at: \'2028-07-21T17:32:28Z\',\n organization_id: \'123\',\n grants: [\n {\n action: \'entity-read\',\n resource: \'entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947\',\n effect: \'allow\',\n conditions: [\n {\n attribute: \'workflows.primary.task_name\',\n operation: \'equals\',\n values: [\'Qualification\']\n }\n ]\n }\n ],\n parent_role: \'123:owner\',\n vendor_created: true\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "123:owner",\n "name": "Owner",\n "slug": "owner",\n "type": "user_role",\n "expires_at": "2028-07-21T17:32:28Z",\n "organization_id": "123",\n "grants": [\n {\n "action": "entity-read",\n "resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",\n "effect": "allow",\n "conditions": [\n {\n "attribute": "workflows.primary.task_name",\n "operation": "equals",\n "values": ["Qualification"]\n }\n ]\n }\n ],\n "parent_role": "123:owner",\n "vendor_created": true\n}\n```\n\n</details>\n\n---\n\n### `deleteRole`\n\nDelete role by id\n\n`DELETE /v1/permissions/roles/{roleId}`\n\n```ts\nconst { data } = await client.deleteRole({\n roleId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "123:owner",\n "name": "Owner",\n "slug": "owner",\n "type": "user_role",\n "expires_at": "2028-07-21T17:32:28Z",\n "organization_id": "123",\n "grants": [\n {\n "action": "entity-read",\n "resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",\n "effect": "allow",\n "conditions": [\n {\n "attribute": "workflows.primary.task_name",\n "operation": "equals",\n "values": ["Qualification"]\n }\n ]\n }\n ],\n "parent_role": "123:owner",\n "vendor_created": true\n}\n```\n\n</details>\n\n---\n\n### `refreshPermissions`\n\nMakes sure the user has a role in the organization\n\n`GET /v1/permissions/refresh`\n\n```ts\nconst { data } = await client.refreshPermissions()\n```\n\n---\n\n### `getAssignedRolesForUser`\n\nGet list of assigned roles by user id\n\n`GET /v1/permissions/assignments/{userId}`\n\n```ts\nconst { data } = await client.getAssignedRolesForUser({\n userId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n["123:owner"]\n```\n\n</details>\n\n---\n\n### `assignRoles`\n\nAssign / unassign roles to users.\n\n`PUT /v1/permissions/assignments/{userId}`\n\n```ts\nconst { data } = await client.assignRoles(\n {\n userId: \'example\',\n },\n [\'123:owner\'],\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n["123:owner"]\n```\n\n</details>\n\n---\n\n### `addAssignment`\n\nAssign a user to a role.\n\n`POST /v1/permissions/assignments/{userId}/{roleId}`\n\n```ts\nconst { data } = await client.addAssignment({\n userId: \'example\',\n roleId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "user_id": "1",\n "roles": ["123:owner"]\n}\n```\n\n</details>\n\n---\n\n### `removeAssignment`\n\nRemove role assignment from user\n\n`DELETE /v1/permissions/assignments/{userId}/{roleId}`\n\n```ts\nconst { data } = await client.removeAssignment({\n userId: \'example\',\n roleId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "user_id": "1",\n "roles": ["123:owner"]\n}\n```\n\n</details>\n\n---\n\n### `listAllAssignments`\n\nReturns list of all assignments in organization\n\n`GET /v1/permissions/assignments`\n\n```ts\nconst { data } = await client.listAllAssignments()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "assignments": [\n {\n "user_id": "1",\n "roles": ["123:owner"]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `Grant`\n\n```ts\ntype Grant = {\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n}\n```\n\n### `GrantWithDependencies`\n\n```ts\ntype GrantWithDependencies = {\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n dependencies?: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n}\n```\n\n### `GrantCondition`\n\n```ts\ntype GrantCondition = object\n```\n\n### `EqualsCurrentUserCondition`\n\nCheck if any relation_user attribute on the entity contains the current user. When attribute is provided, only that specific attribute path is checked.\n\n```ts\ntype EqualsCurrentUserCondition = {\n attribute?: string\n operation: "equals_current_user"\n}\n```\n\n### `EqualsCondition`\n\nCheck if attribute equals to any of the values\n\n```ts\ntype EqualsCondition = {\n attribute: string\n operation: "equals"\n values: unknown[]\n}\n```\n\n### `RoleId`\n\nFormat: `<organization_id>`:`<slug>`\n\n```ts\ntype RoleId = string\n```\n\n### `BaseRole`\n\n```ts\ntype BaseRole = {\n id: string\n name: string\n slug: string\n type: string\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n}\n```\n\n### `BaseRoleForCreate`\n\n```ts\ntype BaseRoleForCreate = {\n id?: string\n name: string\n slug: string\n type: string\n expires_at?: string // date-time\n organization_id?: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n}\n```\n\n### `UserRole`\n\n```ts\ntype UserRole = {\n id: string\n name: string\n slug: string\n type: "user_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n parent_role?: object\n vendor_created?: boolean\n}\n```\n\n### `OrgRole`\n\n```ts\ntype OrgRole = {\n id: string\n name: string\n slug: string\n type: "org_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n pricing_tier?: string\n}\n```\n\n### `ShareRole`\n\n```ts\ntype ShareRole = {\n id: string\n name: string\n slug: string\n type: "share_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n}\n```\n\n### `PartnerRole`\n\n```ts\ntype PartnerRole = {\n id: string\n name: string\n slug: string\n type: "partner_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n partner_org_id?: object\n vendor_enforced_user_limit?: number\n vendor_created?: boolean\n}\n```\n\n### `PortalRole`\n\n```ts\ntype PortalRole = {\n id: string\n name: string\n slug: string\n type: "portal_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n}\n```\n\n### `Role`\n\n```ts\ntype Role = {\n id: string\n name: string\n slug: string\n type: "user_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n parent_role?: object\n vendor_created?: boolean\n} | {\n id: string\n name: string\n slug: string\n type: "org_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n pricing_tier?: string\n} | {\n id: string\n name: string\n slug: string\n type: "share_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n} | {\n id: string\n name: string\n slug: string\n type: "partner_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n partner_org_id?: object\n vendor_enforced_user_limit?: number\n vendor_created?: boolean\n} | {\n id: string\n name: string\n slug: string\n type: "portal_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n}\n```\n\n### `RolePayload`\n\n```ts\ntype RolePayload = {\n grants?: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n dependencies?: Array<{\n action: { ... }\n resource?: { ... }\n effect?: { ... }\n conditions?: { ... }\n }>\n }>\n}\n```\n\n### `Assignment`\n\nA role attached to an user\n\n```ts\ntype Assignment = {\n user_id?: string\n roles?: string[]\n}\n```\n\n### `InternalAssignment`\n\nA role attached to an user\n\n```ts\ntype InternalAssignment = {\n userId?: string\n roles?: string[]\n}\n```\n\n### `OrgAssignments`\n\nAll roles attached to an users of an organization\n\n```ts\ntype OrgAssignments = {\n organizationId?: string\n assignments?: Array<{\n userId?: string\n roles?: string[]\n }>\n}\n```\n\n### `OrgRoles`\n\nAll roles attached to an users of an organization\n\n```ts\ntype OrgRoles = {\n organizationId?: string\n roles?: Array<{\n id: string\n name: string\n slug: string\n type: "user_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: { ... }\n resource?: { ... }\n effect?: { ... }\n conditions?: { ... }\n }>\n parent_role?: object\n vendor_created?: boolean\n } | {\n id: string\n name: string\n slug: string\n type: "org_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: { ... }\n resource?: { ... }\n effect?: { ... }\n conditions?: { ... }\n }>\n pricing_tier?: string\n } | {\n id: string\n name: string\n slug: string\n type: "share_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: { ... }\n resource?: { ... }\n effect?: { ... }\n conditions?: { ... }\n }>\n } | {\n id: string\n name: string\n slug: string\n type: "partner_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: { ... }\n resource?: { ... }\n effect?: { ... }\n conditions?: { ... }\n }>\n partner_org_id?: object\n vendor_enforced_user_limit?: number\n vendor_created?: boolean\n } | {\n id: string\n name: string\n slug: string\n type: "portal_role"\n expires_at?: string // date-time\n organization_id: string\n grants: Array<{\n action: { ... }\n resource?: { ... }\n effect?: { ... }\n conditions?: { ... }\n }>\n }>\n}\n```\n\n### `Assignments`\n\nList of role ids attached to an user\n\n```ts\ntype Assignments = string[]\n```\n\n### `UserId`\n\nId of a user\n\n```ts\ntype UserId = string\n```\n\n### `OrganizationId`\n\nId of an organization\n\n```ts\ntype OrganizationId = string\n```\n\n### `Slug`\n\nSlug of a role; for a role with id = 123:manager -> 123 is org_id & manager is slug\n\n```ts\ntype Slug = string\n```\n\n### `RoleSearchInput`\n\n```ts\ntype RoleSearchInput = {\n role_ids?: string[]\n org_ids?: string[]\n slugs?: string[]\n query?: string\n limit?: number\n offset?: number\n}\n```\n\n### `CreateRolePayload`\n\n```ts\ntype CreateRolePayload = {\n grants: Array<{\n action: string\n resource?: string\n effect?: "allow" | "deny"\n conditions?: object[]\n }>\n id?: string\n name: string\n slug: string\n type: string\n expires_at?: string // date-time\n organization_id?: string\n}\n```\n\n### `Error`\n\nError response\n\n```ts\ntype Error = {\n message: string\n}\n```\n';
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
exports.default = permissions_default;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { OpenAPIClient, Parameters, UnknownParamsObject, AxiosRequestConfig, OperationResponse } from 'openapi-client-axios';
|
|
2
2
|
|
|
3
3
|
/* Auto-copied from permissions-client */
|
|
4
|
-
/* eslint-disable */
|
|
5
|
-
|
|
6
4
|
|
|
7
5
|
|
|
8
6
|
declare namespace Components {
|
|
@@ -124,6 +122,10 @@ declare namespace Components {
|
|
|
124
122
|
* 123:owner
|
|
125
123
|
*/
|
|
126
124
|
parent_role?: string;
|
|
125
|
+
/**
|
|
126
|
+
* Indicates whether this role was created by a vendor organization on behalf of the partner organization.
|
|
127
|
+
*/
|
|
128
|
+
vendor_created?: boolean;
|
|
127
129
|
/**
|
|
128
130
|
* List of grants (permissions) applied to the role
|
|
129
131
|
*/
|
|
@@ -253,6 +255,10 @@ declare namespace Components {
|
|
|
253
255
|
* 123
|
|
254
256
|
*/
|
|
255
257
|
partner_org_id?: string;
|
|
258
|
+
/**
|
|
259
|
+
* Indicates whether this role was created by a vendor organization on behalf of the partner organization.
|
|
260
|
+
*/
|
|
261
|
+
vendor_created?: boolean;
|
|
256
262
|
/**
|
|
257
263
|
* List of grants (permissions) applied to the role
|
|
258
264
|
*/
|
|
@@ -339,6 +345,18 @@ declare namespace Components {
|
|
|
339
345
|
operation: "equals";
|
|
340
346
|
values: any[];
|
|
341
347
|
}
|
|
348
|
+
/**
|
|
349
|
+
* Check if any relation_user attribute on the entity contains the current user. When attribute is provided, only that specific attribute path is checked.
|
|
350
|
+
*/
|
|
351
|
+
export interface EqualsCurrentUserCondition {
|
|
352
|
+
/**
|
|
353
|
+
* Optional JSON path to a specific user attribute. When omitted, all relation_user attributes on the entity are scanned.
|
|
354
|
+
* example:
|
|
355
|
+
* assignee.*.user_id
|
|
356
|
+
*/
|
|
357
|
+
attribute?: string;
|
|
358
|
+
operation: "equals_current_user";
|
|
359
|
+
}
|
|
342
360
|
/**
|
|
343
361
|
* Error response
|
|
344
362
|
*/
|
|
@@ -367,7 +385,7 @@ declare namespace Components {
|
|
|
367
385
|
/**
|
|
368
386
|
* An additional condition that must be met for the grant
|
|
369
387
|
*/
|
|
370
|
-
export type GrantCondition = /* An additional condition that must be met for the grant */ /* Check if attribute equals to any of the values */ EqualsCondition;
|
|
388
|
+
export type GrantCondition = /* An additional condition that must be met for the grant */ /* Check if attribute equals to any of the values */ EqualsCondition | /* Check if any relation_user attribute on the entity contains the current user. When attribute is provided, only that specific attribute path is checked. */ EqualsCurrentUserCondition;
|
|
371
389
|
export interface GrantWithDependencies {
|
|
372
390
|
/**
|
|
373
391
|
* example:
|
|
@@ -534,6 +552,10 @@ declare namespace Components {
|
|
|
534
552
|
* Maximum number of users that can be assigned this role (vendor-enforced limit, can only be set via internal auth)
|
|
535
553
|
*/
|
|
536
554
|
vendor_enforced_user_limit?: number;
|
|
555
|
+
/**
|
|
556
|
+
* Indicates whether this role was created by a vendor organization on behalf of the partner organization.
|
|
557
|
+
*/
|
|
558
|
+
vendor_created?: boolean;
|
|
537
559
|
}
|
|
538
560
|
/**
|
|
539
561
|
* A role that is applied to end customers and installers using the Portals
|
|
@@ -753,6 +775,10 @@ declare namespace Components {
|
|
|
753
775
|
* 123:owner
|
|
754
776
|
*/
|
|
755
777
|
parent_role?: string;
|
|
778
|
+
/**
|
|
779
|
+
* Indicates whether this role was created by a vendor organization on behalf of the partner organization.
|
|
780
|
+
*/
|
|
781
|
+
vendor_created?: boolean;
|
|
756
782
|
}
|
|
757
783
|
}
|
|
758
784
|
}
|
|
@@ -1229,6 +1255,7 @@ type BaseRole = Components.Schemas.BaseRole;
|
|
|
1229
1255
|
type BaseRoleForCreate = Components.Schemas.BaseRoleForCreate;
|
|
1230
1256
|
type CreateRolePayload = Components.Schemas.CreateRolePayload;
|
|
1231
1257
|
type EqualsCondition = Components.Schemas.EqualsCondition;
|
|
1258
|
+
type EqualsCurrentUserCondition = Components.Schemas.EqualsCurrentUserCondition;
|
|
1232
1259
|
type Error = Components.Schemas.Error;
|
|
1233
1260
|
type Grant = Components.Schemas.Grant;
|
|
1234
1261
|
type GrantCondition = Components.Schemas.GrantCondition;
|
|
@@ -1249,4 +1276,4 @@ type Slug = Components.Schemas.Slug;
|
|
|
1249
1276
|
type UserId = Components.Schemas.UserId;
|
|
1250
1277
|
type UserRole = Components.Schemas.UserRole;
|
|
1251
1278
|
|
|
1252
|
-
export { type Assignment as A, type BaseRole as B, type Client as C, type EqualsCondition as E, type Grant as G, type InternalAssignment as I, type OperationMethods as O, Paths as P, type Role as R, type ShareRole as S, type UserId as U, Components as a, type PathsDictionary as b, type Assignments as c, type BaseRoleForCreate as d, type CreateRolePayload as e, type
|
|
1279
|
+
export { type Assignment as A, type BaseRole as B, type Client as C, type EqualsCondition as E, type Grant as G, type InternalAssignment as I, type OperationMethods as O, Paths as P, type Role as R, type ShareRole as S, type UserId as U, Components as a, type PathsDictionary as b, type Assignments as c, type BaseRoleForCreate as d, type CreateRolePayload as e, type EqualsCurrentUserCondition as f, type Error as g, type GrantCondition as h, type GrantWithDependencies as i, type OrgAssignments as j, type OrgRole as k, type OrgRoles as l, type OrganizationId as m, type PartnerRole as n, type PortalRole as o, type RoleId as p, type RolePayload as q, type RoleSearchInput as r, type Slug as s, type UserRole as t };
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { OpenAPIClient, Parameters, UnknownParamsObject, AxiosRequestConfig, OperationResponse } from 'openapi-client-axios';
|
|
2
2
|
|
|
3
3
|
/* Auto-copied from permissions-client */
|
|
4
|
-
/* eslint-disable */
|
|
5
|
-
|
|
6
4
|
|
|
7
5
|
|
|
8
6
|
declare namespace Components {
|
|
@@ -124,6 +122,10 @@ declare namespace Components {
|
|
|
124
122
|
* 123:owner
|
|
125
123
|
*/
|
|
126
124
|
parent_role?: string;
|
|
125
|
+
/**
|
|
126
|
+
* Indicates whether this role was created by a vendor organization on behalf of the partner organization.
|
|
127
|
+
*/
|
|
128
|
+
vendor_created?: boolean;
|
|
127
129
|
/**
|
|
128
130
|
* List of grants (permissions) applied to the role
|
|
129
131
|
*/
|
|
@@ -253,6 +255,10 @@ declare namespace Components {
|
|
|
253
255
|
* 123
|
|
254
256
|
*/
|
|
255
257
|
partner_org_id?: string;
|
|
258
|
+
/**
|
|
259
|
+
* Indicates whether this role was created by a vendor organization on behalf of the partner organization.
|
|
260
|
+
*/
|
|
261
|
+
vendor_created?: boolean;
|
|
256
262
|
/**
|
|
257
263
|
* List of grants (permissions) applied to the role
|
|
258
264
|
*/
|
|
@@ -339,6 +345,18 @@ declare namespace Components {
|
|
|
339
345
|
operation: "equals";
|
|
340
346
|
values: any[];
|
|
341
347
|
}
|
|
348
|
+
/**
|
|
349
|
+
* Check if any relation_user attribute on the entity contains the current user. When attribute is provided, only that specific attribute path is checked.
|
|
350
|
+
*/
|
|
351
|
+
export interface EqualsCurrentUserCondition {
|
|
352
|
+
/**
|
|
353
|
+
* Optional JSON path to a specific user attribute. When omitted, all relation_user attributes on the entity are scanned.
|
|
354
|
+
* example:
|
|
355
|
+
* assignee.*.user_id
|
|
356
|
+
*/
|
|
357
|
+
attribute?: string;
|
|
358
|
+
operation: "equals_current_user";
|
|
359
|
+
}
|
|
342
360
|
/**
|
|
343
361
|
* Error response
|
|
344
362
|
*/
|
|
@@ -367,7 +385,7 @@ declare namespace Components {
|
|
|
367
385
|
/**
|
|
368
386
|
* An additional condition that must be met for the grant
|
|
369
387
|
*/
|
|
370
|
-
export type GrantCondition = /* An additional condition that must be met for the grant */ /* Check if attribute equals to any of the values */ EqualsCondition;
|
|
388
|
+
export type GrantCondition = /* An additional condition that must be met for the grant */ /* Check if attribute equals to any of the values */ EqualsCondition | /* Check if any relation_user attribute on the entity contains the current user. When attribute is provided, only that specific attribute path is checked. */ EqualsCurrentUserCondition;
|
|
371
389
|
export interface GrantWithDependencies {
|
|
372
390
|
/**
|
|
373
391
|
* example:
|
|
@@ -534,6 +552,10 @@ declare namespace Components {
|
|
|
534
552
|
* Maximum number of users that can be assigned this role (vendor-enforced limit, can only be set via internal auth)
|
|
535
553
|
*/
|
|
536
554
|
vendor_enforced_user_limit?: number;
|
|
555
|
+
/**
|
|
556
|
+
* Indicates whether this role was created by a vendor organization on behalf of the partner organization.
|
|
557
|
+
*/
|
|
558
|
+
vendor_created?: boolean;
|
|
537
559
|
}
|
|
538
560
|
/**
|
|
539
561
|
* A role that is applied to end customers and installers using the Portals
|
|
@@ -753,6 +775,10 @@ declare namespace Components {
|
|
|
753
775
|
* 123:owner
|
|
754
776
|
*/
|
|
755
777
|
parent_role?: string;
|
|
778
|
+
/**
|
|
779
|
+
* Indicates whether this role was created by a vendor organization on behalf of the partner organization.
|
|
780
|
+
*/
|
|
781
|
+
vendor_created?: boolean;
|
|
756
782
|
}
|
|
757
783
|
}
|
|
758
784
|
}
|
|
@@ -1229,6 +1255,7 @@ type BaseRole = Components.Schemas.BaseRole;
|
|
|
1229
1255
|
type BaseRoleForCreate = Components.Schemas.BaseRoleForCreate;
|
|
1230
1256
|
type CreateRolePayload = Components.Schemas.CreateRolePayload;
|
|
1231
1257
|
type EqualsCondition = Components.Schemas.EqualsCondition;
|
|
1258
|
+
type EqualsCurrentUserCondition = Components.Schemas.EqualsCurrentUserCondition;
|
|
1232
1259
|
type Error = Components.Schemas.Error;
|
|
1233
1260
|
type Grant = Components.Schemas.Grant;
|
|
1234
1261
|
type GrantCondition = Components.Schemas.GrantCondition;
|
|
@@ -1249,4 +1276,4 @@ type Slug = Components.Schemas.Slug;
|
|
|
1249
1276
|
type UserId = Components.Schemas.UserId;
|
|
1250
1277
|
type UserRole = Components.Schemas.UserRole;
|
|
1251
1278
|
|
|
1252
|
-
export { type Assignment as A, type BaseRole as B, type Client as C, type EqualsCondition as E, type Grant as G, type InternalAssignment as I, type OperationMethods as O, Paths as P, type Role as R, type ShareRole as S, type UserId as U, Components as a, type PathsDictionary as b, type Assignments as c, type BaseRoleForCreate as d, type CreateRolePayload as e, type
|
|
1279
|
+
export { type Assignment as A, type BaseRole as B, type Client as C, type EqualsCondition as E, type Grant as G, type InternalAssignment as I, type OperationMethods as O, Paths as P, type Role as R, type ShareRole as S, type UserId as U, Components as a, type PathsDictionary as b, type Assignments as c, type BaseRoleForCreate as d, type CreateRolePayload as e, type EqualsCurrentUserCondition as f, type Error as g, type GrantCondition as h, type GrantWithDependencies as i, type OrgAssignments as j, type OrgRole as k, type OrgRoles as l, type OrganizationId as m, type PartnerRole as n, type PortalRole as o, type RoleId as p, type RolePayload as q, type RoleSearchInput as r, type Slug as s, type UserRole as t };
|