@sfdxy/anypoint-connect 0.14.0 → 0.16.2
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 +39 -16
- package/dist/analysis/LogAnalyzer.d.ts +10 -4
- package/dist/analysis/LogAnalyzer.d.ts.map +1 -1
- package/dist/analysis/LogAnalyzer.js +29 -18
- package/dist/analysis/LogAnalyzer.js.map +1 -1
- package/dist/analysis/error-context.d.ts +2 -0
- package/dist/analysis/error-context.d.ts.map +1 -1
- package/dist/analysis/error-context.js +2 -1
- package/dist/analysis/error-context.js.map +1 -1
- package/dist/analysis/error-grouper.js +1 -1
- package/dist/analysis/error-grouper.js.map +1 -1
- package/dist/analysis/filter.d.ts +54 -0
- package/dist/analysis/filter.d.ts.map +1 -0
- package/dist/analysis/filter.js +100 -0
- package/dist/analysis/filter.js.map +1 -0
- package/dist/analysis/{utils.d.ts → normalize.d.ts} +1 -1
- package/dist/analysis/normalize.d.ts.map +1 -0
- package/dist/analysis/{utils.js → normalize.js} +2 -2
- package/dist/analysis/normalize.js.map +1 -0
- package/dist/analysis/parser.d.ts.map +1 -1
- package/dist/analysis/parser.js +45 -17
- package/dist/analysis/parser.js.map +1 -1
- package/dist/analysis/pattern-detector.js +1 -1
- package/dist/analysis/pattern-detector.js.map +1 -1
- package/dist/analysis/stats.d.ts +25 -0
- package/dist/analysis/stats.d.ts.map +1 -1
- package/dist/analysis/stats.js +35 -1
- package/dist/analysis/stats.js.map +1 -1
- package/dist/analysis/summary.d.ts +51 -0
- package/dist/analysis/summary.d.ts.map +1 -0
- package/dist/analysis/summary.js +47 -0
- package/dist/analysis/summary.js.map +1 -0
- package/dist/analysis/types.d.ts +14 -0
- package/dist/analysis/types.d.ts.map +1 -1
- package/dist/api/ApiManagerApi.d.ts +53 -0
- package/dist/api/ApiManagerApi.d.ts.map +1 -1
- package/dist/api/ApiManagerApi.js +53 -2
- package/dist/api/ApiManagerApi.js.map +1 -1
- package/dist/api/CloudHub2Api.d.ts +24 -4
- package/dist/api/CloudHub2Api.d.ts.map +1 -1
- package/dist/api/CloudHub2Api.js +10 -22
- package/dist/api/CloudHub2Api.js.map +1 -1
- package/dist/api/DesignCenterApi.d.ts +0 -20
- package/dist/api/DesignCenterApi.d.ts.map +1 -1
- package/dist/api/DesignCenterApi.js +0 -22
- package/dist/api/DesignCenterApi.js.map +1 -1
- package/dist/api/ExchangeApi.d.ts +15 -0
- package/dist/api/ExchangeApi.d.ts.map +1 -1
- package/dist/api/ExchangeApi.js +51 -0
- package/dist/api/ExchangeApi.js.map +1 -1
- package/dist/api/LogsApi.d.ts +50 -18
- package/dist/api/LogsApi.d.ts.map +1 -1
- package/dist/api/LogsApi.js +69 -98
- package/dist/api/LogsApi.js.map +1 -1
- package/dist/api/MonitoringApi.d.ts +137 -93
- package/dist/api/MonitoringApi.d.ts.map +1 -1
- package/dist/api/MonitoringApi.js +471 -204
- package/dist/api/MonitoringApi.js.map +1 -1
- package/dist/api/RuntimesApi.d.ts +56 -0
- package/dist/api/RuntimesApi.d.ts.map +1 -0
- package/dist/api/RuntimesApi.js +58 -0
- package/dist/api/RuntimesApi.js.map +1 -0
- package/dist/auth/FileStore.js +1 -1
- package/dist/auth/FileStore.js.map +1 -1
- package/dist/cli.js +4 -2
- package/dist/cli.js.map +1 -1
- package/dist/client/AnypointClient.d.ts +3 -1
- package/dist/client/AnypointClient.d.ts.map +1 -1
- package/dist/client/AnypointClient.js +5 -2
- package/dist/client/AnypointClient.js.map +1 -1
- package/dist/client/smoke-test.d.ts +111 -0
- package/dist/client/smoke-test.d.ts.map +1 -0
- package/dist/client/smoke-test.js +275 -0
- package/dist/client/smoke-test.js.map +1 -0
- package/dist/commands/api.d.ts +1 -1
- package/dist/commands/api.d.ts.map +1 -1
- package/dist/commands/api.js +175 -30
- package/dist/commands/api.js.map +1 -1
- package/dist/commands/app-change-cli.d.ts +52 -0
- package/dist/commands/app-change-cli.d.ts.map +1 -0
- package/dist/commands/app-change-cli.js +149 -0
- package/dist/commands/app-change-cli.js.map +1 -0
- package/dist/commands/apps.d.ts +1 -1
- package/dist/commands/apps.d.ts.map +1 -1
- package/dist/commands/apps.js +199 -18
- package/dist/commands/apps.js.map +1 -1
- package/dist/commands/auth.js +1 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/compare.d.ts +8 -0
- package/dist/commands/compare.d.ts.map +1 -0
- package/dist/commands/compare.js +104 -0
- package/dist/commands/compare.js.map +1 -0
- package/dist/commands/config.js +1 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/deploy.d.ts +6 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +89 -91
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/design-center.d.ts +1 -1
- package/dist/commands/design-center.d.ts.map +1 -1
- package/dist/commands/design-center.js +36 -25
- package/dist/commands/design-center.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/logs.d.ts +3 -2
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +142 -17
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/monitor.d.ts +5 -6
- package/dist/commands/monitor.d.ts.map +1 -1
- package/dist/commands/monitor.js +210 -230
- package/dist/commands/monitor.js.map +1 -1
- package/dist/commands/runtimes.d.ts +7 -0
- package/dist/commands/runtimes.d.ts.map +1 -0
- package/dist/commands/runtimes.js +66 -0
- package/dist/commands/runtimes.js.map +1 -0
- package/dist/commands/shared.d.ts +2 -0
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/shared.js +16 -1
- package/dist/commands/shared.js.map +1 -1
- package/dist/{utils/config.d.ts → config/profiles.d.ts} +9 -1
- package/dist/config/profiles.d.ts.map +1 -0
- package/dist/{utils/config.js → config/profiles.js} +1 -1
- package/dist/config/profiles.js.map +1 -0
- package/dist/index.d.ts +12 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp/prompts.js +7 -7
- package/dist/mcp/prompts.js.map +1 -1
- package/dist/mcp/server.d.ts +14 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +61 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/analysis.d.ts.map +1 -1
- package/dist/mcp/tools/analysis.js +74 -46
- package/dist/mcp/tools/analysis.js.map +1 -1
- package/dist/mcp/tools/anypoint-mq.d.ts.map +1 -1
- package/dist/mcp/tools/anypoint-mq.js +25 -54
- package/dist/mcp/tools/anypoint-mq.js.map +1 -1
- package/dist/mcp/tools/api-manager.d.ts +2 -1
- package/dist/mcp/tools/api-manager.d.ts.map +1 -1
- package/dist/mcp/tools/api-manager.js +154 -89
- package/dist/mcp/tools/api-manager.js.map +1 -1
- package/dist/mcp/tools/app-inputs.d.ts +92 -0
- package/dist/mcp/tools/app-inputs.d.ts.map +1 -0
- package/dist/mcp/tools/app-inputs.js +142 -0
- package/dist/mcp/tools/app-inputs.js.map +1 -0
- package/dist/mcp/tools/apps-deploy.d.ts +13 -0
- package/dist/mcp/tools/apps-deploy.d.ts.map +1 -0
- package/dist/mcp/tools/apps-deploy.js +358 -0
- package/dist/mcp/tools/apps-deploy.js.map +1 -0
- package/dist/mcp/tools/apps-lifecycle.d.ts +11 -0
- package/dist/mcp/tools/apps-lifecycle.d.ts.map +1 -0
- package/dist/mcp/tools/apps-lifecycle.js +244 -0
- package/dist/mcp/tools/apps-lifecycle.js.map +1 -0
- package/dist/mcp/tools/apps-read.d.ts +9 -0
- package/dist/mcp/tools/apps-read.d.ts.map +1 -0
- package/dist/mcp/tools/apps-read.js +414 -0
- package/dist/mcp/tools/apps-read.js.map +1 -0
- package/dist/mcp/tools/artifacts.d.ts +8 -0
- package/dist/mcp/tools/artifacts.d.ts.map +1 -0
- package/dist/mcp/tools/artifacts.js +81 -0
- package/dist/mcp/tools/artifacts.js.map +1 -0
- package/dist/mcp/tools/audit.d.ts.map +1 -1
- package/dist/mcp/tools/audit.js +9 -17
- package/dist/mcp/tools/audit.js.map +1 -1
- package/dist/mcp/tools/design-center.d.ts +2 -3
- package/dist/mcp/tools/design-center.d.ts.map +1 -1
- package/dist/mcp/tools/design-center.js +41 -185
- package/dist/mcp/tools/design-center.js.map +1 -1
- package/dist/mcp/tools/exchange.d.ts +1 -2
- package/dist/mcp/tools/exchange.d.ts.map +1 -1
- package/dist/mcp/tools/exchange.js +51 -312
- package/dist/mcp/tools/exchange.js.map +1 -1
- package/dist/mcp/tools/governance.d.ts +8 -0
- package/dist/mcp/tools/governance.d.ts.map +1 -0
- package/dist/mcp/tools/governance.js +59 -0
- package/dist/mcp/tools/governance.js.map +1 -0
- package/dist/mcp/tools/identity.d.ts.map +1 -1
- package/dist/mcp/tools/identity.js +15 -36
- package/dist/mcp/tools/identity.js.map +1 -1
- package/dist/mcp/tools/index.d.ts +5 -1
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +5 -1
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/logs.d.ts +48 -2
- package/dist/mcp/tools/logs.d.ts.map +1 -1
- package/dist/mcp/tools/logs.js +204 -54
- package/dist/mcp/tools/logs.js.map +1 -1
- package/dist/mcp/tools/monitoring.d.ts +1 -2
- package/dist/mcp/tools/monitoring.d.ts.map +1 -1
- package/dist/mcp/tools/monitoring.js +78 -285
- package/dist/mcp/tools/monitoring.js.map +1 -1
- package/dist/mcp/tools/object-store.d.ts +1 -1
- package/dist/mcp/tools/object-store.d.ts.map +1 -1
- package/dist/mcp/tools/object-store.js +19 -59
- package/dist/mcp/tools/object-store.js.map +1 -1
- package/dist/mcp/tools/profile.d.ts.map +1 -1
- package/dist/mcp/tools/profile.js +15 -35
- package/dist/mcp/tools/profile.js.map +1 -1
- package/dist/mcp/tools/shared.d.ts +43 -0
- package/dist/mcp/tools/shared.d.ts.map +1 -1
- package/dist/mcp/tools/shared.js +54 -0
- package/dist/mcp/tools/shared.js.map +1 -1
- package/dist/mcp.d.ts +3 -11
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +4 -56
- package/dist/mcp.js.map +1 -1
- package/dist/safety/deployment.d.ts +47 -2
- package/dist/safety/deployment.d.ts.map +1 -1
- package/dist/safety/deployment.js +139 -6
- package/dist/safety/deployment.js.map +1 -1
- package/dist/safety/guards.d.ts +2 -2
- package/dist/safety/guards.d.ts.map +1 -1
- package/dist/safety/guards.js +4 -4
- package/dist/safety/guards.js.map +1 -1
- package/dist/safety/paths.d.ts +29 -0
- package/dist/safety/paths.d.ts.map +1 -0
- package/dist/safety/paths.js +76 -0
- package/dist/safety/paths.js.map +1 -0
- package/dist/safety/runtime.d.ts +24 -0
- package/dist/safety/runtime.d.ts.map +1 -0
- package/dist/safety/runtime.js +59 -0
- package/dist/safety/runtime.js.map +1 -0
- package/dist/safety/secret-sources.d.ts +51 -0
- package/dist/safety/secret-sources.d.ts.map +1 -0
- package/dist/safety/secret-sources.js +124 -0
- package/dist/safety/secret-sources.js.map +1 -0
- package/dist/safety/secrets.d.ts +32 -0
- package/dist/safety/secrets.d.ts.map +1 -0
- package/dist/safety/secrets.js +91 -0
- package/dist/safety/secrets.js.map +1 -0
- package/dist/utils/errors.d.ts +14 -1
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +31 -3
- package/dist/utils/errors.js.map +1 -1
- package/dist/workflows/app-change.d.ts +124 -0
- package/dist/workflows/app-change.d.ts.map +1 -0
- package/dist/workflows/app-change.js +305 -0
- package/dist/workflows/app-change.js.map +1 -0
- package/dist/workflows/app-state.d.ts +60 -0
- package/dist/workflows/app-state.d.ts.map +1 -0
- package/dist/workflows/app-state.js +95 -0
- package/dist/workflows/app-state.js.map +1 -0
- package/dist/workflows/artifact-compare.d.ts +134 -0
- package/dist/workflows/artifact-compare.d.ts.map +1 -0
- package/dist/workflows/artifact-compare.js +419 -0
- package/dist/workflows/artifact-compare.js.map +1 -0
- package/dist/workflows/asset-naming.d.ts +72 -0
- package/dist/workflows/asset-naming.d.ts.map +1 -0
- package/dist/workflows/asset-naming.js +116 -0
- package/dist/workflows/asset-naming.js.map +1 -0
- package/dist/{api/DesignCenterWorkflow.d.ts → workflows/design-center.d.ts} +4 -4
- package/dist/workflows/design-center.d.ts.map +1 -0
- package/dist/{api/DesignCenterWorkflow.js → workflows/design-center.js} +1 -1
- package/dist/workflows/design-center.js.map +1 -0
- package/dist/workflows/jar-deployment.d.ts +156 -0
- package/dist/workflows/jar-deployment.d.ts.map +1 -0
- package/dist/workflows/jar-deployment.js +178 -0
- package/dist/workflows/jar-deployment.js.map +1 -0
- package/package.json +12 -4
- package/dist/analysis/utils.d.ts.map +0 -1
- package/dist/analysis/utils.js.map +0 -1
- package/dist/api/DesignCenterWorkflow.d.ts.map +0 -1
- package/dist/api/DesignCenterWorkflow.js.map +0 -1
- package/dist/api/index.d.ts +0 -13
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js +0 -13
- package/dist/api/index.js.map +0 -1
- package/dist/mcp/tools/applications.d.ts +0 -4
- package/dist/mcp/tools/applications.d.ts.map +0 -1
- package/dist/mcp/tools/applications.js +0 -815
- package/dist/mcp/tools/applications.js.map +0 -1
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js.map +0 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deployed artifact comparison CLI command
|
|
3
|
+
* anc apps compare <app> -e <env> (--repo <path> [--ref <ref>] [--working-tree] | --jar <path>)
|
|
4
|
+
*/
|
|
5
|
+
import * as fs from 'node:fs';
|
|
6
|
+
import * as path from 'node:path';
|
|
7
|
+
import { log } from '../utils/logger.js';
|
|
8
|
+
import { errorMessage } from '../utils/errors.js';
|
|
9
|
+
import { createClient } from './shared.js';
|
|
10
|
+
import { DEFAULT_JAR_MAX_BYTES } from '../api/ExchangeApi.js';
|
|
11
|
+
import { compareJarToGit, compareJarToJar, fetchDeployedJar, } from '../workflows/artifact-compare.js';
|
|
12
|
+
function printPaths(title, items, total) {
|
|
13
|
+
if (total === 0)
|
|
14
|
+
return;
|
|
15
|
+
log.bold(`${title} (${total})`);
|
|
16
|
+
for (const item of items) {
|
|
17
|
+
const sizes = [item.deployedSize, item.repoSize].filter((s) => s !== undefined).join(' -> ');
|
|
18
|
+
console.log(` ${item.path}${item.jarPath && item.jarPath !== item.path ? ` [${item.jarPath}]` : ''} ${sizes}`);
|
|
19
|
+
}
|
|
20
|
+
console.log();
|
|
21
|
+
}
|
|
22
|
+
function printComparison(comparison) {
|
|
23
|
+
log.kv('Verdict', comparison.verdict);
|
|
24
|
+
log.kv('Version', `deployed ${comparison.pomVersion.deployed ?? '?'}, repo ${comparison.pomVersion.repo ?? '?'}`);
|
|
25
|
+
if (comparison.sha256.repo)
|
|
26
|
+
log.kv('SHA-256 match', String(comparison.sha256.match));
|
|
27
|
+
log.kv('Compared entries', comparison.summary.compared);
|
|
28
|
+
console.log();
|
|
29
|
+
printPaths('Changed', comparison.changed, comparison.summary.changed);
|
|
30
|
+
printPaths('Missing in repo', comparison.missingInRepo, comparison.summary.missingInRepo);
|
|
31
|
+
printPaths('Extra in repo', comparison.extraInRepo, comparison.summary.extraInRepo);
|
|
32
|
+
const deps = comparison.dependencies;
|
|
33
|
+
if (deps.changed.length + deps.missingInRepo.length + deps.extraInRepo.length > 0) {
|
|
34
|
+
log.bold('Dependencies');
|
|
35
|
+
for (const d of deps.changed)
|
|
36
|
+
console.log(` ~ ${d.dependency}: ${d.deployed} -> ${d.repo}`);
|
|
37
|
+
for (const d of deps.missingInRepo)
|
|
38
|
+
console.log(` - ${d} (deployed only)`);
|
|
39
|
+
for (const d of deps.extraInRepo)
|
|
40
|
+
console.log(` + ${d} (repo only)`);
|
|
41
|
+
console.log();
|
|
42
|
+
}
|
|
43
|
+
if (comparison.workingTreeChanges?.length) {
|
|
44
|
+
log.bold(`Working tree changes (${comparison.workingTreeChanges.length})`);
|
|
45
|
+
for (const c of comparison.workingTreeChanges)
|
|
46
|
+
console.log(` ${c.status.padEnd(2)} ${c.path}`);
|
|
47
|
+
console.log();
|
|
48
|
+
}
|
|
49
|
+
for (const note of comparison.notes)
|
|
50
|
+
log.dim(` ${note}`);
|
|
51
|
+
}
|
|
52
|
+
/** Register `compare` under the `apps` command. */
|
|
53
|
+
export function registerCompareCommand(apps) {
|
|
54
|
+
return apps
|
|
55
|
+
.command('compare')
|
|
56
|
+
.description('Compare the deployed jar of an application with a git checkout or a local jar')
|
|
57
|
+
.argument('<app>', 'Application name')
|
|
58
|
+
.requiredOption('-e, --env <name>', 'Environment name or ID')
|
|
59
|
+
.option('--repo <path>', 'Mule project directory (git checkout)')
|
|
60
|
+
.option('--ref <ref>', 'Git commit, branch or tag to compare', 'HEAD')
|
|
61
|
+
.option('--working-tree', 'Include uncommitted and untracked changes (based on HEAD)', false)
|
|
62
|
+
.option('--jar <path>', 'Local application jar to compare instead of a repo')
|
|
63
|
+
.action(async (appName, opts) => {
|
|
64
|
+
try {
|
|
65
|
+
if (Boolean(opts.repo) === Boolean(opts.jar))
|
|
66
|
+
throw new Error('Pass exactly one of --repo or --jar');
|
|
67
|
+
let localJar;
|
|
68
|
+
if (opts.jar) {
|
|
69
|
+
const jarPath = path.resolve(opts.jar);
|
|
70
|
+
const stat = fs.statSync(jarPath);
|
|
71
|
+
if (!stat.isFile())
|
|
72
|
+
throw new Error(`Not a file: ${opts.jar}`);
|
|
73
|
+
if (stat.size > DEFAULT_JAR_MAX_BYTES)
|
|
74
|
+
throw new Error(`Jar exceeds ${DEFAULT_JAR_MAX_BYTES} bytes`);
|
|
75
|
+
localJar = fs.readFileSync(jarPath);
|
|
76
|
+
}
|
|
77
|
+
const client = createClient();
|
|
78
|
+
const orgId = await client.getDefaultOrgId();
|
|
79
|
+
const env = await client.accessManagement.resolveEnvironment(orgId, opts.env);
|
|
80
|
+
const deployed = await fetchDeployedJar(client, orgId, env, appName, {
|
|
81
|
+
maxBytes: DEFAULT_JAR_MAX_BYTES,
|
|
82
|
+
});
|
|
83
|
+
log.header(`Compare ${appName} in ${env.name}`);
|
|
84
|
+
log.kv('Deployed', `${deployed.ref.groupId}:${deployed.ref.artifactId}:${deployed.ref.version}`);
|
|
85
|
+
if (!deployed.md5Matches)
|
|
86
|
+
log.warn('Downloaded jar does not match the Exchange MD5');
|
|
87
|
+
const comparison = localJar
|
|
88
|
+
? compareJarToJar(deployed.buffer, localJar, opts.jar)
|
|
89
|
+
: await compareJarToGit(deployed.buffer, {
|
|
90
|
+
repoPath: opts.repo,
|
|
91
|
+
gitRef: opts.ref,
|
|
92
|
+
includeWorkingTree: opts.workingTree,
|
|
93
|
+
});
|
|
94
|
+
printComparison(comparison);
|
|
95
|
+
if (comparison.verdict === 'differs')
|
|
96
|
+
process.exitCode = 1;
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
log.error(`Compare failed: ${errorMessage(error)}`);
|
|
100
|
+
process.exitCode = 1;
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=compare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/commands/compare.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/config.js
CHANGED
|
@@ -8,7 +8,7 @@ import chalk from 'chalk';
|
|
|
8
8
|
import password from '@inquirer/password';
|
|
9
9
|
import { log } from '../utils/logger.js';
|
|
10
10
|
import { errorMessage } from '../utils/errors.js';
|
|
11
|
-
import { readSavedConfig, writeSavedConfig, updateSavedConfig, hasSavedConfig, getConfigDir, getProfileDir, listProfiles, resolveProfile, writeProjectConfig, DEFAULT_CALLBACK_URL, } from '../
|
|
11
|
+
import { readSavedConfig, writeSavedConfig, updateSavedConfig, hasSavedConfig, getConfigDir, getProfileDir, listProfiles, resolveProfile, writeProjectConfig, DEFAULT_CALLBACK_URL, } from '../config/profiles.js';
|
|
12
12
|
function ask(rl, prompt, defaultValue) {
|
|
13
13
|
const display = defaultValue ? `${prompt} ${chalk.dim(`(${defaultValue})`)} ` : `${prompt} `;
|
|
14
14
|
return new Promise((resolve) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACH,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GAEvB,MAAM,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Deploy CLI Command
|
|
3
|
-
* anc deploy <jarPath> --app <name> --env <envName> [--runtime <version>] [--replicas <n>] [--region <target>]
|
|
3
|
+
* anc deploy <jarPath> --app <name> --env <envName> [--runtime <version>] [--replicas <n>] [--region <target>]
|
|
4
|
+
* [--vcores <size>] [--asset-id <id>] [--asset-version <v>] [--group-id <id>] [settings flags]
|
|
5
|
+
* [--stop-start] [--update-strategy <s>] [--no-wait] [--dry-run] [--force]
|
|
6
|
+
*
|
|
7
|
+
* Publishes the JAR to Exchange, then creates the deployment or, for an existing app, applies the
|
|
8
|
+
* artifact change (plus any runtime or settings change) as one update.
|
|
4
9
|
*/
|
|
5
10
|
import { Command } from 'commander';
|
|
6
11
|
export declare function createDeployCommand(): Command;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,mBAAmB,IAAI,OAAO,CAgI7C"}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -1,127 +1,125 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Deploy CLI Command
|
|
3
|
-
* anc deploy <jarPath> --app <name> --env <envName> [--runtime <version>] [--replicas <n>] [--region <target>]
|
|
3
|
+
* anc deploy <jarPath> --app <name> --env <envName> [--runtime <version>] [--replicas <n>] [--region <target>]
|
|
4
|
+
* [--vcores <size>] [--asset-id <id>] [--asset-version <v>] [--group-id <id>] [settings flags]
|
|
5
|
+
* [--stop-start] [--update-strategy <s>] [--no-wait] [--dry-run] [--force]
|
|
6
|
+
*
|
|
7
|
+
* Publishes the JAR to Exchange, then creates the deployment or, for an existing app, applies the
|
|
8
|
+
* artifact change (plus any runtime or settings change) as one update.
|
|
4
9
|
*/
|
|
5
10
|
import { Command } from 'commander';
|
|
6
|
-
import * as fs from 'fs';
|
|
7
|
-
import * as path from 'path';
|
|
8
|
-
import ora from 'ora';
|
|
9
11
|
import chalk from 'chalk';
|
|
10
12
|
import { log } from '../utils/logger.js';
|
|
11
13
|
import { errorMessage } from '../utils/errors.js';
|
|
12
14
|
import { isProductionEnv, buildDeploySummary, confirmProductionDeploy } from '../safety/guards.js';
|
|
13
|
-
import {
|
|
15
|
+
import { DEFAULT_REGION, DEFAULT_RUNTIME, DEFAULT_VCORES, VALID_VCORES } from '../safety/deployment.js';
|
|
16
|
+
import { redactText } from '../safety/secrets.js';
|
|
17
|
+
import { describeJarDeployment, executeJarDeployment, planJarDeployment } from '../workflows/jar-deployment.js';
|
|
18
|
+
import { addRolloutOptions, addRuntimeOptions, addSettingsOptions, printAppChange, rolloutFromOptions, rolloutSpinner, runtimeFromOptions, settingsFromOptions, } from './app-change-cli.js';
|
|
14
19
|
import { createClient } from './shared.js';
|
|
15
20
|
export function createDeployCommand() {
|
|
16
|
-
const
|
|
17
|
-
.description('
|
|
18
|
-
.argument('
|
|
21
|
+
const command = new Command('deploy')
|
|
22
|
+
.description('Publish a Mule application JAR to Exchange and deploy it to CloudHub 2.0')
|
|
23
|
+
.argument('<jarPath>', 'Path to the built application JAR')
|
|
19
24
|
.requiredOption('-a, --app <name>', 'Application name')
|
|
20
25
|
.requiredOption('-e, --env <name>', 'Target environment')
|
|
21
|
-
.option('-
|
|
22
|
-
.option('--
|
|
23
|
-
.option('--group-id <id>', '
|
|
24
|
-
.option('--
|
|
25
|
-
.option('--
|
|
26
|
-
.option('--
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
.option('--asset-id <id>', "Exchange asset ID (default: naming convention, else the JAR's Maven artifactId)")
|
|
27
|
+
.option('--asset-version <v>', "Exchange asset version (default: naming convention, else the JAR's Maven version)")
|
|
28
|
+
.option('--group-id <id>', 'Exchange group ID (default: the organization ID)')
|
|
29
|
+
.option('--replicas <n>', '[new app only] Number of replicas (default: 1)')
|
|
30
|
+
.option('--vcores <size>', `[new app only] vCore size: ${VALID_VCORES.join(', ')} (default: ${DEFAULT_VCORES})`)
|
|
31
|
+
.option('--region <target>', `[new app only] CloudHub 2.0 target (default: ${DEFAULT_REGION})`);
|
|
32
|
+
addRuntimeOptions(command, `(new app default: ${DEFAULT_RUNTIME}) `);
|
|
33
|
+
addSettingsOptions(command);
|
|
34
|
+
addRolloutOptions(command);
|
|
35
|
+
return command
|
|
36
|
+
.option('--dry-run', 'Show what would be published and deployed, then stop', false)
|
|
37
|
+
.option('--force', 'Skip the production confirmation prompt', false)
|
|
29
38
|
.action(async (jarPath, opts) => {
|
|
39
|
+
let secretValues = [];
|
|
30
40
|
try {
|
|
31
41
|
const client = createClient();
|
|
32
42
|
const orgId = await client.getDefaultOrgId();
|
|
33
43
|
const env = await client.accessManagement.resolveEnvironment(orgId, opts.env);
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
const rollout = rolloutFromOptions(opts);
|
|
45
|
+
const plan = await planJarDeployment(client, {
|
|
46
|
+
jarPath,
|
|
47
|
+
appName: opts.app,
|
|
48
|
+
orgId,
|
|
49
|
+
env,
|
|
50
|
+
assetId: opts.assetId,
|
|
51
|
+
assetVersion: opts.assetVersion,
|
|
52
|
+
groupId: opts.groupId,
|
|
53
|
+
runtime: runtimeFromOptions(opts),
|
|
54
|
+
replicas: opts.replicas ? parseInt(opts.replicas, 10) : undefined,
|
|
55
|
+
region: opts.region,
|
|
56
|
+
vcores: opts.vcores,
|
|
57
|
+
settings: settingsFromOptions(opts),
|
|
58
|
+
mode: rollout.mode,
|
|
59
|
+
updateStrategy: rollout.updateStrategy,
|
|
60
|
+
});
|
|
61
|
+
secretValues = plan.secretValues;
|
|
62
|
+
if (plan.rejectedSettings.length > 0) {
|
|
63
|
+
throw new Error(`"${opts.app}" already exists in ${env.name}; region, vCores and replicas apply only to a new app. ` +
|
|
64
|
+
`Drop ${plan.rejectedSettings.map((s) => `--${s}`).join(', ')}.`);
|
|
43
65
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
66
|
+
const summary = describeJarDeployment(plan);
|
|
67
|
+
console.log(buildDeploySummary(opts.app, env.name, plan.existing, plan.ref.version, env.isProduction));
|
|
68
|
+
log.kv('Artifact', `${plan.ref.groupId}:${plan.ref.artifactId}:${plan.ref.version}`);
|
|
69
|
+
log.kv('Naming', `asset ID from ${summary.publish.naming.assetId}, version from ${summary.publish.naming.version}`);
|
|
70
|
+
if (plan.naming.deployedPattern) {
|
|
71
|
+
log.dim(` The deployed asset follows ${plan.naming.deployedPattern.assetId} @ ${plan.naming.deployedPattern.assetVersion}; set it as a project convention or pass --asset-id/--asset-version to use it.`);
|
|
47
72
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (
|
|
51
|
-
|
|
52
|
-
process.exit(1);
|
|
73
|
+
log.kv('SHA-256', plan.artifact.sha256);
|
|
74
|
+
let ok = true;
|
|
75
|
+
if (plan.change) {
|
|
76
|
+
ok = printAppChange(plan.change);
|
|
53
77
|
}
|
|
54
|
-
if (
|
|
55
|
-
log.
|
|
56
|
-
|
|
78
|
+
else if (summary.deploy.action === 'create') {
|
|
79
|
+
log.kv('Mode', 'create deployment');
|
|
80
|
+
log.kv('Runtime', summary.deploy.runtime);
|
|
81
|
+
log.kv('Target', `${summary.deploy.region}, ${summary.deploy.vcores} vCores x ${summary.deploy.replicas}`);
|
|
57
82
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
83
|
+
if (!ok) {
|
|
84
|
+
process.exitCode = 1;
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (opts.dryRun) {
|
|
88
|
+
log.info('Dry run: nothing was published or deployed.');
|
|
89
|
+
return;
|
|
62
90
|
}
|
|
63
|
-
// Extract version from filename if not provided
|
|
64
|
-
const basename = path.basename(resolvedPath);
|
|
65
|
-
const match = basename.match(/^(.+?)-(\d+\.\d+\.\d+(?:-.+?)?)-mule-application\.jar$/);
|
|
66
|
-
const artifactId = opts.artifactId || match?.[1] || opts.app;
|
|
67
|
-
const version = opts.version || match?.[2] || '1.0.0';
|
|
68
|
-
const groupId = opts.groupId || orgId;
|
|
69
|
-
// ── Safety Check ─────────────────────────────────
|
|
70
|
-
console.log(buildDeploySummary(opts.app, env.name, existing, version));
|
|
71
91
|
if (isProductionEnv(env.name, env.isProduction) && !opts.force) {
|
|
72
|
-
|
|
73
|
-
if (!confirmed) {
|
|
92
|
+
if (!(await confirmProductionDeploy(env.name, env.isProduction))) {
|
|
74
93
|
log.warn('Deployment cancelled');
|
|
75
94
|
return;
|
|
76
95
|
}
|
|
77
96
|
}
|
|
78
|
-
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
else {
|
|
89
|
-
spinner.text = 'Creating new deployment...';
|
|
90
|
-
const payload = buildCreatePayload({
|
|
91
|
-
appName: opts.app,
|
|
92
|
-
groupId,
|
|
93
|
-
artifactId,
|
|
94
|
-
version,
|
|
95
|
-
runtime: opts.runtime,
|
|
96
|
-
replicas: parseInt(opts.replicas) || 1,
|
|
97
|
-
region: opts.region,
|
|
98
|
-
vcores: opts.vcores,
|
|
99
|
-
});
|
|
100
|
-
deployment = await client.cloudHub2.createDeployment(orgId, env.id, payload);
|
|
101
|
-
}
|
|
102
|
-
// Poll for status
|
|
103
|
-
spinner.text = 'Waiting for deployment to apply...';
|
|
104
|
-
try {
|
|
105
|
-
const final = await client.cloudHub2.waitForDeployment(orgId, env.id, deployment.id, (status, replicas) => {
|
|
106
|
-
const replicaStates = replicas?.map((r) => r.state).join(', ') || 'unknown';
|
|
107
|
-
spinner.text = `Status: ${status} (replicas: ${replicaStates})`;
|
|
108
|
-
});
|
|
109
|
-
spinner.succeed(`Deployed ${chalk.bold(opts.app)} v${version} → ${chalk.green(final.status)}`);
|
|
97
|
+
const { spinner, onStatus } = rolloutSpinner('Publishing to Exchange and deploying...');
|
|
98
|
+
const result = await executeJarDeployment(client, plan, {
|
|
99
|
+
wait: rollout.wait,
|
|
100
|
+
timeoutMs: rollout.timeoutMs,
|
|
101
|
+
onStatus,
|
|
102
|
+
});
|
|
103
|
+
if (!rollout.wait) {
|
|
104
|
+
spinner.succeed(`Published ${result.published.assetId} v${result.published.version}; change accepted`);
|
|
105
|
+
log.dim(` Follow it: anc apps status ${opts.app} --env ${opts.env} --wait`);
|
|
106
|
+
return;
|
|
110
107
|
}
|
|
111
|
-
|
|
112
|
-
spinner.
|
|
113
|
-
|
|
114
|
-
log.dim(` Check status: anc apps status ${opts.app} --env ${opts.env}`);
|
|
115
|
-
if (existing) {
|
|
116
|
-
log.dim(` Previous version: ${existing.application?.ref?.version || 'unknown'}`);
|
|
117
|
-
}
|
|
108
|
+
if (result.snapshot?.settled) {
|
|
109
|
+
spinner.succeed(`Deployed ${chalk.bold(opts.app)} v${plan.ref.version}: ${chalk.green(result.snapshot.phase)}`);
|
|
110
|
+
return;
|
|
118
111
|
}
|
|
112
|
+
spinner.fail(`Deployment did not settle: ${result.snapshot?.phase ?? 'unknown'}${result.timedOut ? ' (timed out)' : ''}${result.snapshot?.reason ? ` - ${result.snapshot.reason}` : ''}`);
|
|
113
|
+
log.dim(` Deployment ID: ${result.deployment.id}`);
|
|
114
|
+
log.dim(` Check status: anc apps status ${opts.app} --env ${opts.env}`);
|
|
115
|
+
if (plan.existing)
|
|
116
|
+
log.dim(` Previous version: ${plan.existing.application?.ref?.version || 'unknown'}`);
|
|
117
|
+
process.exitCode = 1;
|
|
119
118
|
}
|
|
120
119
|
catch (error) {
|
|
121
|
-
log.error(`Deploy failed: ${errorMessage(error)}`);
|
|
120
|
+
log.error(`Deploy failed: ${redactText(errorMessage(error), secretValues)}`);
|
|
122
121
|
process.exit(1);
|
|
123
122
|
}
|
|
124
123
|
});
|
|
125
|
-
return deploy;
|
|
126
124
|
}
|
|
127
125
|
//# sourceMappingURL=deploy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-center.d.ts","sourceRoot":"","sources":["../../src/commands/design-center.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,wBAAgB,yBAAyB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"design-center.d.ts","sourceRoot":"","sources":["../../src/commands/design-center.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,wBAAgB,yBAAyB,IAAI,OAAO,CA8MnD"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Design Center CLI Commands
|
|
3
|
-
* anc dc list | files | pull | push | publish
|
|
3
|
+
* anc design-center (alias: dc) list | files | pull | push | publish
|
|
4
4
|
*/
|
|
5
5
|
import { Command } from 'commander';
|
|
6
6
|
import * as fs from 'fs';
|
|
7
7
|
import { log } from '../utils/logger.js';
|
|
8
8
|
import { errorMessage } from '../utils/errors.js';
|
|
9
9
|
import { printTable } from '../utils/formatter.js';
|
|
10
|
-
import { createClient } from './shared.js';
|
|
10
|
+
import { confirmAction, createClient } from './shared.js';
|
|
11
11
|
async function resolveProject(client, orgId, nameOrId) {
|
|
12
12
|
const project = await client.designCenter.findByName(orgId, nameOrId);
|
|
13
13
|
if (!project) {
|
|
@@ -22,7 +22,7 @@ async function resolveProject(client, orgId, nameOrId) {
|
|
|
22
22
|
return project;
|
|
23
23
|
}
|
|
24
24
|
export function createDesignCenterCommand() {
|
|
25
|
-
const dc = new Command('dc').description('Manage API specs in Anypoint Design Center');
|
|
25
|
+
const dc = new Command('design-center').alias('dc').description('Manage API specs in Anypoint Design Center');
|
|
26
26
|
// ── list ────────────────────────────────────────
|
|
27
27
|
dc.command('list')
|
|
28
28
|
.description('List all Design Center projects')
|
|
@@ -97,37 +97,38 @@ export function createDesignCenterCommand() {
|
|
|
97
97
|
});
|
|
98
98
|
// ── push ────────────────────────────────────────
|
|
99
99
|
dc.command('push')
|
|
100
|
-
.description('
|
|
100
|
+
.description('Preview, then sync a local file to Design Center (conflict-checked and verified)')
|
|
101
101
|
.argument('<project>', 'Project name or ID')
|
|
102
102
|
.argument('<localFile>', 'Local file to upload')
|
|
103
103
|
.option('-p, --path <path>', 'Remote file path (overrides auto-detection)')
|
|
104
104
|
.option('-b, --branch <branch>', 'Branch name', 'master')
|
|
105
105
|
.option('-m, --message <msg>', 'Commit message')
|
|
106
|
+
.option('-y, --yes', 'Apply without asking for confirmation', false)
|
|
106
107
|
.action(async (project, localFile, opts) => {
|
|
107
108
|
try {
|
|
108
109
|
const client = createClient();
|
|
109
110
|
const orgId = await client.getDefaultOrgId();
|
|
110
111
|
const proj = await resolveProject(client, orgId, project);
|
|
111
112
|
if (!fs.existsSync(localFile)) {
|
|
112
|
-
|
|
113
|
-
process.exit(1);
|
|
113
|
+
throw new Error(`File not found: ${localFile}`);
|
|
114
114
|
}
|
|
115
115
|
const content = fs.readFileSync(localFile, 'utf-8');
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
116
|
+
const remotePath = opts.path ||
|
|
117
|
+
(await client.designCenter.resolveFilePath(orgId, proj.id, localFile.split('/').pop() || localFile, opts.branch));
|
|
118
|
+
const preview = await client.designCenterWorkflow.previewSync(orgId, proj.id, [{ path: remotePath, content }], opts.branch, opts.message);
|
|
119
|
+
log.info(`${localFile} → ${preview.project}/${remotePath} [${preview.branch}]`);
|
|
120
|
+
for (const entry of preview.entries)
|
|
121
|
+
log.kv(entry.path, entry.action);
|
|
122
|
+
if (preview.entries.every((entry) => entry.action === 'unchanged')) {
|
|
123
|
+
log.success('Design Center already matches the local file; nothing to push.');
|
|
124
|
+
return;
|
|
120
125
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
126
|
+
if (!opts.yes && !(await confirmAction('Push these changes to Design Center?'))) {
|
|
127
|
+
log.warn('Push cancelled');
|
|
128
|
+
return;
|
|
124
129
|
}
|
|
125
|
-
const
|
|
126
|
-
log.
|
|
127
|
-
log.dim(` ${lines} lines, ${content.length} bytes`);
|
|
128
|
-
log.dim(' Acquiring lock...');
|
|
129
|
-
await client.designCenter.updateFile(orgId, proj.id, remotePath, content, opts.branch, opts.message);
|
|
130
|
-
log.success(`Pushed to Design Center: ${remotePath}`);
|
|
130
|
+
const result = await client.designCenterWorkflow.sync(preview.previewToken);
|
|
131
|
+
log.success(`Pushed and verified ${result.changed} file(s) in ${result.project} [${result.branch}]`);
|
|
131
132
|
}
|
|
132
133
|
catch (error) {
|
|
133
134
|
log.error(`Push failed: ${errorMessage(error)}`);
|
|
@@ -136,22 +137,22 @@ export function createDesignCenterCommand() {
|
|
|
136
137
|
});
|
|
137
138
|
// ── publish ─────────────────────────────────────
|
|
138
139
|
dc.command('publish')
|
|
139
|
-
.description('
|
|
140
|
+
.description('Preview, then publish a Design Center project to Exchange (source-bound and verified)')
|
|
140
141
|
.argument('<project>', 'Project name or ID')
|
|
141
142
|
.requiredOption('--version <version>', 'Asset version (semver, e.g. 1.2.0)')
|
|
142
143
|
.option('--api-version <v>', 'API version (e.g. v1)', 'v1')
|
|
143
144
|
.option('--name <name>', 'Asset name in Exchange (defaults to project name)')
|
|
144
|
-
.option('--asset-id <id>', 'Asset ID in Exchange (defaults to project name)')
|
|
145
|
+
.option('--asset-id <id>', 'Asset ID in Exchange (defaults to the project exchange.json, then the name)')
|
|
145
146
|
.option('--classifier <c>', 'Classifier: raml, raml-fragment, oas, oas3', 'raml')
|
|
146
|
-
.option('--main <file>', 'Main spec file name')
|
|
147
|
+
.option('--main <file>', 'Main spec file name (defaults to the project exchange.json)')
|
|
147
148
|
.option('-b, --branch <branch>', 'Branch name', 'master')
|
|
149
|
+
.option('-y, --yes', 'Publish without asking for confirmation', false)
|
|
148
150
|
.action(async (project, opts) => {
|
|
149
151
|
try {
|
|
150
152
|
const client = createClient();
|
|
151
153
|
const orgId = await client.getDefaultOrgId();
|
|
152
154
|
const proj = await resolveProject(client, orgId, project);
|
|
153
|
-
|
|
154
|
-
const result = await client.designCenter.publishToExchange(orgId, proj.id, {
|
|
155
|
+
const preview = await client.designCenterWorkflow.previewPublication(orgId, proj.id, {
|
|
155
156
|
name: opts.name || proj.name,
|
|
156
157
|
apiVersion: opts.apiVersion,
|
|
157
158
|
version: opts.version,
|
|
@@ -159,7 +160,17 @@ export function createDesignCenterCommand() {
|
|
|
159
160
|
assetId: opts.assetId,
|
|
160
161
|
main: opts.main,
|
|
161
162
|
}, opts.branch);
|
|
162
|
-
log.
|
|
163
|
+
log.info(`Publish ${preview.project} [${preview.branch}] to Exchange`);
|
|
164
|
+
log.kv('Coordinates', `${preview.coordinates.groupId}:${preview.coordinates.assetId}:${preview.coordinates.version}`);
|
|
165
|
+
log.kv('Main file', preview.mainFile);
|
|
166
|
+
log.kv('Classifier', String(preview.classifier));
|
|
167
|
+
log.kv('Source SHA-256', preview.sourceHash);
|
|
168
|
+
if (!opts.yes && !(await confirmAction('Publish this asset version to Exchange?'))) {
|
|
169
|
+
log.warn('Publish cancelled');
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
const result = await client.designCenterWorkflow.publish(preview.previewToken);
|
|
173
|
+
log.success('Published to Exchange and verified the artifact');
|
|
163
174
|
log.kv('Group ID', result.groupId);
|
|
164
175
|
log.kv('Asset ID', result.assetId);
|
|
165
176
|
log.kv('Version', result.version);
|