swallowkit 2.0.0-alpha.6 → 2.0.0-alpha.7
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/dist/cli/commands/provision.d.ts +2 -0
- package/dist/cli/commands/provision.d.ts.map +1 -1
- package/dist/cli/commands/provision.js +210 -108
- package/dist/cli/commands/provision.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/core/project/capabilities.js +2 -2
- package/dist/core/project/capabilities.js.map +1 -1
- package/dist/core/project/workflows.d.ts.map +1 -1
- package/dist/core/project/workflows.js +2 -0
- package/dist/core/project/workflows.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/agent-instructions.test.ts +2 -0
- package/src/__tests__/fixtures/azure-cli.cjs +8 -0
- package/src/__tests__/provision-runtime.test.ts +76 -2
- package/src/cli/commands/provision.ts +216 -107
- package/src/cli/index.ts +2 -2
- package/src/core/project/agent-templates/AGENTS.md +4 -0
- package/src/core/project/agent-templates/CLAUDE.md +2 -0
- package/src/core/project/agent-templates/copilot-instructions.md +2 -0
- package/src/core/project/capabilities.ts +2 -2
- package/src/core/project/workflows.ts +2 -0
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { ApplyProvisionResult, ProvisionPlanData } from "../../core/operations/provision-operations";
|
|
3
|
+
export declare function formatProvisionError(error: unknown): string;
|
|
3
4
|
export declare function describeProvisionAction(plan: Pick<ProvisionPlanData, "mode" | "resourceGroup" | "location" | "pendingMigrations">): string;
|
|
4
5
|
export declare function formatProvisionResult(result: ApplyProvisionResult): string;
|
|
6
|
+
export declare function createProvisionCommand(): Command;
|
|
5
7
|
export declare const provisionCommand: Command;
|
|
6
8
|
//# sourceMappingURL=provision.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/provision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/provision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAG5C,OAAO,EAEL,oBAAoB,EACpB,iBAAiB,EAKlB,MAAM,4CAA4C,CAAC;AAiBpD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAuB3D;AA8CD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,eAAe,GAAG,UAAU,GAAG,mBAAmB,CAAC,GAAG,MAAM,CAe1I;AAsCD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CA4B1E;AA+BD,wBAAgB,sBAAsB,IAAI,OAAO,CAyHhD;AAED,eAAO,MAAM,gBAAgB,SAA2B,CAAC"}
|
|
@@ -4,14 +4,101 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.provisionCommand = void 0;
|
|
7
|
+
exports.formatProvisionError = formatProvisionError;
|
|
7
8
|
exports.describeProvisionAction = describeProvisionAction;
|
|
8
9
|
exports.formatProvisionResult = formatProvisionResult;
|
|
10
|
+
exports.createProvisionCommand = createProvisionCommand;
|
|
9
11
|
const commander_1 = require("commander");
|
|
10
12
|
const prompts_1 = __importDefault(require("prompts"));
|
|
11
13
|
const config_1 = require("../../core/config");
|
|
12
14
|
const provision_operations_1 = require("../../core/operations/provision-operations");
|
|
13
15
|
const errors_1 = require("../../machine/errors");
|
|
14
16
|
const azure_diagnostics_1 = require("../../utils/azure-diagnostics");
|
|
17
|
+
const azure_cli_1 = require("../../utils/azure-cli");
|
|
18
|
+
function humanProvisionMessage(message) {
|
|
19
|
+
return message
|
|
20
|
+
.replace(/swallowkit machine inspect provision --plan/g, "swallowkit provision --status")
|
|
21
|
+
.replace(/swallowkit machine apply provision --plan/g, "swallowkit provision --resume")
|
|
22
|
+
.replace(/plan provision/g, "swallowkit provision")
|
|
23
|
+
.replace(/\b[Pp]lan\b/g, "Execution")
|
|
24
|
+
.replace(/preview/g, "deployment preparation")
|
|
25
|
+
.replace(/after approval/g, "")
|
|
26
|
+
.replace(/--approve/g, "")
|
|
27
|
+
.replace(/ {2,}/g, " ");
|
|
28
|
+
}
|
|
29
|
+
function formatProvisionError(error) {
|
|
30
|
+
if (!(error instanceof errors_1.MachineCommandError))
|
|
31
|
+
return error instanceof Error ? error.message : String(error);
|
|
32
|
+
const message = error.code === "azure-deployment-failed" ? error.message : humanProvisionMessage(error.message);
|
|
33
|
+
const lines = [...new Set(message.split("\n"))];
|
|
34
|
+
const details = error.details;
|
|
35
|
+
if (details?.deployment) {
|
|
36
|
+
lines.push(`Deployment: ${details.deployment.reference.name}; state: ${details.deployment.state}`);
|
|
37
|
+
}
|
|
38
|
+
for (const diagnostic of details?.diagnostics ?? []) {
|
|
39
|
+
if (diagnostic.failureKind || diagnostic.outputTruncated)
|
|
40
|
+
lines.push((0, azure_diagnostics_1.formatAzureDiagnostic)(diagnostic));
|
|
41
|
+
}
|
|
42
|
+
const runId = details?.runId;
|
|
43
|
+
if (runId) {
|
|
44
|
+
lines.push(`Check: swallowkit provision --status ${runId}`);
|
|
45
|
+
if (error.code !== "azure-deployment-failed")
|
|
46
|
+
lines.push(`Resume: swallowkit provision --resume ${runId}`);
|
|
47
|
+
else
|
|
48
|
+
lines.push("Azure reported a terminal failure. Resuming only observes that failed deployment; correct its cause before explicitly deploying again.");
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
for (const action of error.nextActions ?? []) {
|
|
52
|
+
const command = humanProvisionMessage(action.command);
|
|
53
|
+
if (!command.includes("machine "))
|
|
54
|
+
lines.push(command);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return lines.join("\n");
|
|
58
|
+
}
|
|
59
|
+
async function printProvisionSetup(result) {
|
|
60
|
+
if (!result.deployment || result.status !== "complete")
|
|
61
|
+
return;
|
|
62
|
+
const reference = result.deployment.reference;
|
|
63
|
+
const fields = ["staticWebAppName", "staticWebAppUrl", "functionsAppName", "functionsAppUrl", "cosmosDbAccountName", "cosmosDatabaseName"];
|
|
64
|
+
let outputs;
|
|
65
|
+
try {
|
|
66
|
+
const response = await (0, azure_cli_1.runAzCliAsync)([
|
|
67
|
+
"deployment",
|
|
68
|
+
"group",
|
|
69
|
+
"show",
|
|
70
|
+
"--name",
|
|
71
|
+
reference.name.startsWith("swallowkit-migration-") ? "swallowkit-baseline" : reference.name,
|
|
72
|
+
"--resource-group",
|
|
73
|
+
reference.resourceGroup,
|
|
74
|
+
"--subscription",
|
|
75
|
+
reference.subscription,
|
|
76
|
+
"--query",
|
|
77
|
+
`{${fields.map((field) => `${field}:properties.outputs.${field}.value`).join(",")}}`,
|
|
78
|
+
"-o",
|
|
79
|
+
"json",
|
|
80
|
+
], { timeout: 30000 });
|
|
81
|
+
if (response.status !== 0 || response.failureKind || response.stdoutTruncated)
|
|
82
|
+
throw new Error("Output query did not complete.");
|
|
83
|
+
const parsed = JSON.parse(response.stdout);
|
|
84
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
|
|
85
|
+
throw new Error("Invalid resource output.");
|
|
86
|
+
outputs = parsed;
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
console.warn("Deployment succeeded, but resource information could not be read. Inspect the deployment's named outputs in Azure Portal; do not redeploy just to retrieve them.");
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
console.log("\nResource information:");
|
|
93
|
+
for (const field of fields) {
|
|
94
|
+
if (typeof outputs[field] === "string")
|
|
95
|
+
console.log(` ${field}: ${outputs[field]}`);
|
|
96
|
+
}
|
|
97
|
+
console.log("\nCI/CD settings:");
|
|
98
|
+
console.log(` AZURE_FUNCTIONAPP_NAME: ${typeof outputs.functionsAppName === "string" ? outputs.functionsAppName : "<functions-app-name>"}`);
|
|
99
|
+
console.log(" Retrieve AZURE_STATIC_WEB_APPS_API_TOKEN and AZURE_FUNCTIONAPP_PUBLISH_PROFILE privately from Azure Portal and save them in your CI/CD secrets.");
|
|
100
|
+
console.log(" Secret values are not printed or stored by SwallowKit. Trigger the first application deployment after configuring CI/CD.");
|
|
101
|
+
}
|
|
15
102
|
function describeProvisionAction(plan) {
|
|
16
103
|
switch (plan.mode) {
|
|
17
104
|
case "bootstrap":
|
|
@@ -47,12 +134,16 @@ const SWA_REGIONS = [
|
|
|
47
134
|
{ title: "West Europe (westeurope)", value: "westeurope" },
|
|
48
135
|
];
|
|
49
136
|
function formatProvisionResult(result) {
|
|
50
|
-
const outcome = result.outcome === "succeeded"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
137
|
+
const outcome = result.outcome === "succeeded"
|
|
138
|
+
? "✅ Provisioning completed, including migration tags and the local ledger."
|
|
139
|
+
: result.outcome === "in-progress"
|
|
140
|
+
? "⏳ Azure deployment is still in progress. The local wait ended; this is not an Azure failure."
|
|
141
|
+
: result.outcome === "partial"
|
|
142
|
+
? "⚠️ Provisioning is partially complete. Finish migration bookkeeping from the checkpoint; do not redeploy the baseline."
|
|
143
|
+
: result.outcome === "failed"
|
|
144
|
+
? "❌ Azure deployment reached a failed/cancelled terminal state."
|
|
54
145
|
: "⚠️ Azure deployment result is unknown. A local az interruption does not prove an Azure failure.";
|
|
55
|
-
const lines = [outcome, `
|
|
146
|
+
const lines = [outcome, `Resource group: ${result.resourceGroup}`];
|
|
56
147
|
if (result.deployment) {
|
|
57
148
|
const reference = result.deployment.reference;
|
|
58
149
|
lines.push(`Deployment: ${reference.name}; subscription: ${reference.subscription}; state: ${result.deployment.state}${reference.id ? `; ID: ${reference.id}` : ""}`);
|
|
@@ -60,14 +151,18 @@ function formatProvisionResult(result) {
|
|
|
60
151
|
lines.push(`${error.code}: ${error.message}`);
|
|
61
152
|
}
|
|
62
153
|
for (const warning of result.warnings)
|
|
63
|
-
lines.push(`Warning: ${warning}`);
|
|
154
|
+
lines.push(`Warning: ${humanProvisionMessage(warning)}`);
|
|
64
155
|
for (const diagnostic of result.diagnostics.filter((entry) => entry.failureKind || entry.outputTruncated)) {
|
|
65
156
|
lines.push((0, azure_diagnostics_1.formatAzureDiagnostic)(diagnostic));
|
|
66
157
|
}
|
|
67
158
|
if (result.status !== "complete") {
|
|
68
159
|
lines.push(`Check/wait: swallowkit provision --status ${result.runId} --wait-seconds 300`);
|
|
69
|
-
|
|
70
|
-
|
|
160
|
+
if (result.outcome !== "failed")
|
|
161
|
+
lines.push(`Resume: swallowkit provision --resume ${result.runId}`);
|
|
162
|
+
if (result.outcome !== "failed")
|
|
163
|
+
lines.push("Azure may continue after Ctrl+C or process termination. No Azure cancellation or deletion is performed.");
|
|
164
|
+
else
|
|
165
|
+
lines.push("Azure reported a terminal failure. Correct its cause before explicitly deploying again; resuming does not repair a failed deployment.");
|
|
71
166
|
}
|
|
72
167
|
return lines.join("\n");
|
|
73
168
|
}
|
|
@@ -100,106 +195,113 @@ async function resolveLocations(options) {
|
|
|
100
195
|
throw new Error("Region selection cancelled.");
|
|
101
196
|
return { location, swaLocation };
|
|
102
197
|
}
|
|
103
|
-
|
|
104
|
-
.
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
198
|
+
function createProvisionCommand() {
|
|
199
|
+
return new commander_1.Command("provision")
|
|
200
|
+
.description("Deploy Azure infrastructure and show resource information and CI/CD setup")
|
|
201
|
+
.option("-g, --resource-group <name>", "Resource group name (required for deployment)")
|
|
202
|
+
.option("--subscription <id>", "Azure subscription ID")
|
|
203
|
+
.option("--location <region>", "Primary location for Functions and Cosmos DB")
|
|
204
|
+
.option("--swa-location <region>", "Static Web App location")
|
|
205
|
+
.option("--what-if", "Check Azure what-if before deployment", false)
|
|
206
|
+
.option("--adopt-existing", "Adopt an existing untagged resource group without deploying main.bicep", false)
|
|
207
|
+
.option("--baseline <version>", "Baseline version for adoption (currently 0)")
|
|
208
|
+
.option("--reconcile", "Explicitly redeploy infra/main.bicep", false)
|
|
209
|
+
.addOption(new commander_1.Option("--approve", "Compatibility option; invoking provision already requests execution").hideHelp())
|
|
210
|
+
.option("--status <runId>", "Read an existing execution checkpoint and Azure deployment state without writes")
|
|
211
|
+
.option("--resume <runId>", "Continue the original execution without resubmitting attempted deployments")
|
|
212
|
+
.option("--resume-deployment <name>", "Recover an older untracked baseline deployment after verifying its template and parameters")
|
|
213
|
+
.option("--wait-seconds <seconds>", "Bounded state wait, 0-3600 seconds (default: 300; status: 0)")
|
|
214
|
+
.action(async (options) => {
|
|
215
|
+
try {
|
|
216
|
+
(0, config_1.ensureSwallowKitProject)("provision");
|
|
217
|
+
const waitSeconds = options.waitSeconds === undefined ? undefined : Number(options.waitSeconds);
|
|
218
|
+
if ((options.resume && options.status) ||
|
|
219
|
+
((options.resume || options.status) &&
|
|
220
|
+
(options.resourceGroup ||
|
|
221
|
+
options.resumeDeployment ||
|
|
222
|
+
options.reconcile ||
|
|
223
|
+
options.adoptExisting ||
|
|
224
|
+
options.subscription ||
|
|
225
|
+
options.location ||
|
|
226
|
+
options.swaLocation ||
|
|
227
|
+
options.whatIf ||
|
|
228
|
+
options.baseline !== undefined))) {
|
|
229
|
+
throw new errors_1.MachineCommandError("invalid-arguments", "Use --status or --resume with the checkpoint ID alone; its original Azure target and reviewed files are preserved.", undefined, "blocked");
|
|
230
|
+
}
|
|
231
|
+
if (options.status) {
|
|
232
|
+
const result = await (0, provision_operations_1.inspectProvisionOperation)({
|
|
233
|
+
planId: options.status,
|
|
234
|
+
waitSeconds,
|
|
235
|
+
});
|
|
236
|
+
console.log(formatProvisionResult(result));
|
|
237
|
+
if (result.status === "blocked" || result.status === "failed")
|
|
238
|
+
process.exitCode = 1;
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
if (options.resume) {
|
|
242
|
+
const result = await (0, provision_operations_1.applyProvisionOperation)({
|
|
243
|
+
planId: options.resume,
|
|
244
|
+
approve: true,
|
|
245
|
+
waitSeconds,
|
|
246
|
+
});
|
|
247
|
+
console.log(formatProvisionResult(result));
|
|
248
|
+
await printProvisionSetup(result);
|
|
249
|
+
if (result.status === "blocked" || result.status === "failed")
|
|
250
|
+
process.exitCode = 1;
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
if (!options.resourceGroup)
|
|
254
|
+
throw new errors_1.MachineCommandError("invalid-arguments", "Provision requires --resource-group.", undefined, "blocked");
|
|
255
|
+
const locations = await resolveLocations(options);
|
|
256
|
+
const baseline = options.baseline === undefined ? undefined : Number(options.baseline);
|
|
257
|
+
// Preview in memory: the same Azure checks as the agent workflow, but no saved plan file.
|
|
258
|
+
const preview = await (0, provision_operations_1.planProvisionOperation)({
|
|
259
|
+
resourceGroup: options.resourceGroup,
|
|
260
|
+
subscription: options.subscription,
|
|
261
|
+
location: locations.location,
|
|
262
|
+
swaLocation: locations.swaLocation,
|
|
263
|
+
whatIf: options.whatIf,
|
|
264
|
+
adoptExisting: options.adoptExisting,
|
|
265
|
+
baseline,
|
|
266
|
+
reconcile: options.reconcile,
|
|
267
|
+
resumeDeployment: options.resumeDeployment,
|
|
268
|
+
}, { persist: false });
|
|
269
|
+
for (const warning of preview.warnings)
|
|
270
|
+
console.warn(`Warning: ${warning}`);
|
|
271
|
+
if (preview.mode === "offline") {
|
|
272
|
+
console.log([
|
|
273
|
+
"",
|
|
274
|
+
"❌ Azure CLI is unavailable, so the current state of Azure could not be checked. Nothing was changed in Azure.",
|
|
275
|
+
" 1. Make sure `az --version` works in this terminal (install: https://aka.ms/azure-cli).",
|
|
276
|
+
" 2. Sign in with `az login` (and `az account set --subscription <id>` if needed).",
|
|
277
|
+
" 3. Run this command again.",
|
|
278
|
+
].join("\n"));
|
|
279
|
+
process.exitCode = 1;
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
if (preview.mode === "adoption-required") {
|
|
283
|
+
throw new Error("The existing resource group has no migration tag. For an interrupted baseline use --resume-deployment <original-name> to verify/observe it without redeploying. Legacy adoption applies only to a legacy manifest; do not replace an existing manifest.");
|
|
284
|
+
}
|
|
285
|
+
if (preview.mode === "noop") {
|
|
286
|
+
console.log(`Resource group ${preview.resourceGroup} is already up to date. Nothing to do.`);
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
console.log(`\n${describeProvisionAction(preview)}`);
|
|
290
|
+
console.log("Deploying Azure infrastructure. Azure resources may incur charges.");
|
|
291
|
+
const result = await (0, provision_operations_1.executeProvisionPlan)(preview, {
|
|
292
|
+
approve: true,
|
|
293
|
+
retryHint: provision_operations_1.INTERACTIVE_PROVISION_RETRY_HINT,
|
|
294
|
+
waitSeconds,
|
|
295
|
+
});
|
|
296
|
+
console.log(formatProvisionResult(result));
|
|
297
|
+
await printProvisionSetup(result);
|
|
298
|
+
if (result.status === "blocked" || result.status === "failed")
|
|
299
|
+
process.exitCode = 1;
|
|
136
300
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
if (result.status === "blocked" || result.status === "failed")
|
|
140
|
-
process.exitCode = 1;
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
if (!options.resourceGroup)
|
|
144
|
-
throw new errors_1.MachineCommandError("invalid-arguments", "New provision previews require --resource-group.", undefined, "blocked");
|
|
145
|
-
const locations = await resolveLocations(options);
|
|
146
|
-
const baseline = options.baseline === undefined ? undefined : Number(options.baseline);
|
|
147
|
-
// Preview in memory: the same Azure checks as the agent workflow, but no saved plan file.
|
|
148
|
-
const preview = await (0, provision_operations_1.planProvisionOperation)({
|
|
149
|
-
resourceGroup: options.resourceGroup,
|
|
150
|
-
subscription: options.subscription,
|
|
151
|
-
location: locations.location,
|
|
152
|
-
swaLocation: locations.swaLocation,
|
|
153
|
-
whatIf: options.whatIf,
|
|
154
|
-
adoptExisting: options.adoptExisting,
|
|
155
|
-
baseline,
|
|
156
|
-
reconcile: options.reconcile,
|
|
157
|
-
resumeDeployment: options.resumeDeployment,
|
|
158
|
-
}, { persist: false });
|
|
159
|
-
for (const warning of preview.warnings)
|
|
160
|
-
console.warn(`Warning: ${warning}`);
|
|
161
|
-
if (preview.mode === "offline") {
|
|
162
|
-
console.log([
|
|
163
|
-
"",
|
|
164
|
-
"❌ Azure CLI is unavailable, so the current state of Azure could not be checked. Nothing was changed in Azure.",
|
|
165
|
-
" 1. Make sure `az --version` works in this terminal (install: https://aka.ms/azure-cli).",
|
|
166
|
-
" 2. Sign in with `az login` (and `az account set --subscription <id>` if needed).",
|
|
167
|
-
" 3. Run this command again.",
|
|
168
|
-
].join("\n"));
|
|
169
|
-
process.exitCode = 1;
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
if (preview.mode === "adoption-required") {
|
|
173
|
-
throw new Error('The existing resource group has no migration tag. For an interrupted baseline use --resume-deployment <original-name> to verify/observe it without redeploying. Legacy adoption applies only to a legacy manifest; do not replace an existing manifest.');
|
|
174
|
-
}
|
|
175
|
-
if (preview.mode === "noop") {
|
|
176
|
-
console.log(`Resource group ${preview.resourceGroup} is already up to date. Nothing to do.`);
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
console.log(`\n${describeProvisionAction(preview)}`);
|
|
180
|
-
console.log("The following Azure CLI commands will run:");
|
|
181
|
-
for (const command of preview.commands)
|
|
182
|
-
console.log(` ${command}`);
|
|
183
|
-
let approved = options.approve === true;
|
|
184
|
-
if (!approved) {
|
|
185
|
-
if (!process.stdin.isTTY || !process.stdout.isTTY) {
|
|
186
|
-
throw new Error("Non-interactive provision requires --approve after reviewing the commands above.");
|
|
301
|
+
catch (error) {
|
|
302
|
+
throw new Error(formatProvisionError(error));
|
|
187
303
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
message: "Run these Azure commands? This may create billable resources.",
|
|
192
|
-
initial: false,
|
|
193
|
-
});
|
|
194
|
-
approved = answer.approved === true;
|
|
195
|
-
}
|
|
196
|
-
if (!approved) {
|
|
197
|
-
console.log("Provision cancelled. Nothing was changed in Azure.");
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
const result = await (0, provision_operations_1.executeProvisionPlan)(preview, { approve: true, retryHint: provision_operations_1.INTERACTIVE_PROVISION_RETRY_HINT, waitSeconds });
|
|
201
|
-
console.log(formatProvisionResult(result));
|
|
202
|
-
if (result.status === "blocked" || result.status === "failed")
|
|
203
|
-
process.exitCode = 1;
|
|
204
|
-
});
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
exports.provisionCommand = createProvisionCommand();
|
|
205
307
|
//# sourceMappingURL=provision.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../../../src/cli/commands/provision.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../../../src/cli/commands/provision.ts"],"names":[],"mappings":";;;;;;AA4BA,oDAuBC;AA8CD,0DAeC;AAsCD,sDA4BC;AA+BD,wDAyHC;AA1UD,yCAA4C;AAC5C,sDAA8B;AAC9B,8CAA4D;AAC5D,qFAQoD;AACpD,iDAA2D;AAC3D,qEAAsE;AACtE,qDAAsD;AAEtD,SAAS,qBAAqB,CAAC,OAAe;IAC5C,OAAO,OAAO;SACX,OAAO,CAAC,8CAA8C,EAAE,+BAA+B,CAAC;SACxF,OAAO,CAAC,4CAA4C,EAAE,+BAA+B,CAAC;SACtF,OAAO,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;SAClD,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC;SACpC,OAAO,CAAC,UAAU,EAAE,wBAAwB,CAAC;SAC7C,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAc;IACjD,IAAI,CAAC,CAAC,KAAK,YAAY,4BAAmB,CAAC;QAAE,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3G,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChH,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAoD,CAAC;IAC3E,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,YAAY,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,WAAW,IAAI,EAAE,EAAE,CAAC;QACpD,IAAI,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,eAAe;YAAE,KAAK,CAAC,IAAI,CAAC,IAAA,yCAAqB,EAAC,UAAU,CAAC,CAAC,CAAC;IAC1G,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;IAC7B,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB;YAAE,KAAK,CAAC,IAAI,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAC;;YACtG,KAAK,CAAC,IAAI,CAAC,wIAAwI,CAAC,CAAC;IAC5J,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,MAA4B;IAC7D,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;IAC9C,MAAM,MAAM,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,CAAU,CAAC;IACpJ,IAAI,OAAgC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAa,EAClC;YACE,YAAY;YACZ,OAAO;YACP,MAAM;YACN,QAAQ;YACR,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI;YAC3F,kBAAkB;YAClB,SAAS,CAAC,aAAa;YACvB,gBAAgB;YAChB,SAAS,CAAC,YAAY;YACtB,SAAS;YACT,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,uBAAuB,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;YACpF,IAAI;YACJ,MAAM;SACP,EACD,EAAE,OAAO,EAAE,KAAM,EAAE,CACpB,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACjI,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChH,OAAO,GAAG,MAAiC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CACV,kKAAkK,CACnK,CAAC;QACF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,6BAA6B,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAC7I,OAAO,CAAC,GAAG,CAAC,mJAAmJ,CAAC,CAAC;IACjK,OAAO,CAAC,GAAG,CAAC,4HAA4H,CAAC,CAAC;AAC5I,CAAC;AAED,SAAgB,uBAAuB,CAAC,IAA0F;IAChI,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,kBAAkB,IAAI,CAAC,aAAa,8CAA8C,IAAI,CAAC,QAAQ,+DAA+D,CAAC;QACxK,KAAK,SAAS;YACZ,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,oDAAoD,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACtN,KAAK,OAAO;YACV,OAAO,+BAA+B,IAAI,CAAC,aAAa,uEAAuE,CAAC;QAClI,KAAK,WAAW;YACd,OAAO,0CAA0C,IAAI,CAAC,aAAa,2CAA2C,CAAC;QACjH,KAAK,SAAS;YACZ,OAAO,uCAAuC,IAAI,CAAC,aAAa,oHAAoH,CAAC;QACvL;YACE,OAAO,kBAAkB,IAAI,CAAC,aAAa,GAAG,CAAC;IACnD,CAAC;AACH,CAAC;AAED,MAAM,eAAe,GAAG;IACtB,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,WAAW,EAAE;IACvD,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,WAAW,EAAE;IACvD,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,UAAU,EAAE;IACpD,EAAE,KAAK,EAAE,gCAAgC,EAAE,KAAK,EAAE,eAAe,EAAE;IACnE,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC9C,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE;IAClD,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE;IAClD,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,WAAW,EAAE;IACvD,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,YAAY,EAAE;CAC3D,CAAC;AAEF,MAAM,WAAW,GAAG;IAClB,EAAE,KAAK,EAAE,8CAA8C,EAAE,KAAK,EAAE,UAAU,EAAE;IAC5E,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE;IAClD,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,WAAW,EAAE;IACvD,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE;IAClD,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,YAAY,EAAE;CAC3D,CAAC;AAkBF,SAAgB,qBAAqB,CAAC,MAA4B;IAChE,MAAM,OAAO,GACX,MAAM,CAAC,OAAO,KAAK,WAAW;QAC5B,CAAC,CAAC,0EAA0E;QAC5E,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,aAAa;YAChC,CAAC,CAAC,8FAA8F;YAChG,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS;gBAC5B,CAAC,CAAC,wHAAwH;gBAC1H,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ;oBAC3B,CAAC,CAAC,+DAA+D;oBACjE,CAAC,CAAC,iGAAiG,CAAC;IAC9G,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,mBAAmB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,eAAe,SAAS,CAAC,IAAI,mBAAmB,SAAS,CAAC,YAAY,YAAY,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtK,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChG,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1G,KAAK,CAAC,IAAI,CAAC,IAAA,yCAAqB,EAAC,UAAU,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,6CAA6C,MAAM,CAAC,KAAK,qBAAqB,CAAC,CAAC;QAC3F,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,yCAAyC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACrG,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,yGAAyG,CAAC,CAAC;;YAClJ,KAAK,CAAC,IAAI,CAAC,uIAAuI,CAAC,CAAC;IAC3J,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAA4B;IAC1D,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAO,EAAC;QAC3B;YACE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;YACxC,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,8CAA8C;YACvD,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,CAAC;SACX;QACD;YACE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;YAC3C,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,CAAC;SACX;KACF,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;IACrD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC;IAC9D,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC9E,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACnC,CAAC;AAED,SAAgB,sBAAsB;IACpC,OAAO,IAAI,mBAAO,CAAC,WAAW,CAAC;SAC5B,WAAW,CAAC,2EAA2E,CAAC;SACxF,MAAM,CAAC,6BAA6B,EAAE,+CAA+C,CAAC;SACtF,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;SACtD,MAAM,CAAC,qBAAqB,EAAE,8CAA8C,CAAC;SAC7E,MAAM,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;SAC5D,MAAM,CAAC,WAAW,EAAE,uCAAuC,EAAE,KAAK,CAAC;SACnE,MAAM,CAAC,kBAAkB,EAAE,wEAAwE,EAAE,KAAK,CAAC;SAC3G,MAAM,CAAC,sBAAsB,EAAE,6CAA6C,CAAC;SAC7E,MAAM,CAAC,aAAa,EAAE,sCAAsC,EAAE,KAAK,CAAC;SACpE,SAAS,CAAC,IAAI,kBAAM,CAAC,WAAW,EAAE,qEAAqE,CAAC,CAAC,QAAQ,EAAE,CAAC;SACpH,MAAM,CAAC,kBAAkB,EAAE,iFAAiF,CAAC;SAC7G,MAAM,CAAC,kBAAkB,EAAE,4EAA4E,CAAC;SACxG,MAAM,CAAC,4BAA4B,EAAE,4FAA4F,CAAC;SAClI,MAAM,CAAC,0BAA0B,EAAE,8DAA8D,CAAC;SAClG,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,IAAA,gCAAuB,EAAC,WAAW,CAAC,CAAC;YACrC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAChG,IACE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;gBAClC,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;oBACjC,CAAC,OAAO,CAAC,aAAa;wBACpB,OAAO,CAAC,gBAAgB;wBACxB,OAAO,CAAC,SAAS;wBACjB,OAAO,CAAC,aAAa;wBACrB,OAAO,CAAC,YAAY;wBACpB,OAAO,CAAC,QAAQ;wBAChB,OAAO,CAAC,WAAW;wBACnB,OAAO,CAAC,MAAM;wBACd,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,EACpC,CAAC;gBACD,MAAM,IAAI,4BAAmB,CAC3B,mBAAmB,EACnB,oHAAoH,EACpH,SAAS,EACT,SAAS,CACV,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,MAAM,IAAA,gDAAyB,EAAC;oBAC7C,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,WAAW;iBACZ,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;oBAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACpF,OAAO;YACT,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,MAAM,IAAA,8CAAuB,EAAC;oBAC3C,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,IAAI;oBACb,WAAW;iBACZ,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC3C,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBAClC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;oBAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACpF,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,aAAa;gBAAE,MAAM,IAAI,4BAAmB,CAAC,mBAAmB,EAAE,sCAAsC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAC7I,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvF,0FAA0F;YAC1F,MAAM,OAAO,GAAG,MAAM,IAAA,6CAAsB,EAC1C;gBACE,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,QAAQ;gBACR,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;aAC3C,EACD,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;YAE5E,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CACT;oBACE,EAAE;oBACF,+GAA+G;oBAC/G,4FAA4F;oBAC5F,qFAAqF;oBACrF,+BAA+B;iBAChC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;gBACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CACb,yPAAyP,CAC1P,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,aAAa,wCAAwC,CAAC,CAAC;gBAC7F,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAElF,MAAM,MAAM,GAAG,MAAM,IAAA,2CAAoB,EAAC,OAAO,EAAE;gBACjD,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,uDAAgC;gBAC3C,WAAW;aACZ,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3C,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;gBAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAEY,QAAA,gBAAgB,GAAG,sBAAsB,EAAE,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -162,7 +162,7 @@ function createProgram(devCommandOverride = commands_1.devCommand) {
|
|
|
162
162
|
});
|
|
163
163
|
program.addCommand(devCommandOverride);
|
|
164
164
|
program.addCommand(commands_1.devSeedsCommand);
|
|
165
|
-
program.addCommand(provision_1.
|
|
165
|
+
program.addCommand((0, provision_1.createProvisionCommand)());
|
|
166
166
|
program.addCommand(migrations_1.migrationsCommand);
|
|
167
167
|
program.addCommand(create_migration_1.createMigrationCommand);
|
|
168
168
|
program.addCommand(configure_mcp_1.configureMcpCommand);
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -160,8 +160,8 @@ function inspectCapabilities() {
|
|
|
160
160
|
completion: "status complete/outcome succeeded requires Azure Succeeded plus verified migration tags and local ledger completion. Running/Accepted -> in-progress; unreadable/not-found state -> blocked/outcome unknown; bookkeeping interruption after Azure Succeeded -> blocked/outcome partial; Failed/Canceled -> failed with Azure causes.",
|
|
161
161
|
tracking: "Approved runs persist before Azure writes under .swallowkit/state/provision/. runId equals the original planId and preserves the subscription, RG, deployment ID/correlation, fingerprints and migration state. inspect provision is read-only; apply provision --plan resumes without re-submitting attempted deployments. Ctrl+C/termination may leave Azure running; never cancel/delete without explicit consent.",
|
|
162
162
|
recovery: "For an older untracked baseline, plan provision --resume-deployment <name> compares the existing ARM template and non-secure parameters to the local Bicep/parameters. It observes that deployment and only tags/records it after Succeeded. Mismatches, unreadable evidence, secure parameters or non-baseline migrations block; do not use reconcile just to repair bookkeeping.",
|
|
163
|
-
diagnostics: "
|
|
164
|
-
approval: "
|
|
163
|
+
diagnostics: "Machine/MCP results include bounded/redacted stdout/stderr, omitted-output flags, exit code, signal, failure kind, elapsed time and deployment identity, but no deployment outputs. Normal CLI shows named resource information and CI/CD setup guidance after success. Never print --debug output, keys, tokens or connection strings.",
|
|
164
|
+
approval: "Machine/MCP initial apply and every resume require explicit human approval. A human invoking normal provision or provision --resume explicitly requests execution without another confirmation prompt. Agents must not switch to normal CLI to bypass approval. A passing local command or an ok envelope is not proof of completed Azure provisioning; inspect status, outcome and nextActions.",
|
|
165
165
|
},
|
|
166
166
|
verifyChecks: {
|
|
167
167
|
defaultChecks: ["structure", "drift", "typecheck", "backend-build"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/core/project/capabilities.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/core/project/capabilities.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAuEH,kDA0KC;AA/OD,2CAAqD;AAqErD,SAAgB,mBAAmB;IACjC,OAAO;QACL,eAAe,EAAE,CAAC;QAClB,iBAAiB,EAAE,IAAA,8BAAoB,GAAE;QACzC,SAAS,EAAE;YACT,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;YAC9B,OAAO,EAAE,QAAQ;YACjB,aAAa,EAAE,wHAAwH;YACvI,iBAAiB,EAAE,kLAAkL;YACrM,WAAW,EAAE,uKAAuK;SACrL;QACD,iBAAiB,EAAE;YACjB;gBACE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,WAAW,EACT,gQAAgQ;gBAClQ,MAAM,EACJ,2LAA2L;aAC9L;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,uEAAuE;gBACpF,MAAM,EAAE,oCAAoC;aAC7C;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,KAAK;gBACf,WAAW,EACT,mJAAmJ;gBACrJ,MAAM,EAAE,2CAA2C;gBACnD,KAAK,EAAE,CAAC,2EAA2E,CAAC;aACrF;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,KAAK;gBACf,WAAW,EACT,qPAAqP;gBACvP,MAAM,EACJ,mNAAmN;gBACrN,KAAK,EAAE;oBACL,yRAAyR;oBACzR,gTAAgT;oBAChT,mRAAmR;iBACpR;aACF;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,KAAK;gBACf,WAAW,EACT,+UAA+U;gBACjV,MAAM,EAAE,kEAAkE;gBAC1E,KAAK,EAAE,CAAC,qDAAqD,EAAE,4GAA4G,CAAC;aAC7K;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EACT,gJAAgJ;gBAClJ,MAAM,EACJ,8IAA8I;aACjJ;SACF;QACD,cAAc,EAAE;YACd,eAAe,EAAE;gBACf,kMAAkM;gBAClM,kGAAkG;gBAClG,gJAAgJ;gBAChJ,+HAA+H;gBAC/H,oHAAoH;gBACpH,sFAAsF;aACvF;YACD,KAAK,EAAE;gBACL,yIAAyI;gBACzI,sGAAsG;gBACtG,gHAAgH;aACjH;YACD,SAAS,EAAE;gBACT;oBACE,QAAQ,EAAE,YAAY;oBACtB,WAAW,EAAE,0FAA0F;oBACvG,cAAc,EAAE,CAAC,kDAAkD,EAAE,sDAAsD,CAAC;iBAC7H;gBACD;oBACE,QAAQ,EAAE,KAAK;oBACf,WAAW,EAAE,8FAA8F;oBAC3G,cAAc,EAAE;wBACd,6IAA6I;qBAC9I;iBACF;gBACD;oBACE,QAAQ,EAAE,gBAAgB;oBAC1B,WAAW,EAAE,+GAA+G;oBAC5H,cAAc,EAAE;wBACd,mFAAmF;wBACnF,sEAAsE;qBACvE;iBACF;gBACD;oBACE,QAAQ,EAAE,MAAM;oBAChB,WAAW,EAAE,wCAAwC;oBACrD,cAAc,EAAE,EAAE;iBACnB;aACF;YACD,qBAAqB,EAAE;gBACrB,SAAS,EACP,kMAAkM;gBACpM,aAAa,EACX,kUAAkU;gBACpU,eAAe,EAAE,IAAI;aACtB;SACF;QACD,aAAa,EAAE;YACb,UAAU,EAAE;gBACV,yFAAyF;gBACzF,yCAAyC;aAC1C;YACD,aAAa,EAAE;gBACb,+JAA+J;gBAC/J,qLAAqL;aACtL;YACD,QAAQ,EAAE;gBACR,8VAA8V;aAC/V;SACF;QACD,YAAY,EAAE;YACZ,WAAW,EAAE,uGAAuG;YACpH,mBAAmB,EAAE;gBACnB,kIAAkI;gBAClI,qIAAqI;gBACrI,8EAA8E;gBAC9E,wIAAwI;gBACxI,kNAAkN;gBAClN,wJAAwJ;aACzJ;YACD,SAAS,EACP,8WAA8W;SACjX;QACD,OAAO,EAAE;YACP,eAAe,EAAE,oGAAoG;YACrH,UAAU,EAAE,iHAAiH;YAC7H,KAAK,EAAE,CAAC,yFAAyF,CAAC;SACnG;QACD,eAAe,EAAE;YACf,yJAAyJ;YACzJ,kBAAkB;YAClB,uDAAuD;YACvD,8RAA8R;YAC9R,uNAAuN;YACvN,6CAA6C;YAC7C,gCAAgC;YAChC,4HAA4H;YAC5H,gHAAgH;SACjH;QACD,YAAY,EAAE;YACZ,SAAS,EAAE,gRAAgR;YAC3R,UAAU,EAAE,sUAAsU;YAClV,QAAQ,EAAE,uZAAuZ;YACja,QAAQ,EAAE,oXAAoX;YAC9X,WAAW,EAAE,yUAAyU;YACtV,QAAQ,EAAE,kYAAkY;SAC7Y;QACD,YAAY,EAAE;YACZ,aAAa,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,CAAC;YACnE,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;YACtC,YAAY,EAAE,wEAAwE;YACtF,YAAY,EAAE,qVAAqV;SACpW;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../src/core/project/workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../src/core/project/workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,CA8Q/D;AAED,eAAO,MAAM,aAAa,QAAwC,CAAC;AACnE,eAAO,MAAM,UAAU,QAAiC,CAAC;AAEzD,uDAAuD;AACvD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAS9E;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAS9F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAS7E"}
|
|
@@ -222,6 +222,8 @@ Goal: bootstrap Azure once, then apply only pending versioned infrastructure mig
|
|
|
222
222
|
\`status: "requires-human"\` and \`requiresApproval: true\` by design.
|
|
223
223
|
- Never pass \`--approve\` to \`apply provision\` unless a human explicitly
|
|
224
224
|
instructed you to provision in this session.
|
|
225
|
+
- This plan/apply workflow is for agents. Humans normally run \`swallowkit provision\`
|
|
226
|
+
directly; do not switch to that command to bypass the agent approval gate.
|
|
225
227
|
- Inspect infra locally first — no \`az\` calls are needed for inspection.
|
|
226
228
|
- Never edit an applied migration. Create a corrective migration instead.
|
|
227
229
|
- Never use \`--reconcile\` for an ordinary model or resource addition.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../src/core/project/workflows.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBH,
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../src/core/project/workflows.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -60,6 +60,7 @@ describe("coding-agent instruction contract", () => {
|
|
|
60
60
|
expect(agentsMd).toContain("machine inspect provision --plan <runId> --wait-seconds 300");
|
|
61
61
|
expect(agentsMd).toContain("outcome: \"succeeded\"");
|
|
62
62
|
expect(agentsMd).toContain("Never re-submit Bicep");
|
|
63
|
+
expect(agentsMd).toContain("must not switch to normal CLI to bypass it");
|
|
63
64
|
expect(agentsMd).toContain("never bypass its\napproval gate");
|
|
64
65
|
});
|
|
65
66
|
|
|
@@ -91,6 +92,7 @@ describe("coding-agent instruction contract", () => {
|
|
|
91
92
|
expect(adapter).toContain("planning");
|
|
92
93
|
expect(adapter).toContain("Never hand-edit deterministic SwallowKit-managed artifacts");
|
|
93
94
|
expect(adapter).toContain("SwallowKit verification");
|
|
95
|
+
expect(adapter).toContain("approval");
|
|
94
96
|
}
|
|
95
97
|
});
|
|
96
98
|
|
|
@@ -113,6 +113,14 @@ if (args[0] === "--version") {
|
|
|
113
113
|
process.stdout.write("{invalid JSON");
|
|
114
114
|
} else if (value("--query") === "properties.parameters") {
|
|
115
115
|
emit(state.parameters);
|
|
116
|
+
} else if (value("--query").includes("properties.outputs.")) {
|
|
117
|
+
if (state.outputQueryFails) {
|
|
118
|
+
console.error("ERROR: resource output query failed");
|
|
119
|
+
process.exitCode = 1;
|
|
120
|
+
} else {
|
|
121
|
+
const outputs = state.outputs ?? {};
|
|
122
|
+
emit(Object.fromEntries(["staticWebAppName", "staticWebAppUrl", "functionsAppName", "functionsAppUrl", "cosmosDbAccountName", "cosmosDatabaseName"].map(key => [key, outputs[key] ?? null])));
|
|
123
|
+
}
|
|
116
124
|
} else {
|
|
117
125
|
const states = state.states ?? ["Succeeded"];
|
|
118
126
|
const provisioningState = states.length > 1 ? states.shift() : states[0];
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "../core/operations/provision-operations";
|
|
9
9
|
import * as migrations from "../core/project/migrations";
|
|
10
10
|
import { loadProvisionRun, saveProvisionRun } from "../core/project/state";
|
|
11
|
-
import { formatProvisionResult } from "../cli/commands/provision";
|
|
11
|
+
import { formatProvisionResult, formatProvisionError } from "../cli/commands/provision";
|
|
12
12
|
import { formatCliError, runCli } from "../cli";
|
|
13
13
|
import { runMachineCli } from "../machine";
|
|
14
14
|
import { buildSwallowKitToolDefinitions } from "../mcp";
|
|
@@ -125,6 +125,8 @@ interface FixtureState {
|
|
|
125
125
|
parameters: Record<string, { value: unknown; type?: string }>;
|
|
126
126
|
error?: unknown;
|
|
127
127
|
operations?: unknown[];
|
|
128
|
+
outputs?: Record<string, string>;
|
|
129
|
+
outputQueryFails?: boolean;
|
|
128
130
|
}
|
|
129
131
|
|
|
130
132
|
describe("provision execution, diagnosis and recovery using an az subprocess fixture", () => {
|
|
@@ -511,7 +513,7 @@ describe("provision execution, diagnosis and recovery using an az subprocess fix
|
|
|
511
513
|
expect(read().deploymentCreates).toBe(3);
|
|
512
514
|
expect(read().calls.filter(args => args[0] === "deployment" && args[2] === "create").map(args => args[args.indexOf("--name") + 1]))
|
|
513
515
|
.toEqual(expect.arrayContaining(["swallowkit-baseline", ...plan.pendingMigrations.map(migration => `swallowkit-migration-${migration.version}-${migration.checksum.slice(0, 12)}`)]));
|
|
514
|
-
});
|
|
516
|
+
}, 20000);
|
|
515
517
|
|
|
516
518
|
it("recovers an older untracked Running deployment using matching ARM/parameter evidence and no create", async () => {
|
|
517
519
|
update({ groupExists: true, states: ["Running"], deployments: { "swallowkit-baseline": { correlationId: "old-correlation", templateHash: "fixture-template-hash" } } });
|
|
@@ -559,4 +561,76 @@ describe("provision execution, diagnosis and recovery using an az subprocess fix
|
|
|
559
561
|
expect(runner).toHaveBeenCalledWith(["inspect", "provision", "--plan", runId, "--wait-seconds", "0"]);
|
|
560
562
|
expect(read()).toMatchObject({ deploymentCreates: 1, tagAttempts: 0 });
|
|
561
563
|
});
|
|
564
|
+
|
|
565
|
+
it("treats normal provision invocation as consent without an extra prompt or machine instructions", async () => {
|
|
566
|
+
update({ outputs: { functionsAppName: "func-fixture", staticWebAppName: "swa-fixture", apiKey: "secret-not-for-terminal" } });
|
|
567
|
+
const logs: string[] = [];
|
|
568
|
+
jest.spyOn(console, "log").mockImplementation((text: unknown) => { logs.push(String(text)); });
|
|
569
|
+
await runCli(["node", "swallowkit", "provision", "-g", options.resourceGroup, "--location", options.location, "--swa-location", options.swaLocation]);
|
|
570
|
+
const output = logs.join("\n");
|
|
571
|
+
expect(output).toContain("Provisioning completed");
|
|
572
|
+
expect(output).toContain("AZURE_FUNCTIONAPP_NAME: func-fixture");
|
|
573
|
+
expect(output).toContain("AZURE_STATIC_WEB_APPS_API_TOKEN");
|
|
574
|
+
expect(output).not.toContain("secret-not-for-terminal");
|
|
575
|
+
expect(output).not.toMatch(/machine |--approve|Run these Azure commands|Plan /);
|
|
576
|
+
expect(read()).toMatchObject({ deploymentCreates: 1, tagAttempts: 1 });
|
|
577
|
+
expect(read().calls.some(args => args[0] === "staticwebapp" && args[1] === "secrets")).toBe(false);
|
|
578
|
+
});
|
|
579
|
+
|
|
580
|
+
it("keeps normal CLI terminal failure instructions human-only and does not suggest resuming as a repair", async () => {
|
|
581
|
+
update({ states: ["Failed"], error: { code: "NotFound", message: "Request url is invalid." } });
|
|
582
|
+
let failure: unknown;
|
|
583
|
+
try {
|
|
584
|
+
await runCli(["node", "swallowkit", "provision", "-g", options.resourceGroup, "--location", options.location, "--swa-location", options.swaLocation]);
|
|
585
|
+
} catch (error) { failure = error; }
|
|
586
|
+
const output = formatCliError(failure);
|
|
587
|
+
expect(output).toContain("NotFound: Request url is invalid.");
|
|
588
|
+
expect(output).toContain("swallowkit provision --status");
|
|
589
|
+
expect(output).not.toMatch(/machine |--plan|--approve|Resume:/);
|
|
590
|
+
expect(read()).toMatchObject({ deploymentCreates: 1, tagAttempts: 0 });
|
|
591
|
+
});
|
|
592
|
+
|
|
593
|
+
it("shows human commands when existing execution state blocks a new provision", async () => {
|
|
594
|
+
update({ states: ["Running"] });
|
|
595
|
+
const running = await executeProvisionPlan(await planProvisionOperation(options), { approve: true, waitSeconds: 0 });
|
|
596
|
+
let failure: unknown;
|
|
597
|
+
try { await planProvisionOperation(options); } catch (error) { failure = error; }
|
|
598
|
+
const output = formatProvisionError(failure);
|
|
599
|
+
expect(output).toContain(`swallowkit provision --status ${running.runId}`);
|
|
600
|
+
expect(output).not.toMatch(/machine |--plan|--approve/);
|
|
601
|
+
expect(read().deploymentCreates).toBe(1);
|
|
602
|
+
});
|
|
603
|
+
|
|
604
|
+
it("does not redeploy or report deployment failure when resource outputs cannot be read after success", async () => {
|
|
605
|
+
update({ outputQueryFails: true });
|
|
606
|
+
const warnings: string[] = [];
|
|
607
|
+
jest.spyOn(console, "log").mockImplementation(() => {});
|
|
608
|
+
jest.spyOn(console, "warn").mockImplementation((text: unknown) => { warnings.push(String(text)); });
|
|
609
|
+
await runCli(["node", "swallowkit", "provision", "-g", options.resourceGroup, "--location", options.location, "--swa-location", options.swaLocation]);
|
|
610
|
+
expect(warnings.join("\n")).toContain("Deployment succeeded, but resource information could not be read");
|
|
611
|
+
expect(read()).toMatchObject({ deploymentCreates: 1, tagAttempts: 1 });
|
|
612
|
+
});
|
|
613
|
+
|
|
614
|
+
it("resumes a human-invoked run without an additional approval and never resubmits Bicep", async () => {
|
|
615
|
+
update({ states: ["Running"] });
|
|
616
|
+
jest.spyOn(console, "log").mockImplementation(() => {});
|
|
617
|
+
await runCli(["node", "swallowkit", "provision", "-g", options.resourceGroup, "--location", options.location, "--swa-location", options.swaLocation, "--wait-seconds", "0"]);
|
|
618
|
+
const file = fs.readdirSync(path.join(project, ".swallowkit", "state", "provision")).find(name => name.endsWith(".json"))!;
|
|
619
|
+
const runId = file.slice(0, -5);
|
|
620
|
+
update({ states: ["Succeeded"] });
|
|
621
|
+
await runCli(["node", "swallowkit", "provision", "--resume", runId]);
|
|
622
|
+
expect(read()).toMatchObject({ deploymentCreates: 1, tagAttempts: 1 });
|
|
623
|
+
expect(loadProvisionRun<{ outcome: string }>(runId)?.outcome).toBe("succeeded");
|
|
624
|
+
});
|
|
625
|
+
|
|
626
|
+
it("retains successful deployment when the output-reading helper throws", async () => {
|
|
627
|
+
const original = azureCli.runAzCliAsync;
|
|
628
|
+
jest.spyOn(azureCli, "runAzCliAsync").mockImplementation((args, runOptions) =>
|
|
629
|
+
args.some(arg => arg.includes("properties.outputs.")) ? Promise.reject(new Error("Fixture output transport failed")) : original(args, runOptions));
|
|
630
|
+
jest.spyOn(console, "log").mockImplementation(() => {});
|
|
631
|
+
const warning = jest.spyOn(console, "warn").mockImplementation(() => {});
|
|
632
|
+
await runCli(["node", "swallowkit", "provision", "-g", options.resourceGroup, "--location", options.location, "--swa-location", options.swaLocation]);
|
|
633
|
+
expect(warning).toHaveBeenCalledWith(expect.stringContaining("Deployment succeeded, but resource information could not be read"));
|
|
634
|
+
expect(read()).toMatchObject({ deploymentCreates: 1, tagAttempts: 1 });
|
|
635
|
+
});
|
|
562
636
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
1
|
+
import { Command, Option } from "commander";
|
|
2
2
|
import prompts from "prompts";
|
|
3
3
|
import { ensureSwallowKitProject } from "../../core/config";
|
|
4
4
|
import {
|
|
@@ -12,6 +12,88 @@ import {
|
|
|
12
12
|
} from "../../core/operations/provision-operations";
|
|
13
13
|
import { MachineCommandError } from "../../machine/errors";
|
|
14
14
|
import { formatAzureDiagnostic } from "../../utils/azure-diagnostics";
|
|
15
|
+
import { runAzCliAsync } from "../../utils/azure-cli";
|
|
16
|
+
|
|
17
|
+
function humanProvisionMessage(message: string): string {
|
|
18
|
+
return message
|
|
19
|
+
.replace(/swallowkit machine inspect provision --plan/g, "swallowkit provision --status")
|
|
20
|
+
.replace(/swallowkit machine apply provision --plan/g, "swallowkit provision --resume")
|
|
21
|
+
.replace(/plan provision/g, "swallowkit provision")
|
|
22
|
+
.replace(/\b[Pp]lan\b/g, "Execution")
|
|
23
|
+
.replace(/preview/g, "deployment preparation")
|
|
24
|
+
.replace(/after approval/g, "")
|
|
25
|
+
.replace(/--approve/g, "")
|
|
26
|
+
.replace(/ {2,}/g, " ");
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function formatProvisionError(error: unknown): string {
|
|
30
|
+
if (!(error instanceof MachineCommandError)) return error instanceof Error ? error.message : String(error);
|
|
31
|
+
const message = error.code === "azure-deployment-failed" ? error.message : humanProvisionMessage(error.message);
|
|
32
|
+
const lines = [...new Set(message.split("\n"))];
|
|
33
|
+
const details = error.details as Partial<ApplyProvisionResult> | undefined;
|
|
34
|
+
if (details?.deployment) {
|
|
35
|
+
lines.push(`Deployment: ${details.deployment.reference.name}; state: ${details.deployment.state}`);
|
|
36
|
+
}
|
|
37
|
+
for (const diagnostic of details?.diagnostics ?? []) {
|
|
38
|
+
if (diagnostic.failureKind || diagnostic.outputTruncated) lines.push(formatAzureDiagnostic(diagnostic));
|
|
39
|
+
}
|
|
40
|
+
const runId = details?.runId;
|
|
41
|
+
if (runId) {
|
|
42
|
+
lines.push(`Check: swallowkit provision --status ${runId}`);
|
|
43
|
+
if (error.code !== "azure-deployment-failed") lines.push(`Resume: swallowkit provision --resume ${runId}`);
|
|
44
|
+
else lines.push("Azure reported a terminal failure. Resuming only observes that failed deployment; correct its cause before explicitly deploying again.");
|
|
45
|
+
} else {
|
|
46
|
+
for (const action of error.nextActions ?? []) {
|
|
47
|
+
const command = humanProvisionMessage(action.command);
|
|
48
|
+
if (!command.includes("machine ")) lines.push(command);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return lines.join("\n");
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async function printProvisionSetup(result: ApplyProvisionResult): Promise<void> {
|
|
55
|
+
if (!result.deployment || result.status !== "complete") return;
|
|
56
|
+
const reference = result.deployment.reference;
|
|
57
|
+
const fields = ["staticWebAppName", "staticWebAppUrl", "functionsAppName", "functionsAppUrl", "cosmosDbAccountName", "cosmosDatabaseName"] as const;
|
|
58
|
+
let outputs: Record<string, unknown>;
|
|
59
|
+
try {
|
|
60
|
+
const response = await runAzCliAsync(
|
|
61
|
+
[
|
|
62
|
+
"deployment",
|
|
63
|
+
"group",
|
|
64
|
+
"show",
|
|
65
|
+
"--name",
|
|
66
|
+
reference.name.startsWith("swallowkit-migration-") ? "swallowkit-baseline" : reference.name,
|
|
67
|
+
"--resource-group",
|
|
68
|
+
reference.resourceGroup,
|
|
69
|
+
"--subscription",
|
|
70
|
+
reference.subscription,
|
|
71
|
+
"--query",
|
|
72
|
+
`{${fields.map((field) => `${field}:properties.outputs.${field}.value`).join(",")}}`,
|
|
73
|
+
"-o",
|
|
74
|
+
"json",
|
|
75
|
+
],
|
|
76
|
+
{ timeout: 30_000 }
|
|
77
|
+
);
|
|
78
|
+
if (response.status !== 0 || response.failureKind || response.stdoutTruncated) throw new Error("Output query did not complete.");
|
|
79
|
+
const parsed: unknown = JSON.parse(response.stdout);
|
|
80
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) throw new Error("Invalid resource output.");
|
|
81
|
+
outputs = parsed as Record<string, unknown>;
|
|
82
|
+
} catch {
|
|
83
|
+
console.warn(
|
|
84
|
+
"Deployment succeeded, but resource information could not be read. Inspect the deployment's named outputs in Azure Portal; do not redeploy just to retrieve them."
|
|
85
|
+
);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
console.log("\nResource information:");
|
|
89
|
+
for (const field of fields) {
|
|
90
|
+
if (typeof outputs[field] === "string") console.log(` ${field}: ${outputs[field]}`);
|
|
91
|
+
}
|
|
92
|
+
console.log("\nCI/CD settings:");
|
|
93
|
+
console.log(` AZURE_FUNCTIONAPP_NAME: ${typeof outputs.functionsAppName === "string" ? outputs.functionsAppName : "<functions-app-name>"}`);
|
|
94
|
+
console.log(" Retrieve AZURE_STATIC_WEB_APPS_API_TOKEN and AZURE_FUNCTIONAPP_PUBLISH_PROFILE privately from Azure Portal and save them in your CI/CD secrets.");
|
|
95
|
+
console.log(" Secret values are not printed or stored by SwallowKit. Trigger the first application deployment after configuring CI/CD.");
|
|
96
|
+
}
|
|
15
97
|
|
|
16
98
|
export function describeProvisionAction(plan: Pick<ProvisionPlanData, "mode" | "resourceGroup" | "location" | "pendingMigrations">): string {
|
|
17
99
|
switch (plan.mode) {
|
|
@@ -67,25 +149,31 @@ interface ProvisionCliOptions {
|
|
|
67
149
|
}
|
|
68
150
|
|
|
69
151
|
export function formatProvisionResult(result: ApplyProvisionResult): string {
|
|
70
|
-
const outcome =
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
152
|
+
const outcome =
|
|
153
|
+
result.outcome === "succeeded"
|
|
154
|
+
? "✅ Provisioning completed, including migration tags and the local ledger."
|
|
155
|
+
: result.outcome === "in-progress"
|
|
156
|
+
? "⏳ Azure deployment is still in progress. The local wait ended; this is not an Azure failure."
|
|
157
|
+
: result.outcome === "partial"
|
|
158
|
+
? "⚠️ Provisioning is partially complete. Finish migration bookkeeping from the checkpoint; do not redeploy the baseline."
|
|
159
|
+
: result.outcome === "failed"
|
|
160
|
+
? "❌ Azure deployment reached a failed/cancelled terminal state."
|
|
161
|
+
: "⚠️ Azure deployment result is unknown. A local az interruption does not prove an Azure failure.";
|
|
162
|
+
const lines = [outcome, `Resource group: ${result.resourceGroup}`];
|
|
76
163
|
if (result.deployment) {
|
|
77
164
|
const reference = result.deployment.reference;
|
|
78
165
|
lines.push(`Deployment: ${reference.name}; subscription: ${reference.subscription}; state: ${result.deployment.state}${reference.id ? `; ID: ${reference.id}` : ""}`);
|
|
79
166
|
for (const error of result.deployment.errors) lines.push(`${error.code}: ${error.message}`);
|
|
80
167
|
}
|
|
81
|
-
for (const warning of result.warnings) lines.push(`Warning: ${warning}`);
|
|
168
|
+
for (const warning of result.warnings) lines.push(`Warning: ${humanProvisionMessage(warning)}`);
|
|
82
169
|
for (const diagnostic of result.diagnostics.filter((entry) => entry.failureKind || entry.outputTruncated)) {
|
|
83
170
|
lines.push(formatAzureDiagnostic(diagnostic));
|
|
84
171
|
}
|
|
85
172
|
if (result.status !== "complete") {
|
|
86
173
|
lines.push(`Check/wait: swallowkit provision --status ${result.runId} --wait-seconds 300`);
|
|
87
|
-
lines.push(`Resume
|
|
88
|
-
lines.push("Azure may continue after Ctrl+C or process termination. No Azure cancellation or deletion is performed.");
|
|
174
|
+
if (result.outcome !== "failed") lines.push(`Resume: swallowkit provision --resume ${result.runId}`);
|
|
175
|
+
if (result.outcome !== "failed") lines.push("Azure may continue after Ctrl+C or process termination. No Azure cancellation or deletion is performed.");
|
|
176
|
+
else lines.push("Azure reported a terminal failure. Correct its cause before explicitly deploying again; resuming does not repair a failed deployment.");
|
|
89
177
|
}
|
|
90
178
|
return lines.join("\n");
|
|
91
179
|
}
|
|
@@ -119,106 +207,127 @@ async function resolveLocations(options: ProvisionCliOptions): Promise<{ locatio
|
|
|
119
207
|
return { location, swaLocation };
|
|
120
208
|
}
|
|
121
209
|
|
|
122
|
-
export
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
210
|
+
export function createProvisionCommand(): Command {
|
|
211
|
+
return new Command("provision")
|
|
212
|
+
.description("Deploy Azure infrastructure and show resource information and CI/CD setup")
|
|
213
|
+
.option("-g, --resource-group <name>", "Resource group name (required for deployment)")
|
|
214
|
+
.option("--subscription <id>", "Azure subscription ID")
|
|
215
|
+
.option("--location <region>", "Primary location for Functions and Cosmos DB")
|
|
216
|
+
.option("--swa-location <region>", "Static Web App location")
|
|
217
|
+
.option("--what-if", "Check Azure what-if before deployment", false)
|
|
218
|
+
.option("--adopt-existing", "Adopt an existing untagged resource group without deploying main.bicep", false)
|
|
219
|
+
.option("--baseline <version>", "Baseline version for adoption (currently 0)")
|
|
220
|
+
.option("--reconcile", "Explicitly redeploy infra/main.bicep", false)
|
|
221
|
+
.addOption(new Option("--approve", "Compatibility option; invoking provision already requests execution").hideHelp())
|
|
222
|
+
.option("--status <runId>", "Read an existing execution checkpoint and Azure deployment state without writes")
|
|
223
|
+
.option("--resume <runId>", "Continue the original execution without resubmitting attempted deployments")
|
|
224
|
+
.option("--resume-deployment <name>", "Recover an older untracked baseline deployment after verifying its template and parameters")
|
|
225
|
+
.option("--wait-seconds <seconds>", "Bounded state wait, 0-3600 seconds (default: 300; status: 0)")
|
|
226
|
+
.action(async (options: ProvisionCliOptions) => {
|
|
227
|
+
try {
|
|
228
|
+
ensureSwallowKitProject("provision");
|
|
229
|
+
const waitSeconds = options.waitSeconds === undefined ? undefined : Number(options.waitSeconds);
|
|
230
|
+
if (
|
|
231
|
+
(options.resume && options.status) ||
|
|
232
|
+
((options.resume || options.status) &&
|
|
233
|
+
(options.resourceGroup ||
|
|
234
|
+
options.resumeDeployment ||
|
|
235
|
+
options.reconcile ||
|
|
236
|
+
options.adoptExisting ||
|
|
237
|
+
options.subscription ||
|
|
238
|
+
options.location ||
|
|
239
|
+
options.swaLocation ||
|
|
240
|
+
options.whatIf ||
|
|
241
|
+
options.baseline !== undefined))
|
|
242
|
+
) {
|
|
243
|
+
throw new MachineCommandError(
|
|
244
|
+
"invalid-arguments",
|
|
245
|
+
"Use --status or --resume with the checkpoint ID alone; its original Azure target and reviewed files are preserved.",
|
|
246
|
+
undefined,
|
|
247
|
+
"blocked"
|
|
248
|
+
);
|
|
249
|
+
}
|
|
250
|
+
if (options.status) {
|
|
251
|
+
const result = await inspectProvisionOperation({
|
|
252
|
+
planId: options.status,
|
|
253
|
+
waitSeconds,
|
|
254
|
+
});
|
|
255
|
+
console.log(formatProvisionResult(result));
|
|
256
|
+
if (result.status === "blocked" || result.status === "failed") process.exitCode = 1;
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
if (options.resume) {
|
|
260
|
+
const result = await applyProvisionOperation({
|
|
261
|
+
planId: options.resume,
|
|
262
|
+
approve: true,
|
|
263
|
+
waitSeconds,
|
|
264
|
+
});
|
|
265
|
+
console.log(formatProvisionResult(result));
|
|
266
|
+
await printProvisionSetup(result);
|
|
267
|
+
if (result.status === "blocked" || result.status === "failed") process.exitCode = 1;
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
if (!options.resourceGroup) throw new MachineCommandError("invalid-arguments", "Provision requires --resource-group.", undefined, "blocked");
|
|
271
|
+
const locations = await resolveLocations(options);
|
|
272
|
+
const baseline = options.baseline === undefined ? undefined : Number(options.baseline);
|
|
273
|
+
// Preview in memory: the same Azure checks as the agent workflow, but no saved plan file.
|
|
274
|
+
const preview = await planProvisionOperation(
|
|
275
|
+
{
|
|
276
|
+
resourceGroup: options.resourceGroup,
|
|
277
|
+
subscription: options.subscription,
|
|
278
|
+
location: locations.location,
|
|
279
|
+
swaLocation: locations.swaLocation,
|
|
280
|
+
whatIf: options.whatIf,
|
|
281
|
+
adoptExisting: options.adoptExisting,
|
|
282
|
+
baseline,
|
|
283
|
+
reconcile: options.reconcile,
|
|
284
|
+
resumeDeployment: options.resumeDeployment,
|
|
285
|
+
},
|
|
286
|
+
{ persist: false }
|
|
287
|
+
);
|
|
189
288
|
|
|
190
|
-
|
|
191
|
-
throw new Error('The existing resource group has no migration tag. For an interrupted baseline use --resume-deployment <original-name> to verify/observe it without redeploying. Legacy adoption applies only to a legacy manifest; do not replace an existing manifest.');
|
|
192
|
-
}
|
|
289
|
+
for (const warning of preview.warnings) console.warn(`Warning: ${warning}`);
|
|
193
290
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
291
|
+
if (preview.mode === "offline") {
|
|
292
|
+
console.log(
|
|
293
|
+
[
|
|
294
|
+
"",
|
|
295
|
+
"❌ Azure CLI is unavailable, so the current state of Azure could not be checked. Nothing was changed in Azure.",
|
|
296
|
+
" 1. Make sure `az --version` works in this terminal (install: https://aka.ms/azure-cli).",
|
|
297
|
+
" 2. Sign in with `az login` (and `az account set --subscription <id>` if needed).",
|
|
298
|
+
" 3. Run this command again.",
|
|
299
|
+
].join("\n")
|
|
300
|
+
);
|
|
301
|
+
process.exitCode = 1;
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
if (preview.mode === "adoption-required") {
|
|
306
|
+
throw new Error(
|
|
307
|
+
"The existing resource group has no migration tag. For an interrupted baseline use --resume-deployment <original-name> to verify/observe it without redeploying. Legacy adoption applies only to a legacy manifest; do not replace an existing manifest."
|
|
308
|
+
);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
if (preview.mode === "noop") {
|
|
312
|
+
console.log(`Resource group ${preview.resourceGroup} is already up to date. Nothing to do.`);
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
198
315
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
for (const command of preview.commands) console.log(` ${command}`);
|
|
316
|
+
console.log(`\n${describeProvisionAction(preview)}`);
|
|
317
|
+
console.log("Deploying Azure infrastructure. Azure resources may incur charges.");
|
|
202
318
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
319
|
+
const result = await executeProvisionPlan(preview, {
|
|
320
|
+
approve: true,
|
|
321
|
+
retryHint: INTERACTIVE_PROVISION_RETRY_HINT,
|
|
322
|
+
waitSeconds,
|
|
323
|
+
});
|
|
324
|
+
console.log(formatProvisionResult(result));
|
|
325
|
+
await printProvisionSetup(result);
|
|
326
|
+
if (result.status === "blocked" || result.status === "failed") process.exitCode = 1;
|
|
327
|
+
} catch (error) {
|
|
328
|
+
throw new Error(formatProvisionError(error));
|
|
207
329
|
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
name: "approved",
|
|
211
|
-
message: "Run these Azure commands? This may create billable resources.",
|
|
212
|
-
initial: false,
|
|
213
|
-
});
|
|
214
|
-
approved = answer.approved === true;
|
|
215
|
-
}
|
|
216
|
-
if (!approved) {
|
|
217
|
-
console.log("Provision cancelled. Nothing was changed in Azure.");
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
330
|
+
});
|
|
331
|
+
}
|
|
220
332
|
|
|
221
|
-
|
|
222
|
-
console.log(formatProvisionResult(result));
|
|
223
|
-
if (result.status === "blocked" || result.status === "failed") process.exitCode = 1;
|
|
224
|
-
});
|
|
333
|
+
export const provisionCommand = createProvisionCommand();
|
package/src/cli/index.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { readFileSync } from "fs";
|
|
|
5
5
|
import * as path from "path";
|
|
6
6
|
import { Command } from "commander";
|
|
7
7
|
import { initCommand, devCommand, devSeedsCommand, scaffoldCommand, createModelCommand } from "./commands";
|
|
8
|
-
import {
|
|
8
|
+
import { createProvisionCommand } from "./commands/provision";
|
|
9
9
|
import { AzureCliDiagnostic, formatAzureDiagnostic } from "../utils/azure-diagnostics";
|
|
10
10
|
import { createMigrationCommand } from "./commands/create-migration";
|
|
11
11
|
import { migrationsCommand } from "./commands/migrations";
|
|
@@ -140,7 +140,7 @@ export function createProgram(devCommandOverride: Command = devCommand): Command
|
|
|
140
140
|
program.addCommand(devCommandOverride);
|
|
141
141
|
program.addCommand(devSeedsCommand);
|
|
142
142
|
|
|
143
|
-
program.addCommand(
|
|
143
|
+
program.addCommand(createProvisionCommand());
|
|
144
144
|
program.addCommand(migrationsCommand);
|
|
145
145
|
program.addCommand(createMigrationCommand);
|
|
146
146
|
program.addCommand(configureMcpCommand);
|
|
@@ -224,6 +224,10 @@ required.
|
|
|
224
224
|
|
|
225
225
|
Never invent or implicitly grant human approval.
|
|
226
226
|
|
|
227
|
+
Humans normally invoke `swallowkit provision` directly. Its invocation requests
|
|
228
|
+
execution without an additional confirmation. Agents must still use the
|
|
229
|
+
machine/MCP approval flow and must not switch to normal CLI to bypass it.
|
|
230
|
+
|
|
227
231
|
## Model Changes
|
|
228
232
|
|
|
229
233
|
For an existing model change, the normal pattern is:
|
|
@@ -24,6 +24,8 @@ Always-on rules:
|
|
|
24
24
|
after apply).
|
|
25
25
|
- Use plan/apply for deterministic generation.
|
|
26
26
|
- Respect all `requires-human` states and provisioning approval gates.
|
|
27
|
+
- Normal `swallowkit provision` is for humans. Agents must not use it to bypass
|
|
28
|
+
the machine/MCP approval flow.
|
|
27
29
|
- Provision timeouts/Ctrl+C do not prove Azure failed. Inspect the original
|
|
28
30
|
execution checkpoint with `machine inspect provision --plan <runId>`; resume
|
|
29
31
|
`machine apply provision --plan <runId> --approve` only after explicit human
|
|
@@ -23,6 +23,8 @@ Key rules:
|
|
|
23
23
|
after apply).
|
|
24
24
|
- Use plan/apply for deterministic generation.
|
|
25
25
|
- Respect `requires-human` states and other human approval gates.
|
|
26
|
+
- Normal `swallowkit provision` is a human-facing deployment command. Agents must
|
|
27
|
+
use the machine/MCP approval flow, not normal CLI as an approval bypass.
|
|
26
28
|
- Provision timeouts/Ctrl+C do not prove Azure failed. Read `status`, `outcome`,
|
|
27
29
|
and `nextActions`; inspect the original run with `machine inspect provision
|
|
28
30
|
--plan <runId>`, then resume `machine apply provision --plan <runId> --approve`
|
|
@@ -237,8 +237,8 @@ export function inspectCapabilities(): CapabilitiesContract {
|
|
|
237
237
|
completion: "status complete/outcome succeeded requires Azure Succeeded plus verified migration tags and local ledger completion. Running/Accepted -> in-progress; unreadable/not-found state -> blocked/outcome unknown; bookkeeping interruption after Azure Succeeded -> blocked/outcome partial; Failed/Canceled -> failed with Azure causes.",
|
|
238
238
|
tracking: "Approved runs persist before Azure writes under .swallowkit/state/provision/. runId equals the original planId and preserves the subscription, RG, deployment ID/correlation, fingerprints and migration state. inspect provision is read-only; apply provision --plan resumes without re-submitting attempted deployments. Ctrl+C/termination may leave Azure running; never cancel/delete without explicit consent.",
|
|
239
239
|
recovery: "For an older untracked baseline, plan provision --resume-deployment <name> compares the existing ARM template and non-secure parameters to the local Bicep/parameters. It observes that deployment and only tags/records it after Succeeded. Mismatches, unreadable evidence, secure parameters or non-baseline migrations block; do not use reconcile just to repair bookkeeping.",
|
|
240
|
-
diagnostics: "
|
|
241
|
-
approval: "
|
|
240
|
+
diagnostics: "Machine/MCP results include bounded/redacted stdout/stderr, omitted-output flags, exit code, signal, failure kind, elapsed time and deployment identity, but no deployment outputs. Normal CLI shows named resource information and CI/CD setup guidance after success. Never print --debug output, keys, tokens or connection strings.",
|
|
241
|
+
approval: "Machine/MCP initial apply and every resume require explicit human approval. A human invoking normal provision or provision --resume explicitly requests execution without another confirmation prompt. Agents must not switch to normal CLI to bypass approval. A passing local command or an ok envelope is not proof of completed Azure provisioning; inspect status, outcome and nextActions.",
|
|
242
242
|
},
|
|
243
243
|
verifyChecks: {
|
|
244
244
|
defaultChecks: ["structure", "drift", "typecheck", "backend-build"],
|
|
@@ -211,6 +211,8 @@ Goal: bootstrap Azure once, then apply only pending versioned infrastructure mig
|
|
|
211
211
|
\`status: "requires-human"\` and \`requiresApproval: true\` by design.
|
|
212
212
|
- Never pass \`--approve\` to \`apply provision\` unless a human explicitly
|
|
213
213
|
instructed you to provision in this session.
|
|
214
|
+
- This plan/apply workflow is for agents. Humans normally run \`swallowkit provision\`
|
|
215
|
+
directly; do not switch to that command to bypass the agent approval gate.
|
|
214
216
|
- Inspect infra locally first — no \`az\` calls are needed for inspection.
|
|
215
217
|
- Never edit an applied migration. Create a corrective migration instead.
|
|
216
218
|
- Never use \`--reconcile\` for an ordinary model or resource addition.
|