@epilot/cli 0.1.122 → 0.1.123
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
CHANGED
|
@@ -3429,7 +3429,7 @@
|
|
|
3429
3429
|
"post": {
|
|
3430
3430
|
"operationId": "restoreBlueprintDeploymentV3",
|
|
3431
3431
|
"summary": "restoreBlueprintDeploymentV3",
|
|
3432
|
-
"description": "Roll a deployment back to its pre-install state. Two phases:\n\n 1. Upsert — re-applies the captured payloads via snapshot-api's\n `:restore` (server-side; runs config-engine.apply with captured\n target ids pre-seeded). Skipped for pure-create deployments\n whose snapshot was empty.\n 2. Delete sweep — for lineage rows of this blueprint instance not\n present in the snapshot's captured set, deletes the live\n resource via the type's adapter. Co-ownership / drift /\n no-delete-capability skip the entry with the corresponding\n reason.\n\nResolves `(blueprint_id, job_id)` to the entry in\n`Blueprint.deployments[]` and reads its `snapshot_id` and\n`destination_blueprint_id` — the caller never needs to handle\nsnapshot ids directly.\n\nAsync — returns 202 with a job id. Poll the job to track progress.\nThe per-instance lock (`installation_status === 'IN_PROGRESS'`)\
|
|
3432
|
+
"description": "Roll a deployment back to its pre-install state. Two phases:\n\n 1. Upsert — re-applies the captured payloads via snapshot-api's\n `:restore` (server-side; runs config-engine.apply with captured\n target ids pre-seeded). Skipped for pure-create deployments\n whose snapshot was empty.\n 2. Delete sweep — for lineage rows of this blueprint instance not\n present in the snapshot's captured set, deletes the live\n resource via the type's adapter. Co-ownership / drift /\n no-delete-capability skip the entry with the corresponding\n reason.\n\nResolves `(blueprint_id, job_id)` to the entry in\n`Blueprint.deployments[]` and reads its `snapshot_id` and\n`destination_blueprint_id` — the caller never needs to handle\nsnapshot ids directly.\n\nAsync — returns 202 with a job id. Poll the job to track progress.\nThe restore holds its own per-instance lock (`active_restore_job_id`),\nseparate from `installation_status`. Starting a restore is rejected with\n409 when another restore already holds that lock, or when an install is\nrunning (`installation_status === 'IN_PROGRESS'`). Keeping the two locks\ndistinct keeps installs and reverts decoupled: an in-flight or failed\nrestore never overwrites `installation_status`, which keeps reflecting\nthe actual install outcome (and drives the install badge in the\nBlueprints overview) throughout the revert.\n",
|
|
3433
3433
|
"tags": [
|
|
3434
3434
|
"Blueprints"
|
|
3435
3435
|
],
|
|
@@ -4592,6 +4592,17 @@
|
|
|
4592
4592
|
"FAILED"
|
|
4593
4593
|
]
|
|
4594
4594
|
},
|
|
4595
|
+
"active_restore_job_id": {
|
|
4596
|
+
"type": "string",
|
|
4597
|
+
"nullable": true,
|
|
4598
|
+
"description": "ID of the restore (revert) job currently holding a lock on this\nblueprint instance's resources, or null/absent when no revert is\nrunning. Deliberately separate from `installation_status`: installs\nand reverts stay decoupled, so a revert must not overwrite install\nhealth — `installation_status` keeps reflecting the actual install\noutcome (and drives the install badge in the Blueprints overview)\nfor the duration of the revert.\n"
|
|
4599
|
+
},
|
|
4600
|
+
"active_restore_started_at": {
|
|
4601
|
+
"type": "string",
|
|
4602
|
+
"format": "date-time",
|
|
4603
|
+
"nullable": true,
|
|
4604
|
+
"description": "ISO timestamp of when the current restore lock\n(`active_restore_job_id`) was acquired, or null/absent when no revert\nis running. Written and cleared alongside `active_restore_job_id`.\nLets the lock self-expire: a lock older than the staleness threshold\n(whose job never completed the sweep, e.g. the state machine was\naborted) is treated as stale so a new revert can proceed instead of\nbeing blocked forever.\n"
|
|
4605
|
+
},
|
|
4595
4606
|
"created_at": {
|
|
4596
4607
|
"type": "string",
|
|
4597
4608
|
"format": "date-time"
|
|
@@ -5567,6 +5578,15 @@
|
|
|
5567
5578
|
},
|
|
5568
5579
|
"error_message": {
|
|
5569
5580
|
"type": "string"
|
|
5581
|
+
},
|
|
5582
|
+
"error_code": {
|
|
5583
|
+
"type": "string",
|
|
5584
|
+
"description": "Stable machine code for a failed resource, when config-engine threw a\ntyped error. Keys a translation in the Blueprints UI; `error_message`\nis the English fallback when absent or unrecognised.\n"
|
|
5585
|
+
},
|
|
5586
|
+
"error_data": {
|
|
5587
|
+
"type": "object",
|
|
5588
|
+
"additionalProperties": true,
|
|
5589
|
+
"description": "Interpolation values for the translated `error_code` message."
|
|
5570
5590
|
}
|
|
5571
5591
|
}
|
|
5572
5592
|
},
|
|
@@ -5610,7 +5630,10 @@
|
|
|
5610
5630
|
"modified",
|
|
5611
5631
|
"delete_unsupported",
|
|
5612
5632
|
"heuristic_match",
|
|
5613
|
-
"co_owned"
|
|
5633
|
+
"co_owned",
|
|
5634
|
+
"dependency_protected",
|
|
5635
|
+
"already_deleted",
|
|
5636
|
+
"non_revertible"
|
|
5614
5637
|
]
|
|
5615
5638
|
},
|
|
5616
5639
|
"last_synced_at": {
|
|
@@ -5652,6 +5675,29 @@
|
|
|
5652
5675
|
}
|
|
5653
5676
|
}
|
|
5654
5677
|
}
|
|
5678
|
+
},
|
|
5679
|
+
"protected_by": {
|
|
5680
|
+
"type": "array",
|
|
5681
|
+
"description": "Only set when `reason == dependency_protected`. The surviving\nresource(s) whose 'hard' reference to this one is why it wasn't\ndeleted (e.g. a skipped Journey still triggering this Automation).\n",
|
|
5682
|
+
"items": {
|
|
5683
|
+
"type": "object",
|
|
5684
|
+
"required": [
|
|
5685
|
+
"lineage_id",
|
|
5686
|
+
"type"
|
|
5687
|
+
],
|
|
5688
|
+
"properties": {
|
|
5689
|
+
"lineage_id": {
|
|
5690
|
+
"type": "string"
|
|
5691
|
+
},
|
|
5692
|
+
"type": {
|
|
5693
|
+
"type": "string"
|
|
5694
|
+
},
|
|
5695
|
+
"target_id": {
|
|
5696
|
+
"type": "string",
|
|
5697
|
+
"nullable": true
|
|
5698
|
+
}
|
|
5699
|
+
}
|
|
5700
|
+
}
|
|
5655
5701
|
}
|
|
5656
5702
|
}
|
|
5657
5703
|
},
|
package/dist/bin/epilot.js
CHANGED
|
@@ -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.123",
|
|
15
15
|
description: "CLI for epilot APIs"
|
|
16
16
|
},
|
|
17
17
|
args: {
|
|
@@ -31,7 +31,7 @@ var main = defineCommand({
|
|
|
31
31
|
profile: () => import("../profile-OZJL5ZPT.js").then((m) => m.default),
|
|
32
32
|
config: () => import("../config-DGZIMLZK.js").then((m) => m.default),
|
|
33
33
|
completion: () => import("../completion-F6MX5VSK.js").then((m) => m.default),
|
|
34
|
-
upgrade: () => import("../upgrade-
|
|
34
|
+
upgrade: () => import("../upgrade-6E2SELZJ.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,7 +134,7 @@ 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.123" : (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);
|
|
@@ -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.123";
|
|
76
76
|
try {
|
|
77
77
|
const output = execSync("npm ls -g @epilot/cli --depth=0 --json 2>/dev/null", {
|
|
78
78
|
encoding: "utf-8",
|