@epilot/cli 0.1.95 → 0.1.97
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/deduplication.json +80 -4
- package/definitions/design.json +65 -0
- package/definitions/integration-toolkit.json +180 -13
- package/dist/bin/epilot.js +6 -6
- package/dist/{chunk-SOTT5WKJ.js → chunk-6BGA56QC.js} +4 -2
- package/dist/{completion-IGVIBAFM.js → completion-6JGII43G.js} +1 -1
- package/dist/{upgrade-W43OKEIV.js → upgrade-3IF3ARUQ.js} +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -132,6 +132,35 @@
|
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
},
|
|
135
|
+
"/v1/duplicates/dismiss": {
|
|
136
|
+
"post": {
|
|
137
|
+
"operationId": "dismissDuplicates",
|
|
138
|
+
"summary": "dismissDuplicates",
|
|
139
|
+
"description": "Confirms entities as NOT duplicates: clears the internal duplicate-detection flags (_matching_entities) on each given entity, so they stop appearing as open duplicate sets. The records themselves are not modified otherwise.",
|
|
140
|
+
"tags": [],
|
|
141
|
+
"requestBody": {
|
|
142
|
+
"content": {
|
|
143
|
+
"application/json": {
|
|
144
|
+
"schema": {
|
|
145
|
+
"$ref": "#/components/schemas/DismissDuplicatesRequestBody"
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"responses": {
|
|
151
|
+
"200": {
|
|
152
|
+
"description": "Flags cleared",
|
|
153
|
+
"content": {
|
|
154
|
+
"application/json": {
|
|
155
|
+
"schema": {
|
|
156
|
+
"$ref": "#/components/schemas/DismissDuplicatesResponse"
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
},
|
|
135
164
|
"/v1/uniqueness-criteria": {
|
|
136
165
|
"get": {
|
|
137
166
|
"operationId": "listUniquenessCriteria",
|
|
@@ -329,10 +358,19 @@
|
|
|
329
358
|
"minItems": 1
|
|
330
359
|
},
|
|
331
360
|
"DeduplicateRequestResponse": {
|
|
332
|
-
"type": "
|
|
333
|
-
"
|
|
334
|
-
"
|
|
335
|
-
|
|
361
|
+
"type": "object",
|
|
362
|
+
"properties": {
|
|
363
|
+
"deduplicatedEntities": {
|
|
364
|
+
"type": "array",
|
|
365
|
+
"items": {
|
|
366
|
+
"$ref": "#/components/schemas/Entity"
|
|
367
|
+
},
|
|
368
|
+
"description": "The merged survivor entity of each processed set"
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
"required": [
|
|
372
|
+
"deduplicatedEntities"
|
|
373
|
+
]
|
|
336
374
|
},
|
|
337
375
|
"Entity": {
|
|
338
376
|
"type": "object",
|
|
@@ -557,6 +595,44 @@
|
|
|
557
595
|
"matched_attributes"
|
|
558
596
|
]
|
|
559
597
|
},
|
|
598
|
+
"DismissDuplicatesRequestBody": {
|
|
599
|
+
"type": "object",
|
|
600
|
+
"properties": {
|
|
601
|
+
"schema": {
|
|
602
|
+
"type": "string",
|
|
603
|
+
"minLength": 1
|
|
604
|
+
},
|
|
605
|
+
"entityIds": {
|
|
606
|
+
"type": "array",
|
|
607
|
+
"items": {
|
|
608
|
+
"type": "string",
|
|
609
|
+
"minLength": 1
|
|
610
|
+
},
|
|
611
|
+
"minItems": 1,
|
|
612
|
+
"maxItems": 100,
|
|
613
|
+
"description": "Entities whose duplicate flags (_matching_entities) are cleared — the records are confirmed as NOT duplicates and stay separate"
|
|
614
|
+
}
|
|
615
|
+
},
|
|
616
|
+
"required": [
|
|
617
|
+
"schema",
|
|
618
|
+
"entityIds"
|
|
619
|
+
]
|
|
620
|
+
},
|
|
621
|
+
"DismissDuplicatesResponse": {
|
|
622
|
+
"type": "object",
|
|
623
|
+
"properties": {
|
|
624
|
+
"dismissed": {
|
|
625
|
+
"type": "array",
|
|
626
|
+
"items": {
|
|
627
|
+
"type": "string"
|
|
628
|
+
},
|
|
629
|
+
"description": "Entity ids whose duplicate flags were cleared"
|
|
630
|
+
}
|
|
631
|
+
},
|
|
632
|
+
"required": [
|
|
633
|
+
"dismissed"
|
|
634
|
+
]
|
|
635
|
+
},
|
|
560
636
|
"UniquenessCriteriaListResponse": {
|
|
561
637
|
"type": "object",
|
|
562
638
|
"properties": {
|
package/definitions/design.json
CHANGED
|
@@ -302,6 +302,71 @@
|
|
|
302
302
|
}
|
|
303
303
|
}
|
|
304
304
|
},
|
|
305
|
+
"/v1/designs/{designId}/duplicate": {
|
|
306
|
+
"post": {
|
|
307
|
+
"operationId": "duplicateDesign",
|
|
308
|
+
"summary": "duplicateDesign",
|
|
309
|
+
"description": "Duplicate an existing design owned by the user organization. The copy carries over the style, custom CSS and name (marked as a copy) but does NOT carry over journey/portal relations, so the new design starts with 0 consumers, exactly like a freshly created design.",
|
|
310
|
+
"tags": [
|
|
311
|
+
"design-builder"
|
|
312
|
+
],
|
|
313
|
+
"parameters": [
|
|
314
|
+
{
|
|
315
|
+
"in": "path",
|
|
316
|
+
"name": "designId",
|
|
317
|
+
"required": true,
|
|
318
|
+
"schema": {
|
|
319
|
+
"$ref": "#/components/schemas/DesignId"
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
],
|
|
323
|
+
"responses": {
|
|
324
|
+
"201": {
|
|
325
|
+
"description": "Success - design duplicated with success.",
|
|
326
|
+
"content": {
|
|
327
|
+
"application/json": {
|
|
328
|
+
"schema": {
|
|
329
|
+
"$ref": "#/components/schemas/AddDesignRes"
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
},
|
|
334
|
+
"400": {
|
|
335
|
+
"description": "Validation Errors",
|
|
336
|
+
"content": {
|
|
337
|
+
"application/json": {
|
|
338
|
+
"schema": {
|
|
339
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
},
|
|
344
|
+
"401": {
|
|
345
|
+
"description": "Authentication Errors",
|
|
346
|
+
"content": {
|
|
347
|
+
"application/json": {
|
|
348
|
+
"schema": {
|
|
349
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
},
|
|
354
|
+
"404": {
|
|
355
|
+
"description": "No design found"
|
|
356
|
+
},
|
|
357
|
+
"500": {
|
|
358
|
+
"description": "Other errors",
|
|
359
|
+
"content": {
|
|
360
|
+
"application/json": {
|
|
361
|
+
"schema": {
|
|
362
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
},
|
|
305
370
|
"/v1/designs/{designId}/parse": {
|
|
306
371
|
"get": {
|
|
307
372
|
"operationId": "getThemeFromDesign",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.0.3",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Integration Toolkit API",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.8.0",
|
|
6
6
|
"description": "API for integrating with external systems in a standardised way."
|
|
7
7
|
},
|
|
8
8
|
"tags": [
|
|
@@ -2075,7 +2075,7 @@
|
|
|
2075
2075
|
"/v2/integrations/{integrationId}/use-cases/{useCaseId}/secure-proxy-whitelist": {
|
|
2076
2076
|
"get": {
|
|
2077
2077
|
"operationId": "getSecureProxyWhitelist",
|
|
2078
|
-
"summary": "
|
|
2078
|
+
"summary": "getSecureProxyWhitelist",
|
|
2079
2079
|
"description": "Returns the current allowed_domains, allowed_ips, and vpc_mode for a secure_proxy use case.\nStaff-only — gated by internal-auth issuer AND admin-portal Cognito user pool membership.\nRejects Login-As tokens.\n",
|
|
2080
2080
|
"tags": [
|
|
2081
2081
|
"integrations",
|
|
@@ -2135,7 +2135,7 @@
|
|
|
2135
2135
|
},
|
|
2136
2136
|
"put": {
|
|
2137
2137
|
"operationId": "updateSecureProxyWhitelist",
|
|
2138
|
-
"summary": "
|
|
2138
|
+
"summary": "updateSecureProxyWhitelist",
|
|
2139
2139
|
"description": "Replaces allowed_domains and/or allowed_ips on a secure_proxy use case.\nAt least one of the two fields is required. Validation mirrors the CLI's\n`validateDomainPatterns` / `validateCidrs`. Writes a USECASE_HISTORY row\nwith the admin user's email as `changed_by`.\n\nUpdate semantics per field:\n - **omitted** — field is not modified; the stored value is preserved.\n - **non-empty array** — the stored value is replaced with the supplied list.\n - **empty array (`[]`)** — the list is cleared (stored as `[]`). This is\n the canonical way to remove all entries. `null` is not accepted.\n\nStaff-only — same auth gates as GET.\n",
|
|
2140
2140
|
"tags": [
|
|
2141
2141
|
"integrations",
|
|
@@ -2207,7 +2207,7 @@
|
|
|
2207
2207
|
"/v2/integrations/{integrationId}/use-cases/{useCaseId}/secure-proxy-whitelist/history": {
|
|
2208
2208
|
"get": {
|
|
2209
2209
|
"operationId": "listSecureProxyWhitelistHistory",
|
|
2210
|
-
"summary": "
|
|
2210
|
+
"summary": "listSecureProxyWhitelistHistory",
|
|
2211
2211
|
"description": "Returns the most recent USECASE_HISTORY entries for a secure_proxy use case,\nin reverse chronological order (newest first). Each entry includes the\nactor email (`changed_by`), the ISO-8601 timestamp (`history_created_at`),\nthe `change_description` (free-text action), and the full `configuration`\nsnapshot — from which UI-08 computes a before/after diff between consecutive\nentries.\n\nStaff-only — gated by internal-auth issuer AND admin-portal Cognito user pool\nmembership. Rejects Login-As tokens (same auth gate as the GET / PUT\nsecure-proxy-whitelist operations).\n\nThin wrapper over the service-layer `listUseCaseHistory` that powers\n`GET /v1/integrations/{integrationId}/use-cases/{useCaseId}/history` — the\nseparate path exists because the /v1 variant is tenant-gated and admin-portal\ninternal-auth tokens do not carry tenant permissions.\n",
|
|
2212
2212
|
"tags": [
|
|
2213
2213
|
"integrations",
|
|
@@ -3357,7 +3357,7 @@
|
|
|
3357
3357
|
"/v1/integrations/secure-proxies": {
|
|
3358
3358
|
"get": {
|
|
3359
3359
|
"operationId": "listSecureProxies",
|
|
3360
|
-
"summary": "
|
|
3360
|
+
"summary": "listSecureProxies",
|
|
3361
3361
|
"description": "Lists all secure_proxy use cases across all integrations for the authenticated organization.\nReturns minimal data suitable for dropdowns and selection UIs.\n",
|
|
3362
3362
|
"tags": [
|
|
3363
3363
|
"integrations"
|
|
@@ -3401,7 +3401,7 @@
|
|
|
3401
3401
|
"/v1/secure-proxy": {
|
|
3402
3402
|
"post": {
|
|
3403
3403
|
"operationId": "secureProxy",
|
|
3404
|
-
"summary": "
|
|
3404
|
+
"summary": "secureProxy",
|
|
3405
3405
|
"description": "Routes an HTTP request through a VPC with either static IP egress or VPN secure link access.\nThe VPC mode is determined by the referenced secure_proxy use case configuration.\nFor secure_link mode, the target URL must match the use case's allowed_domains whitelist.\n",
|
|
3406
3406
|
"tags": [
|
|
3407
3407
|
"proxy"
|
|
@@ -3484,7 +3484,7 @@
|
|
|
3484
3484
|
"/v1/managed-call/{slug}/execute": {
|
|
3485
3485
|
"post": {
|
|
3486
3486
|
"operationId": "managedCallExecute",
|
|
3487
|
-
"summary": "
|
|
3487
|
+
"summary": "managedCallExecute",
|
|
3488
3488
|
"description": "Execute a managed call operation synchronously. The slug in the path acts as the RPC method name.\nCalls an external partner API with JSONata mapping on both request and response.\n",
|
|
3489
3489
|
"tags": [
|
|
3490
3490
|
"managed-call"
|
|
@@ -3573,7 +3573,7 @@
|
|
|
3573
3573
|
"/v1/integrations/{integrationId}/generate-types-preview": {
|
|
3574
3574
|
"post": {
|
|
3575
3575
|
"operationId": "generateTypesPreview",
|
|
3576
|
-
"summary": "
|
|
3576
|
+
"summary": "generateTypesPreview",
|
|
3577
3577
|
"description": "Analyses the JSONata mappings of all managed-call use cases in the integration and returns scaffolded type descriptors. The frontend uses these to show the type editor modal where developers fill in leaf types.\n",
|
|
3578
3578
|
"tags": [
|
|
3579
3579
|
"integrations"
|
|
@@ -3623,7 +3623,7 @@
|
|
|
3623
3623
|
"/v1/integrations/{integrationId}/generate-types": {
|
|
3624
3624
|
"post": {
|
|
3625
3625
|
"operationId": "generateTypes",
|
|
3626
|
-
"summary": "
|
|
3626
|
+
"summary": "generateTypes",
|
|
3627
3627
|
"description": "Generates a complete TypeScript npm package with typed interfaces for all managed-call use cases. This is a stateless operation that does not persist any changes. Use the commit-types endpoint to lock configurations after review.\n",
|
|
3628
3628
|
"tags": [
|
|
3629
3629
|
"integrations"
|
|
@@ -3683,7 +3683,7 @@
|
|
|
3683
3683
|
"/v1/integrations/{integrationId}/commit-types": {
|
|
3684
3684
|
"post": {
|
|
3685
3685
|
"operationId": "commitTypes",
|
|
3686
|
-
"summary": "
|
|
3686
|
+
"summary": "commitTypes",
|
|
3687
3687
|
"description": "Commits the generated types by locking use case configurations and updating version tracking. Should be called after the user reviews and downloads the generated package.\n",
|
|
3688
3688
|
"tags": [
|
|
3689
3689
|
"integrations"
|
|
@@ -6214,7 +6214,11 @@
|
|
|
6214
6214
|
"change_description": {
|
|
6215
6215
|
"type": "string",
|
|
6216
6216
|
"maxLength": 2000,
|
|
6217
|
-
"description": "
|
|
6217
|
+
"description": "Reason given for the update that produced the current version. Absent when the update supplied none — it is not inherited from the previous version.\n"
|
|
6218
|
+
},
|
|
6219
|
+
"changed_by": {
|
|
6220
|
+
"type": "string",
|
|
6221
|
+
"description": "User ID recorded for the update that produced the current version. Absent when the update had no user context, e.g. an automated sync.\n"
|
|
6218
6222
|
},
|
|
6219
6223
|
"created_at": {
|
|
6220
6224
|
"type": "string",
|
|
@@ -7928,6 +7932,20 @@
|
|
|
7928
7932
|
"$ref": "#/components/schemas/MeterReadingUpdate"
|
|
7929
7933
|
}
|
|
7930
7934
|
},
|
|
7935
|
+
"prune_scope_updates": {
|
|
7936
|
+
"type": "array",
|
|
7937
|
+
"description": "Resolved prune scopes produced by entity mappings using `upsert-prune-scope-purge` / `upsert-prune-scope-delete`. Each entry describes the entities that would be deleted at runtime because they exist in scope but were not part of this payload.",
|
|
7938
|
+
"items": {
|
|
7939
|
+
"$ref": "#/components/schemas/EntityPruneScopeUpdate"
|
|
7940
|
+
}
|
|
7941
|
+
},
|
|
7942
|
+
"meter_readings_prune_scope_updates": {
|
|
7943
|
+
"type": "array",
|
|
7944
|
+
"description": "Resolved prune scopes produced by meter reading mappings using `upsert-prune-scope`. Each entry describes the readings that would be deleted at runtime for a meter (+ counter) because they were not part of this payload.",
|
|
7945
|
+
"items": {
|
|
7946
|
+
"$ref": "#/components/schemas/MeterReadingPruneScopeUpdate"
|
|
7947
|
+
}
|
|
7948
|
+
},
|
|
7931
7949
|
"warnings": {
|
|
7932
7950
|
"type": "array",
|
|
7933
7951
|
"description": "Validation warnings about the configuration (e.g., unique_ids referencing non-indexed fields)",
|
|
@@ -7964,7 +7982,8 @@
|
|
|
7964
7982
|
"required": [
|
|
7965
7983
|
"entity_slug",
|
|
7966
7984
|
"unique_identifiers",
|
|
7967
|
-
"attributes"
|
|
7985
|
+
"attributes",
|
|
7986
|
+
"mode"
|
|
7968
7987
|
],
|
|
7969
7988
|
"properties": {
|
|
7970
7989
|
"entity_slug": {
|
|
@@ -7980,6 +7999,38 @@
|
|
|
7980
7999
|
"type": "object",
|
|
7981
8000
|
"description": "Mapped attribute values",
|
|
7982
8001
|
"additionalProperties": true
|
|
8002
|
+
},
|
|
8003
|
+
"pricing": {
|
|
8004
|
+
"type": "object",
|
|
8005
|
+
"description": "Present when the entity mapping has a `pricing` block. Echoes the pricing configuration and the data extracted for it, so mapping authors can see what would be sent to the pricing service.",
|
|
8006
|
+
"required": [
|
|
8007
|
+
"config",
|
|
8008
|
+
"data"
|
|
8009
|
+
],
|
|
8010
|
+
"properties": {
|
|
8011
|
+
"config": {
|
|
8012
|
+
"type": "object",
|
|
8013
|
+
"additionalProperties": true,
|
|
8014
|
+
"description": "The pricing configuration from the entity mapping"
|
|
8015
|
+
},
|
|
8016
|
+
"data": {
|
|
8017
|
+
"type": "array",
|
|
8018
|
+
"description": "The pricing input data extracted from the payload",
|
|
8019
|
+
"items": {
|
|
8020
|
+
"type": "object",
|
|
8021
|
+
"additionalProperties": true
|
|
8022
|
+
}
|
|
8023
|
+
}
|
|
8024
|
+
}
|
|
8025
|
+
},
|
|
8026
|
+
"mode": {
|
|
8027
|
+
"type": "string",
|
|
8028
|
+
"enum": [
|
|
8029
|
+
"upsert",
|
|
8030
|
+
"delete",
|
|
8031
|
+
"purge"
|
|
8032
|
+
],
|
|
8033
|
+
"description": "Effective operation mode applied to this entity at runtime. `upsert-prune-scope-purge` / `upsert-prune-scope-delete` configurations report `upsert` here, because the individual entities in the payload are upserted — the destructive part of those modes is reported separately in `prune_scope_updates`. For `delete` / `purge`, `attributes` are still mapped and returned but ignored at runtime: only `unique_identifiers` are used to locate the entity to remove."
|
|
7983
8034
|
}
|
|
7984
8035
|
}
|
|
7985
8036
|
},
|
|
@@ -7987,7 +8038,8 @@
|
|
|
7987
8038
|
"type": "object",
|
|
7988
8039
|
"required": [
|
|
7989
8040
|
"meter",
|
|
7990
|
-
"attributes"
|
|
8041
|
+
"attributes",
|
|
8042
|
+
"mode"
|
|
7991
8043
|
],
|
|
7992
8044
|
"properties": {
|
|
7993
8045
|
"meter": {
|
|
@@ -8017,6 +8069,121 @@
|
|
|
8017
8069
|
"type": "object",
|
|
8018
8070
|
"additionalProperties": true,
|
|
8019
8071
|
"description": "Meter reading attributes. Required: external_id, timestamp, source, value. `timestamp` must be ISO 8601 — either `YYYY-MM-DD` or `YYYY-MM-DDTHH:mm:ss` (with optional fractional seconds and optional `Z` / `±HH:mm` timezone offset); non-ISO formats (e.g. `DD.MM.YYYY` or epoch numbers) are rejected and must be converted upstream via a `jsonataExpression` (e.g. `$fromMillis(...)`). Date-only values are normalized to midnight UTC and offset-less date-times are anchored to UTC before being forwarded to the metering API. `source` must be one of: ECP, ERP, 360, journey-submission. `reason` (optional) must be one of: regular, irregular, last, first, meter_change, contract_change, meter_adjustment (or empty/null)."
|
|
8072
|
+
},
|
|
8073
|
+
"mode": {
|
|
8074
|
+
"type": "string",
|
|
8075
|
+
"enum": [
|
|
8076
|
+
"upsert",
|
|
8077
|
+
"delete"
|
|
8078
|
+
],
|
|
8079
|
+
"description": "Effective operation mode applied to this reading at runtime. `upsert-prune-scope` configurations report `upsert` here — their destructive part is reported separately in `meter_readings_prune_scope_updates`."
|
|
8080
|
+
}
|
|
8081
|
+
}
|
|
8082
|
+
},
|
|
8083
|
+
"EntityPruneScopeUpdate": {
|
|
8084
|
+
"type": "object",
|
|
8085
|
+
"description": "A resolved entity prune scope. At runtime, entities of `entity_slug` found within `scope` whose unique identifiers are not listed in `keep_unique_ids` are removed using `deletion_mode`.",
|
|
8086
|
+
"required": [
|
|
8087
|
+
"entity_slug",
|
|
8088
|
+
"scope",
|
|
8089
|
+
"keep_unique_ids",
|
|
8090
|
+
"deletion_mode"
|
|
8091
|
+
],
|
|
8092
|
+
"properties": {
|
|
8093
|
+
"entity_slug": {
|
|
8094
|
+
"type": "string",
|
|
8095
|
+
"description": "The entity type that would be pruned"
|
|
8096
|
+
},
|
|
8097
|
+
"scope": {
|
|
8098
|
+
"type": "object",
|
|
8099
|
+
"description": "The scope configuration resolved against the payload",
|
|
8100
|
+
"required": [
|
|
8101
|
+
"scope_mode"
|
|
8102
|
+
],
|
|
8103
|
+
"properties": {
|
|
8104
|
+
"scope_mode": {
|
|
8105
|
+
"type": "string",
|
|
8106
|
+
"enum": [
|
|
8107
|
+
"relations",
|
|
8108
|
+
"query"
|
|
8109
|
+
],
|
|
8110
|
+
"description": "How the entities in scope are found"
|
|
8111
|
+
},
|
|
8112
|
+
"schema": {
|
|
8113
|
+
"type": "string",
|
|
8114
|
+
"description": "Schema of the related entity defining the scope (`relations` scope_mode only)"
|
|
8115
|
+
},
|
|
8116
|
+
"unique_ids": {
|
|
8117
|
+
"type": "object",
|
|
8118
|
+
"additionalProperties": true,
|
|
8119
|
+
"description": "Resolved unique identifiers of the related scope entity (`relations` scope_mode only)"
|
|
8120
|
+
},
|
|
8121
|
+
"query": {
|
|
8122
|
+
"type": "object",
|
|
8123
|
+
"additionalProperties": true,
|
|
8124
|
+
"description": "Resolved query parameters used to find entities in scope (`query` scope_mode only)"
|
|
8125
|
+
}
|
|
8126
|
+
}
|
|
8127
|
+
},
|
|
8128
|
+
"keep_unique_ids": {
|
|
8129
|
+
"type": "array",
|
|
8130
|
+
"description": "Unique identifiers of the entities upserted by this payload. Everything else found in scope would be deleted.",
|
|
8131
|
+
"items": {
|
|
8132
|
+
"type": "object",
|
|
8133
|
+
"additionalProperties": true
|
|
8134
|
+
}
|
|
8135
|
+
},
|
|
8136
|
+
"deletion_mode": {
|
|
8137
|
+
"type": "string",
|
|
8138
|
+
"enum": [
|
|
8139
|
+
"delete",
|
|
8140
|
+
"purge"
|
|
8141
|
+
],
|
|
8142
|
+
"description": "`delete` soft deletes the pruned entities, `purge` removes them permanently"
|
|
8143
|
+
}
|
|
8144
|
+
}
|
|
8145
|
+
},
|
|
8146
|
+
"MeterReadingPruneScopeUpdate": {
|
|
8147
|
+
"type": "object",
|
|
8148
|
+
"description": "A resolved meter reading prune scope. At runtime, readings of the given meter (+ counter) whose external ids are not listed in `keep_external_ids` are deleted.",
|
|
8149
|
+
"required": [
|
|
8150
|
+
"meter",
|
|
8151
|
+
"keep_external_ids"
|
|
8152
|
+
],
|
|
8153
|
+
"properties": {
|
|
8154
|
+
"meter": {
|
|
8155
|
+
"type": "object",
|
|
8156
|
+
"required": [
|
|
8157
|
+
"$entity_unique_ids"
|
|
8158
|
+
],
|
|
8159
|
+
"properties": {
|
|
8160
|
+
"$entity_unique_ids": {
|
|
8161
|
+
"type": "object",
|
|
8162
|
+
"additionalProperties": true,
|
|
8163
|
+
"description": "Unique identifiers for the meter"
|
|
8164
|
+
}
|
|
8165
|
+
}
|
|
8166
|
+
},
|
|
8167
|
+
"meter_counter": {
|
|
8168
|
+
"type": "object",
|
|
8169
|
+
"properties": {
|
|
8170
|
+
"$entity_unique_ids": {
|
|
8171
|
+
"type": "object",
|
|
8172
|
+
"additionalProperties": true,
|
|
8173
|
+
"description": "Unique identifiers for the meter counter"
|
|
8174
|
+
}
|
|
8175
|
+
}
|
|
8176
|
+
},
|
|
8177
|
+
"keep_external_ids": {
|
|
8178
|
+
"type": "array",
|
|
8179
|
+
"description": "External ids of the readings present in this payload. All other readings in scope would be deleted. An empty array means every reading in scope would be deleted.",
|
|
8180
|
+
"items": {
|
|
8181
|
+
"type": "string"
|
|
8182
|
+
}
|
|
8183
|
+
},
|
|
8184
|
+
"source": {
|
|
8185
|
+
"type": "string",
|
|
8186
|
+
"description": "When set, only readings with this source are eligible for pruning (e.g. `ERP`)"
|
|
8020
8187
|
}
|
|
8021
8188
|
}
|
|
8022
8189
|
},
|
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-6BGA56QC.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.97",
|
|
15
15
|
description: "CLI for epilot APIs"
|
|
16
16
|
},
|
|
17
17
|
args: {
|
|
@@ -30,8 +30,8 @@ var main = defineCommand({
|
|
|
30
30
|
auth: () => import("../auth-WMXFMPWE.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-6JGII43G.js").then((m) => m.default),
|
|
34
|
+
upgrade: () => import("../upgrade-3IF3ARUQ.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),
|
|
@@ -134,13 +134,13 @@ process.stderr.on("error", (err) => {
|
|
|
134
134
|
if (err.code === "EPIPE") process.exit(0);
|
|
135
135
|
throw err;
|
|
136
136
|
});
|
|
137
|
-
var VERSION = true ? "0.1.
|
|
137
|
+
var VERSION = true ? "0.1.97" : (await null).default.version;
|
|
138
138
|
var reorderedArgv = hoistFlagsAfterSubcommand(process.argv.slice(2));
|
|
139
139
|
process.argv = [process.argv[0], process.argv[1], ...reorderedArgv];
|
|
140
140
|
var args = process.argv.slice(2);
|
|
141
141
|
var completionsIdx = args.indexOf("--_completions");
|
|
142
142
|
if (completionsIdx >= 0) {
|
|
143
|
-
const { handleCompletions } = await import("../completion-
|
|
143
|
+
const { handleCompletions } = await import("../completion-6JGII43G.js");
|
|
144
144
|
handleCompletions(args[completionsIdx + 1], args[completionsIdx + 2]);
|
|
145
145
|
process.exit(0);
|
|
146
146
|
}
|
|
@@ -519,12 +519,13 @@ var API_LIST = [
|
|
|
519
519
|
kebabName: "deduplication",
|
|
520
520
|
title: "Deduplication API",
|
|
521
521
|
serverUrl: "https://deduplication.sls.epilot.io",
|
|
522
|
-
operationCount:
|
|
522
|
+
operationCount: 10,
|
|
523
523
|
operationIds: [
|
|
524
524
|
"deduplicate",
|
|
525
525
|
"deduplicateAsync",
|
|
526
526
|
"getDeduplicationJob",
|
|
527
527
|
"detectDuplicates",
|
|
528
|
+
"dismissDuplicates",
|
|
528
529
|
"listUniquenessCriteria",
|
|
529
530
|
"createUniquenessCriteria",
|
|
530
531
|
"getUniquenessCriteria",
|
|
@@ -537,13 +538,14 @@ var API_LIST = [
|
|
|
537
538
|
kebabName: "design",
|
|
538
539
|
title: "Design Builder API v2",
|
|
539
540
|
serverUrl: "https://design-builder-api.sls.epilot.io",
|
|
540
|
-
operationCount:
|
|
541
|
+
operationCount: 14,
|
|
541
542
|
operationIds: [
|
|
542
543
|
"getAllDesigns",
|
|
543
544
|
"addDesign",
|
|
544
545
|
"getDesign",
|
|
545
546
|
"updateDesign",
|
|
546
547
|
"deleteDesign",
|
|
548
|
+
"duplicateDesign",
|
|
547
549
|
"getThemeFromDesign",
|
|
548
550
|
"getFiles",
|
|
549
551
|
"uploadFile",
|
|
@@ -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.97";
|
|
76
76
|
try {
|
|
77
77
|
const output = execSync("npm ls -g @epilot/cli --depth=0 --json 2>/dev/null", {
|
|
78
78
|
encoding: "utf-8",
|