@sfdxy/anypoint-connect 0.16.3 → 0.18.0

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.
Files changed (197) hide show
  1. package/README.md +17 -6
  2. package/dist/analysis/audit-actors.d.ts +36 -0
  3. package/dist/analysis/audit-actors.d.ts.map +1 -0
  4. package/dist/analysis/audit-actors.js +93 -0
  5. package/dist/analysis/audit-actors.js.map +1 -0
  6. package/dist/analysis/credentials.d.ts +49 -0
  7. package/dist/analysis/credentials.d.ts.map +1 -0
  8. package/dist/analysis/credentials.js +118 -0
  9. package/dist/analysis/credentials.js.map +1 -0
  10. package/dist/analysis/parser.d.ts +5 -0
  11. package/dist/analysis/parser.d.ts.map +1 -1
  12. package/dist/analysis/parser.js +10 -1
  13. package/dist/analysis/parser.js.map +1 -1
  14. package/dist/api/AlertsApi.d.ts +138 -0
  15. package/dist/api/AlertsApi.d.ts.map +1 -0
  16. package/dist/api/AlertsApi.js +168 -0
  17. package/dist/api/AlertsApi.js.map +1 -0
  18. package/dist/api/LogsApi.d.ts +88 -12
  19. package/dist/api/LogsApi.d.ts.map +1 -1
  20. package/dist/api/LogsApi.js +335 -31
  21. package/dist/api/LogsApi.js.map +1 -1
  22. package/dist/auth/BearerProvider.d.ts +12 -0
  23. package/dist/auth/BearerProvider.d.ts.map +1 -0
  24. package/dist/auth/BearerProvider.js +18 -0
  25. package/dist/auth/BearerProvider.js.map +1 -0
  26. package/dist/auth/ClientCredentialsProvider.d.ts +23 -0
  27. package/dist/auth/ClientCredentialsProvider.d.ts.map +1 -0
  28. package/dist/auth/ClientCredentialsProvider.js +59 -0
  29. package/dist/auth/ClientCredentialsProvider.js.map +1 -0
  30. package/dist/auth/TokenProvider.d.ts +12 -0
  31. package/dist/auth/TokenProvider.d.ts.map +1 -0
  32. package/dist/auth/TokenProvider.js +2 -0
  33. package/dist/auth/TokenProvider.js.map +1 -0
  34. package/dist/auth/index.d.ts +1 -0
  35. package/dist/auth/index.d.ts.map +1 -1
  36. package/dist/cli.js +8 -0
  37. package/dist/cli.js.map +1 -1
  38. package/dist/client/AnypointClient.d.ts +22 -0
  39. package/dist/client/AnypointClient.d.ts.map +1 -1
  40. package/dist/client/AnypointClient.js +82 -12
  41. package/dist/client/AnypointClient.js.map +1 -1
  42. package/dist/client/HttpClient.d.ts +3 -3
  43. package/dist/client/HttpClient.d.ts.map +1 -1
  44. package/dist/client/HttpClient.js +13 -3
  45. package/dist/client/HttpClient.js.map +1 -1
  46. package/dist/commands/alerts.d.ts +16 -0
  47. package/dist/commands/alerts.d.ts.map +1 -0
  48. package/dist/commands/alerts.js +375 -0
  49. package/dist/commands/alerts.js.map +1 -0
  50. package/dist/commands/api.d.ts.map +1 -1
  51. package/dist/commands/api.js +8 -3
  52. package/dist/commands/api.js.map +1 -1
  53. package/dist/commands/app-change-cli.d.ts +5 -2
  54. package/dist/commands/app-change-cli.d.ts.map +1 -1
  55. package/dist/commands/app-change-cli.js +19 -5
  56. package/dist/commands/app-change-cli.js.map +1 -1
  57. package/dist/commands/apps.d.ts.map +1 -1
  58. package/dist/commands/apps.js +69 -22
  59. package/dist/commands/apps.js.map +1 -1
  60. package/dist/commands/auth.d.ts.map +1 -1
  61. package/dist/commands/auth.js +21 -0
  62. package/dist/commands/auth.js.map +1 -1
  63. package/dist/commands/config.d.ts.map +1 -1
  64. package/dist/commands/config.js +20 -1
  65. package/dist/commands/config.js.map +1 -1
  66. package/dist/commands/deploy.d.ts.map +1 -1
  67. package/dist/commands/deploy.js +17 -6
  68. package/dist/commands/deploy.js.map +1 -1
  69. package/dist/commands/index.d.ts +1 -0
  70. package/dist/commands/index.d.ts.map +1 -1
  71. package/dist/commands/index.js +1 -0
  72. package/dist/commands/index.js.map +1 -1
  73. package/dist/commands/logs.d.ts +2 -1
  74. package/dist/commands/logs.d.ts.map +1 -1
  75. package/dist/commands/logs.js +105 -10
  76. package/dist/commands/logs.js.map +1 -1
  77. package/dist/commands/monitor.d.ts.map +1 -1
  78. package/dist/commands/monitor.js +29 -1
  79. package/dist/commands/monitor.js.map +1 -1
  80. package/dist/commands/runtimes.d.ts.map +1 -1
  81. package/dist/commands/runtimes.js +38 -5
  82. package/dist/commands/runtimes.js.map +1 -1
  83. package/dist/commands/shared.d.ts.map +1 -1
  84. package/dist/commands/shared.js +1 -7
  85. package/dist/commands/shared.js.map +1 -1
  86. package/dist/config/auth-modes.d.ts +11 -0
  87. package/dist/config/auth-modes.d.ts.map +1 -0
  88. package/dist/config/auth-modes.js +18 -0
  89. package/dist/config/auth-modes.js.map +1 -0
  90. package/dist/config/profiles.d.ts +19 -2
  91. package/dist/config/profiles.d.ts.map +1 -1
  92. package/dist/config/profiles.js +68 -24
  93. package/dist/config/profiles.js.map +1 -1
  94. package/dist/index.d.ts +12 -1
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +10 -0
  97. package/dist/index.js.map +1 -1
  98. package/dist/mcp/server.d.ts.map +1 -1
  99. package/dist/mcp/server.js +4 -9
  100. package/dist/mcp/server.js.map +1 -1
  101. package/dist/mcp/tools/alerts.d.ts +82 -0
  102. package/dist/mcp/tools/alerts.d.ts.map +1 -0
  103. package/dist/mcp/tools/alerts.js +423 -0
  104. package/dist/mcp/tools/alerts.js.map +1 -0
  105. package/dist/mcp/tools/api-manager.d.ts.map +1 -1
  106. package/dist/mcp/tools/api-manager.js +6 -1
  107. package/dist/mcp/tools/api-manager.js.map +1 -1
  108. package/dist/mcp/tools/app-inputs.d.ts +20 -2
  109. package/dist/mcp/tools/app-inputs.d.ts.map +1 -1
  110. package/dist/mcp/tools/app-inputs.js +40 -2
  111. package/dist/mcp/tools/app-inputs.js.map +1 -1
  112. package/dist/mcp/tools/apps-deploy.d.ts.map +1 -1
  113. package/dist/mcp/tools/apps-deploy.js +65 -13
  114. package/dist/mcp/tools/apps-deploy.js.map +1 -1
  115. package/dist/mcp/tools/apps-lifecycle.d.ts.map +1 -1
  116. package/dist/mcp/tools/apps-lifecycle.js +37 -15
  117. package/dist/mcp/tools/apps-lifecycle.js.map +1 -1
  118. package/dist/mcp/tools/apps-read.d.ts.map +1 -1
  119. package/dist/mcp/tools/apps-read.js +11 -5
  120. package/dist/mcp/tools/apps-read.js.map +1 -1
  121. package/dist/mcp/tools/audit.d.ts.map +1 -1
  122. package/dist/mcp/tools/audit.js +17 -4
  123. package/dist/mcp/tools/audit.js.map +1 -1
  124. package/dist/mcp/tools/exchange.d.ts.map +1 -1
  125. package/dist/mcp/tools/exchange.js +38 -18
  126. package/dist/mcp/tools/exchange.js.map +1 -1
  127. package/dist/mcp/tools/identity.d.ts.map +1 -1
  128. package/dist/mcp/tools/identity.js +29 -2
  129. package/dist/mcp/tools/identity.js.map +1 -1
  130. package/dist/mcp/tools/index.d.ts +1 -0
  131. package/dist/mcp/tools/index.d.ts.map +1 -1
  132. package/dist/mcp/tools/index.js +1 -0
  133. package/dist/mcp/tools/index.js.map +1 -1
  134. package/dist/mcp/tools/logs.d.ts +1 -1
  135. package/dist/mcp/tools/logs.d.ts.map +1 -1
  136. package/dist/mcp/tools/logs.js +34 -1
  137. package/dist/mcp/tools/logs.js.map +1 -1
  138. package/dist/mcp/tools/monitoring.d.ts.map +1 -1
  139. package/dist/mcp/tools/monitoring.js +5 -3
  140. package/dist/mcp/tools/monitoring.js.map +1 -1
  141. package/dist/mcp/tools/output-schemas.d.ts +83 -0
  142. package/dist/mcp/tools/output-schemas.d.ts.map +1 -0
  143. package/dist/mcp/tools/output-schemas.js +81 -0
  144. package/dist/mcp/tools/output-schemas.js.map +1 -0
  145. package/dist/mcp/tools/profile.d.ts +17 -3
  146. package/dist/mcp/tools/profile.d.ts.map +1 -1
  147. package/dist/mcp/tools/profile.js +122 -10
  148. package/dist/mcp/tools/profile.js.map +1 -1
  149. package/dist/mcp/tools/shared.d.ts +34 -2
  150. package/dist/mcp/tools/shared.d.ts.map +1 -1
  151. package/dist/mcp/tools/shared.js +37 -4
  152. package/dist/mcp/tools/shared.js.map +1 -1
  153. package/dist/safety/artifact.d.ts +45 -0
  154. package/dist/safety/artifact.d.ts.map +1 -1
  155. package/dist/safety/artifact.js +109 -0
  156. package/dist/safety/artifact.js.map +1 -1
  157. package/dist/safety/guards.d.ts +10 -0
  158. package/dist/safety/guards.d.ts.map +1 -1
  159. package/dist/safety/guards.js +16 -0
  160. package/dist/safety/guards.js.map +1 -1
  161. package/dist/safety/plan-binding.d.ts +21 -0
  162. package/dist/safety/plan-binding.d.ts.map +1 -0
  163. package/dist/safety/plan-binding.js +61 -0
  164. package/dist/safety/plan-binding.js.map +1 -0
  165. package/dist/safety/preapproval.d.ts +102 -0
  166. package/dist/safety/preapproval.d.ts.map +1 -0
  167. package/dist/safety/preapproval.js +251 -0
  168. package/dist/safety/preapproval.js.map +1 -0
  169. package/dist/safety/secrets.d.ts +7 -0
  170. package/dist/safety/secrets.d.ts.map +1 -1
  171. package/dist/safety/secrets.js +16 -0
  172. package/dist/safety/secrets.js.map +1 -1
  173. package/dist/utils/formatter.d.ts +2 -0
  174. package/dist/utils/formatter.d.ts.map +1 -1
  175. package/dist/utils/formatter.js +4 -0
  176. package/dist/utils/formatter.js.map +1 -1
  177. package/dist/utils/logger.d.ts +2 -0
  178. package/dist/utils/logger.d.ts.map +1 -1
  179. package/dist/utils/logger.js +23 -13
  180. package/dist/utils/logger.js.map +1 -1
  181. package/dist/workflows/alerts.d.ts +309 -0
  182. package/dist/workflows/alerts.d.ts.map +1 -0
  183. package/dist/workflows/alerts.js +631 -0
  184. package/dist/workflows/alerts.js.map +1 -0
  185. package/dist/workflows/app-change.d.ts +32 -1
  186. package/dist/workflows/app-change.d.ts.map +1 -1
  187. package/dist/workflows/app-change.js +57 -2
  188. package/dist/workflows/app-change.js.map +1 -1
  189. package/dist/workflows/artifact-verification.d.ts +52 -0
  190. package/dist/workflows/artifact-verification.d.ts.map +1 -0
  191. package/dist/workflows/artifact-verification.js +85 -0
  192. package/dist/workflows/artifact-verification.js.map +1 -0
  193. package/dist/workflows/jar-deployment.d.ts +37 -10
  194. package/dist/workflows/jar-deployment.d.ts.map +1 -1
  195. package/dist/workflows/jar-deployment.js +44 -13
  196. package/dist/workflows/jar-deployment.js.map +1 -1
  197. package/package.json +1 -1
@@ -8,7 +8,8 @@ import { secretSourceSchema } from '../../safety/secret-sources.js';
8
8
  import { redactText } from '../../safety/secrets.js';
9
9
  import { describeAppChange, executeAppChange, planAppChange, resolveSettingsInput, } from '../../workflows/app-change.js';
10
10
  import { errorMessage } from '../../utils/errors.js';
11
- import { guardWrite, mcpText, resolveEnvironment } from './shared.js';
11
+ import { checkReviewedPlan } from '../../safety/plan-binding.js';
12
+ import { guardWrite, mcpText, productionFields, resolveEnvironment } from './shared.js';
12
13
  export const settingsInputs = {
13
14
  properties: z
14
15
  .record(z.string(), z.string())
@@ -44,10 +45,24 @@ export const runtimeInputs = {
44
45
  .describe('Java version for the runtime, e.g. "17". Default: keep the current one if offered'),
45
46
  releaseChannel: z.string().optional().describe('Release channel, e.g. "LTS" or "EDGE"'),
46
47
  };
48
+ /**
49
+ * Ties an apply to the preview that was reviewed. The preview of a change to an existing app returns a
50
+ * `planDigest`; confirm: true needs it, and is refused if the app or the request has changed since.
51
+ */
52
+ export const reviewInputs = {
53
+ planDigest: z
54
+ .string()
55
+ .optional()
56
+ .describe('The planDigest from the preview of this exact change. Required with confirm: true when changing an existing app; the apply is refused if the app or the request differs from what was reviewed'),
57
+ };
47
58
  export const waitInputs = {
48
59
  wait: z.boolean().optional().describe('Wait until every replica runs the new spec, or the change fails'),
49
60
  waitTimeoutSeconds: z.number().min(10).max(1800).optional().describe('Wait limit in seconds (default 300)'),
50
61
  };
62
+ export const provenanceJarInput = z
63
+ .string()
64
+ .optional()
65
+ .describe('Local .jar the new version was built and published from. In any environment the Exchange artifact is then downloaded and its SHA-256 must match this jar; a mismatch, a failed download or an MD5 mismatch refuses the change. Production changes always download the Exchange artifact and check its build marker, with or without jarPath');
51
66
  export const modeInput = z
52
67
  .enum(['inPlace', 'stopStart'])
53
68
  .optional()
@@ -76,6 +91,10 @@ export function runtimeFromArgs(args) {
76
91
  ...(args.releaseChannel ? { releaseChannel: args.releaseChannel } : {}),
77
92
  };
78
93
  }
94
+ /** A refusal for an apply that is not bound to the preview that was reviewed. */
95
+ export function reviewRefusal(message, preview) {
96
+ return { ...mcpText({ refused: true, message, ...preview }), isError: true };
97
+ }
79
98
  /**
80
99
  * Plan, guard and apply an application change for an MCP tool. Previews by default, refuses
81
100
  * production without confirmProduction, and scrubs secret values from every response.
@@ -103,9 +122,27 @@ export async function runAppChangeTool(client, args, change, labels) {
103
122
  isError: true,
104
123
  };
105
124
  }
106
- const gate = guardWrite({ env, confirm: args.confirm, confirmProduction: args.confirmProduction, preview });
125
+ const gate = guardWrite({
126
+ orgId,
127
+ env,
128
+ tool: labels.tool,
129
+ confirm: args.confirm,
130
+ confirmProduction: args.confirmProduction,
131
+ // The preview tells the caller exactly what to send back to apply this change.
132
+ preview: {
133
+ ...preview,
134
+ confirmation: {
135
+ confirm: true,
136
+ planDigest: preview.planDigest,
137
+ ...(plan.production ? { confirmProduction: true } : {}),
138
+ },
139
+ },
140
+ });
107
141
  if (gate)
108
142
  return gate;
143
+ const unbound = checkReviewedPlan(args.planDigest, preview.planDigest);
144
+ if (unbound)
145
+ return reviewRefusal(unbound, preview);
109
146
  const result = await executeAppChange(client, plan, {
110
147
  wait: args.wait,
111
148
  timeoutMs: args.waitTimeoutSeconds ? args.waitTimeoutSeconds * 1000 : undefined,
@@ -113,6 +150,7 @@ export async function runAppChangeTool(client, args, change, labels) {
113
150
  const response = {
114
151
  message: `${labels.done} "${plan.existing.name}" in ${env.name}`,
115
152
  deploymentId: result.deployment.id,
153
+ ...productionFields(orgId, env, labels.tool),
116
154
  performed: result.performed,
117
155
  changes: plan.changes,
118
156
  ...(plan.settings ? { settings: plan.settings.diff } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"app-inputs.js","sourceRoot":"","sources":["../../../src/mcp/tools/app-inputs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-inputs.js","sourceRoot":"","sources":["../../../src/mcp/tools/app-inputs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"apps-deploy.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/apps-deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AA0CrE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QA+X/E"}
1
+ {"version":3,"file":"apps-deploy.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/apps-deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AA+CrE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QAib/E"}
@@ -8,14 +8,16 @@
8
8
  * an optional stop, change, start sequence.
9
9
  */
10
10
  import { z } from 'zod';
11
- import { guardWrite, mcpText, resolveEnvironment, writeInputs } from './shared.js';
12
- import { modeInput, runAppChangeTool, runtimeFromArgs, runtimeInputs, settingsFromArgs, settingsInputs, updateStrategyInput, waitInputs, } from './app-inputs.js';
11
+ import { checkReviewedPlan } from '../../safety/plan-binding.js';
12
+ import { guardWrite, mcpText, productionFields, resolveEnvironment, writeInputs } from './shared.js';
13
+ import { modeInput, provenanceJarInput, reviewInputs, reviewRefusal, runAppChangeTool, runtimeFromArgs, runtimeInputs, settingsFromArgs, settingsInputs, updateStrategyInput, waitInputs, } from './app-inputs.js';
13
14
  import { buildCreatePayload, resolveRollbackTarget } from '../../safety/deployment.js';
14
15
  import { redactText } from '../../safety/secrets.js';
15
16
  import { errorMessage } from '../../utils/errors.js';
16
17
  import { resolveSettingsInput } from '../../workflows/app-change.js';
17
18
  import { waitForAppPhase } from '../../workflows/app-state.js';
18
19
  import { describeJarDeployment, executeJarDeployment, planJarDeployment } from '../../workflows/jar-deployment.js';
20
+ import { describeVerification, verifySelectedArtifact } from '../../workflows/artifact-verification.js';
19
21
  const createOnlyInputs = {
20
22
  replicas: z.number().min(1).max(8).optional().describe('[new app only] Number of replicas (default: 1)'),
21
23
  region: z.string().optional().describe('[new app only] CloudHub 2.0 target region (default: "cloudhub-us-east-2")'),
@@ -41,7 +43,9 @@ export function registerAppDeployTools(server, client) {
41
43
  title: 'Deploy JAR (Publish + Deploy)',
42
44
  description: 'Publishes a locally built Mule application JAR to Exchange and deploys it to CloudHub 2.0: creates the app if it does not exist, otherwise updates it in one change (artifact plus any runtime or settings change). ' +
43
45
  'Asset coordinates come from explicit inputs, then the project naming convention, then the pattern of the asset the app runs today, then the JAR. ' +
44
- 'Region, vCores, replicas and JVM arguments apply only to a new app. Previews by default; pass confirm: true to publish and deploy.',
46
+ 'Region, vCores, replicas and JVM arguments apply only to a new app. ' +
47
+ 'The JAR build marker (META-INF/mule-build/build-info.json) is read. Production takes only a mule-build schemaVersion 1 marker with stripped false and productionDeployable true; a stripped, inconsistent or unreadable marker is refused with no override, and a JAR without a marker is refused unless an unmarked-artifact allowance covers the organization and environment. Elsewhere these are warnings. ' +
48
+ 'Previews by default; pass confirm: true to publish and deploy.',
45
49
  inputSchema: {
46
50
  jarPath: z
47
51
  .string()
@@ -66,6 +70,7 @@ export function registerAppDeployTools(server, client) {
66
70
  .optional()
67
71
  .describe('SHA-256 from the preview; rejects changed artifact bytes'),
68
72
  ...writeInputs,
73
+ ...reviewInputs,
69
74
  },
70
75
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false },
71
76
  }, async (args) => {
@@ -92,26 +97,38 @@ export function registerAppDeployTools(server, client) {
92
97
  });
93
98
  secretValues = plan.secretValues;
94
99
  const preview = describeJarDeployment(plan);
95
- if (plan.rejectedSettings.length > 0 || plan.change?.blockers.length) {
100
+ const planDigest = 'planDigest' in preview.deploy ? preview.deploy.planDigest : undefined;
101
+ if (plan.rejectedSettings.length > 0 || plan.blockers.length) {
96
102
  return {
97
103
  ...mcpText({
98
104
  refused: true,
99
105
  message: plan.rejectedSettings.length > 0
100
106
  ? `"${args.appName}" already exists in ${env.name}; region, vCores, replicas and JVM arguments apply only to a new app. Remove: ${plan.rejectedSettings.join(', ')}`
101
- : 'The change cannot be applied.',
107
+ : (plan.provenance.blocker ?? 'The change cannot be applied.'),
102
108
  ...preview,
103
109
  }),
104
110
  isError: true,
105
111
  };
106
112
  }
107
113
  const gate = guardWrite({
114
+ orgId,
108
115
  env,
116
+ tool: 'deploy_jar',
109
117
  confirm: args.confirm,
110
118
  confirmProduction: args.confirmProduction,
111
- preview,
119
+ preview: {
120
+ ...preview,
121
+ ...(planDigest ? { confirmation: { confirm: true, planDigest } } : {}),
122
+ },
112
123
  });
113
124
  if (gate)
114
125
  return gate;
126
+ // A new app has nothing existing to bind to; a change to an existing one must be the reviewed change.
127
+ if (planDigest) {
128
+ const unbound = checkReviewedPlan(args.planDigest, planDigest);
129
+ if (unbound)
130
+ return reviewRefusal(unbound, preview);
131
+ }
115
132
  const result = await executeJarDeployment(client, plan, {
116
133
  wait: args.wait,
117
134
  timeoutMs: args.waitTimeoutSeconds ? args.waitTimeoutSeconds * 1000 : undefined,
@@ -120,6 +137,7 @@ export function registerAppDeployTools(server, client) {
120
137
  message: `Deployed "${args.appName}" to ${env.name} (${plan.existing ? 'updated' : 'created'})`,
121
138
  published: result.published,
122
139
  deploymentId: result.deployment.id,
140
+ ...productionFields(orgId, env, 'deploy_jar'),
123
141
  ...(plan.existing ? { previousRef: plan.existing.application?.ref } : {}),
124
142
  ...(result.change ? { performed: result.change.performed } : {}),
125
143
  ...(result.snapshot
@@ -144,13 +162,16 @@ export function registerAppDeployTools(server, client) {
144
162
  server.registerTool('deploy_app', {
145
163
  title: 'Deploy Application',
146
164
  description: 'Deploys an artifact already in Exchange (groupId:artifactId:version) to CloudHub 2.0. Creates the app if it does not exist; otherwise updates it in one change, including any runtime or settings change. ' +
147
- 'Region, vCores, replicas and JVM arguments apply only to a new app. Previews by default; pass confirm: true to apply.',
165
+ 'Region, vCores, replicas and JVM arguments apply only to a new app. ' +
166
+ 'For a production environment the artifact is downloaded from Exchange and its build marker checked first; a jar not marked production deployable, or unmarked without an allowance, is refused. ' +
167
+ 'Previews by default; pass confirm: true to apply.',
148
168
  inputSchema: {
149
169
  appName: z.string().describe('Application name (also the public URL slug)'),
150
170
  environment: z.string().describe('Environment name (e.g. "Sandbox") or ID'),
151
171
  groupId: z.string().describe('Maven group ID of the artifact (usually the organization ID)'),
152
172
  artifactId: z.string().describe('Maven artifact ID (e.g. "orders-sapi")'),
153
173
  version: z.string().describe('Artifact version (e.g. "1.2.0")'),
174
+ jarPath: provenanceJarInput,
154
175
  ...runtimeInputs,
155
176
  ...createOnlyInputs,
156
177
  ...settingsInputs,
@@ -158,6 +179,7 @@ export function registerAppDeployTools(server, client) {
158
179
  updateStrategy: updateStrategyInput,
159
180
  ...waitInputs,
160
181
  ...writeInputs,
182
+ ...reviewInputs,
161
183
  },
162
184
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false },
163
185
  }, async (args) => {
@@ -183,7 +205,8 @@ export function registerAppDeployTools(server, client) {
183
205
  settings: settingsFromArgs(args),
184
206
  mode: args.mode,
185
207
  updateStrategy: args.updateStrategy,
186
- }, { done: 'Updated' });
208
+ jarPath: args.jarPath,
209
+ }, { done: 'Updated', tool: 'deploy_app' });
187
210
  }
188
211
  const resolved = resolveSettingsInput(settingsFromArgs(args));
189
212
  secretValues = resolved.secretValues;
@@ -207,6 +230,12 @@ export function registerAppDeployTools(server, client) {
207
230
  secureProperties: resolved.change?.secureProperties,
208
231
  jvmArgs: args.jvmArgs,
209
232
  });
233
+ const verification = await verifySelectedArtifact(client, {
234
+ orgId,
235
+ env,
236
+ ref: payload.application.ref,
237
+ jarPath: args.jarPath,
238
+ });
210
239
  const preview = {
211
240
  action: 'create new deployment',
212
241
  app: args.appName,
@@ -220,9 +249,22 @@ export function registerAppDeployTools(server, client) {
220
249
  properties: Object.keys(resolved.change?.properties ?? {}),
221
250
  secureProperties: Object.keys(resolved.change?.secureProperties ?? {}),
222
251
  },
252
+ ...(verification.checked !== 'none' || verification.blockers.length
253
+ ? { artifactVerification: describeVerification(verification) }
254
+ : {}),
255
+ ...(verification.warnings.length ? { warnings: verification.warnings } : {}),
256
+ ...(verification.blockers.length ? { blockers: verification.blockers } : {}),
223
257
  };
258
+ if (verification.blockers.length) {
259
+ return {
260
+ ...mcpText({ refused: true, message: verification.blockers[0], ...preview }),
261
+ isError: true,
262
+ };
263
+ }
224
264
  const gate = guardWrite({
265
+ orgId,
225
266
  env,
267
+ tool: 'deploy_app',
226
268
  confirm: args.confirm,
227
269
  confirmProduction: args.confirmProduction,
228
270
  preview,
@@ -235,6 +277,7 @@ export function registerAppDeployTools(server, client) {
235
277
  return mcpText({
236
278
  message: `Created "${args.appName}" in ${env.name}`,
237
279
  deploymentId: deployment.id,
280
+ ...productionFields(orgId, env, 'deploy_app'),
238
281
  ...preview.next,
239
282
  });
240
283
  }
@@ -245,6 +288,7 @@ export function registerAppDeployTools(server, client) {
245
288
  const response = mcpText({
246
289
  message: `Created "${args.appName}" in ${env.name}`,
247
290
  deploymentId: deployment.id,
291
+ ...productionFields(orgId, env, 'deploy_app'),
248
292
  phase: result.snapshot.phase,
249
293
  settled: result.snapshot.settled,
250
294
  ...(result.snapshot.reason ? { reason: result.snapshot.reason } : {}),
@@ -263,12 +307,14 @@ export function registerAppDeployTools(server, client) {
263
307
  description: 'Changes an existing CloudHub 2.0 application in one call: artifact version, Mule runtime, properties and update strategy together, as one new spec. ' +
264
308
  'mode stopStart stops the app, applies the change and starts it, so old and new replicas never process events together; use it for apps with streaming, subscription or polling listeners. ' +
265
309
  'The runtime is checked against what the target offers before anything is written; a retired runtime is refused with the nearest supported versions. ' +
310
+ 'In production a new artifact is downloaded from Exchange and its build marker checked before anything is written; jarPath also binds the change to a local jar by SHA-256. ' +
266
311
  'Waits for the rollout by default. Previews by default; pass confirm: true to apply.',
267
312
  inputSchema: {
268
313
  appName: z.string().describe('Application name exactly as deployed (case-insensitive match)'),
269
314
  environment: z.string().describe('Environment name or ID'),
270
315
  version: z.string().optional().describe('New artifact version. Default: keep the current one'),
271
316
  ...refInputs,
317
+ jarPath: provenanceJarInput,
272
318
  ...runtimeInputs,
273
319
  ...settingsInputs,
274
320
  mode: modeInput,
@@ -276,6 +322,7 @@ export function registerAppDeployTools(server, client) {
276
322
  wait: z.boolean().optional().describe('Wait until every replica runs the new spec (default: true)'),
277
323
  waitTimeoutSeconds: waitInputs.waitTimeoutSeconds,
278
324
  ...writeInputs,
325
+ ...reviewInputs,
279
326
  },
280
327
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false },
281
328
  }, async (args) => runAppChangeTool(client, { ...args, wait: args.wait ?? true }, {
@@ -289,20 +336,23 @@ export function registerAppDeployTools(server, client) {
289
336
  settings: settingsFromArgs(args),
290
337
  mode: args.mode,
291
338
  updateStrategy: args.updateStrategy,
292
- }, { done: 'Updated' }));
339
+ jarPath: args.jarPath,
340
+ }, { done: 'Updated', tool: 'update_app' }));
293
341
  server.registerTool('update_app_artifact', {
294
342
  title: 'Update Application Artifact',
295
343
  description: 'Moves an existing CloudHub 2.0 application to another artifact version, optionally with a runtime change in the same update. Target, replicas, resources and settings are preserved. ' +
296
- 'Use runtime when the current runtime has been retired; the preview names supported versions. For settings changes in the same call use update_app. Previews by default; pass confirm: true to apply.',
344
+ 'Use runtime when the current runtime has been retired; the preview names supported versions. For settings changes in the same call use update_app. In production the artifact is downloaded from Exchange and its build marker checked before anything is written; jarPath also binds the change to a local jar by SHA-256. Previews by default; pass confirm: true to apply.',
297
345
  inputSchema: {
298
346
  appName: z.string().describe('Application name exactly as deployed (case-insensitive match)'),
299
347
  environment: z.string().describe('Environment name or ID'),
300
348
  version: z.string().describe('New artifact version (e.g. "1.4.12")'),
301
349
  ...refInputs,
350
+ jarPath: provenanceJarInput,
302
351
  ...runtimeInputs,
303
352
  mode: modeInput,
304
353
  ...waitInputs,
305
354
  ...writeInputs,
355
+ ...reviewInputs,
306
356
  },
307
357
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false },
308
358
  }, async (args) => runAppChangeTool(client, args, {
@@ -314,10 +364,11 @@ export function registerAppDeployTools(server, client) {
314
364
  },
315
365
  runtime: runtimeFromArgs(args),
316
366
  mode: args.mode,
317
- }, { done: 'Updated artifact of' }));
367
+ jarPath: args.jarPath,
368
+ }, { done: 'Updated artifact of', tool: 'update_app_artifact' }));
318
369
  server.registerTool('rollback_app', {
319
370
  title: 'Roll Back Application',
320
- description: 'Rolls an existing CloudHub 2.0 application back to a previous artifact; runtime, target, replicas and settings are preserved. By default it picks the last successful or newest distinct earlier artifact; toVersion selects one. Previews by default; pass confirm: true to apply.',
371
+ description: 'Rolls an existing CloudHub 2.0 application back to a previous artifact; runtime, target, replicas and settings are preserved. By default it picks the last successful or newest distinct earlier artifact; toVersion selects one. In production the target artifact is downloaded from Exchange and its build marker checked first. Previews by default; pass confirm: true to apply.',
321
372
  inputSchema: {
322
373
  appName: z.string().describe('Application name exactly as deployed (case-insensitive match)'),
323
374
  environment: z.string().describe('Environment name or ID'),
@@ -328,6 +379,7 @@ export function registerAppDeployTools(server, client) {
328
379
  mode: modeInput,
329
380
  ...waitInputs,
330
381
  ...writeInputs,
382
+ ...reviewInputs,
331
383
  },
332
384
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false },
333
385
  }, async (args) => {
@@ -348,7 +400,7 @@ export function registerAppDeployTools(server, client) {
348
400
  message: `No distinct rollback target for "${args.appName}" in ${env.name}. Pass toVersion to select one.`,
349
401
  });
350
402
  }
351
- return runAppChangeTool(client, args, { existing, ref: target.ref, mode: args.mode }, { done: 'Rolled back' });
403
+ return runAppChangeTool(client, args, { existing, ref: target.ref, mode: args.mode }, { done: 'Rolled back', tool: 'rollback_app' });
352
404
  }
353
405
  catch (error) {
354
406
  return errorText(error, []);
@@ -1 +1 @@
1
- {"version":3,"file":"apps-deploy.js","sourceRoot":"","sources":["../../../src/mcp/tools/apps-deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apps-deploy.js","sourceRoot":"","sources":["../../../src/mcp/tools/apps-deploy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"apps-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/apps-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAiFrE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QAsPlF"}
1
+ {"version":3,"file":"apps-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/apps-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AA2GrE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QAkRlF"}
@@ -6,8 +6,8 @@
6
6
  * confirmProduction: true.
7
7
  */
8
8
  import { z } from 'zod';
9
- import { mcpError, mcpText, dryRunPreview, guardWrite, resolveEnvironment, writeInputs } from './shared.js';
10
- import { modeInput, runAppChangeTool, settingsFromArgs, settingsInputs, waitInputs } from './app-inputs.js';
9
+ import { mcpError, mcpText, dryRunPreview, guardWrite, productionFields, resolveEnvironment, writeInputs, } from './shared.js';
10
+ import { modeInput, reviewInputs, runAppChangeTool, settingsFromArgs, settingsInputs, waitInputs, } from './app-inputs.js';
11
11
  import { buildApplicationDeletionPreview, deploymentIdMatches } from '../../safety/deletion.js';
12
12
  import { deploymentPhase, waitForAppPhase } from '../../workflows/app-state.js';
13
13
  const appInputs = {
@@ -20,7 +20,7 @@ function notFound(appName, envName) {
20
20
  /**
21
21
  * Apply a narrow state change (stop, start, scale), then optionally wait for it to settle.
22
22
  */
23
- async function runStateChange(client, args, describe, apply) {
23
+ async function runStateChange(client, tool, args, describe, apply) {
24
24
  try {
25
25
  const { orgId, env } = await resolveEnvironment(client, args.environment);
26
26
  const detail = await client.cloudHub2.findDetailByName(orgId, env.id, args.appName);
@@ -39,14 +39,23 @@ async function runStateChange(client, args, describe, apply) {
39
39
  },
40
40
  ...described,
41
41
  };
42
- const gate = guardWrite({ env, confirm: args.confirm, confirmProduction: args.confirmProduction, preview });
42
+ const gate = guardWrite({
43
+ orgId,
44
+ env,
45
+ tool,
46
+ confirm: args.confirm,
47
+ confirmProduction: args.confirmProduction,
48
+ preview,
49
+ });
43
50
  if (gate)
44
51
  return gate;
52
+ const production = productionFields(orgId, env, tool);
45
53
  const sentAt = Date.now();
46
54
  await apply(orgId, env.id, detail);
47
55
  if (!args.wait) {
48
56
  return mcpText({
49
57
  ...preview,
58
+ ...production,
50
59
  applied: true,
51
60
  tip: 'Pass wait: true, or call get_app_status with wait: true, to follow it.',
52
61
  });
@@ -57,6 +66,7 @@ async function runStateChange(client, args, describe, apply) {
57
66
  });
58
67
  const response = mcpText({
59
68
  ...preview,
69
+ ...production,
60
70
  applied: true,
61
71
  phase: result.snapshot.phase,
62
72
  settled: result.snapshot.settled,
@@ -75,9 +85,9 @@ export function registerAppLifecycleTools(server, client) {
75
85
  server.registerTool('restart_app', {
76
86
  title: 'Restart Application',
77
87
  description: 'Restarts a CloudHub 2.0 application by stopping it, waiting until every replica is down, and starting it again, so old and new replicas never run together. Expect a short outage. Use when an app misbehaves (memory pressure, stale connections) and no new version is needed. Previews by default; pass confirm: true to apply.',
78
- inputSchema: { ...appInputs, ...waitInputs, ...writeInputs },
88
+ inputSchema: { ...appInputs, ...waitInputs, ...writeInputs, ...reviewInputs },
79
89
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false },
80
- }, async (args) => runAppChangeTool(client, args, { restart: true, mode: 'stopStart' }, { done: 'Restarted' }));
90
+ }, async (args) => runAppChangeTool(client, args, { restart: true, mode: 'stopStart' }, { done: 'Restarted', tool: 'restart_app' }));
81
91
  server.registerTool('scale_app', {
82
92
  title: 'Scale Application',
83
93
  description: 'Changes the number of replicas of a CloudHub 2.0 application. New replicas receive traffic once their health checks pass. Previews by default; pass confirm: true to apply.',
@@ -88,7 +98,7 @@ export function registerAppLifecycleTools(server, client) {
88
98
  ...writeInputs,
89
99
  },
90
100
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true },
91
- }, async (args) => runStateChange(client, args, (detail) => detail.target?.replicas === args.replicas
101
+ }, async (args) => runStateChange(client, 'scale_app', args, (detail) => detail.target?.replicas === args.replicas
92
102
  ? `"${detail.name}" already runs ${args.replicas} replica(s)`
93
103
  : { action: 'scale', next: { replicas: args.replicas } }, (orgId, envId, detail) => client.cloudHub2.scaleApp(orgId, envId, detail.id, args.replicas)));
94
104
  server.registerTool('stop_app', {
@@ -96,7 +106,7 @@ export function registerAppLifecycleTools(server, client) {
96
106
  description: 'Stops a CloudHub 2.0 application without deleting it: replicas terminate and the deployment configuration is kept. Use start_app to bring it back. Previews by default; pass confirm: true to apply.',
97
107
  inputSchema: { ...appInputs, ...waitInputs, ...writeInputs },
98
108
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true },
99
- }, async (args) => runStateChange(client, args, (detail) => detail.application.desiredState === 'STOPPED'
109
+ }, async (args) => runStateChange(client, 'stop_app', args, (detail) => detail.application.desiredState === 'STOPPED'
100
110
  ? `"${detail.name}" is already stopped`
101
111
  : { action: 'stop', next: { desiredState: 'STOPPED' } }, (orgId, envId, detail) => client.cloudHub2.setDesiredState(orgId, envId, detail.id, 'STOPPED')));
102
112
  server.registerTool('start_app', {
@@ -104,7 +114,7 @@ export function registerAppLifecycleTools(server, client) {
104
114
  description: 'Starts a stopped CloudHub 2.0 application. With wait: true it returns once every replica is running, without reporting the brief FAILED status the platform shows during start-up. Previews by default; pass confirm: true to apply.',
105
115
  inputSchema: { ...appInputs, ...waitInputs, ...writeInputs },
106
116
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true },
107
- }, async (args) => runStateChange(client, args, (detail) => detail.application.desiredState === 'STARTED' && deploymentPhase(detail).settled
117
+ }, async (args) => runStateChange(client, 'start_app', args, (detail) => detail.application.desiredState === 'STARTED' && deploymentPhase(detail).settled
108
118
  ? `"${detail.name}" is already running`
109
119
  : { action: 'start', next: { desiredState: 'STARTED' } }, (orgId, envId, detail) => client.cloudHub2.setDesiredState(orgId, envId, detail.id, 'STARTED')));
110
120
  server.registerTool('update_app_settings', {
@@ -112,7 +122,14 @@ export function registerAppLifecycleTools(server, client) {
112
122
  description: 'Adds, changes, removes or moves application properties of a CloudHub 2.0 app. Untouched properties are kept; stored secure values are kept too, because the platform retains a secure value whenever it is sent back masked. ' +
113
123
  'Pass secrets through securePropertiesFrom (a project file or environment variables read on the server) so they never appear in the conversation, and use moveToSecure to turn a plain property into a secure one without exposing its value. ' +
114
124
  'The app references secure properties as plain ${key}. Applying restarts the app; use mode stopStart for apps with streaming or polling listeners. Previews by default; pass confirm: true to apply.',
115
- inputSchema: { ...appInputs, ...settingsInputs, mode: modeInput, ...waitInputs, ...writeInputs },
125
+ inputSchema: {
126
+ ...appInputs,
127
+ ...settingsInputs,
128
+ mode: modeInput,
129
+ ...waitInputs,
130
+ ...writeInputs,
131
+ ...reviewInputs,
132
+ },
116
133
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true },
117
134
  }, async (args) => {
118
135
  const settings = settingsFromArgs(args);
@@ -126,11 +143,11 @@ export function registerAppLifecycleTools(server, client) {
126
143
  isError: true,
127
144
  };
128
145
  }
129
- return runAppChangeTool(client, args, { settings, mode: args.mode }, { done: 'Updated settings of' });
146
+ return runAppChangeTool(client, args, { settings, mode: args.mode }, { done: 'Updated settings of', tool: 'update_app_settings' });
130
147
  });
131
148
  server.registerTool('delete_app', {
132
149
  title: 'Delete Application Deployment',
133
- description: 'Permanently deletes a CloudHub 2.0 application deployment while leaving its Exchange artifact and other Anypoint resources untouched. This is a bound two-step operation: call without confirm for a preview, then re-call with confirm:true and the exact expectedDeploymentId from that preview. Production also requires confirmProduction:true. Use stop_app instead when the deployment configuration should be preserved.',
150
+ description: 'Permanently deletes a CloudHub 2.0 application deployment while leaving its Exchange artifact and other Anypoint resources untouched. This is a bound two-step operation: call without confirm for a preview, then re-call with confirm:true and the exact expectedDeploymentId from that preview. Production also requires confirmProduction:true, unless a user-level production pre-approval names delete_app for this organization and environment ("all-mutating" does not cover it); expectedDeploymentId is always required. Use stop_app instead when the deployment configuration should be preserved.',
134
151
  inputSchema: {
135
152
  appName: z.string().describe('Application name exactly as deployed (case-insensitive match)'),
136
153
  environment: z.string().describe('Environment name or ID'),
@@ -142,7 +159,7 @@ export function registerAppLifecycleTools(server, client) {
142
159
  confirmProduction: z
143
160
  .boolean()
144
161
  .optional()
145
- .describe('Required in addition to confirm:true when the resolved environment is production.'),
162
+ .describe('Required in addition to confirm:true when the resolved environment is production, unless a pre-approval names delete_app.'),
146
163
  },
147
164
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true },
148
165
  }, async ({ appName, environment, confirm, expectedDeploymentId, confirmProduction }) => {
@@ -166,13 +183,17 @@ export function registerAppLifecycleTools(server, client) {
166
183
  };
167
184
  }
168
185
  const preview = buildApplicationDeletionPreview(deployment, env);
186
+ // Only an entry that names delete_app covers it; "all-mutating" does not.
187
+ const production = productionFields(orgId, env, 'delete_app');
188
+ const needsConfirmProduction = preview.production && !production.productionPreapproved;
169
189
  if (!confirm) {
170
190
  return dryRunPreview({
171
191
  ...preview,
192
+ ...production,
172
193
  confirmation: {
173
194
  confirm: true,
174
195
  expectedDeploymentId: deployment.id,
175
- ...(preview.production ? { confirmProduction: true } : {}),
196
+ ...(needsConfirmProduction ? { confirmProduction: true } : {}),
176
197
  },
177
198
  });
178
199
  }
@@ -188,7 +209,7 @@ export function registerAppLifecycleTools(server, client) {
188
209
  isError: true,
189
210
  };
190
211
  }
191
- if (preview.production && !confirmProduction) {
212
+ if (needsConfirmProduction && !confirmProduction) {
192
213
  return {
193
214
  ...mcpText({
194
215
  message: 'Deletion refused: production requires confirmProduction:true.',
@@ -233,6 +254,7 @@ export function registerAppLifecycleTools(server, client) {
233
254
  deploymentId: deployment.id,
234
255
  app: deployment.name,
235
256
  environment: env.name,
257
+ ...production,
236
258
  preserved: preview.preserved,
237
259
  });
238
260
  }