@epilot/cli 0.1.21 → 0.1.23
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/README.md +1 -1
- package/definitions/configuration-hub.json +134 -7
- package/definitions/entity.json +391 -4
- package/definitions/kanban.json +2 -1
- package/definitions/workflow-definition.json +52 -0
- package/definitions/workflow.json +24 -0
- package/dist/bin/epilot.js +6 -6
- package/dist/{chunk-JFIDAAH4.js → chunk-U5JW65I3.js} +13 -3
- package/dist/{completion-INJETNZK.js → completion-76TTN5FM.js} +1 -1
- package/dist/{upgrade-L2YSFIR2.js → upgrade-D2KGUAYC.js} +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
"openapi": "3.0.3",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Configuration Hub API",
|
|
5
|
-
"description": "Lightweight index API for exploring epilot organization configurations.\n\nProvides a unified tree view across all config types. Returns summary metadata only —\nthe frontend calls individual epilot APIs directly (via @epilot/sdk) for full config payloads.\n\n## Source APIs per resource type\n\nEach resource type maps to a specific epilot API. The frontend should use the corresponding\n@epilot/sdk client to fetch full config details (e.g., for the side panel JSON view).\n\n| Resource Type | Source API | SDK Client |\n|---|---|---|\n| `journey` | journey.sls.epilot.io | `@epilot/sdk/journey` |\n| `automation_flow` | automation.sls.epilot.io | `@epilot/sdk/automation` |\n| `workflow_definition` | workflow-definition.sls.epilot.io | `@epilot/sdk/workflow-definition` |\n| `closing_reason` | workflow-definition.sls.epilot.io | `@epilot/sdk/workflow-definition` |\n| `flow_template` | workflow-definition.sls.epilot.io | `@epilot/sdk/workflow-definition` |\n| `schema` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `taxonomy` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `taxonomy_classification` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `emailtemplate` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `product` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `price` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `tax` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `coupon` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `file` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `webhook` | webhooks.sls.epilot.io | `@epilot/sdk/webhooks` |\n| `saved_view` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `dashboard` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `kanban` | kanban.sls.epilot.io | `@epilot/sdk/kanban` |\n| `role` | permissions.sls.epilot.io | `@epilot/sdk/permissions` |\n| `usergroup` | user.sls.epilot.io | `@epilot/sdk/user` |\n| `validation_rule` | entity.sls.epilot.io | `@epilot/sdk/validation-rules` |\n| `integration` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `app` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `designbuilder` |
|
|
5
|
+
"description": "Lightweight index API for exploring epilot organization configurations.\n\nProvides a unified tree view across all config types. Returns summary metadata only —\nthe frontend calls individual epilot APIs directly (via @epilot/sdk) for full config payloads.\n\n## Source APIs per resource type\n\nEach resource type maps to a specific epilot API. The frontend should use the corresponding\n@epilot/sdk client to fetch full config details (e.g., for the side panel JSON view).\n\n| Resource Type | Source API | SDK Client |\n|---|---|---|\n| `journey` | journey.sls.epilot.io | `@epilot/sdk/journey` |\n| `automation_flow` | automation.sls.epilot.io | `@epilot/sdk/automation` |\n| `workflow_definition` | workflow-definition.sls.epilot.io | `@epilot/sdk/workflow-definition` |\n| `closing_reason` | workflow-definition.sls.epilot.io | `@epilot/sdk/workflow-definition` |\n| `flow_template` | workflow-definition.sls.epilot.io | `@epilot/sdk/workflow-definition` |\n| `schema` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `taxonomy` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `taxonomy_classification` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `emailtemplate` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `product` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `price` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `tax` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `coupon` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `file` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `document_template` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `webhook` | webhooks.sls.epilot.io | `@epilot/sdk/webhooks` |\n| `saved_view` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `dashboard` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `kanban` | kanban.sls.epilot.io | `@epilot/sdk/kanban` |\n| `role` | permissions.sls.epilot.io | `@epilot/sdk/permissions` |\n| `usergroup` | user.sls.epilot.io | `@epilot/sdk/user` |\n| `validation_rule` | entity.sls.epilot.io | `@epilot/sdk/validation-rules` |\n| `integration` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `app` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `designbuilder` | design-builder-api.sls.epilot.io | `@epilot/sdk/design` |\n| `notification_template` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `custom_variable` | entity.sls.epilot.io | `@epilot/sdk/template-variables` |\n| `environment_variable` | environments.sls.epilot.io | `@epilot/sdk/environments` |\n| `entity_mapping` | entity-mapping.sls.epilot.io | `@epilot/sdk/entity-mapping` |\n| `portal_config` | customer-portal.sls.epilot.io | `@epilot/sdk/customer-portal` |\n| `target` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `product_recommendation` | entity.sls.epilot.io | `@epilot/sdk/entity` |\n| `access_token` | access-token.sls.epilot.io | `@epilot/sdk/access-token` |\n",
|
|
6
6
|
"version": "0.2.0"
|
|
7
7
|
},
|
|
8
8
|
"servers": [
|
|
9
9
|
{
|
|
10
10
|
"url": "https://configuration-hub.sls.epilot.io"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"url": "https://configuration-hub.dev.sls.epilot.io",
|
|
14
|
+
"description": "Dev"
|
|
11
15
|
}
|
|
12
16
|
],
|
|
13
17
|
"security": [
|
|
@@ -106,6 +110,35 @@
|
|
|
106
110
|
"schema": {
|
|
107
111
|
"type": "string"
|
|
108
112
|
}
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"name": "blueprint_ids",
|
|
116
|
+
"in": "query",
|
|
117
|
+
"description": "Filter by installed-blueprint IDs (comma-separated). Only configs installed by one of the listed blueprints are returned.",
|
|
118
|
+
"schema": {
|
|
119
|
+
"type": "string"
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"name": "sort",
|
|
124
|
+
"in": "query",
|
|
125
|
+
"description": "Sort order. `updated_at` (default) sorts by most recently modified.\n`usage` sorts by the type-specific usage metric descending\n(submissions for journeys, executions for automations, entities for schemas, etc.).\n",
|
|
126
|
+
"schema": {
|
|
127
|
+
"type": "string",
|
|
128
|
+
"enum": [
|
|
129
|
+
"updated_at",
|
|
130
|
+
"usage"
|
|
131
|
+
],
|
|
132
|
+
"default": "updated_at"
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"name": "active_only",
|
|
137
|
+
"in": "query",
|
|
138
|
+
"description": "If true, filter out configs that are explicitly inactive (active=false).\nConfigs with no `active` field are always included.\n",
|
|
139
|
+
"schema": {
|
|
140
|
+
"type": "boolean"
|
|
141
|
+
}
|
|
109
142
|
}
|
|
110
143
|
],
|
|
111
144
|
"responses": {
|
|
@@ -178,13 +211,65 @@
|
|
|
178
211
|
}
|
|
179
212
|
}
|
|
180
213
|
},
|
|
181
|
-
"/v1/
|
|
214
|
+
"/v1/configs/{type}/{id}/used_by": {
|
|
215
|
+
"get": {
|
|
216
|
+
"operationId": "getConfigUsedBy",
|
|
217
|
+
"summary": "getConfigUsedBy",
|
|
218
|
+
"description": "Get configs that reference the given config (reverse dependencies).\nScans the indexed config items for references to this config's ID or aliases.\n",
|
|
219
|
+
"tags": [
|
|
220
|
+
"Configs"
|
|
221
|
+
],
|
|
222
|
+
"parameters": [
|
|
223
|
+
{
|
|
224
|
+
"$ref": "#/components/parameters/ConfigType"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"$ref": "#/components/parameters/ConfigId"
|
|
228
|
+
}
|
|
229
|
+
],
|
|
230
|
+
"responses": {
|
|
231
|
+
"200": {
|
|
232
|
+
"description": "List of configs that reference this config",
|
|
233
|
+
"content": {
|
|
234
|
+
"application/json": {
|
|
235
|
+
"schema": {
|
|
236
|
+
"$ref": "#/components/schemas/ConfigDependenciesResponse"
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
"/v1/configs/index": {
|
|
245
|
+
"get": {
|
|
246
|
+
"operationId": "getIndex",
|
|
247
|
+
"summary": "getIndex",
|
|
248
|
+
"description": "Return the current index build state for the caller's organization.\nClients poll this to decide whether to show a \"building\" indicator\nand when to refetch data.\n",
|
|
249
|
+
"tags": [
|
|
250
|
+
"Configs"
|
|
251
|
+
],
|
|
252
|
+
"responses": {
|
|
253
|
+
"200": {
|
|
254
|
+
"description": "Current index status",
|
|
255
|
+
"content": {
|
|
256
|
+
"application/json": {
|
|
257
|
+
"schema": {
|
|
258
|
+
"$ref": "#/components/schemas/IndexStatusResponse"
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
"/v1/configs/index:rebuild": {
|
|
182
267
|
"post": {
|
|
183
268
|
"operationId": "rebuildIndex",
|
|
184
269
|
"summary": "rebuildIndex",
|
|
185
|
-
"description": "Rebuild the configuration index for the caller's organization.\
|
|
270
|
+
"description": "Rebuild the configuration index for the caller's organization.\nFire-and-forget: invokes the async worker and returns immediately.\nA new rebuild will cancel any in-flight build (see `build_token`).\n",
|
|
186
271
|
"tags": [
|
|
187
|
-
"
|
|
272
|
+
"Configs"
|
|
188
273
|
],
|
|
189
274
|
"responses": {
|
|
190
275
|
"200": {
|
|
@@ -265,6 +350,7 @@
|
|
|
265
350
|
"tax",
|
|
266
351
|
"coupon",
|
|
267
352
|
"file",
|
|
353
|
+
"document_template",
|
|
268
354
|
"webhook",
|
|
269
355
|
"saved_view",
|
|
270
356
|
"dashboard",
|
|
@@ -283,7 +369,8 @@
|
|
|
283
369
|
"entity_mapping",
|
|
284
370
|
"portal_config",
|
|
285
371
|
"target",
|
|
286
|
-
"product_recommendation"
|
|
372
|
+
"product_recommendation",
|
|
373
|
+
"access_token"
|
|
287
374
|
]
|
|
288
375
|
},
|
|
289
376
|
"ConfigTypeInfo": {
|
|
@@ -353,6 +440,13 @@
|
|
|
353
440
|
},
|
|
354
441
|
"description": "Tags / labels"
|
|
355
442
|
},
|
|
443
|
+
"aliases": {
|
|
444
|
+
"type": "array",
|
|
445
|
+
"items": {
|
|
446
|
+
"type": "string"
|
|
447
|
+
},
|
|
448
|
+
"description": "Alternative identifiers (short IDs, slugs, variable keys) used in cross-references"
|
|
449
|
+
},
|
|
356
450
|
"purposes": {
|
|
357
451
|
"type": "array",
|
|
358
452
|
"items": {
|
|
@@ -364,6 +458,11 @@
|
|
|
364
458
|
"type": "string",
|
|
365
459
|
"format": "uri",
|
|
366
460
|
"description": "Direct link to open this config in epilot"
|
|
461
|
+
},
|
|
462
|
+
"metadata": {
|
|
463
|
+
"type": "object",
|
|
464
|
+
"description": "Type-specific metadata (e.g., submission count for journeys)",
|
|
465
|
+
"additionalProperties": true
|
|
367
466
|
}
|
|
368
467
|
},
|
|
369
468
|
"required": [
|
|
@@ -393,7 +492,7 @@
|
|
|
393
492
|
"type": "string",
|
|
394
493
|
"description": "Cursor for fetching the next page. Absent when no more pages."
|
|
395
494
|
},
|
|
396
|
-
"
|
|
495
|
+
"results": {
|
|
397
496
|
"type": "array",
|
|
398
497
|
"items": {
|
|
399
498
|
"$ref": "#/components/schemas/ConfigNode"
|
|
@@ -404,7 +503,7 @@
|
|
|
404
503
|
"type",
|
|
405
504
|
"label",
|
|
406
505
|
"icon",
|
|
407
|
-
"
|
|
506
|
+
"results"
|
|
408
507
|
]
|
|
409
508
|
},
|
|
410
509
|
"ConfigDependenciesResponse": {
|
|
@@ -464,6 +563,34 @@
|
|
|
464
563
|
"status"
|
|
465
564
|
]
|
|
466
565
|
},
|
|
566
|
+
"IndexStatusResponse": {
|
|
567
|
+
"type": "object",
|
|
568
|
+
"description": "Current index build state",
|
|
569
|
+
"properties": {
|
|
570
|
+
"status": {
|
|
571
|
+
"type": "string",
|
|
572
|
+
"enum": [
|
|
573
|
+
"missing",
|
|
574
|
+
"building",
|
|
575
|
+
"ready",
|
|
576
|
+
"failed"
|
|
577
|
+
]
|
|
578
|
+
},
|
|
579
|
+
"last_built_at": {
|
|
580
|
+
"type": "string",
|
|
581
|
+
"format": "date-time"
|
|
582
|
+
},
|
|
583
|
+
"total_items": {
|
|
584
|
+
"type": "integer"
|
|
585
|
+
},
|
|
586
|
+
"build_duration_ms": {
|
|
587
|
+
"type": "integer"
|
|
588
|
+
}
|
|
589
|
+
},
|
|
590
|
+
"required": [
|
|
591
|
+
"status"
|
|
592
|
+
]
|
|
593
|
+
},
|
|
467
594
|
"ErrorResponse": {
|
|
468
595
|
"type": "object",
|
|
469
596
|
"properties": {
|
package/definitions/entity.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.0.2",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Entity API",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.9.0",
|
|
6
6
|
"description": "Flexible data layer for epilot Entities.\n\nUse this API configure and access your business objects like Contacts, Opportunities and Products.\n\n[Feature Documentation](https://docs.epilot.io/docs/entities/flexible-entities)\n"
|
|
7
7
|
},
|
|
8
8
|
"tags": [
|
|
@@ -1428,6 +1428,9 @@
|
|
|
1428
1428
|
"schema": {
|
|
1429
1429
|
"$ref": "#/components/schemas/FieldsParam"
|
|
1430
1430
|
}
|
|
1431
|
+
},
|
|
1432
|
+
{
|
|
1433
|
+
"$ref": "#/components/parameters/ApplyChangesetsQueryParam"
|
|
1431
1434
|
}
|
|
1432
1435
|
],
|
|
1433
1436
|
"responses": {
|
|
@@ -1619,6 +1622,9 @@
|
|
|
1619
1622
|
},
|
|
1620
1623
|
{
|
|
1621
1624
|
"$ref": "#/components/parameters/ValidateEntityQueryParam"
|
|
1625
|
+
},
|
|
1626
|
+
{
|
|
1627
|
+
"$ref": "#/components/parameters/DirectQueryParam"
|
|
1622
1628
|
}
|
|
1623
1629
|
],
|
|
1624
1630
|
"requestBody": {
|
|
@@ -1682,6 +1688,9 @@
|
|
|
1682
1688
|
},
|
|
1683
1689
|
{
|
|
1684
1690
|
"$ref": "#/components/parameters/ValidateEntityQueryParam"
|
|
1691
|
+
},
|
|
1692
|
+
{
|
|
1693
|
+
"$ref": "#/components/parameters/DirectQueryParam"
|
|
1685
1694
|
}
|
|
1686
1695
|
],
|
|
1687
1696
|
"requestBody": {
|
|
@@ -2023,6 +2032,138 @@
|
|
|
2023
2032
|
}
|
|
2024
2033
|
}
|
|
2025
2034
|
},
|
|
2035
|
+
"/v1/entity/{slug}/{id}/changesets/{attribute}:apply": {
|
|
2036
|
+
"post": {
|
|
2037
|
+
"operationId": "applyChangeset",
|
|
2038
|
+
"summary": "applyChangeset",
|
|
2039
|
+
"description": "Applies the proposed value from a pending changeset to the entity attribute\nand removes the changeset. Used for human approval of pending changes.\n",
|
|
2040
|
+
"tags": [
|
|
2041
|
+
"Entities"
|
|
2042
|
+
],
|
|
2043
|
+
"parameters": [
|
|
2044
|
+
{
|
|
2045
|
+
"$ref": "#/components/parameters/EntitySlugPathParam"
|
|
2046
|
+
},
|
|
2047
|
+
{
|
|
2048
|
+
"$ref": "#/components/parameters/EntityIdPathParam"
|
|
2049
|
+
},
|
|
2050
|
+
{
|
|
2051
|
+
"in": "path",
|
|
2052
|
+
"name": "attribute",
|
|
2053
|
+
"required": true,
|
|
2054
|
+
"description": "Attribute name of the changeset to apply",
|
|
2055
|
+
"schema": {
|
|
2056
|
+
"type": "string"
|
|
2057
|
+
}
|
|
2058
|
+
}
|
|
2059
|
+
],
|
|
2060
|
+
"responses": {
|
|
2061
|
+
"200": {
|
|
2062
|
+
"description": "Changeset applied successfully — returns updated entity",
|
|
2063
|
+
"content": {
|
|
2064
|
+
"application/json": {
|
|
2065
|
+
"schema": {
|
|
2066
|
+
"$ref": "#/components/schemas/EntityItem"
|
|
2067
|
+
}
|
|
2068
|
+
}
|
|
2069
|
+
}
|
|
2070
|
+
},
|
|
2071
|
+
"404": {
|
|
2072
|
+
"$ref": "#/components/responses/NotFoundError"
|
|
2073
|
+
}
|
|
2074
|
+
}
|
|
2075
|
+
}
|
|
2076
|
+
},
|
|
2077
|
+
"/v1/entity/{slug}/{id}/changesets/{attribute}:dismiss": {
|
|
2078
|
+
"post": {
|
|
2079
|
+
"operationId": "dismissChangeset",
|
|
2080
|
+
"summary": "dismissChangeset",
|
|
2081
|
+
"description": "Removes a pending changeset without applying it. The attribute value remains unchanged.\n",
|
|
2082
|
+
"tags": [
|
|
2083
|
+
"Entities"
|
|
2084
|
+
],
|
|
2085
|
+
"parameters": [
|
|
2086
|
+
{
|
|
2087
|
+
"$ref": "#/components/parameters/EntitySlugPathParam"
|
|
2088
|
+
},
|
|
2089
|
+
{
|
|
2090
|
+
"$ref": "#/components/parameters/EntityIdPathParam"
|
|
2091
|
+
},
|
|
2092
|
+
{
|
|
2093
|
+
"in": "path",
|
|
2094
|
+
"name": "attribute",
|
|
2095
|
+
"required": true,
|
|
2096
|
+
"description": "Attribute name of the changeset to dismiss",
|
|
2097
|
+
"schema": {
|
|
2098
|
+
"type": "string"
|
|
2099
|
+
}
|
|
2100
|
+
}
|
|
2101
|
+
],
|
|
2102
|
+
"requestBody": {
|
|
2103
|
+
"content": {
|
|
2104
|
+
"application/json": {
|
|
2105
|
+
"schema": {
|
|
2106
|
+
"type": "object",
|
|
2107
|
+
"properties": {
|
|
2108
|
+
"reason": {
|
|
2109
|
+
"type": "string",
|
|
2110
|
+
"description": "Optional reason for dismissing the changeset"
|
|
2111
|
+
}
|
|
2112
|
+
}
|
|
2113
|
+
}
|
|
2114
|
+
}
|
|
2115
|
+
}
|
|
2116
|
+
},
|
|
2117
|
+
"responses": {
|
|
2118
|
+
"200": {
|
|
2119
|
+
"description": "Changeset dismissed successfully — returns updated entity",
|
|
2120
|
+
"content": {
|
|
2121
|
+
"application/json": {
|
|
2122
|
+
"schema": {
|
|
2123
|
+
"$ref": "#/components/schemas/EntityItem"
|
|
2124
|
+
}
|
|
2125
|
+
}
|
|
2126
|
+
}
|
|
2127
|
+
},
|
|
2128
|
+
"404": {
|
|
2129
|
+
"$ref": "#/components/responses/NotFoundError"
|
|
2130
|
+
}
|
|
2131
|
+
}
|
|
2132
|
+
}
|
|
2133
|
+
},
|
|
2134
|
+
"/v1/entity/{slug}/{id}/changesets": {
|
|
2135
|
+
"get": {
|
|
2136
|
+
"operationId": "listChangesets",
|
|
2137
|
+
"summary": "listChangesets",
|
|
2138
|
+
"description": "Returns all pending changesets for an entity.",
|
|
2139
|
+
"tags": [
|
|
2140
|
+
"Entities"
|
|
2141
|
+
],
|
|
2142
|
+
"parameters": [
|
|
2143
|
+
{
|
|
2144
|
+
"$ref": "#/components/parameters/EntitySlugPathParam"
|
|
2145
|
+
},
|
|
2146
|
+
{
|
|
2147
|
+
"$ref": "#/components/parameters/EntityIdPathParam"
|
|
2148
|
+
}
|
|
2149
|
+
],
|
|
2150
|
+
"responses": {
|
|
2151
|
+
"200": {
|
|
2152
|
+
"description": "Pending changesets for the entity",
|
|
2153
|
+
"content": {
|
|
2154
|
+
"application/json": {
|
|
2155
|
+
"schema": {
|
|
2156
|
+
"$ref": "#/components/schemas/ChangesetMap"
|
|
2157
|
+
}
|
|
2158
|
+
}
|
|
2159
|
+
}
|
|
2160
|
+
},
|
|
2161
|
+
"404": {
|
|
2162
|
+
"$ref": "#/components/responses/NotFoundError"
|
|
2163
|
+
}
|
|
2164
|
+
}
|
|
2165
|
+
}
|
|
2166
|
+
},
|
|
2026
2167
|
"/v1/entity/{slug}/{id}/activity": {
|
|
2027
2168
|
"get": {
|
|
2028
2169
|
"operationId": "getEntityActivityFeed",
|
|
@@ -3704,7 +3845,7 @@
|
|
|
3704
3845
|
"description": "ISO 8601 timestamp to filter jobs created after this time (e.g., 2023-01-01T00:00:00Z).",
|
|
3705
3846
|
"type": "string",
|
|
3706
3847
|
"format": "date-time",
|
|
3707
|
-
"example": "2023-01-01T00:00:
|
|
3848
|
+
"example": "2023-01-01T00:00:00Z"
|
|
3708
3849
|
}
|
|
3709
3850
|
},
|
|
3710
3851
|
{
|
|
@@ -5497,6 +5638,24 @@
|
|
|
5497
5638
|
},
|
|
5498
5639
|
"has_primary": {
|
|
5499
5640
|
"type": "boolean"
|
|
5641
|
+
},
|
|
5642
|
+
"edit_mode": {
|
|
5643
|
+
"type": "string",
|
|
5644
|
+
"description": "Controls how updates to this attribute are handled.\n- `direct` (default): update is applied immediately. No changeset created.\n- `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).\n- `approval`: update creates a changeset, requires explicit human approval.\n",
|
|
5645
|
+
"enum": [
|
|
5646
|
+
"direct",
|
|
5647
|
+
"external",
|
|
5648
|
+
"approval"
|
|
5649
|
+
],
|
|
5650
|
+
"default": "direct"
|
|
5651
|
+
},
|
|
5652
|
+
"edit_mode_config": {
|
|
5653
|
+
"description": "Configuration for auto-clear matching on `edit_mode: external` attributes.\n`match_strategy` and `fuzzy_config` are only consulted for `external` mode —\nthey are ignored for `approval` mode, which resolves via explicit\n`:apply` / `:dismiss` endpoints and never auto-clears.\n",
|
|
5654
|
+
"allOf": [
|
|
5655
|
+
{
|
|
5656
|
+
"$ref": "#/components/schemas/EditModeConfig"
|
|
5657
|
+
}
|
|
5658
|
+
]
|
|
5500
5659
|
}
|
|
5501
5660
|
},
|
|
5502
5661
|
"required": [
|
|
@@ -7417,6 +7576,15 @@
|
|
|
7417
7576
|
"example": "123e4567-e89b-12d3-a456-426614174000"
|
|
7418
7577
|
},
|
|
7419
7578
|
"nullable": true
|
|
7579
|
+
},
|
|
7580
|
+
"_changesets": {
|
|
7581
|
+
"readOnly": true,
|
|
7582
|
+
"type": "object",
|
|
7583
|
+
"nullable": true,
|
|
7584
|
+
"description": "Pending attribute changesets for attributes configured with external or approval edit mode.\nRead-only via normal entity PATCH/PUT operations — cannot be set directly.\nUse the changeset management endpoints to apply or dismiss changesets.\n",
|
|
7585
|
+
"additionalProperties": {
|
|
7586
|
+
"$ref": "#/components/schemas/Changeset"
|
|
7587
|
+
}
|
|
7420
7588
|
}
|
|
7421
7589
|
},
|
|
7422
7590
|
"example": {
|
|
@@ -8350,6 +8518,11 @@
|
|
|
8350
8518
|
"type": "boolean",
|
|
8351
8519
|
"description": "If true, return full entity objects in entityNodes instead of just entity IDs in nodes",
|
|
8352
8520
|
"default": false
|
|
8521
|
+
},
|
|
8522
|
+
"apply_changesets": {
|
|
8523
|
+
"type": "boolean",
|
|
8524
|
+
"description": "When true and hydrate is also true, entity objects in entityNodes have pending changeset proposed values applied in-place. The _changesets field is still included in the response.",
|
|
8525
|
+
"default": false
|
|
8353
8526
|
}
|
|
8354
8527
|
}
|
|
8355
8528
|
},
|
|
@@ -8646,11 +8819,16 @@
|
|
|
8646
8819
|
"float",
|
|
8647
8820
|
"date",
|
|
8648
8821
|
"flattened",
|
|
8649
|
-
"nested"
|
|
8822
|
+
"nested",
|
|
8823
|
+
"object"
|
|
8650
8824
|
]
|
|
8651
8825
|
},
|
|
8652
8826
|
"fields": {
|
|
8653
8827
|
"additionalProperties": true
|
|
8828
|
+
},
|
|
8829
|
+
"dynamic": {
|
|
8830
|
+
"type": "boolean",
|
|
8831
|
+
"description": "When false, prevents ES from inferring types for nested fields. Used for _changesets where values can be any type."
|
|
8654
8832
|
}
|
|
8655
8833
|
}
|
|
8656
8834
|
}
|
|
@@ -8717,7 +8895,7 @@
|
|
|
8717
8895
|
},
|
|
8718
8896
|
"ActivityType": {
|
|
8719
8897
|
"type": "string",
|
|
8720
|
-
"description": "A type for the activity. Used to categorize activities in the activity feed and for event subscriptions.\n\nBuilt-in entity activity types (custom activities can be defined as well):\n- EntityCreated\n- EntityUpdated\n- EntityDeleted\n- EntitySoftDeleted\n- EntityRestored\n- RelationsAdded\n- RelationsRemoved\n- RelationsSoftDeleted\n- RelationsRestored\n- RelationsDeleted\n"
|
|
8898
|
+
"description": "A type for the activity. Used to categorize activities in the activity feed and for event subscriptions.\n\nBuilt-in entity activity types (custom activities can be defined as well):\n- EntityCreated\n- EntityUpdated\n- EntityDeleted\n- EntitySoftDeleted\n- EntityRestored\n- RelationsAdded\n- RelationsRemoved\n- RelationsSoftDeleted\n- RelationsRestored\n- RelationsDeleted\n- ChangesetCreated\n- ChangesetAutoCleared\n- ChangesetApplied\n- ChangesetDismissed\n"
|
|
8721
8899
|
},
|
|
8722
8900
|
"Activity": {
|
|
8723
8901
|
"type": "object",
|
|
@@ -9505,6 +9683,195 @@
|
|
|
9505
9683
|
"example": "Bad Request"
|
|
9506
9684
|
}
|
|
9507
9685
|
}
|
|
9686
|
+
},
|
|
9687
|
+
"ChangesetCreator": {
|
|
9688
|
+
"type": "object",
|
|
9689
|
+
"description": "Identifies the actor that created the changeset.",
|
|
9690
|
+
"properties": {
|
|
9691
|
+
"type": {
|
|
9692
|
+
"type": "string",
|
|
9693
|
+
"description": "Type of actor that created the changeset",
|
|
9694
|
+
"enum": [
|
|
9695
|
+
"user",
|
|
9696
|
+
"portal_user",
|
|
9697
|
+
"api_client",
|
|
9698
|
+
"automation"
|
|
9699
|
+
]
|
|
9700
|
+
},
|
|
9701
|
+
"id": {
|
|
9702
|
+
"type": "string",
|
|
9703
|
+
"description": "ID of the actor (user ID, portal user ID, API client ID, etc.)"
|
|
9704
|
+
}
|
|
9705
|
+
}
|
|
9706
|
+
},
|
|
9707
|
+
"Changeset": {
|
|
9708
|
+
"type": "object",
|
|
9709
|
+
"description": "A pending proposed change for a single entity attribute, awaiting external confirmation or human approval.",
|
|
9710
|
+
"required": [
|
|
9711
|
+
"proposed_value",
|
|
9712
|
+
"created_at",
|
|
9713
|
+
"edit_mode"
|
|
9714
|
+
],
|
|
9715
|
+
"properties": {
|
|
9716
|
+
"proposed_value": {
|
|
9717
|
+
"description": "The proposed new value for the attribute. Type matches the attribute type."
|
|
9718
|
+
},
|
|
9719
|
+
"previous_value": {
|
|
9720
|
+
"description": "The attribute value at the time the changeset was created. Stored for reference."
|
|
9721
|
+
},
|
|
9722
|
+
"created_at": {
|
|
9723
|
+
"type": "string",
|
|
9724
|
+
"format": "date-time",
|
|
9725
|
+
"description": "Timestamp when the changeset was created"
|
|
9726
|
+
},
|
|
9727
|
+
"created_by": {
|
|
9728
|
+
"$ref": "#/components/schemas/ChangesetCreator"
|
|
9729
|
+
},
|
|
9730
|
+
"edit_mode": {
|
|
9731
|
+
"type": "string",
|
|
9732
|
+
"description": "The edit mode that triggered this changeset.\n- `external`: auto-cleared by a matching `?direct=true` write (see `match_strategy`).\n- `approval`: resolved only via explicit `:apply` / `:dismiss` endpoints; never auto-clears.\n",
|
|
9733
|
+
"enum": [
|
|
9734
|
+
"external",
|
|
9735
|
+
"approval"
|
|
9736
|
+
]
|
|
9737
|
+
},
|
|
9738
|
+
"match_strategy": {
|
|
9739
|
+
"description": "Match strategy copied from the attribute's `edit_mode_config` at changeset\ncreation time. Only consulted when `edit_mode` is `external`; ignored for\n`approval` (which never auto-clears).\n",
|
|
9740
|
+
"allOf": [
|
|
9741
|
+
{
|
|
9742
|
+
"$ref": "#/components/schemas/MatchStrategy"
|
|
9743
|
+
}
|
|
9744
|
+
]
|
|
9745
|
+
},
|
|
9746
|
+
"source": {
|
|
9747
|
+
"type": "string",
|
|
9748
|
+
"description": "Optional label indicating where the change originated (e.g. end_customer_portal, installer_portal, journey, automation)"
|
|
9749
|
+
},
|
|
9750
|
+
"related_values": {
|
|
9751
|
+
"type": "object",
|
|
9752
|
+
"description": "Proposed and previous values for related fields in a multi-field attribute group (e.g. currency _decimal/_currency suffixes). Keyed by full field name.",
|
|
9753
|
+
"additionalProperties": {
|
|
9754
|
+
"type": "object",
|
|
9755
|
+
"properties": {
|
|
9756
|
+
"proposed_value": {
|
|
9757
|
+
"description": "The proposed new value for the related field."
|
|
9758
|
+
},
|
|
9759
|
+
"previous_value": {
|
|
9760
|
+
"description": "The value of the related field when the changeset was created."
|
|
9761
|
+
}
|
|
9762
|
+
}
|
|
9763
|
+
}
|
|
9764
|
+
}
|
|
9765
|
+
}
|
|
9766
|
+
},
|
|
9767
|
+
"ChangesetMap": {
|
|
9768
|
+
"type": "object",
|
|
9769
|
+
"description": "Map of attribute name to pending changeset. At most one changeset per attribute.",
|
|
9770
|
+
"additionalProperties": {
|
|
9771
|
+
"$ref": "#/components/schemas/Changeset"
|
|
9772
|
+
}
|
|
9773
|
+
},
|
|
9774
|
+
"EditModeConfig": {
|
|
9775
|
+
"type": "object",
|
|
9776
|
+
"description": "Configuration for `edit_mode: external` auto-clear matching.\nFields here (`match_strategy`, `fuzzy_config`) only take effect when\n`edit_mode` is `external`. They are ignored for `edit_mode: approval`,\nwhich never auto-clears and is resolved exclusively via the\n`:apply` / `:dismiss` changeset endpoints.\n",
|
|
9777
|
+
"properties": {
|
|
9778
|
+
"match_strategy": {
|
|
9779
|
+
"$ref": "#/components/schemas/MatchStrategy"
|
|
9780
|
+
},
|
|
9781
|
+
"fuzzy_config": {
|
|
9782
|
+
"$ref": "#/components/schemas/FuzzyConfig"
|
|
9783
|
+
}
|
|
9784
|
+
}
|
|
9785
|
+
},
|
|
9786
|
+
"FuzzyConfig": {
|
|
9787
|
+
"type": "object",
|
|
9788
|
+
"description": "Configuration for fuzzy auto-clear matching on `edit_mode: external` attributes.\nNot used for `edit_mode: approval`.\n\nType compatibility with attribute shape is enforced at schema save time:\n- scalar string attributes: `suffix`, `digits_only`, `regex`\n- repeatable attributes: `set_equivalent`, `entry_match`, `ignore_fields`, `normalize_phone`\n- relation attributes: `relation_set`\n",
|
|
9789
|
+
"required": [
|
|
9790
|
+
"type"
|
|
9791
|
+
],
|
|
9792
|
+
"properties": {
|
|
9793
|
+
"type": {
|
|
9794
|
+
"type": "string",
|
|
9795
|
+
"description": "Which fuzzy algorithm to apply.",
|
|
9796
|
+
"enum": [
|
|
9797
|
+
"suffix",
|
|
9798
|
+
"digits_only",
|
|
9799
|
+
"normalize_phone",
|
|
9800
|
+
"ignore_fields",
|
|
9801
|
+
"set_equivalent",
|
|
9802
|
+
"entry_match",
|
|
9803
|
+
"relation_set",
|
|
9804
|
+
"regex"
|
|
9805
|
+
]
|
|
9806
|
+
},
|
|
9807
|
+
"suffix_length": {
|
|
9808
|
+
"type": "integer",
|
|
9809
|
+
"description": "For type=suffix: number of characters to compare from end of string."
|
|
9810
|
+
},
|
|
9811
|
+
"fields_to_ignore": {
|
|
9812
|
+
"type": "array",
|
|
9813
|
+
"items": {
|
|
9814
|
+
"type": "string"
|
|
9815
|
+
},
|
|
9816
|
+
"description": "For type=ignore_fields and type=set_equivalent: field names to exclude when comparing array entries. `_id` is always stripped by the platform regardless of this config."
|
|
9817
|
+
},
|
|
9818
|
+
"regex_flags": {
|
|
9819
|
+
"type": "string",
|
|
9820
|
+
"description": "For type=regex: flags to apply to the regex (e.g. 'i' for case-insensitive)."
|
|
9821
|
+
},
|
|
9822
|
+
"country_code": {
|
|
9823
|
+
"type": "string",
|
|
9824
|
+
"description": "For type=normalize_phone: country dialing code digits to strip (e.g. '49' for Germany). No '+' prefix."
|
|
9825
|
+
},
|
|
9826
|
+
"match_on": {
|
|
9827
|
+
"type": "string",
|
|
9828
|
+
"description": "For type=normalize_phone: attribute key within array entries to compare on (e.g. 'phone_number')."
|
|
9829
|
+
},
|
|
9830
|
+
"key": {
|
|
9831
|
+
"description": "For type=entry_match: business key(s) within each entry used to match proposed entries against incoming entries.",
|
|
9832
|
+
"oneOf": [
|
|
9833
|
+
{
|
|
9834
|
+
"type": "string"
|
|
9835
|
+
},
|
|
9836
|
+
{
|
|
9837
|
+
"type": "array",
|
|
9838
|
+
"items": {
|
|
9839
|
+
"type": "string"
|
|
9840
|
+
}
|
|
9841
|
+
}
|
|
9842
|
+
]
|
|
9843
|
+
},
|
|
9844
|
+
"mode": {
|
|
9845
|
+
"type": "string",
|
|
9846
|
+
"description": "For type=entry_match and type=set_equivalent: how strict the comparison is.\n- `subset` (default for entry_match): every proposed entry must exist in incoming; extra incoming entries are allowed.\n- `exact_set` (default for set_equivalent): the two sides must contain the same entries (order-insensitive, multiset semantics).\n",
|
|
9847
|
+
"enum": [
|
|
9848
|
+
"subset",
|
|
9849
|
+
"exact_set"
|
|
9850
|
+
]
|
|
9851
|
+
},
|
|
9852
|
+
"ordered": {
|
|
9853
|
+
"type": "boolean",
|
|
9854
|
+
"description": "For type=relation_set: when true, relation order is significant. Defaults to false (order-insensitive)."
|
|
9855
|
+
},
|
|
9856
|
+
"require_tags_match": {
|
|
9857
|
+
"type": "boolean",
|
|
9858
|
+
"description": "For type=relation_set: when true, each relation item's `_tags` must match on both sides (order-insensitive). Defaults to false — `_tags` are stripped before compare."
|
|
9859
|
+
},
|
|
9860
|
+
"pattern": {
|
|
9861
|
+
"type": "string",
|
|
9862
|
+
"description": "For type=regex: regular expression pattern to test the incoming value against."
|
|
9863
|
+
}
|
|
9864
|
+
}
|
|
9865
|
+
},
|
|
9866
|
+
"MatchStrategy": {
|
|
9867
|
+
"type": "string",
|
|
9868
|
+
"description": "Strategy for auto-clearing a changeset on an `edit_mode: external` attribute\nwhen a direct write (`?direct=true`) arrives — typically an ERP inbound sync.\nIgnored for `edit_mode: approval`, which does not auto-clear and is resolved\nexclusively via the `:apply` / `:dismiss` changeset endpoints.\n- `exact`: The inbound value must exactly match the proposed value (deep equality).\n- `fuzzy`: The inbound value is compared using the configured `fuzzy_config` algorithm.\n- `any`: Any update to the attribute clears the changeset, regardless of value.\n",
|
|
9869
|
+
"enum": [
|
|
9870
|
+
"exact",
|
|
9871
|
+
"fuzzy",
|
|
9872
|
+
"any"
|
|
9873
|
+
],
|
|
9874
|
+
"default": "exact"
|
|
9508
9875
|
}
|
|
9509
9876
|
},
|
|
9510
9877
|
"parameters": {
|
|
@@ -9741,6 +10108,26 @@
|
|
|
9741
10108
|
"default": false,
|
|
9742
10109
|
"type": "boolean"
|
|
9743
10110
|
}
|
|
10111
|
+
},
|
|
10112
|
+
"DirectQueryParam": {
|
|
10113
|
+
"name": "direct",
|
|
10114
|
+
"description": "When true, bypasses changeset interception: attribute values in the payload\nare written directly to the entity regardless of each attribute's `edit_mode`.\nThe write always lands, independently of any auto-clear outcome below.\n\nAfter the direct write, for each attribute in the payload that also has a\npending changeset:\n- `edit_mode: external` — the incoming value is checked against the\n changeset's `match_strategy` (and `fuzzy_config` when `fuzzy`). On match,\n `_changesets[attr]` is cleared. On no-match, the write still stands and\n the changeset stays pending (signalling the ERP/trusted source applied a\n different correction than originally proposed; resolve via a later\n matching direct write, or via the `:apply` / `:dismiss` endpoints).\n- `edit_mode: approval` — never auto-cleared. The write lands but the\n pending changeset remains until explicitly resolved via `:apply` or\n `:dismiss`.\n\nIntended for trusted integrations (e.g. ERP inbound sync). ERP middleware\nmust always use `?direct=true` — without it, an inbound sync on an\n`external` attribute would create a new changeset instead of confirming\nthe pending one.\n\nDefaults to false — no breaking change for existing callers.\n",
|
|
10115
|
+
"in": "query",
|
|
10116
|
+
"required": false,
|
|
10117
|
+
"schema": {
|
|
10118
|
+
"type": "boolean",
|
|
10119
|
+
"default": false
|
|
10120
|
+
}
|
|
10121
|
+
},
|
|
10122
|
+
"ApplyChangesetsQueryParam": {
|
|
10123
|
+
"name": "apply_changesets",
|
|
10124
|
+
"description": "When true, applies pending changeset proposed values in-place on the response entity.\nThe response includes both the hydrated values and the raw _changesets field.\nDoes not mutate stored data — pure read-time transform.\n",
|
|
10125
|
+
"in": "query",
|
|
10126
|
+
"required": false,
|
|
10127
|
+
"schema": {
|
|
10128
|
+
"type": "boolean",
|
|
10129
|
+
"default": false
|
|
10130
|
+
}
|
|
9744
10131
|
}
|
|
9745
10132
|
},
|
|
9746
10133
|
"examples": {
|
package/definitions/kanban.json
CHANGED
|
@@ -638,6 +638,16 @@
|
|
|
638
638
|
}
|
|
639
639
|
}
|
|
640
640
|
},
|
|
641
|
+
"409": {
|
|
642
|
+
"description": "Conflict - the workflow was modified by another user since it was last loaded",
|
|
643
|
+
"content": {
|
|
644
|
+
"application/json": {
|
|
645
|
+
"schema": {
|
|
646
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
},
|
|
641
651
|
"500": {
|
|
642
652
|
"description": "Other errors",
|
|
643
653
|
"content": {
|
|
@@ -1795,6 +1805,15 @@
|
|
|
1795
1805
|
"type": "string",
|
|
1796
1806
|
"description": "Id of the automation config that triggers this workflow"
|
|
1797
1807
|
},
|
|
1808
|
+
"input_entity": {
|
|
1809
|
+
"type": "string",
|
|
1810
|
+
"enum": [
|
|
1811
|
+
"thread",
|
|
1812
|
+
"first_email",
|
|
1813
|
+
"last_email"
|
|
1814
|
+
],
|
|
1815
|
+
"description": "For email thread triggers, specifies which entity from the triggered email thread to use as the primary input for automation and decision tasks. Defaults to `thread` when not specified.\n"
|
|
1816
|
+
},
|
|
1798
1817
|
"trigger_config": {
|
|
1799
1818
|
"type": "array",
|
|
1800
1819
|
"items": {
|
|
@@ -2036,6 +2055,34 @@
|
|
|
2036
2055
|
},
|
|
2037
2056
|
"additionalProperties": true,
|
|
2038
2057
|
"description": "Transient field. The full automation action configuration following the automation API action schema. Processed by the backend during create/update and stripped before storage. When present without a flow_id, a new automation flow is created. When present with a flow_id, the existing automation flow is updated.\n"
|
|
2058
|
+
},
|
|
2059
|
+
"duplicated_flow_id": {
|
|
2060
|
+
"type": "string",
|
|
2061
|
+
"description": "Transient field. When present, the backend clones the automation flow referenced by this ID and assigns the new flow_id to the task. Used when duplicating an automation task to give it an independent automation. Stripped before storage.\n"
|
|
2062
|
+
},
|
|
2063
|
+
"input_context": {
|
|
2064
|
+
"$ref": "#/components/schemas/AutomationInputContext"
|
|
2065
|
+
}
|
|
2066
|
+
}
|
|
2067
|
+
},
|
|
2068
|
+
"AutomationInputContext": {
|
|
2069
|
+
"type": "object",
|
|
2070
|
+
"description": "Optional. Source of the entity fed into this automation task. If omitted, the workflow's primary entity is used.\n",
|
|
2071
|
+
"required": [
|
|
2072
|
+
"source"
|
|
2073
|
+
],
|
|
2074
|
+
"properties": {
|
|
2075
|
+
"source": {
|
|
2076
|
+
"type": "string",
|
|
2077
|
+
"enum": [
|
|
2078
|
+
"trigger",
|
|
2079
|
+
"task"
|
|
2080
|
+
],
|
|
2081
|
+
"description": "`trigger` = workflow's primary (trigger) entity. `task` = entity produced by an upstream task in the graph.\n"
|
|
2082
|
+
},
|
|
2083
|
+
"task_id": {
|
|
2084
|
+
"type": "string",
|
|
2085
|
+
"description": "Required when source is `task`. The id of the upstream task whose output entity should feed this task."
|
|
2039
2086
|
}
|
|
2040
2087
|
}
|
|
2041
2088
|
},
|
|
@@ -2196,6 +2243,11 @@
|
|
|
2196
2243
|
"$ref": "#/components/schemas/Condition"
|
|
2197
2244
|
}
|
|
2198
2245
|
},
|
|
2246
|
+
"allow_parallel_execution": {
|
|
2247
|
+
"type": "boolean",
|
|
2248
|
+
"description": "When true, all branches with met conditions execute in parallel. When false, only the first branch with a met condition is executed. Defaults to true for backwards compatibility.",
|
|
2249
|
+
"default": true
|
|
2250
|
+
},
|
|
2199
2251
|
"schedule": {
|
|
2200
2252
|
"anyOf": [
|
|
2201
2253
|
{
|
|
@@ -3764,12 +3764,36 @@
|
|
|
3764
3764
|
},
|
|
3765
3765
|
"error_reason": {
|
|
3766
3766
|
"type": "string"
|
|
3767
|
+
},
|
|
3768
|
+
"input_context": {
|
|
3769
|
+
"$ref": "#/components/schemas/AutomationInputContext"
|
|
3767
3770
|
}
|
|
3768
3771
|
},
|
|
3769
3772
|
"required": [
|
|
3770
3773
|
"flow_id"
|
|
3771
3774
|
]
|
|
3772
3775
|
},
|
|
3776
|
+
"AutomationInputContext": {
|
|
3777
|
+
"type": "object",
|
|
3778
|
+
"description": "Optional. Source of the entity fed into this automation task. If omitted, the workflow's primary entity is used.\n",
|
|
3779
|
+
"required": [
|
|
3780
|
+
"source"
|
|
3781
|
+
],
|
|
3782
|
+
"properties": {
|
|
3783
|
+
"source": {
|
|
3784
|
+
"type": "string",
|
|
3785
|
+
"enum": [
|
|
3786
|
+
"trigger",
|
|
3787
|
+
"task"
|
|
3788
|
+
],
|
|
3789
|
+
"description": "`trigger` = workflow's primary (trigger) entity. `task` = entity produced by an upstream task in the graph.\n"
|
|
3790
|
+
},
|
|
3791
|
+
"task_id": {
|
|
3792
|
+
"type": "string",
|
|
3793
|
+
"description": "Required when source is `task`. The id of the upstream task whose output entity should feed this task."
|
|
3794
|
+
}
|
|
3795
|
+
}
|
|
3796
|
+
},
|
|
3773
3797
|
"AnalyticsInfo": {
|
|
3774
3798
|
"type": "object",
|
|
3775
3799
|
"properties": {
|
package/dist/bin/epilot.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
API_LIST
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-U5JW65I3.js";
|
|
5
5
|
|
|
6
6
|
// bin/epilot.ts
|
|
7
7
|
import { runMain } from "citty";
|
|
@@ -11,7 +11,7 @@ import { defineCommand } from "citty";
|
|
|
11
11
|
var main = defineCommand({
|
|
12
12
|
meta: {
|
|
13
13
|
name: "epilot",
|
|
14
|
-
version: "0.1.
|
|
14
|
+
version: "0.1.23",
|
|
15
15
|
description: "CLI for epilot APIs"
|
|
16
16
|
},
|
|
17
17
|
args: {
|
|
@@ -30,8 +30,8 @@ var main = defineCommand({
|
|
|
30
30
|
auth: () => import("../auth-CN5EFFDE.js").then((m) => m.default),
|
|
31
31
|
profile: () => import("../profile-OZJL5ZPT.js").then((m) => m.default),
|
|
32
32
|
config: () => import("../config-DGZIMLZK.js").then((m) => m.default),
|
|
33
|
-
completion: () => import("../completion-
|
|
34
|
-
upgrade: () => import("../upgrade-
|
|
33
|
+
completion: () => import("../completion-76TTN5FM.js").then((m) => m.default),
|
|
34
|
+
upgrade: () => import("../upgrade-D2KGUAYC.js").then((m) => m.default),
|
|
35
35
|
"access-token": () => import("../access-token-WWE6BDJH.js").then((m) => m.default),
|
|
36
36
|
address: () => import("../address-EH3C4CVB.js").then((m) => m.default),
|
|
37
37
|
"address-suggestions": () => import("../address-suggestions-RRSLOBFW.js").then((m) => m.default),
|
|
@@ -132,13 +132,13 @@ process.stderr.on("error", (err) => {
|
|
|
132
132
|
if (err.code === "EPIPE") process.exit(0);
|
|
133
133
|
throw err;
|
|
134
134
|
});
|
|
135
|
-
var VERSION = true ? "0.1.
|
|
135
|
+
var VERSION = true ? "0.1.23" : (await null).default.version;
|
|
136
136
|
var reorderedArgv = hoistFlagsAfterSubcommand(process.argv.slice(2));
|
|
137
137
|
process.argv = [process.argv[0], process.argv[1], ...reorderedArgv];
|
|
138
138
|
var args = process.argv.slice(2);
|
|
139
139
|
var completionsIdx = args.indexOf("--_completions");
|
|
140
140
|
if (completionsIdx >= 0) {
|
|
141
|
-
const { handleCompletions } = await import("../completion-
|
|
141
|
+
const { handleCompletions } = await import("../completion-76TTN5FM.js");
|
|
142
142
|
handleCompletions(args[completionsIdx + 1], args[completionsIdx + 2]);
|
|
143
143
|
process.exit(0);
|
|
144
144
|
}
|
|
@@ -208,8 +208,15 @@ var API_LIST = [
|
|
|
208
208
|
kebabName: "configuration-hub",
|
|
209
209
|
title: "Configuration Hub API",
|
|
210
210
|
serverUrl: "https://configuration-hub.sls.epilot.io",
|
|
211
|
-
operationCount:
|
|
212
|
-
operationIds: [
|
|
211
|
+
operationCount: 6,
|
|
212
|
+
operationIds: [
|
|
213
|
+
"listConfigTypes",
|
|
214
|
+
"listConfigs",
|
|
215
|
+
"getConfigDependencies",
|
|
216
|
+
"getConfigUsedBy",
|
|
217
|
+
"getIndex",
|
|
218
|
+
"rebuildIndex"
|
|
219
|
+
]
|
|
213
220
|
},
|
|
214
221
|
{
|
|
215
222
|
apiName: "consent",
|
|
@@ -508,7 +515,7 @@ var API_LIST = [
|
|
|
508
515
|
kebabName: "entity",
|
|
509
516
|
title: "Entity API",
|
|
510
517
|
serverUrl: "https://entity.sls.epilot.io",
|
|
511
|
-
operationCount:
|
|
518
|
+
operationCount: 87,
|
|
512
519
|
operationIds: [
|
|
513
520
|
"listSchemas",
|
|
514
521
|
"listSchemasV2",
|
|
@@ -541,6 +548,9 @@ var API_LIST = [
|
|
|
541
548
|
"createActivity",
|
|
542
549
|
"getActivity",
|
|
543
550
|
"attachActivity",
|
|
551
|
+
"applyChangeset",
|
|
552
|
+
"dismissChangeset",
|
|
553
|
+
"listChangesets",
|
|
544
554
|
"getEntityActivityFeed",
|
|
545
555
|
"getRelations",
|
|
546
556
|
"addRelations",
|
|
@@ -72,7 +72,7 @@ ${GREEN}${BOLD}Upgraded to @epilot/cli@${latest}${RESET}
|
|
|
72
72
|
}
|
|
73
73
|
});
|
|
74
74
|
var getCurrentVersion = () => {
|
|
75
|
-
if (true) return "0.1.
|
|
75
|
+
if (true) return "0.1.23";
|
|
76
76
|
try {
|
|
77
77
|
const output = execSync("npm ls -g @epilot/cli --depth=0 --json 2>/dev/null", {
|
|
78
78
|
encoding: "utf-8",
|