@epilot/sdk 2.18.4 → 2.18.6
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/dashboard-runtime.json +1 -1
- package/definitions/dashboard.json +919 -48
- package/definitions/email-settings-runtime.json +1 -1
- package/definitions/email-settings.json +50 -10
- 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/calendar.cjs +6 -6
- package/dist/apis/calendar.js +1 -1
- package/dist/apis/configuration-hub.cjs +6 -6
- package/dist/apis/configuration-hub.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 +8 -8
- package/dist/apis/dashboard.d.cts +2 -2
- package/dist/apis/dashboard.d.ts +2 -2
- package/dist/apis/dashboard.js +2 -2
- package/dist/apis/data-governance.cjs +6 -6
- package/dist/apis/data-governance.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 +8 -8
- package/dist/apis/email-settings.d.cts +2 -2
- package/dist/apis/email-settings.d.ts +2 -2
- package/dist/apis/email-settings.js +2 -2
- 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/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/integration-toolkit.cjs +6 -6
- package/dist/apis/integration-toolkit.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.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.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/query.cjs +6 -6
- package/dist/apis/query.js +1 -1
- package/dist/apis/sandbox.cjs +6 -6
- package/dist/apis/sandbox.js +1 -1
- package/dist/apis/sharing.cjs +6 -6
- package/dist/apis/sharing.js +1 -1
- package/dist/apis/snapshot.cjs +6 -6
- package/dist/apis/snapshot.js +1 -1
- package/dist/apis/submission.cjs +6 -6
- package/dist/apis/submission.js +1 -1
- package/dist/apis/target.cjs +6 -6
- package/dist/apis/target.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-KHKNOPEX.js → chunk-7HQ3GMYQ.js} +1 -1
- package/dist/{chunk-YNJPE3SS.cjs → chunk-AWJHA3GG.cjs} +1 -1
- package/dist/{chunk-HUDTRI32.cjs → chunk-MIKSJIFK.cjs} +4 -4
- package/dist/{chunk-3FHDY3R5.js → chunk-TAQOJW6T.js} +4 -4
- package/dist/chunk-TIRWWTDP.js +14 -0
- package/dist/chunk-VMCF5R6R.cjs +14 -0
- package/dist/dashboard-7QJ46I7N.cjs +7 -0
- package/dist/dashboard-ILXUFFF2.js +7 -0
- package/dist/{dashboard-runtime-EXP2AM44.cjs → dashboard-runtime-2LOASQPB.cjs} +2 -2
- package/dist/{dashboard-runtime-PSKSGLCF.js → dashboard-runtime-YMFNQP3M.js} +1 -1
- package/dist/dashboard.d-BSevFHjf.d.cts +1405 -0
- package/dist/dashboard.d-BSevFHjf.d.ts +1405 -0
- package/dist/email-settings-U753HXGA.js +7 -0
- package/dist/email-settings-Z5EBAELW.cjs +7 -0
- package/dist/{email-settings-runtime-J7JLYDMU.cjs → email-settings-runtime-IW2AT2RB.cjs} +2 -2
- package/dist/{email-settings-runtime-4BT72ADN.js → email-settings-runtime-YJYEC5AH.js} +1 -1
- package/dist/{email-settings.d-CR4lORuR.d.cts → email-settings.d-DViLYaOl.d.cts} +56 -14
- package/dist/{email-settings.d-CR4lORuR.d.ts → email-settings.d-DViLYaOl.d.ts} +56 -14
- package/dist/index.cjs +12 -12
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -3
- package/docs/dashboard.md +1044 -180
- package/docs/email-settings.md +17 -13
- package/package.json +1 -1
- package/dist/chunk-M2UDF7PY.cjs +0 -14
- package/dist/chunk-SZMCMLOQ.js +0 -14
- package/dist/dashboard-UHYR5RTY.cjs +0 -7
- package/dist/dashboard-UTPGXFW5.js +0 -7
- package/dist/dashboard.d-CsGcA74I.d.cts +0 -440
- package/dist/dashboard.d-CsGcA74I.d.ts +0 -440
- package/dist/email-settings-ECSU7KWC.js +0 -7
- package/dist/email-settings-RHMYC2KT.cjs +0 -7
package/docs/dashboard.md
CHANGED
|
@@ -27,10 +27,23 @@ const { data } = await dashboardClient.listDashboards(...)
|
|
|
27
27
|
**Dashboards**
|
|
28
28
|
- [`listDashboards`](#listdashboards)
|
|
29
29
|
- [`createDashboard`](#createdashboard)
|
|
30
|
+
- [`listFavoriteDashboardIds`](#listfavoritedashboardids)
|
|
31
|
+
- [`favoriteDashboard`](#favoritedashboard)
|
|
32
|
+
- [`unfavoriteDashboard`](#unfavoritedashboard)
|
|
30
33
|
- [`getDashboard`](#getdashboard)
|
|
31
34
|
- [`putDashboard`](#putdashboard)
|
|
35
|
+
- [`patchDashboard`](#patchdashboard)
|
|
32
36
|
- [`deleteDashboard`](#deletedashboard)
|
|
33
37
|
|
|
38
|
+
**Insights**
|
|
39
|
+
- [`listInsights`](#listinsights)
|
|
40
|
+
- [`createInsight`](#createinsight)
|
|
41
|
+
- [`listInsightTags`](#listinsighttags)
|
|
42
|
+
- [`getInsight`](#getinsight)
|
|
43
|
+
- [`putInsight`](#putinsight)
|
|
44
|
+
- [`patchInsight`](#patchinsight)
|
|
45
|
+
- [`deleteInsight`](#deleteinsight)
|
|
46
|
+
|
|
34
47
|
**Visualisations**
|
|
35
48
|
- [`listAvailableVisualisations`](#listavailablevisualisations)
|
|
36
49
|
|
|
@@ -41,6 +54,17 @@ const { data } = await dashboardClient.listDashboards(...)
|
|
|
41
54
|
- [`DashboardID`](#dashboardid)
|
|
42
55
|
- [`Dashboard`](#dashboard)
|
|
43
56
|
- [`DashboardTileID`](#dashboardtileid)
|
|
57
|
+
- [`SharePermission`](#sharepermission)
|
|
58
|
+
- [`ShareGrant`](#sharegrant)
|
|
59
|
+
- [`OrgAccess`](#orgaccess)
|
|
60
|
+
- [`AccessControl`](#accesscontrol)
|
|
61
|
+
- [`AccessControlUpdate`](#accesscontrolupdate)
|
|
62
|
+
- [`DashboardPatch`](#dashboardpatch)
|
|
63
|
+
- [`InsightID`](#insightid)
|
|
64
|
+
- [`Insight`](#insight)
|
|
65
|
+
- [`InsightPatch`](#insightpatch)
|
|
66
|
+
- [`Tags`](#tags)
|
|
67
|
+
- [`Pagination`](#pagination)
|
|
44
68
|
- [`DashboardTile`](#dashboardtile)
|
|
45
69
|
- [`VisualisationConfig`](#visualisationconfig)
|
|
46
70
|
- [`timechartVisualisationConfig`](#timechartvisualisationconfig)
|
|
@@ -57,7 +81,23 @@ List dashboards available to the user
|
|
|
57
81
|
`GET /v1/dashboard/dashboards`
|
|
58
82
|
|
|
59
83
|
```ts
|
|
60
|
-
const { data } = await client.listDashboards(
|
|
84
|
+
const { data } = await client.listDashboards({
|
|
85
|
+
q: 'example',
|
|
86
|
+
created_by: 'example',
|
|
87
|
+
created_after: 'example',
|
|
88
|
+
created_before: 'example',
|
|
89
|
+
updated_after: 'example',
|
|
90
|
+
updated_before: 'example',
|
|
91
|
+
shared_with: ['...'],
|
|
92
|
+
owner: ['...'],
|
|
93
|
+
accessible_to: 'example',
|
|
94
|
+
favorite: true,
|
|
95
|
+
favorites_first: true,
|
|
96
|
+
sort: 'example',
|
|
97
|
+
order: 'example',
|
|
98
|
+
limit: 1,
|
|
99
|
+
offset: 1,
|
|
100
|
+
})
|
|
61
101
|
```
|
|
62
102
|
|
|
63
103
|
<details>
|
|
@@ -67,42 +107,37 @@ const { data } = await client.listDashboards()
|
|
|
67
107
|
{
|
|
68
108
|
"results": [
|
|
69
109
|
{
|
|
110
|
+
"created_by": "10598",
|
|
111
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
112
|
+
"updated_by": "10598",
|
|
113
|
+
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
114
|
+
"owner_org_id": "739224",
|
|
115
|
+
"owners": ["10598"],
|
|
116
|
+
"shared_with": [
|
|
117
|
+
{
|
|
118
|
+
"user_id": "10598",
|
|
119
|
+
"permission": "view"
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
"org_access": "view",
|
|
70
123
|
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
|
71
124
|
"title": "Employee Dashboard",
|
|
72
125
|
"tiles": [
|
|
73
126
|
{
|
|
74
127
|
"id": "e4af1297-1fd6-440f-9846-f475f580d40f",
|
|
75
128
|
"coordinates": {},
|
|
76
|
-
"
|
|
77
|
-
"visualisation_config": {
|
|
78
|
-
"query": {
|
|
79
|
-
"dataset": "entity_operations",
|
|
80
|
-
"measure": "count_operations",
|
|
81
|
-
"filters": [
|
|
82
|
-
{
|
|
83
|
-
"operation": ["createEntity"]
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
"entity_schema": ["opportunity"]
|
|
87
|
-
}
|
|
88
|
-
],
|
|
89
|
-
"dimensions": [
|
|
90
|
-
{
|
|
91
|
-
"time_with_granularity": "month"
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
"entity_attribute": "source.title"
|
|
95
|
-
}
|
|
96
|
-
]
|
|
97
|
-
},
|
|
98
|
-
"options": {
|
|
99
|
-
"type": "line"
|
|
100
|
-
}
|
|
101
|
-
}
|
|
129
|
+
"insight_id": "8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e"
|
|
102
130
|
}
|
|
103
|
-
]
|
|
131
|
+
],
|
|
132
|
+
"favorited": false
|
|
104
133
|
}
|
|
105
|
-
]
|
|
134
|
+
],
|
|
135
|
+
"pagination": {
|
|
136
|
+
"total": 0,
|
|
137
|
+
"limit": 0,
|
|
138
|
+
"offset": 0,
|
|
139
|
+
"has_more": true
|
|
140
|
+
}
|
|
106
141
|
}
|
|
107
142
|
```
|
|
108
143
|
|
|
@@ -120,40 +155,29 @@ Create new dashboard
|
|
|
120
155
|
const { data } = await client.createDashboard(
|
|
121
156
|
null,
|
|
122
157
|
{
|
|
158
|
+
created_by: '10598',
|
|
159
|
+
created_at: '1970-01-01T00:00:00.000Z',
|
|
160
|
+
updated_by: '10598',
|
|
161
|
+
updated_at: '1970-01-01T00:00:00.000Z',
|
|
162
|
+
owner_org_id: '739224',
|
|
163
|
+
owners: ['10598'],
|
|
164
|
+
shared_with: [
|
|
165
|
+
{
|
|
166
|
+
user_id: '10598',
|
|
167
|
+
permission: 'view'
|
|
168
|
+
}
|
|
169
|
+
],
|
|
170
|
+
org_access: 'view',
|
|
123
171
|
id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',
|
|
124
172
|
title: 'Employee Dashboard',
|
|
125
173
|
tiles: [
|
|
126
174
|
{
|
|
127
175
|
id: 'e4af1297-1fd6-440f-9846-f475f580d40f',
|
|
128
176
|
coordinates: {},
|
|
129
|
-
|
|
130
|
-
visualisation_config: {
|
|
131
|
-
query: {
|
|
132
|
-
dataset: 'entity_operations',
|
|
133
|
-
measure: 'count_operations',
|
|
134
|
-
filters: [
|
|
135
|
-
{
|
|
136
|
-
operation: ['createEntity']
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
entity_schema: ['opportunity']
|
|
140
|
-
}
|
|
141
|
-
],
|
|
142
|
-
dimensions: [
|
|
143
|
-
{
|
|
144
|
-
time_with_granularity: 'month'
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
entity_attribute: 'source.title'
|
|
148
|
-
}
|
|
149
|
-
]
|
|
150
|
-
},
|
|
151
|
-
options: {
|
|
152
|
-
type: 'line'
|
|
153
|
-
}
|
|
154
|
-
}
|
|
177
|
+
insight_id: '8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e'
|
|
155
178
|
}
|
|
156
|
-
]
|
|
179
|
+
],
|
|
180
|
+
favorited: false
|
|
157
181
|
},
|
|
158
182
|
)
|
|
159
183
|
```
|
|
@@ -163,40 +187,55 @@ const { data } = await client.createDashboard(
|
|
|
163
187
|
|
|
164
188
|
```json
|
|
165
189
|
{
|
|
190
|
+
"created_by": "10598",
|
|
191
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
192
|
+
"updated_by": "10598",
|
|
193
|
+
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
194
|
+
"owner_org_id": "739224",
|
|
195
|
+
"owners": ["10598"],
|
|
196
|
+
"shared_with": [
|
|
197
|
+
{
|
|
198
|
+
"user_id": "10598",
|
|
199
|
+
"permission": "view"
|
|
200
|
+
}
|
|
201
|
+
],
|
|
202
|
+
"org_access": "view",
|
|
166
203
|
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
|
167
204
|
"title": "Employee Dashboard",
|
|
168
205
|
"tiles": [
|
|
169
206
|
{
|
|
170
207
|
"id": "e4af1297-1fd6-440f-9846-f475f580d40f",
|
|
171
208
|
"coordinates": {},
|
|
172
|
-
"
|
|
173
|
-
"visualisation_config": {
|
|
174
|
-
"query": {
|
|
175
|
-
"dataset": "entity_operations",
|
|
176
|
-
"measure": "count_operations",
|
|
177
|
-
"filters": [
|
|
178
|
-
{
|
|
179
|
-
"operation": ["createEntity"]
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
"entity_schema": ["opportunity"]
|
|
183
|
-
}
|
|
184
|
-
],
|
|
185
|
-
"dimensions": [
|
|
186
|
-
{
|
|
187
|
-
"time_with_granularity": "month"
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
"entity_attribute": "source.title"
|
|
191
|
-
}
|
|
192
|
-
]
|
|
193
|
-
},
|
|
194
|
-
"options": {
|
|
195
|
-
"type": "line"
|
|
196
|
-
}
|
|
197
|
-
}
|
|
209
|
+
"insight_id": "8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e"
|
|
198
210
|
}
|
|
199
|
-
]
|
|
211
|
+
],
|
|
212
|
+
"favorited": false
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
</details>
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
### `listFavoriteDashboardIds`
|
|
221
|
+
|
|
222
|
+
Returns the current user's favorited dashboard ids, with no dashboard metadata. Lets a
|
|
223
|
+
client decide whether to default to a favorites-only view without first fetching the full
|
|
224
|
+
dashboards list.
|
|
225
|
+
|
|
226
|
+
`GET /v1/dashboard/dashboards/favorites`
|
|
227
|
+
|
|
228
|
+
```ts
|
|
229
|
+
const { data } = await client.listFavoriteDashboardIds()
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
<details>
|
|
233
|
+
<summary>Response</summary>
|
|
234
|
+
|
|
235
|
+
```json
|
|
236
|
+
{
|
|
237
|
+
"dashboard_ids": ["3fa85f64-5717-4562-b3fc-2c963f66afa6"],
|
|
238
|
+
"total": 0
|
|
200
239
|
}
|
|
201
240
|
```
|
|
202
241
|
|
|
@@ -204,6 +243,38 @@ const { data } = await client.createDashboard(
|
|
|
204
243
|
|
|
205
244
|
---
|
|
206
245
|
|
|
246
|
+
### `favoriteDashboard`
|
|
247
|
+
|
|
248
|
+
Marks the dashboard as favorited by the current user. Idempotent — favoriting an
|
|
249
|
+
already-favorited dashboard is not an error. Requires only view-level access to the
|
|
250
|
+
dashboard (unlike the edit-level ch
|
|
251
|
+
|
|
252
|
+
`PUT /v1/dashboard/dashboards/{id}/favorite`
|
|
253
|
+
|
|
254
|
+
```ts
|
|
255
|
+
const { data } = await client.favoriteDashboard({
|
|
256
|
+
id: '123e4567-e89b-12d3-a456-426614174000',
|
|
257
|
+
})
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
### `unfavoriteDashboard`
|
|
263
|
+
|
|
264
|
+
Removes the current user's favorite for the dashboard. Idempotent — unfavoriting a
|
|
265
|
+
dashboard that was not favorited is not an error, and neither is unfavoriting one that no
|
|
266
|
+
longer exists or is no long
|
|
267
|
+
|
|
268
|
+
`DELETE /v1/dashboard/dashboards/{id}/favorite`
|
|
269
|
+
|
|
270
|
+
```ts
|
|
271
|
+
const { data } = await client.unfavoriteDashboard({
|
|
272
|
+
id: '123e4567-e89b-12d3-a456-426614174000',
|
|
273
|
+
})
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
207
278
|
### `getDashboard`
|
|
208
279
|
|
|
209
280
|
Get dashboard by ID
|
|
@@ -221,40 +292,29 @@ const { data } = await client.getDashboard({
|
|
|
221
292
|
|
|
222
293
|
```json
|
|
223
294
|
{
|
|
295
|
+
"created_by": "10598",
|
|
296
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
297
|
+
"updated_by": "10598",
|
|
298
|
+
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
299
|
+
"owner_org_id": "739224",
|
|
300
|
+
"owners": ["10598"],
|
|
301
|
+
"shared_with": [
|
|
302
|
+
{
|
|
303
|
+
"user_id": "10598",
|
|
304
|
+
"permission": "view"
|
|
305
|
+
}
|
|
306
|
+
],
|
|
307
|
+
"org_access": "view",
|
|
224
308
|
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
|
225
309
|
"title": "Employee Dashboard",
|
|
226
310
|
"tiles": [
|
|
227
311
|
{
|
|
228
312
|
"id": "e4af1297-1fd6-440f-9846-f475f580d40f",
|
|
229
313
|
"coordinates": {},
|
|
230
|
-
"
|
|
231
|
-
"visualisation_config": {
|
|
232
|
-
"query": {
|
|
233
|
-
"dataset": "entity_operations",
|
|
234
|
-
"measure": "count_operations",
|
|
235
|
-
"filters": [
|
|
236
|
-
{
|
|
237
|
-
"operation": ["createEntity"]
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
"entity_schema": ["opportunity"]
|
|
241
|
-
}
|
|
242
|
-
],
|
|
243
|
-
"dimensions": [
|
|
244
|
-
{
|
|
245
|
-
"time_with_granularity": "month"
|
|
246
|
-
},
|
|
247
|
-
{
|
|
248
|
-
"entity_attribute": "source.title"
|
|
249
|
-
}
|
|
250
|
-
]
|
|
251
|
-
},
|
|
252
|
-
"options": {
|
|
253
|
-
"type": "line"
|
|
254
|
-
}
|
|
255
|
-
}
|
|
314
|
+
"insight_id": "8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e"
|
|
256
315
|
}
|
|
257
|
-
]
|
|
316
|
+
],
|
|
317
|
+
"favorited": false
|
|
258
318
|
}
|
|
259
319
|
```
|
|
260
320
|
|
|
@@ -274,36 +334,115 @@ const { data } = await client.putDashboard(
|
|
|
274
334
|
id: '123e4567-e89b-12d3-a456-426614174000',
|
|
275
335
|
},
|
|
276
336
|
{
|
|
337
|
+
created_by: '10598',
|
|
338
|
+
created_at: '1970-01-01T00:00:00.000Z',
|
|
339
|
+
updated_by: '10598',
|
|
340
|
+
updated_at: '1970-01-01T00:00:00.000Z',
|
|
341
|
+
owner_org_id: '739224',
|
|
342
|
+
owners: ['10598'],
|
|
343
|
+
shared_with: [
|
|
344
|
+
{
|
|
345
|
+
user_id: '10598',
|
|
346
|
+
permission: 'view'
|
|
347
|
+
}
|
|
348
|
+
],
|
|
349
|
+
org_access: 'view',
|
|
277
350
|
id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',
|
|
278
351
|
title: 'Employee Dashboard',
|
|
279
352
|
tiles: [
|
|
280
353
|
{
|
|
281
354
|
id: 'e4af1297-1fd6-440f-9846-f475f580d40f',
|
|
282
355
|
coordinates: {},
|
|
283
|
-
|
|
356
|
+
insight_id: '8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e'
|
|
357
|
+
}
|
|
358
|
+
],
|
|
359
|
+
favorited: false
|
|
360
|
+
},
|
|
361
|
+
)
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
<details>
|
|
365
|
+
<summary>Response</summary>
|
|
366
|
+
|
|
367
|
+
```json
|
|
368
|
+
{
|
|
369
|
+
"created_by": "10598",
|
|
370
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
371
|
+
"updated_by": "10598",
|
|
372
|
+
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
373
|
+
"owner_org_id": "739224",
|
|
374
|
+
"owners": ["10598"],
|
|
375
|
+
"shared_with": [
|
|
376
|
+
{
|
|
377
|
+
"user_id": "10598",
|
|
378
|
+
"permission": "view"
|
|
379
|
+
}
|
|
380
|
+
],
|
|
381
|
+
"org_access": "view",
|
|
382
|
+
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
|
383
|
+
"title": "Employee Dashboard",
|
|
384
|
+
"tiles": [
|
|
385
|
+
{
|
|
386
|
+
"id": "e4af1297-1fd6-440f-9846-f475f580d40f",
|
|
387
|
+
"coordinates": {},
|
|
388
|
+
"insight_id": "8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e"
|
|
389
|
+
}
|
|
390
|
+
],
|
|
391
|
+
"favorited": false
|
|
392
|
+
}
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
</details>
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
### `patchDashboard`
|
|
400
|
+
|
|
401
|
+
Partially update a dashboard by ID. Update content (title/tiles) and/or manage sharing
|
|
402
|
+
(owners, shared_with, org_access) — only owners may change sharing.
|
|
403
|
+
`owners` and `shared_with` replace the whole
|
|
404
|
+
|
|
405
|
+
`PATCH /v1/dashboard/dashboards/{id}`
|
|
406
|
+
|
|
407
|
+
```ts
|
|
408
|
+
const { data } = await client.patchDashboard(
|
|
409
|
+
{
|
|
410
|
+
id: '123e4567-e89b-12d3-a456-426614174000',
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
owners: ['string'],
|
|
414
|
+
shared_with: [
|
|
415
|
+
{
|
|
416
|
+
user_id: '10598',
|
|
417
|
+
permission: 'view'
|
|
418
|
+
}
|
|
419
|
+
],
|
|
420
|
+
org_access: 'view',
|
|
421
|
+
title: 'Employee Dashboard',
|
|
422
|
+
tiles: [
|
|
423
|
+
{
|
|
424
|
+
id: 'e4af1297-1fd6-440f-9846-f475f580d40f',
|
|
425
|
+
coordinates: {},
|
|
426
|
+
title: 'Number of opportunities created by journeys every month',
|
|
427
|
+
insight_id: '8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e',
|
|
428
|
+
visualisation_id: 'timechart',
|
|
284
429
|
visualisation_config: {
|
|
285
430
|
query: {
|
|
286
431
|
dataset: 'entity_operations',
|
|
287
432
|
measure: 'count_operations',
|
|
288
|
-
|
|
289
|
-
{
|
|
290
|
-
operation: ['createEntity']
|
|
291
|
-
},
|
|
433
|
+
dimensions: [
|
|
292
434
|
{
|
|
293
|
-
|
|
435
|
+
time_with_granularity: 'year-month'
|
|
294
436
|
}
|
|
295
437
|
],
|
|
296
|
-
|
|
297
|
-
{
|
|
298
|
-
time_with_granularity: 'month'
|
|
299
|
-
},
|
|
438
|
+
filters: [
|
|
300
439
|
{
|
|
301
|
-
|
|
440
|
+
entity_schema: 'opportunity'
|
|
302
441
|
}
|
|
303
442
|
]
|
|
304
443
|
},
|
|
305
444
|
options: {
|
|
306
|
-
type: '
|
|
445
|
+
type: 'bar'
|
|
307
446
|
}
|
|
308
447
|
}
|
|
309
448
|
}
|
|
@@ -317,40 +456,29 @@ const { data } = await client.putDashboard(
|
|
|
317
456
|
|
|
318
457
|
```json
|
|
319
458
|
{
|
|
459
|
+
"created_by": "10598",
|
|
460
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
461
|
+
"updated_by": "10598",
|
|
462
|
+
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
463
|
+
"owner_org_id": "739224",
|
|
464
|
+
"owners": ["10598"],
|
|
465
|
+
"shared_with": [
|
|
466
|
+
{
|
|
467
|
+
"user_id": "10598",
|
|
468
|
+
"permission": "view"
|
|
469
|
+
}
|
|
470
|
+
],
|
|
471
|
+
"org_access": "view",
|
|
320
472
|
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
|
321
473
|
"title": "Employee Dashboard",
|
|
322
474
|
"tiles": [
|
|
323
475
|
{
|
|
324
476
|
"id": "e4af1297-1fd6-440f-9846-f475f580d40f",
|
|
325
477
|
"coordinates": {},
|
|
326
|
-
"
|
|
327
|
-
"visualisation_config": {
|
|
328
|
-
"query": {
|
|
329
|
-
"dataset": "entity_operations",
|
|
330
|
-
"measure": "count_operations",
|
|
331
|
-
"filters": [
|
|
332
|
-
{
|
|
333
|
-
"operation": ["createEntity"]
|
|
334
|
-
},
|
|
335
|
-
{
|
|
336
|
-
"entity_schema": ["opportunity"]
|
|
337
|
-
}
|
|
338
|
-
],
|
|
339
|
-
"dimensions": [
|
|
340
|
-
{
|
|
341
|
-
"time_with_granularity": "month"
|
|
342
|
-
},
|
|
343
|
-
{
|
|
344
|
-
"entity_attribute": "source.title"
|
|
345
|
-
}
|
|
346
|
-
]
|
|
347
|
-
},
|
|
348
|
-
"options": {
|
|
349
|
-
"type": "line"
|
|
350
|
-
}
|
|
351
|
-
}
|
|
478
|
+
"insight_id": "8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e"
|
|
352
479
|
}
|
|
353
|
-
]
|
|
480
|
+
],
|
|
481
|
+
"favorited": false
|
|
354
482
|
}
|
|
355
483
|
```
|
|
356
484
|
|
|
@@ -375,40 +503,115 @@ const { data } = await client.deleteDashboard({
|
|
|
375
503
|
|
|
376
504
|
```json
|
|
377
505
|
{
|
|
506
|
+
"created_by": "10598",
|
|
507
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
508
|
+
"updated_by": "10598",
|
|
509
|
+
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
510
|
+
"owner_org_id": "739224",
|
|
511
|
+
"owners": ["10598"],
|
|
512
|
+
"shared_with": [
|
|
513
|
+
{
|
|
514
|
+
"user_id": "10598",
|
|
515
|
+
"permission": "view"
|
|
516
|
+
}
|
|
517
|
+
],
|
|
518
|
+
"org_access": "view",
|
|
378
519
|
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
|
379
520
|
"title": "Employee Dashboard",
|
|
380
521
|
"tiles": [
|
|
381
522
|
{
|
|
382
523
|
"id": "e4af1297-1fd6-440f-9846-f475f580d40f",
|
|
383
524
|
"coordinates": {},
|
|
384
|
-
"
|
|
525
|
+
"insight_id": "8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e"
|
|
526
|
+
}
|
|
527
|
+
],
|
|
528
|
+
"favorited": false
|
|
529
|
+
}
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
</details>
|
|
533
|
+
|
|
534
|
+
---
|
|
535
|
+
|
|
536
|
+
### `listInsights`
|
|
537
|
+
|
|
538
|
+
List insights (saved charts) available to the user
|
|
539
|
+
|
|
540
|
+
`GET /v1/dashboard/insights`
|
|
541
|
+
|
|
542
|
+
```ts
|
|
543
|
+
const { data } = await client.listInsights({
|
|
544
|
+
q: 'example',
|
|
545
|
+
visualisation_id: ['...'],
|
|
546
|
+
tags: ['...'],
|
|
547
|
+
tags_match: 'example',
|
|
548
|
+
created_by: 'example',
|
|
549
|
+
created_after: 'example',
|
|
550
|
+
created_before: 'example',
|
|
551
|
+
updated_after: 'example',
|
|
552
|
+
updated_before: 'example',
|
|
553
|
+
shared_with: ['...'],
|
|
554
|
+
owner: ['...'],
|
|
555
|
+
accessible_to: 'example',
|
|
556
|
+
sort: 'example',
|
|
557
|
+
order: 'example',
|
|
558
|
+
limit: 1,
|
|
559
|
+
offset: 1,
|
|
560
|
+
})
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
<details>
|
|
564
|
+
<summary>Response</summary>
|
|
565
|
+
|
|
566
|
+
```json
|
|
567
|
+
{
|
|
568
|
+
"results": [
|
|
569
|
+
{
|
|
570
|
+
"created_by": "10598",
|
|
571
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
572
|
+
"updated_by": "10598",
|
|
573
|
+
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
574
|
+
"owner_org_id": "739224",
|
|
575
|
+
"owners": ["10598"],
|
|
576
|
+
"shared_with": [
|
|
577
|
+
{
|
|
578
|
+
"user_id": "10598",
|
|
579
|
+
"permission": "view"
|
|
580
|
+
}
|
|
581
|
+
],
|
|
582
|
+
"org_access": "view",
|
|
583
|
+
"id": "8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e",
|
|
584
|
+
"name": "Opportunities created by journeys every month",
|
|
585
|
+
"description": "Monthly count of opportunities grouped by source journey",
|
|
586
|
+
"visualisation_id": "timechart",
|
|
385
587
|
"visualisation_config": {
|
|
386
588
|
"query": {
|
|
387
589
|
"dataset": "entity_operations",
|
|
388
590
|
"measure": "count_operations",
|
|
389
|
-
"
|
|
390
|
-
{
|
|
391
|
-
"operation": ["createEntity"]
|
|
392
|
-
},
|
|
591
|
+
"dimensions": [
|
|
393
592
|
{
|
|
394
|
-
"
|
|
593
|
+
"time_with_granularity": "year-month"
|
|
395
594
|
}
|
|
396
595
|
],
|
|
397
|
-
"
|
|
398
|
-
{
|
|
399
|
-
"time_with_granularity": "month"
|
|
400
|
-
},
|
|
596
|
+
"filters": [
|
|
401
597
|
{
|
|
402
|
-
"
|
|
598
|
+
"entity_schema": "opportunity"
|
|
403
599
|
}
|
|
404
600
|
]
|
|
405
601
|
},
|
|
406
602
|
"options": {
|
|
407
|
-
"type": "
|
|
603
|
+
"type": "bar"
|
|
408
604
|
}
|
|
409
|
-
}
|
|
605
|
+
},
|
|
606
|
+
"tags": ["revenue", "marketing"]
|
|
410
607
|
}
|
|
411
|
-
]
|
|
608
|
+
],
|
|
609
|
+
"pagination": {
|
|
610
|
+
"total": 0,
|
|
611
|
+
"limit": 0,
|
|
612
|
+
"offset": 0,
|
|
613
|
+
"has_more": true
|
|
614
|
+
}
|
|
412
615
|
}
|
|
413
616
|
```
|
|
414
617
|
|
|
@@ -416,14 +619,55 @@ const { data } = await client.deleteDashboard({
|
|
|
416
619
|
|
|
417
620
|
---
|
|
418
621
|
|
|
419
|
-
### `
|
|
622
|
+
### `createInsight`
|
|
420
623
|
|
|
421
|
-
|
|
624
|
+
Create a new insight (saved chart). The caller becomes the owner.
|
|
422
625
|
|
|
423
|
-
`
|
|
626
|
+
`POST /v1/dashboard/insights`
|
|
424
627
|
|
|
425
628
|
```ts
|
|
426
|
-
const { data } = await client.
|
|
629
|
+
const { data } = await client.createInsight(
|
|
630
|
+
null,
|
|
631
|
+
{
|
|
632
|
+
created_by: '10598',
|
|
633
|
+
created_at: '1970-01-01T00:00:00.000Z',
|
|
634
|
+
updated_by: '10598',
|
|
635
|
+
updated_at: '1970-01-01T00:00:00.000Z',
|
|
636
|
+
owner_org_id: '739224',
|
|
637
|
+
owners: ['10598'],
|
|
638
|
+
shared_with: [
|
|
639
|
+
{
|
|
640
|
+
user_id: '10598',
|
|
641
|
+
permission: 'view'
|
|
642
|
+
}
|
|
643
|
+
],
|
|
644
|
+
org_access: 'view',
|
|
645
|
+
id: '8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e',
|
|
646
|
+
name: 'Opportunities created by journeys every month',
|
|
647
|
+
description: 'Monthly count of opportunities grouped by source journey',
|
|
648
|
+
visualisation_id: 'timechart',
|
|
649
|
+
visualisation_config: {
|
|
650
|
+
query: {
|
|
651
|
+
dataset: 'entity_operations',
|
|
652
|
+
measure: 'count_operations',
|
|
653
|
+
dimensions: [
|
|
654
|
+
{
|
|
655
|
+
time_with_granularity: 'year-month'
|
|
656
|
+
}
|
|
657
|
+
],
|
|
658
|
+
filters: [
|
|
659
|
+
{
|
|
660
|
+
entity_schema: 'opportunity'
|
|
661
|
+
}
|
|
662
|
+
]
|
|
663
|
+
},
|
|
664
|
+
options: {
|
|
665
|
+
type: 'bar'
|
|
666
|
+
}
|
|
667
|
+
},
|
|
668
|
+
tags: ['revenue', 'marketing']
|
|
669
|
+
},
|
|
670
|
+
)
|
|
427
671
|
```
|
|
428
672
|
|
|
429
673
|
<details>
|
|
@@ -431,20 +675,43 @@ const { data } = await client.listAvailableVisualisations()
|
|
|
431
675
|
|
|
432
676
|
```json
|
|
433
677
|
{
|
|
434
|
-
"
|
|
678
|
+
"created_by": "10598",
|
|
679
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
680
|
+
"updated_by": "10598",
|
|
681
|
+
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
682
|
+
"owner_org_id": "739224",
|
|
683
|
+
"owners": ["10598"],
|
|
684
|
+
"shared_with": [
|
|
435
685
|
{
|
|
436
|
-
"
|
|
437
|
-
"
|
|
438
|
-
|
|
439
|
-
|
|
686
|
+
"user_id": "10598",
|
|
687
|
+
"permission": "view"
|
|
688
|
+
}
|
|
689
|
+
],
|
|
690
|
+
"org_access": "view",
|
|
691
|
+
"id": "8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e",
|
|
692
|
+
"name": "Opportunities created by journeys every month",
|
|
693
|
+
"description": "Monthly count of opportunities grouped by source journey",
|
|
694
|
+
"visualisation_id": "timechart",
|
|
695
|
+
"visualisation_config": {
|
|
696
|
+
"query": {
|
|
697
|
+
"dataset": "entity_operations",
|
|
698
|
+
"measure": "count_operations",
|
|
699
|
+
"dimensions": [
|
|
700
|
+
{
|
|
701
|
+
"time_with_granularity": "year-month"
|
|
702
|
+
}
|
|
703
|
+
],
|
|
704
|
+
"filters": [
|
|
705
|
+
{
|
|
706
|
+
"entity_schema": "opportunity"
|
|
707
|
+
}
|
|
708
|
+
]
|
|
440
709
|
},
|
|
441
|
-
{
|
|
442
|
-
"
|
|
443
|
-
"title": "KPI Visualisation",
|
|
444
|
-
"description": "Visualise your key performance indicators",
|
|
445
|
-
"package_name": "@epilot360/kpi"
|
|
710
|
+
"options": {
|
|
711
|
+
"type": "bar"
|
|
446
712
|
}
|
|
447
|
-
|
|
713
|
+
},
|
|
714
|
+
"tags": ["revenue", "marketing"]
|
|
448
715
|
}
|
|
449
716
|
```
|
|
450
717
|
|
|
@@ -452,7 +719,388 @@ const { data } = await client.listAvailableVisualisations()
|
|
|
452
719
|
|
|
453
720
|
---
|
|
454
721
|
|
|
455
|
-
### `
|
|
722
|
+
### `listInsightTags`
|
|
723
|
+
|
|
724
|
+
List the distinct tags used by insights in the organization (for filter facets)
|
|
725
|
+
|
|
726
|
+
`GET /v1/dashboard/insights/tags`
|
|
727
|
+
|
|
728
|
+
```ts
|
|
729
|
+
const { data } = await client.listInsightTags()
|
|
730
|
+
```
|
|
731
|
+
|
|
732
|
+
<details>
|
|
733
|
+
<summary>Response</summary>
|
|
734
|
+
|
|
735
|
+
```json
|
|
736
|
+
{
|
|
737
|
+
"results": ["string"]
|
|
738
|
+
}
|
|
739
|
+
```
|
|
740
|
+
|
|
741
|
+
</details>
|
|
742
|
+
|
|
743
|
+
---
|
|
744
|
+
|
|
745
|
+
### `getInsight`
|
|
746
|
+
|
|
747
|
+
Get insight by ID
|
|
748
|
+
|
|
749
|
+
`GET /v1/dashboard/insights/{id}`
|
|
750
|
+
|
|
751
|
+
```ts
|
|
752
|
+
const { data } = await client.getInsight({
|
|
753
|
+
id: '123e4567-e89b-12d3-a456-426614174000',
|
|
754
|
+
})
|
|
755
|
+
```
|
|
756
|
+
|
|
757
|
+
<details>
|
|
758
|
+
<summary>Response</summary>
|
|
759
|
+
|
|
760
|
+
```json
|
|
761
|
+
{
|
|
762
|
+
"created_by": "10598",
|
|
763
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
764
|
+
"updated_by": "10598",
|
|
765
|
+
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
766
|
+
"owner_org_id": "739224",
|
|
767
|
+
"owners": ["10598"],
|
|
768
|
+
"shared_with": [
|
|
769
|
+
{
|
|
770
|
+
"user_id": "10598",
|
|
771
|
+
"permission": "view"
|
|
772
|
+
}
|
|
773
|
+
],
|
|
774
|
+
"org_access": "view",
|
|
775
|
+
"id": "8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e",
|
|
776
|
+
"name": "Opportunities created by journeys every month",
|
|
777
|
+
"description": "Monthly count of opportunities grouped by source journey",
|
|
778
|
+
"visualisation_id": "timechart",
|
|
779
|
+
"visualisation_config": {
|
|
780
|
+
"query": {
|
|
781
|
+
"dataset": "entity_operations",
|
|
782
|
+
"measure": "count_operations",
|
|
783
|
+
"dimensions": [
|
|
784
|
+
{
|
|
785
|
+
"time_with_granularity": "year-month"
|
|
786
|
+
}
|
|
787
|
+
],
|
|
788
|
+
"filters": [
|
|
789
|
+
{
|
|
790
|
+
"entity_schema": "opportunity"
|
|
791
|
+
}
|
|
792
|
+
]
|
|
793
|
+
},
|
|
794
|
+
"options": {
|
|
795
|
+
"type": "bar"
|
|
796
|
+
}
|
|
797
|
+
},
|
|
798
|
+
"tags": ["revenue", "marketing"]
|
|
799
|
+
}
|
|
800
|
+
```
|
|
801
|
+
|
|
802
|
+
</details>
|
|
803
|
+
|
|
804
|
+
---
|
|
805
|
+
|
|
806
|
+
### `putInsight`
|
|
807
|
+
|
|
808
|
+
Replace an insight's content by ID. Sharing is managed via patchInsight.
|
|
809
|
+
|
|
810
|
+
`PUT /v1/dashboard/insights/{id}`
|
|
811
|
+
|
|
812
|
+
```ts
|
|
813
|
+
const { data } = await client.putInsight(
|
|
814
|
+
{
|
|
815
|
+
id: '123e4567-e89b-12d3-a456-426614174000',
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
created_by: '10598',
|
|
819
|
+
created_at: '1970-01-01T00:00:00.000Z',
|
|
820
|
+
updated_by: '10598',
|
|
821
|
+
updated_at: '1970-01-01T00:00:00.000Z',
|
|
822
|
+
owner_org_id: '739224',
|
|
823
|
+
owners: ['10598'],
|
|
824
|
+
shared_with: [
|
|
825
|
+
{
|
|
826
|
+
user_id: '10598',
|
|
827
|
+
permission: 'view'
|
|
828
|
+
}
|
|
829
|
+
],
|
|
830
|
+
org_access: 'view',
|
|
831
|
+
id: '8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e',
|
|
832
|
+
name: 'Opportunities created by journeys every month',
|
|
833
|
+
description: 'Monthly count of opportunities grouped by source journey',
|
|
834
|
+
visualisation_id: 'timechart',
|
|
835
|
+
visualisation_config: {
|
|
836
|
+
query: {
|
|
837
|
+
dataset: 'entity_operations',
|
|
838
|
+
measure: 'count_operations',
|
|
839
|
+
dimensions: [
|
|
840
|
+
{
|
|
841
|
+
time_with_granularity: 'year-month'
|
|
842
|
+
}
|
|
843
|
+
],
|
|
844
|
+
filters: [
|
|
845
|
+
{
|
|
846
|
+
entity_schema: 'opportunity'
|
|
847
|
+
}
|
|
848
|
+
]
|
|
849
|
+
},
|
|
850
|
+
options: {
|
|
851
|
+
type: 'bar'
|
|
852
|
+
}
|
|
853
|
+
},
|
|
854
|
+
tags: ['revenue', 'marketing']
|
|
855
|
+
},
|
|
856
|
+
)
|
|
857
|
+
```
|
|
858
|
+
|
|
859
|
+
<details>
|
|
860
|
+
<summary>Response</summary>
|
|
861
|
+
|
|
862
|
+
```json
|
|
863
|
+
{
|
|
864
|
+
"created_by": "10598",
|
|
865
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
866
|
+
"updated_by": "10598",
|
|
867
|
+
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
868
|
+
"owner_org_id": "739224",
|
|
869
|
+
"owners": ["10598"],
|
|
870
|
+
"shared_with": [
|
|
871
|
+
{
|
|
872
|
+
"user_id": "10598",
|
|
873
|
+
"permission": "view"
|
|
874
|
+
}
|
|
875
|
+
],
|
|
876
|
+
"org_access": "view",
|
|
877
|
+
"id": "8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e",
|
|
878
|
+
"name": "Opportunities created by journeys every month",
|
|
879
|
+
"description": "Monthly count of opportunities grouped by source journey",
|
|
880
|
+
"visualisation_id": "timechart",
|
|
881
|
+
"visualisation_config": {
|
|
882
|
+
"query": {
|
|
883
|
+
"dataset": "entity_operations",
|
|
884
|
+
"measure": "count_operations",
|
|
885
|
+
"dimensions": [
|
|
886
|
+
{
|
|
887
|
+
"time_with_granularity": "year-month"
|
|
888
|
+
}
|
|
889
|
+
],
|
|
890
|
+
"filters": [
|
|
891
|
+
{
|
|
892
|
+
"entity_schema": "opportunity"
|
|
893
|
+
}
|
|
894
|
+
]
|
|
895
|
+
},
|
|
896
|
+
"options": {
|
|
897
|
+
"type": "bar"
|
|
898
|
+
}
|
|
899
|
+
},
|
|
900
|
+
"tags": ["revenue", "marketing"]
|
|
901
|
+
}
|
|
902
|
+
```
|
|
903
|
+
|
|
904
|
+
</details>
|
|
905
|
+
|
|
906
|
+
---
|
|
907
|
+
|
|
908
|
+
### `patchInsight`
|
|
909
|
+
|
|
910
|
+
Partially update an insight by ID. Update content (name/description/visualisation/tags) and/or
|
|
911
|
+
manage sharing (owners, shared_with, org_access) — only owners may change sharing.
|
|
912
|
+
`owners` and `shared_w
|
|
913
|
+
|
|
914
|
+
`PATCH /v1/dashboard/insights/{id}`
|
|
915
|
+
|
|
916
|
+
```ts
|
|
917
|
+
const { data } = await client.patchInsight(
|
|
918
|
+
{
|
|
919
|
+
id: '123e4567-e89b-12d3-a456-426614174000',
|
|
920
|
+
},
|
|
921
|
+
{
|
|
922
|
+
owners: ['string'],
|
|
923
|
+
shared_with: [
|
|
924
|
+
{
|
|
925
|
+
user_id: '10598',
|
|
926
|
+
permission: 'view'
|
|
927
|
+
}
|
|
928
|
+
],
|
|
929
|
+
org_access: 'view',
|
|
930
|
+
name: 'string',
|
|
931
|
+
description: 'string',
|
|
932
|
+
visualisation_id: 'timechart',
|
|
933
|
+
visualisation_config: {
|
|
934
|
+
query: {
|
|
935
|
+
dataset: 'entity_operations',
|
|
936
|
+
measure: 'count_operations',
|
|
937
|
+
dimensions: [
|
|
938
|
+
{
|
|
939
|
+
time_with_granularity: 'year-month'
|
|
940
|
+
}
|
|
941
|
+
],
|
|
942
|
+
filters: [
|
|
943
|
+
{
|
|
944
|
+
entity_schema: 'opportunity'
|
|
945
|
+
}
|
|
946
|
+
]
|
|
947
|
+
},
|
|
948
|
+
options: {
|
|
949
|
+
type: 'bar'
|
|
950
|
+
}
|
|
951
|
+
},
|
|
952
|
+
tags: ['revenue', 'marketing']
|
|
953
|
+
},
|
|
954
|
+
)
|
|
955
|
+
```
|
|
956
|
+
|
|
957
|
+
<details>
|
|
958
|
+
<summary>Response</summary>
|
|
959
|
+
|
|
960
|
+
```json
|
|
961
|
+
{
|
|
962
|
+
"created_by": "10598",
|
|
963
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
964
|
+
"updated_by": "10598",
|
|
965
|
+
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
966
|
+
"owner_org_id": "739224",
|
|
967
|
+
"owners": ["10598"],
|
|
968
|
+
"shared_with": [
|
|
969
|
+
{
|
|
970
|
+
"user_id": "10598",
|
|
971
|
+
"permission": "view"
|
|
972
|
+
}
|
|
973
|
+
],
|
|
974
|
+
"org_access": "view",
|
|
975
|
+
"id": "8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e",
|
|
976
|
+
"name": "Opportunities created by journeys every month",
|
|
977
|
+
"description": "Monthly count of opportunities grouped by source journey",
|
|
978
|
+
"visualisation_id": "timechart",
|
|
979
|
+
"visualisation_config": {
|
|
980
|
+
"query": {
|
|
981
|
+
"dataset": "entity_operations",
|
|
982
|
+
"measure": "count_operations",
|
|
983
|
+
"dimensions": [
|
|
984
|
+
{
|
|
985
|
+
"time_with_granularity": "year-month"
|
|
986
|
+
}
|
|
987
|
+
],
|
|
988
|
+
"filters": [
|
|
989
|
+
{
|
|
990
|
+
"entity_schema": "opportunity"
|
|
991
|
+
}
|
|
992
|
+
]
|
|
993
|
+
},
|
|
994
|
+
"options": {
|
|
995
|
+
"type": "bar"
|
|
996
|
+
}
|
|
997
|
+
},
|
|
998
|
+
"tags": ["revenue", "marketing"]
|
|
999
|
+
}
|
|
1000
|
+
```
|
|
1001
|
+
|
|
1002
|
+
</details>
|
|
1003
|
+
|
|
1004
|
+
---
|
|
1005
|
+
|
|
1006
|
+
### `deleteInsight`
|
|
1007
|
+
|
|
1008
|
+
Delete an insight by ID. Only owners may delete.
|
|
1009
|
+
|
|
1010
|
+
`DELETE /v1/dashboard/insights/{id}`
|
|
1011
|
+
|
|
1012
|
+
```ts
|
|
1013
|
+
const { data } = await client.deleteInsight({
|
|
1014
|
+
id: '123e4567-e89b-12d3-a456-426614174000',
|
|
1015
|
+
})
|
|
1016
|
+
```
|
|
1017
|
+
|
|
1018
|
+
<details>
|
|
1019
|
+
<summary>Response</summary>
|
|
1020
|
+
|
|
1021
|
+
```json
|
|
1022
|
+
{
|
|
1023
|
+
"created_by": "10598",
|
|
1024
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
1025
|
+
"updated_by": "10598",
|
|
1026
|
+
"updated_at": "1970-01-01T00:00:00.000Z",
|
|
1027
|
+
"owner_org_id": "739224",
|
|
1028
|
+
"owners": ["10598"],
|
|
1029
|
+
"shared_with": [
|
|
1030
|
+
{
|
|
1031
|
+
"user_id": "10598",
|
|
1032
|
+
"permission": "view"
|
|
1033
|
+
}
|
|
1034
|
+
],
|
|
1035
|
+
"org_access": "view",
|
|
1036
|
+
"id": "8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e",
|
|
1037
|
+
"name": "Opportunities created by journeys every month",
|
|
1038
|
+
"description": "Monthly count of opportunities grouped by source journey",
|
|
1039
|
+
"visualisation_id": "timechart",
|
|
1040
|
+
"visualisation_config": {
|
|
1041
|
+
"query": {
|
|
1042
|
+
"dataset": "entity_operations",
|
|
1043
|
+
"measure": "count_operations",
|
|
1044
|
+
"dimensions": [
|
|
1045
|
+
{
|
|
1046
|
+
"time_with_granularity": "year-month"
|
|
1047
|
+
}
|
|
1048
|
+
],
|
|
1049
|
+
"filters": [
|
|
1050
|
+
{
|
|
1051
|
+
"entity_schema": "opportunity"
|
|
1052
|
+
}
|
|
1053
|
+
]
|
|
1054
|
+
},
|
|
1055
|
+
"options": {
|
|
1056
|
+
"type": "bar"
|
|
1057
|
+
}
|
|
1058
|
+
},
|
|
1059
|
+
"tags": ["revenue", "marketing"]
|
|
1060
|
+
}
|
|
1061
|
+
```
|
|
1062
|
+
|
|
1063
|
+
</details>
|
|
1064
|
+
|
|
1065
|
+
---
|
|
1066
|
+
|
|
1067
|
+
### `listAvailableVisualisations`
|
|
1068
|
+
|
|
1069
|
+
Returns list of available Visualisations to configure new dashboard tiles
|
|
1070
|
+
|
|
1071
|
+
`GET /v1/dashboard/visualisations`
|
|
1072
|
+
|
|
1073
|
+
```ts
|
|
1074
|
+
const { data } = await client.listAvailableVisualisations()
|
|
1075
|
+
```
|
|
1076
|
+
|
|
1077
|
+
<details>
|
|
1078
|
+
<summary>Response</summary>
|
|
1079
|
+
|
|
1080
|
+
```json
|
|
1081
|
+
{
|
|
1082
|
+
"results": [
|
|
1083
|
+
{
|
|
1084
|
+
"visualisation": "timechart",
|
|
1085
|
+
"title": "Time Series Visualisation",
|
|
1086
|
+
"description": "Visualise your metrics with respect to time series",
|
|
1087
|
+
"package_name": "@epilot360/highcharts"
|
|
1088
|
+
},
|
|
1089
|
+
{
|
|
1090
|
+
"visualisation": "kpi",
|
|
1091
|
+
"title": "KPI Visualisation",
|
|
1092
|
+
"description": "Visualise your key performance indicators",
|
|
1093
|
+
"package_name": "@epilot360/kpi"
|
|
1094
|
+
}
|
|
1095
|
+
]
|
|
1096
|
+
}
|
|
1097
|
+
```
|
|
1098
|
+
|
|
1099
|
+
</details>
|
|
1100
|
+
|
|
1101
|
+
---
|
|
1102
|
+
|
|
1103
|
+
### `listAvailableExamples`
|
|
456
1104
|
|
|
457
1105
|
Returns list of available exampless for visualisations to configure new dashboard tiles
|
|
458
1106
|
|
|
@@ -507,22 +1155,38 @@ type DashboardID = string // uuid
|
|
|
507
1155
|
|
|
508
1156
|
### `Dashboard`
|
|
509
1157
|
|
|
510
|
-
|
|
1158
|
+
A dashboard configuration. A dashboard is a canvas whose tiles arrange and
|
|
1159
|
+
position insights (saved charts). Tiles may reference an insight by `insight_id`
|
|
1160
|
+
or, for backwards compatibility, embed a visualisation inline.
|
|
1161
|
+
|
|
511
1162
|
|
|
512
1163
|
```ts
|
|
513
1164
|
type Dashboard = {
|
|
1165
|
+
created_by?: string
|
|
1166
|
+
created_at?: string // date-time
|
|
1167
|
+
updated_by?: string
|
|
1168
|
+
updated_at?: string // date-time
|
|
1169
|
+
owner_org_id?: string
|
|
1170
|
+
owners?: string[]
|
|
1171
|
+
shared_with?: Array<{
|
|
1172
|
+
user_id: string
|
|
1173
|
+
permission: "view" | "edit"
|
|
1174
|
+
}>
|
|
1175
|
+
org_access?: "view" | "edit" | null
|
|
514
1176
|
id?: string // uuid
|
|
515
1177
|
title: string
|
|
516
1178
|
tiles: Array<{
|
|
517
1179
|
id?: string // uuid
|
|
518
1180
|
coordinates?: object
|
|
519
1181
|
title?: string
|
|
1182
|
+
insight_id?: string // uuid
|
|
520
1183
|
visualisation_id?: "kpi" | "funnel" | "toplist" | "timechart" | "pie" | "bar" | "entity_list" | "markdown" | "news_feed" | "workflow"
|
|
521
1184
|
visualisation_config?: {
|
|
522
1185
|
query?: { ... }
|
|
523
1186
|
options?: { ... }
|
|
524
1187
|
}
|
|
525
1188
|
}>
|
|
1189
|
+
favorited?: boolean
|
|
526
1190
|
}
|
|
527
1191
|
```
|
|
528
1192
|
|
|
@@ -534,13 +1198,213 @@ Unique identifier for a tile in a dashboard
|
|
|
534
1198
|
type DashboardTileID = string // uuid
|
|
535
1199
|
```
|
|
536
1200
|
|
|
1201
|
+
### `SharePermission`
|
|
1202
|
+
|
|
1203
|
+
Permission level granted to a user (or the whole organization) on a shared resource.
|
|
1204
|
+
`view` allows read-only access; `edit` additionally allows updating the content.
|
|
1205
|
+
Full control (delete and managing sharing) is reserved for owners.
|
|
1206
|
+
|
|
1207
|
+
|
|
1208
|
+
```ts
|
|
1209
|
+
type SharePermission = "view" | "edit"
|
|
1210
|
+
```
|
|
1211
|
+
|
|
1212
|
+
### `ShareGrant`
|
|
1213
|
+
|
|
1214
|
+
Grants a single user a permission level on a resource
|
|
1215
|
+
|
|
1216
|
+
```ts
|
|
1217
|
+
type ShareGrant = {
|
|
1218
|
+
user_id: string
|
|
1219
|
+
permission: "view" | "edit"
|
|
1220
|
+
}
|
|
1221
|
+
```
|
|
1222
|
+
|
|
1223
|
+
### `OrgAccess`
|
|
1224
|
+
|
|
1225
|
+
Optional organization-wide grant. When set, every user in the resource's organization
|
|
1226
|
+
is granted this permission level. `null` (or omitted) means the resource is not shared
|
|
1227
|
+
org-wide.
|
|
1228
|
+
|
|
1229
|
+
|
|
1230
|
+
```ts
|
|
1231
|
+
type OrgAccess = "view" | "edit" | null
|
|
1232
|
+
```
|
|
1233
|
+
|
|
1234
|
+
### `AccessControl`
|
|
1235
|
+
|
|
1236
|
+
Ownership and sharing metadata common to dashboards and insights. `created_*`/`updated_*`
|
|
1237
|
+
fields are managed by the server. `owners`, `shared_with` and `org_access` describe who
|
|
1238
|
+
may access the resource. New resources are private to their creator until shared.
|
|
1239
|
+
|
|
1240
|
+
|
|
1241
|
+
```ts
|
|
1242
|
+
type AccessControl = {
|
|
1243
|
+
created_by?: string
|
|
1244
|
+
created_at?: string // date-time
|
|
1245
|
+
updated_by?: string
|
|
1246
|
+
updated_at?: string // date-time
|
|
1247
|
+
owner_org_id?: string
|
|
1248
|
+
owners?: string[]
|
|
1249
|
+
shared_with?: Array<{
|
|
1250
|
+
user_id: string
|
|
1251
|
+
permission: "view" | "edit"
|
|
1252
|
+
}>
|
|
1253
|
+
org_access?: "view" | "edit" | null
|
|
1254
|
+
}
|
|
1255
|
+
```
|
|
1256
|
+
|
|
1257
|
+
### `AccessControlUpdate`
|
|
1258
|
+
|
|
1259
|
+
Sharing fields that can be mutated via PATCH (owners only). `owners` and `shared_with` are
|
|
1260
|
+
full replacements of their arrays, not merges — omit a field to leave it unchanged.
|
|
1261
|
+
|
|
1262
|
+
|
|
1263
|
+
```ts
|
|
1264
|
+
type AccessControlUpdate = {
|
|
1265
|
+
owners?: string[]
|
|
1266
|
+
shared_with?: Array<{
|
|
1267
|
+
user_id: string
|
|
1268
|
+
permission: "view" | "edit"
|
|
1269
|
+
}>
|
|
1270
|
+
org_access?: "view" | "edit" | null
|
|
1271
|
+
}
|
|
1272
|
+
```
|
|
1273
|
+
|
|
1274
|
+
### `DashboardPatch`
|
|
1275
|
+
|
|
1276
|
+
Fields that can be partially updated on a dashboard
|
|
1277
|
+
|
|
1278
|
+
```ts
|
|
1279
|
+
type DashboardPatch = {
|
|
1280
|
+
owners?: string[]
|
|
1281
|
+
shared_with?: Array<{
|
|
1282
|
+
user_id: string
|
|
1283
|
+
permission: "view" | "edit"
|
|
1284
|
+
}>
|
|
1285
|
+
org_access?: "view" | "edit" | null
|
|
1286
|
+
title?: string
|
|
1287
|
+
tiles?: Array<{
|
|
1288
|
+
id?: string // uuid
|
|
1289
|
+
coordinates?: object
|
|
1290
|
+
title?: string
|
|
1291
|
+
insight_id?: string // uuid
|
|
1292
|
+
visualisation_id?: "kpi" | "funnel" | "toplist" | "timechart" | "pie" | "bar" | "entity_list" | "markdown" | "news_feed" | "workflow"
|
|
1293
|
+
visualisation_config?: {
|
|
1294
|
+
query?: { ... }
|
|
1295
|
+
options?: { ... }
|
|
1296
|
+
}
|
|
1297
|
+
}>
|
|
1298
|
+
}
|
|
1299
|
+
```
|
|
1300
|
+
|
|
1301
|
+
### `InsightID`
|
|
1302
|
+
|
|
1303
|
+
Unique identifier for an insight (a saved chart / visualisation)
|
|
1304
|
+
|
|
1305
|
+
```ts
|
|
1306
|
+
type InsightID = string // uuid
|
|
1307
|
+
```
|
|
1308
|
+
|
|
1309
|
+
### `Insight`
|
|
1310
|
+
|
|
1311
|
+
An insight is a saved, reusable chart definition (a visualisation plus its query/options).
|
|
1312
|
+
Insights exist independently of dashboards: they can be created, shared and edited on their
|
|
1313
|
+
own, and referenced by one or more dashboard tiles via `insight_id`.
|
|
1314
|
+
|
|
1315
|
+
|
|
1316
|
+
```ts
|
|
1317
|
+
type Insight = {
|
|
1318
|
+
created_by?: string
|
|
1319
|
+
created_at?: string // date-time
|
|
1320
|
+
updated_by?: string
|
|
1321
|
+
updated_at?: string // date-time
|
|
1322
|
+
owner_org_id?: string
|
|
1323
|
+
owners?: string[]
|
|
1324
|
+
shared_with?: Array<{
|
|
1325
|
+
user_id: string
|
|
1326
|
+
permission: "view" | "edit"
|
|
1327
|
+
}>
|
|
1328
|
+
org_access?: "view" | "edit" | null
|
|
1329
|
+
id?: string // uuid
|
|
1330
|
+
name: string
|
|
1331
|
+
description?: string
|
|
1332
|
+
visualisation_id: "kpi" | "funnel" | "toplist" | "timechart" | "pie" | "bar" | "entity_list" | "markdown" | "news_feed" | "workflow"
|
|
1333
|
+
visualisation_config?: {
|
|
1334
|
+
query?: {
|
|
1335
|
+
dataset?: { ... }
|
|
1336
|
+
measure?: { ... }
|
|
1337
|
+
dimensions?: { ... }
|
|
1338
|
+
filters?: { ... }
|
|
1339
|
+
}
|
|
1340
|
+
options?: Record<string, unknown>
|
|
1341
|
+
}
|
|
1342
|
+
tags?: string[]
|
|
1343
|
+
}
|
|
1344
|
+
```
|
|
1345
|
+
|
|
1346
|
+
### `InsightPatch`
|
|
1347
|
+
|
|
1348
|
+
Fields that can be partially updated on an insight
|
|
1349
|
+
|
|
1350
|
+
```ts
|
|
1351
|
+
type InsightPatch = {
|
|
1352
|
+
owners?: string[]
|
|
1353
|
+
shared_with?: Array<{
|
|
1354
|
+
user_id: string
|
|
1355
|
+
permission: "view" | "edit"
|
|
1356
|
+
}>
|
|
1357
|
+
org_access?: "view" | "edit" | null
|
|
1358
|
+
name?: string
|
|
1359
|
+
description?: string
|
|
1360
|
+
visualisation_id?: "kpi" | "funnel" | "toplist" | "timechart" | "pie" | "bar" | "entity_list" | "markdown" | "news_feed" | "workflow"
|
|
1361
|
+
visualisation_config?: {
|
|
1362
|
+
query?: {
|
|
1363
|
+
dataset?: { ... }
|
|
1364
|
+
measure?: { ... }
|
|
1365
|
+
dimensions?: { ... }
|
|
1366
|
+
filters?: { ... }
|
|
1367
|
+
}
|
|
1368
|
+
options?: Record<string, unknown>
|
|
1369
|
+
}
|
|
1370
|
+
tags?: string[]
|
|
1371
|
+
}
|
|
1372
|
+
```
|
|
1373
|
+
|
|
1374
|
+
### `Tags`
|
|
1375
|
+
|
|
1376
|
+
Free-form labels for grouping and filtering insights
|
|
1377
|
+
|
|
1378
|
+
```ts
|
|
1379
|
+
type Tags = string[]
|
|
1380
|
+
```
|
|
1381
|
+
|
|
1382
|
+
### `Pagination`
|
|
1383
|
+
|
|
1384
|
+
Offset-based pagination metadata for list responses
|
|
1385
|
+
|
|
1386
|
+
```ts
|
|
1387
|
+
type Pagination = {
|
|
1388
|
+
total: number
|
|
1389
|
+
limit: number
|
|
1390
|
+
offset: number
|
|
1391
|
+
has_more: boolean
|
|
1392
|
+
}
|
|
1393
|
+
```
|
|
1394
|
+
|
|
537
1395
|
### `DashboardTile`
|
|
538
1396
|
|
|
1397
|
+
A positioned tile on a dashboard canvas. A tile references a saved insight via
|
|
1398
|
+
`insight_id`. Inline `visualisation_id`/`visualisation_config` remain supported for
|
|
1399
|
+
backwards compatibility (ad-hoc tiles that are not backed by a shared insight).
|
|
1400
|
+
|
|
1401
|
+
|
|
539
1402
|
```ts
|
|
540
1403
|
type DashboardTile = {
|
|
541
1404
|
id?: string // uuid
|
|
542
1405
|
coordinates?: object
|
|
543
1406
|
title?: string
|
|
1407
|
+
insight_id?: string // uuid
|
|
544
1408
|
visualisation_id?: "kpi" | "funnel" | "toplist" | "timechart" | "pie" | "bar" | "entity_list" | "markdown" | "news_feed" | "workflow"
|
|
545
1409
|
visualisation_config?: {
|
|
546
1410
|
query?: {
|