@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.
Files changed (278) hide show
  1. package/README.md +39 -16
  2. package/dist/analysis/LogAnalyzer.d.ts +10 -4
  3. package/dist/analysis/LogAnalyzer.d.ts.map +1 -1
  4. package/dist/analysis/LogAnalyzer.js +29 -18
  5. package/dist/analysis/LogAnalyzer.js.map +1 -1
  6. package/dist/analysis/error-context.d.ts +2 -0
  7. package/dist/analysis/error-context.d.ts.map +1 -1
  8. package/dist/analysis/error-context.js +2 -1
  9. package/dist/analysis/error-context.js.map +1 -1
  10. package/dist/analysis/error-grouper.js +1 -1
  11. package/dist/analysis/error-grouper.js.map +1 -1
  12. package/dist/analysis/filter.d.ts +54 -0
  13. package/dist/analysis/filter.d.ts.map +1 -0
  14. package/dist/analysis/filter.js +100 -0
  15. package/dist/analysis/filter.js.map +1 -0
  16. package/dist/analysis/{utils.d.ts → normalize.d.ts} +1 -1
  17. package/dist/analysis/normalize.d.ts.map +1 -0
  18. package/dist/analysis/{utils.js → normalize.js} +2 -2
  19. package/dist/analysis/normalize.js.map +1 -0
  20. package/dist/analysis/parser.d.ts.map +1 -1
  21. package/dist/analysis/parser.js +45 -17
  22. package/dist/analysis/parser.js.map +1 -1
  23. package/dist/analysis/pattern-detector.js +1 -1
  24. package/dist/analysis/pattern-detector.js.map +1 -1
  25. package/dist/analysis/stats.d.ts +25 -0
  26. package/dist/analysis/stats.d.ts.map +1 -1
  27. package/dist/analysis/stats.js +35 -1
  28. package/dist/analysis/stats.js.map +1 -1
  29. package/dist/analysis/summary.d.ts +51 -0
  30. package/dist/analysis/summary.d.ts.map +1 -0
  31. package/dist/analysis/summary.js +47 -0
  32. package/dist/analysis/summary.js.map +1 -0
  33. package/dist/analysis/types.d.ts +14 -0
  34. package/dist/analysis/types.d.ts.map +1 -1
  35. package/dist/api/ApiManagerApi.d.ts +53 -0
  36. package/dist/api/ApiManagerApi.d.ts.map +1 -1
  37. package/dist/api/ApiManagerApi.js +53 -2
  38. package/dist/api/ApiManagerApi.js.map +1 -1
  39. package/dist/api/CloudHub2Api.d.ts +24 -4
  40. package/dist/api/CloudHub2Api.d.ts.map +1 -1
  41. package/dist/api/CloudHub2Api.js +10 -22
  42. package/dist/api/CloudHub2Api.js.map +1 -1
  43. package/dist/api/DesignCenterApi.d.ts +0 -20
  44. package/dist/api/DesignCenterApi.d.ts.map +1 -1
  45. package/dist/api/DesignCenterApi.js +0 -22
  46. package/dist/api/DesignCenterApi.js.map +1 -1
  47. package/dist/api/ExchangeApi.d.ts +15 -0
  48. package/dist/api/ExchangeApi.d.ts.map +1 -1
  49. package/dist/api/ExchangeApi.js +51 -0
  50. package/dist/api/ExchangeApi.js.map +1 -1
  51. package/dist/api/LogsApi.d.ts +50 -18
  52. package/dist/api/LogsApi.d.ts.map +1 -1
  53. package/dist/api/LogsApi.js +69 -98
  54. package/dist/api/LogsApi.js.map +1 -1
  55. package/dist/api/MonitoringApi.d.ts +137 -93
  56. package/dist/api/MonitoringApi.d.ts.map +1 -1
  57. package/dist/api/MonitoringApi.js +471 -204
  58. package/dist/api/MonitoringApi.js.map +1 -1
  59. package/dist/api/RuntimesApi.d.ts +56 -0
  60. package/dist/api/RuntimesApi.d.ts.map +1 -0
  61. package/dist/api/RuntimesApi.js +58 -0
  62. package/dist/api/RuntimesApi.js.map +1 -0
  63. package/dist/auth/FileStore.js +1 -1
  64. package/dist/auth/FileStore.js.map +1 -1
  65. package/dist/cli.js +4 -2
  66. package/dist/cli.js.map +1 -1
  67. package/dist/client/AnypointClient.d.ts +3 -1
  68. package/dist/client/AnypointClient.d.ts.map +1 -1
  69. package/dist/client/AnypointClient.js +5 -2
  70. package/dist/client/AnypointClient.js.map +1 -1
  71. package/dist/client/smoke-test.d.ts +111 -0
  72. package/dist/client/smoke-test.d.ts.map +1 -0
  73. package/dist/client/smoke-test.js +275 -0
  74. package/dist/client/smoke-test.js.map +1 -0
  75. package/dist/commands/api.d.ts +1 -1
  76. package/dist/commands/api.d.ts.map +1 -1
  77. package/dist/commands/api.js +175 -30
  78. package/dist/commands/api.js.map +1 -1
  79. package/dist/commands/app-change-cli.d.ts +52 -0
  80. package/dist/commands/app-change-cli.d.ts.map +1 -0
  81. package/dist/commands/app-change-cli.js +149 -0
  82. package/dist/commands/app-change-cli.js.map +1 -0
  83. package/dist/commands/apps.d.ts +1 -1
  84. package/dist/commands/apps.d.ts.map +1 -1
  85. package/dist/commands/apps.js +199 -18
  86. package/dist/commands/apps.js.map +1 -1
  87. package/dist/commands/auth.js +1 -1
  88. package/dist/commands/auth.js.map +1 -1
  89. package/dist/commands/compare.d.ts +8 -0
  90. package/dist/commands/compare.d.ts.map +1 -0
  91. package/dist/commands/compare.js +104 -0
  92. package/dist/commands/compare.js.map +1 -0
  93. package/dist/commands/config.js +1 -1
  94. package/dist/commands/config.js.map +1 -1
  95. package/dist/commands/deploy.d.ts +6 -1
  96. package/dist/commands/deploy.d.ts.map +1 -1
  97. package/dist/commands/deploy.js +89 -91
  98. package/dist/commands/deploy.js.map +1 -1
  99. package/dist/commands/design-center.d.ts +1 -1
  100. package/dist/commands/design-center.d.ts.map +1 -1
  101. package/dist/commands/design-center.js +36 -25
  102. package/dist/commands/design-center.js.map +1 -1
  103. package/dist/commands/index.d.ts +1 -0
  104. package/dist/commands/index.d.ts.map +1 -1
  105. package/dist/commands/index.js +1 -0
  106. package/dist/commands/index.js.map +1 -1
  107. package/dist/commands/logs.d.ts +3 -2
  108. package/dist/commands/logs.d.ts.map +1 -1
  109. package/dist/commands/logs.js +142 -17
  110. package/dist/commands/logs.js.map +1 -1
  111. package/dist/commands/monitor.d.ts +5 -6
  112. package/dist/commands/monitor.d.ts.map +1 -1
  113. package/dist/commands/monitor.js +210 -230
  114. package/dist/commands/monitor.js.map +1 -1
  115. package/dist/commands/runtimes.d.ts +7 -0
  116. package/dist/commands/runtimes.d.ts.map +1 -0
  117. package/dist/commands/runtimes.js +66 -0
  118. package/dist/commands/runtimes.js.map +1 -0
  119. package/dist/commands/shared.d.ts +2 -0
  120. package/dist/commands/shared.d.ts.map +1 -1
  121. package/dist/commands/shared.js +16 -1
  122. package/dist/commands/shared.js.map +1 -1
  123. package/dist/{utils/config.d.ts → config/profiles.d.ts} +9 -1
  124. package/dist/config/profiles.d.ts.map +1 -0
  125. package/dist/{utils/config.js → config/profiles.js} +1 -1
  126. package/dist/config/profiles.js.map +1 -0
  127. package/dist/index.d.ts +12 -3
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +12 -2
  130. package/dist/index.js.map +1 -1
  131. package/dist/mcp/prompts.js +7 -7
  132. package/dist/mcp/prompts.js.map +1 -1
  133. package/dist/mcp/server.d.ts +14 -0
  134. package/dist/mcp/server.d.ts.map +1 -0
  135. package/dist/mcp/server.js +61 -0
  136. package/dist/mcp/server.js.map +1 -0
  137. package/dist/mcp/tools/analysis.d.ts.map +1 -1
  138. package/dist/mcp/tools/analysis.js +74 -46
  139. package/dist/mcp/tools/analysis.js.map +1 -1
  140. package/dist/mcp/tools/anypoint-mq.d.ts.map +1 -1
  141. package/dist/mcp/tools/anypoint-mq.js +25 -54
  142. package/dist/mcp/tools/anypoint-mq.js.map +1 -1
  143. package/dist/mcp/tools/api-manager.d.ts +2 -1
  144. package/dist/mcp/tools/api-manager.d.ts.map +1 -1
  145. package/dist/mcp/tools/api-manager.js +154 -89
  146. package/dist/mcp/tools/api-manager.js.map +1 -1
  147. package/dist/mcp/tools/app-inputs.d.ts +92 -0
  148. package/dist/mcp/tools/app-inputs.d.ts.map +1 -0
  149. package/dist/mcp/tools/app-inputs.js +142 -0
  150. package/dist/mcp/tools/app-inputs.js.map +1 -0
  151. package/dist/mcp/tools/apps-deploy.d.ts +13 -0
  152. package/dist/mcp/tools/apps-deploy.d.ts.map +1 -0
  153. package/dist/mcp/tools/apps-deploy.js +358 -0
  154. package/dist/mcp/tools/apps-deploy.js.map +1 -0
  155. package/dist/mcp/tools/apps-lifecycle.d.ts +11 -0
  156. package/dist/mcp/tools/apps-lifecycle.d.ts.map +1 -0
  157. package/dist/mcp/tools/apps-lifecycle.js +244 -0
  158. package/dist/mcp/tools/apps-lifecycle.js.map +1 -0
  159. package/dist/mcp/tools/apps-read.d.ts +9 -0
  160. package/dist/mcp/tools/apps-read.d.ts.map +1 -0
  161. package/dist/mcp/tools/apps-read.js +414 -0
  162. package/dist/mcp/tools/apps-read.js.map +1 -0
  163. package/dist/mcp/tools/artifacts.d.ts +8 -0
  164. package/dist/mcp/tools/artifacts.d.ts.map +1 -0
  165. package/dist/mcp/tools/artifacts.js +81 -0
  166. package/dist/mcp/tools/artifacts.js.map +1 -0
  167. package/dist/mcp/tools/audit.d.ts.map +1 -1
  168. package/dist/mcp/tools/audit.js +9 -17
  169. package/dist/mcp/tools/audit.js.map +1 -1
  170. package/dist/mcp/tools/design-center.d.ts +2 -3
  171. package/dist/mcp/tools/design-center.d.ts.map +1 -1
  172. package/dist/mcp/tools/design-center.js +41 -185
  173. package/dist/mcp/tools/design-center.js.map +1 -1
  174. package/dist/mcp/tools/exchange.d.ts +1 -2
  175. package/dist/mcp/tools/exchange.d.ts.map +1 -1
  176. package/dist/mcp/tools/exchange.js +51 -312
  177. package/dist/mcp/tools/exchange.js.map +1 -1
  178. package/dist/mcp/tools/governance.d.ts +8 -0
  179. package/dist/mcp/tools/governance.d.ts.map +1 -0
  180. package/dist/mcp/tools/governance.js +59 -0
  181. package/dist/mcp/tools/governance.js.map +1 -0
  182. package/dist/mcp/tools/identity.d.ts.map +1 -1
  183. package/dist/mcp/tools/identity.js +15 -36
  184. package/dist/mcp/tools/identity.js.map +1 -1
  185. package/dist/mcp/tools/index.d.ts +5 -1
  186. package/dist/mcp/tools/index.d.ts.map +1 -1
  187. package/dist/mcp/tools/index.js +5 -1
  188. package/dist/mcp/tools/index.js.map +1 -1
  189. package/dist/mcp/tools/logs.d.ts +48 -2
  190. package/dist/mcp/tools/logs.d.ts.map +1 -1
  191. package/dist/mcp/tools/logs.js +204 -54
  192. package/dist/mcp/tools/logs.js.map +1 -1
  193. package/dist/mcp/tools/monitoring.d.ts +1 -2
  194. package/dist/mcp/tools/monitoring.d.ts.map +1 -1
  195. package/dist/mcp/tools/monitoring.js +78 -285
  196. package/dist/mcp/tools/monitoring.js.map +1 -1
  197. package/dist/mcp/tools/object-store.d.ts +1 -1
  198. package/dist/mcp/tools/object-store.d.ts.map +1 -1
  199. package/dist/mcp/tools/object-store.js +19 -59
  200. package/dist/mcp/tools/object-store.js.map +1 -1
  201. package/dist/mcp/tools/profile.d.ts.map +1 -1
  202. package/dist/mcp/tools/profile.js +15 -35
  203. package/dist/mcp/tools/profile.js.map +1 -1
  204. package/dist/mcp/tools/shared.d.ts +43 -0
  205. package/dist/mcp/tools/shared.d.ts.map +1 -1
  206. package/dist/mcp/tools/shared.js +54 -0
  207. package/dist/mcp/tools/shared.js.map +1 -1
  208. package/dist/mcp.d.ts +3 -11
  209. package/dist/mcp.d.ts.map +1 -1
  210. package/dist/mcp.js +4 -56
  211. package/dist/mcp.js.map +1 -1
  212. package/dist/safety/deployment.d.ts +47 -2
  213. package/dist/safety/deployment.d.ts.map +1 -1
  214. package/dist/safety/deployment.js +139 -6
  215. package/dist/safety/deployment.js.map +1 -1
  216. package/dist/safety/guards.d.ts +2 -2
  217. package/dist/safety/guards.d.ts.map +1 -1
  218. package/dist/safety/guards.js +4 -4
  219. package/dist/safety/guards.js.map +1 -1
  220. package/dist/safety/paths.d.ts +29 -0
  221. package/dist/safety/paths.d.ts.map +1 -0
  222. package/dist/safety/paths.js +76 -0
  223. package/dist/safety/paths.js.map +1 -0
  224. package/dist/safety/runtime.d.ts +24 -0
  225. package/dist/safety/runtime.d.ts.map +1 -0
  226. package/dist/safety/runtime.js +59 -0
  227. package/dist/safety/runtime.js.map +1 -0
  228. package/dist/safety/secret-sources.d.ts +51 -0
  229. package/dist/safety/secret-sources.d.ts.map +1 -0
  230. package/dist/safety/secret-sources.js +124 -0
  231. package/dist/safety/secret-sources.js.map +1 -0
  232. package/dist/safety/secrets.d.ts +32 -0
  233. package/dist/safety/secrets.d.ts.map +1 -0
  234. package/dist/safety/secrets.js +91 -0
  235. package/dist/safety/secrets.js.map +1 -0
  236. package/dist/utils/errors.d.ts +14 -1
  237. package/dist/utils/errors.d.ts.map +1 -1
  238. package/dist/utils/errors.js +31 -3
  239. package/dist/utils/errors.js.map +1 -1
  240. package/dist/workflows/app-change.d.ts +124 -0
  241. package/dist/workflows/app-change.d.ts.map +1 -0
  242. package/dist/workflows/app-change.js +305 -0
  243. package/dist/workflows/app-change.js.map +1 -0
  244. package/dist/workflows/app-state.d.ts +60 -0
  245. package/dist/workflows/app-state.d.ts.map +1 -0
  246. package/dist/workflows/app-state.js +95 -0
  247. package/dist/workflows/app-state.js.map +1 -0
  248. package/dist/workflows/artifact-compare.d.ts +134 -0
  249. package/dist/workflows/artifact-compare.d.ts.map +1 -0
  250. package/dist/workflows/artifact-compare.js +419 -0
  251. package/dist/workflows/artifact-compare.js.map +1 -0
  252. package/dist/workflows/asset-naming.d.ts +72 -0
  253. package/dist/workflows/asset-naming.d.ts.map +1 -0
  254. package/dist/workflows/asset-naming.js +116 -0
  255. package/dist/workflows/asset-naming.js.map +1 -0
  256. package/dist/{api/DesignCenterWorkflow.d.ts → workflows/design-center.d.ts} +4 -4
  257. package/dist/workflows/design-center.d.ts.map +1 -0
  258. package/dist/{api/DesignCenterWorkflow.js → workflows/design-center.js} +1 -1
  259. package/dist/workflows/design-center.js.map +1 -0
  260. package/dist/workflows/jar-deployment.d.ts +156 -0
  261. package/dist/workflows/jar-deployment.d.ts.map +1 -0
  262. package/dist/workflows/jar-deployment.js +178 -0
  263. package/dist/workflows/jar-deployment.js.map +1 -0
  264. package/package.json +12 -4
  265. package/dist/analysis/utils.d.ts.map +0 -1
  266. package/dist/analysis/utils.js.map +0 -1
  267. package/dist/api/DesignCenterWorkflow.d.ts.map +0 -1
  268. package/dist/api/DesignCenterWorkflow.js.map +0 -1
  269. package/dist/api/index.d.ts +0 -13
  270. package/dist/api/index.d.ts.map +0 -1
  271. package/dist/api/index.js +0 -13
  272. package/dist/api/index.js.map +0 -1
  273. package/dist/mcp/tools/applications.d.ts +0 -4
  274. package/dist/mcp/tools/applications.d.ts.map +0 -1
  275. package/dist/mcp/tools/applications.js +0 -815
  276. package/dist/mcp/tools/applications.js.map +0 -1
  277. package/dist/utils/config.d.ts.map +0 -1
  278. package/dist/utils/config.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/profile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,QA2FrD"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/profile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,QAsErD"}
@@ -3,7 +3,8 @@
3
3
  * set_project_profile, get_project_profile
4
4
  */
5
5
  import { z } from 'zod';
6
- import { resolveProfile, listProfiles, writeProjectConfig, discoverProjectConfig, hasSavedConfig, } from '../../utils/config.js';
6
+ import { resolveProfile, listProfiles, writeProjectConfig, discoverProjectConfig, hasSavedConfig, } from '../../config/profiles.js';
7
+ import { mcpText } from './shared.js';
7
8
  export function registerProfileTools(server) {
8
9
  server.registerTool('get_project_profile', {
9
10
  title: 'Get Project Profile',
@@ -13,28 +14,21 @@ export function registerProfileTools(server) {
13
14
  const resolved = resolveProfile();
14
15
  const profiles = listProfiles();
15
16
  const projectConfig = discoverProjectConfig();
16
- return {
17
- content: [
18
- {
19
- type: 'text',
20
- text: JSON.stringify({
21
- activeProfile: resolved.name,
22
- resolvedVia: resolved.source,
23
- projectBinding: projectConfig?.profile || null,
24
- availableProfiles: profiles.map((p) => ({
25
- name: p,
26
- hasCredentials: hasSavedConfig(p),
27
- isActive: p === resolved.name,
28
- })),
29
- }, null, 2),
30
- },
31
- ],
32
- };
17
+ return mcpText({
18
+ activeProfile: resolved.name,
19
+ resolvedVia: resolved.source,
20
+ projectBinding: projectConfig?.profile || null,
21
+ availableProfiles: profiles.map((p) => ({
22
+ name: p,
23
+ hasCredentials: hasSavedConfig(p),
24
+ isActive: p === resolved.name,
25
+ })),
26
+ });
33
27
  });
34
28
  server.registerTool('set_project_profile', {
35
29
  title: 'Set Project Profile',
36
30
  description: 'Binds the current project directory to a named Anypoint profile by writing .anypoint-connect.json. After this, all CLI commands and MCP tools run from this directory will automatically use the specified profile.',
37
- annotations: { readOnlyHint: false },
31
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true },
38
32
  inputSchema: {
39
33
  profile: z.string().describe('The profile name to bind to this project directory'),
40
34
  directory: z
@@ -47,24 +41,10 @@ export function registerProfileTools(server) {
47
41
  // Validate profile exists
48
42
  const profiles = listProfiles();
49
43
  if (profiles.length > 0 && !profiles.includes(profile)) {
50
- return {
51
- content: [
52
- {
53
- type: 'text',
54
- text: `Warning: Profile "${profile}" does not exist yet. Available profiles: ${profiles.join(', ')}. The binding was created but you'll need to run "anc config init --profile ${profile}" to set up credentials.`,
55
- },
56
- ],
57
- };
44
+ return mcpText(`Warning: Profile "${profile}" does not exist yet. Available profiles: ${profiles.join(', ')}. The binding was created but you'll need to run "anc config init --profile ${profile}" to set up credentials.`);
58
45
  }
59
46
  const filePath = writeProjectConfig(profile, directory);
60
- return {
61
- content: [
62
- {
63
- type: 'text',
64
- text: `Project bound to profile "${profile}". Config written to: ${filePath}\n\nAll CLI commands and MCP tools in this directory will now use the "${profile}" profile.`,
65
- },
66
- ],
67
- };
47
+ return mcpText(`Project bound to profile "${profile}". Config written to: ${filePath}\n\nAll CLI commands and MCP tools in this directory will now use the "${profile}" profile.`);
68
48
  }
69
49
  catch (error) {
70
50
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/mcp/tools/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/mcp/tools/profile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACH,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IAClD,MAAM,CAAC,YAAY,CACf,qBAAqB,EACrB;QACI,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACP,gOAAgO;QACpO,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACtC,EACD,KAAK,IAAI,EAAE;QACP,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,qBAAqB,EAAE,CAAC;QAE9C,OAAO,OAAO,CAAC;YACX,aAAa,EAAE,QAAQ,CAAC,IAAI;YAC5B,WAAW,EAAE,QAAQ,CAAC,MAAM;YAC5B,cAAc,EAAE,aAAa,EAAE,OAAO,IAAI,IAAI;YAC9C,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpC,IAAI,EAAE,CAAC;gBACP,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;gBACjC,QAAQ,EAAE,CAAC,KAAK,QAAQ,CAAC,IAAI;aAChC,CAAC,CAAC;SACN,CAAC,CAAC;IACP,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,qBAAqB,EACrB;QACI,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACP,qNAAqN;QACzN,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE;QAClF,WAAW,EAAE;YACT,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YAClF,SAAS,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,gEAAgE,CAAC;SAClF;KACJ,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACD,0BAA0B;YAC1B,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;YAChC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrD,OAAO,OAAO,CACV,qBAAqB,OAAO,6CAA6C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,+EAA+E,OAAO,0BAA0B,CAC/M,CAAC;YACN,CAAC;YAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAExD,OAAO,OAAO,CACV,6BAA6B,OAAO,yBAAyB,QAAQ,0EAA0E,OAAO,YAAY,CACrK,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;qBACnG;iBACJ;gBACD,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;IACL,CAAC,CACJ,CAAC;AACN,CAAC"}
@@ -2,6 +2,23 @@
2
2
  * Shared MCP tool utilities
3
3
  * Common helpers used across all MCP tool registrars
4
4
  */
5
+ import type { AnypointClient } from '../../client/AnypointClient.js';
6
+ import type { Environment } from '../../api/AccessManagementApi.js';
7
+ import { z } from 'zod';
8
+ /** Resolve the default org and an environment name or ID in one step. */
9
+ export declare function resolveEnvironment(client: AnypointClient, environment: string): Promise<{
10
+ orgId: string;
11
+ env: Environment;
12
+ }>;
13
+ /** A look-back window ending now, as epoch milliseconds plus ISO strings for responses. */
14
+ export declare function timeWindow(hoursBack?: number): {
15
+ from: number;
16
+ to: number;
17
+ period: {
18
+ from: string;
19
+ to: string;
20
+ };
21
+ };
5
22
  /**
6
23
  * Build a standard MCP error response.
7
24
  * Every tool handler catch block should return this.
@@ -31,4 +48,30 @@ export declare function dryRunPreview(preview: Record<string, unknown>): {
31
48
  text: string;
32
49
  }[];
33
50
  };
51
+ /** Inputs every mutating tool accepts: preview by default, apply on confirm, and a second flag for production. */
52
+ export declare const writeInputs: {
53
+ confirm: z.ZodOptional<z.ZodBoolean>;
54
+ confirmProduction: z.ZodOptional<z.ZodBoolean>;
55
+ };
56
+ /**
57
+ * Gate a write. Returns the response to send instead of writing (a preview, or a refusal for
58
+ * production without `confirmProduction`), or `null` when the caller may proceed.
59
+ */
60
+ export declare function guardWrite(input: {
61
+ env: Pick<Environment, 'name' | 'isProduction'>;
62
+ confirm?: boolean;
63
+ confirmProduction?: boolean;
64
+ preview: Record<string, unknown>;
65
+ }): {
66
+ content: {
67
+ type: "text";
68
+ text: string;
69
+ }[];
70
+ } | {
71
+ content: {
72
+ type: "text";
73
+ text: string;
74
+ }[];
75
+ isError: true;
76
+ } | null;
34
77
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/shared.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO;;;;;;EAKtC;AAED,qFAAqF;AACrF,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO;;;;;EAGvC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;EAM7D"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/shared.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,yEAAyE;AACzE,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,CAAC,CAI9C;AAED,2FAA2F;AAC3F,wBAAgB,UAAU,CAAC,SAAS,SAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAI7G;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO;;;;;;EAKtC;AAED,qFAAqF;AACrF,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO;;;;;EAGvC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;EAM7D;AAED,kHAAkH;AAClH,eAAO,MAAM,WAAW;;;CASvB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAC9B,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;;;;;;;;;;;SA4BA"}
@@ -2,7 +2,21 @@
2
2
  * Shared MCP tool utilities
3
3
  * Common helpers used across all MCP tool registrars
4
4
  */
5
+ import { z } from 'zod';
5
6
  import { errorMessage } from '../../utils/errors.js';
7
+ import { isProductionEnv } from '../../safety/guards.js';
8
+ /** Resolve the default org and an environment name or ID in one step. */
9
+ export async function resolveEnvironment(client, environment) {
10
+ const orgId = await client.getDefaultOrgId();
11
+ const env = await client.accessManagement.resolveEnvironment(orgId, environment);
12
+ return { orgId, env };
13
+ }
14
+ /** A look-back window ending now, as epoch milliseconds plus ISO strings for responses. */
15
+ export function timeWindow(hoursBack = 24) {
16
+ const to = Date.now();
17
+ const from = to - hoursBack * 60 * 60 * 1000;
18
+ return { from, to, period: { from: new Date(from).toISOString(), to: new Date(to).toISOString() } };
19
+ }
6
20
  /**
7
21
  * Build a standard MCP error response.
8
22
  * Every tool handler catch block should return this.
@@ -30,4 +44,44 @@ export function dryRunPreview(preview) {
30
44
  ...preview,
31
45
  });
32
46
  }
47
+ /** Inputs every mutating tool accepts: preview by default, apply on confirm, and a second flag for production. */
48
+ export const writeInputs = {
49
+ confirm: z
50
+ .boolean()
51
+ .optional()
52
+ .describe('Apply the change. Without it the tool returns a preview and changes nothing'),
53
+ confirmProduction: z
54
+ .boolean()
55
+ .optional()
56
+ .describe('Required in addition to confirm when the target environment is production'),
57
+ };
58
+ /**
59
+ * Gate a write. Returns the response to send instead of writing (a preview, or a refusal for
60
+ * production without `confirmProduction`), or `null` when the caller may proceed.
61
+ */
62
+ export function guardWrite(input) {
63
+ const production = isProductionEnv(input.env.name, input.env.isProduction);
64
+ if (!input.confirm) {
65
+ return dryRunPreview({
66
+ ...input.preview,
67
+ ...(production ? { production: true, requires: 'confirm: true and confirmProduction: true' } : {}),
68
+ });
69
+ }
70
+ if (production && !input.confirmProduction) {
71
+ return {
72
+ content: [
73
+ {
74
+ type: 'text',
75
+ text: JSON.stringify({
76
+ refused: true,
77
+ message: `${input.env.name} is a production environment. Nothing was changed. Re-call with confirm: true and confirmProduction: true to apply.`,
78
+ ...input.preview,
79
+ }, null, 2),
80
+ },
81
+ ],
82
+ isError: true,
83
+ };
84
+ }
85
+ return null;
86
+ }
33
87
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/mcp/tools/shared.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACnC,OAAO;QACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAC3E,OAAO,EAAE,IAAa;KACzB,CAAC;AACN,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,OAAO,CAAC,OAAgB;IACpC,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACtF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgC;IAC1D,OAAO,OAAO,CAAC;QACX,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,+FAA+F;QACxG,GAAG,OAAO;KACb,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/mcp/tools/shared.ts"],"names":[],"mappings":"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"}
package/dist/mcp.d.ts CHANGED
@@ -1,15 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Anypoint Connect MCP Server
4
- * Exposes Anypoint Platform operations via Model Context Protocol
5
- *
6
- * Tools, resources, and prompts are registered by modular registrars
7
- * under src/mcp/ — this file is the thin orchestrator.
3
+ * Anypoint Connect MCP entry point — `node dist/mcp.js` (also started by `anc mcp`).
8
4
  */
9
- export declare class AnypointConnectMcpServer {
10
- private server;
11
- private client;
12
- constructor();
13
- start(): Promise<void>;
14
- }
5
+ import { AnypointConnectMcpServer } from './mcp/server.js';
6
+ export { AnypointConnectMcpServer };
15
7
  //# sourceMappingURL=mcp.d.ts.map
package/dist/mcp.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAyBH,qBAAa,wBAAwB;IACjC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,MAAM,CAAiB;;IAwCzB,KAAK;CAKd"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
package/dist/mcp.js CHANGED
@@ -1,64 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Anypoint Connect MCP Server
4
- * Exposes Anypoint Platform operations via Model Context Protocol
5
- *
6
- * Tools, resources, and prompts are registered by modular registrars
7
- * under src/mcp/ — this file is the thin orchestrator.
3
+ * Anypoint Connect MCP entry point — `node dist/mcp.js` (also started by `anc mcp`).
8
4
  */
9
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
10
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
11
- import { getConfig, resolveProfile } from './utils/config.js';
12
- import { AnypointClient } from './client/AnypointClient.js';
13
- import { VERSION } from './version.js';
14
- import { registerIdentityTools, registerApplicationTools, registerLogTools, registerAnalysisTools, registerMonitoringTools, registerExchangeTools, registerApiManagerTools, registerDesignCenterTools, registerProfileTools, registerAuditTools, registerAnypointMQTools, registerObjectStoreTools, } from './mcp/tools/index.js';
15
- import { registerResources } from './mcp/resources.js';
16
- import { registerPrompts } from './mcp/prompts.js';
17
- export class AnypointConnectMcpServer {
18
- server;
19
- client;
20
- constructor() {
21
- this.server = new McpServer({
22
- name: 'anypoint-connect',
23
- version: VERSION,
24
- });
25
- const resolved = resolveProfile();
26
- const config = getConfig({ profile: resolved.name });
27
- console.error(`Profile: "${resolved.name}" (source: ${resolved.source})`);
28
- this.client = new AnypointClient({
29
- clientId: config.clientId,
30
- clientSecret: config.clientSecret,
31
- redirectUri: config.callbackUrl,
32
- baseUrl: config.baseUrl,
33
- profileName: config.profile,
34
- });
35
- // Register tools by domain
36
- registerIdentityTools(this.server, this.client);
37
- registerApplicationTools(this.server, this.client);
38
- registerLogTools(this.server, this.client);
39
- registerAnalysisTools(this.server, this.client);
40
- registerMonitoringTools(this.server, this.client);
41
- registerExchangeTools(this.server, this.client);
42
- registerApiManagerTools(this.server, this.client);
43
- registerDesignCenterTools(this.server, this.client);
44
- registerProfileTools(this.server);
45
- registerAuditTools(this.server, this.client);
46
- registerAnypointMQTools(this.server, this.client);
47
- registerObjectStoreTools(this.server, this.client);
48
- // Register resources and prompts
49
- registerResources(this.server, this.client, this.client.getCache());
50
- registerPrompts(this.server);
51
- }
52
- async start() {
53
- const transport = new StdioServerTransport();
54
- await this.server.connect(transport);
55
- console.error('Anypoint Connect MCP Server running on stdio');
56
- }
57
- }
5
+ import { AnypointConnectMcpServer } from './mcp/server.js';
6
+ export { AnypointConnectMcpServer };
58
7
  // Auto-start only when run directly (node dist/mcp.js), not when imported
59
8
  const isDirectRun = import.meta.url === `file://${process.argv[1]}` || import.meta.url === `file://${process.argv[1]}.js`;
60
9
  if (isDirectRun) {
61
- const server = new AnypointConnectMcpServer();
62
- server.start().catch((err) => console.error(`Failed to start: ${err}`));
10
+ new AnypointConnectMcpServer().start().catch((err) => console.error(`Failed to start: ${err}`));
63
11
  }
64
12
  //# sourceMappingURL=mcp.js.map
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpC,0EAA0E;AAC1E,MAAM,WAAW,GACb,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAE1G,IAAI,WAAW,EAAE,CAAC;IACd,IAAI,wBAAwB,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC,CAAC;AACpG,CAAC"}
@@ -25,6 +25,8 @@ export interface DeploymentInput {
25
25
  artifactId: string;
26
26
  version: string;
27
27
  runtime?: string;
28
+ javaVersion?: string;
29
+ releaseChannel?: string;
28
30
  replicas?: number;
29
31
  region?: string;
30
32
  vcores?: string;
@@ -68,8 +70,51 @@ export interface RollbackTarget {
68
70
  }
69
71
  /** Resolve a rollback to a complete historical artifact ref without confusing spec IDs with artifact versions. */
70
72
  export declare function resolveRollbackTarget(existing: CH2Deployment, specs: CH2DeploymentSpec[], toVersion?: string): RollbackTarget | null;
71
- /** Merge settings while retaining masked secure entries required by the Application Manager API. */
72
- export declare function mergeApplicationProperties(existing: CH2Deployment, properties?: Record<string, string>, secureProperties?: Record<string, string>): ApplicationPropertiesService;
73
+ /** A requested change to an application's properties. Values are already resolved (no file references). */
74
+ export interface SettingsChange {
75
+ properties?: Record<string, string>;
76
+ secureProperties?: Record<string, string>;
77
+ removeProperties?: string[];
78
+ removeSecureProperties?: string[];
79
+ /** Plaintext keys whose current value moves into secure properties without leaving the server. */
80
+ moveToSecure?: string[];
81
+ }
82
+ export interface PropertyChange {
83
+ key: string;
84
+ /** Present only for plaintext keys that do not look secret. */
85
+ from?: string;
86
+ to?: string;
87
+ }
88
+ export interface SettingsDiff {
89
+ added: PropertyChange[];
90
+ changed: PropertyChange[];
91
+ removed: string[];
92
+ secureAdded: string[];
93
+ secureChanged: string[];
94
+ secureRemoved: string[];
95
+ movedToSecure: string[];
96
+ }
97
+ export interface SettingsPlan {
98
+ /** The complete properties service to send. The platform replaces the maps wholesale. */
99
+ service: ApplicationPropertiesService;
100
+ diff: SettingsDiff;
101
+ warnings: string[];
102
+ changed: boolean;
103
+ }
104
+ /** Read the properties service of a live deployment. */
105
+ export declare function currentSettings(existing: CH2Deployment): {
106
+ properties: Record<string, string>;
107
+ secureProperties: Record<string, string>;
108
+ };
109
+ export declare function isEmptySettingsChange(change: SettingsChange | undefined): boolean;
110
+ /**
111
+ * Plan a settings change against the live deployment.
112
+ *
113
+ * The platform stores secure values encrypted and returns them as `******`. Sending `******` back
114
+ * for a key keeps its stored value, so every untouched secure key is resent masked; that is what
115
+ * lets one secret change without wiping the others. Removal works because the full maps are sent.
116
+ */
117
+ export declare function planSettingsChange(existing: CH2Deployment, change: SettingsChange): SettingsPlan;
73
118
  /** A single field that would change between the live deployment and a proposed payload. */
74
119
  export interface DeploymentChange {
75
120
  field: string;
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../src/safety/deployment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACR,4BAA4B,EAC5B,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EAC1B,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,cAAc,uBAAuB,CAAC;AACnD,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC,kDAAkD;AAClD,eAAO,MAAM,YAAY,kEAAmE,CAAC;AAE7F;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAexD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM/D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,uBAAuB,CA4ClF;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,iBAAiB,CAS5G;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,WAAW,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAWD,kHAAkH;AAClH,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,iBAAiB,EAAE,EAC1B,SAAS,CAAC,EAAE,MAAM,GACnB,cAAc,GAAG,IAAI,CAwBvB;AAED,oGAAoG;AACpG,wBAAgB,0BAA0B,CACtC,QAAQ,EAAE,aAAa,EACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1C,4BAA4B,CAS9B;AAED,2FAA2F;AAC3F,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,uBAAuB,GAAG,gBAAgB,EAAE,CAiBzG"}
1
+ {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../src/safety/deployment.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@
9
9
  *
10
10
  * These are pure functions (no I/O) so they unit-test cleanly.
11
11
  */
12
+ import { MASKED, looksSecret, redactValue } from './secrets.js';
12
13
  export const DEFAULT_RUNTIME = '4.8.0';
13
14
  export const DEFAULT_REGION = 'cloudhub-us-east-2';
14
15
  export const DEFAULT_VCORES = '0.1';
@@ -77,7 +78,11 @@ export function buildCreatePayload(input) {
77
78
  provider: 'MC',
78
79
  targetId: region,
79
80
  deploymentSettings: {
80
- runtime: { version: input.runtime || DEFAULT_RUNTIME },
81
+ runtime: {
82
+ version: input.runtime || DEFAULT_RUNTIME,
83
+ ...(input.releaseChannel ? { releaseChannel: input.releaseChannel } : {}),
84
+ ...(input.javaVersion ? { java: input.javaVersion } : {}),
85
+ },
81
86
  http: {
82
87
  inbound: {
83
88
  publicUrl: `${input.appName}.${regionToSubdomain(region)}.cloudhub.io`,
@@ -138,15 +143,143 @@ export function resolveRollbackTarget(existing, specs, toVersion) {
138
143
  const previousArtifact = priorSpecs.find((spec) => spec.application?.ref && !refsEqual(spec.application.ref, current));
139
144
  return previousArtifact ? { ref: previousArtifact.application.ref, sourceSpecId: previousArtifact.version } : null;
140
145
  }
141
- /** Merge settings while retaining masked secure entries required by the Application Manager API. */
142
- export function mergeApplicationProperties(existing, properties, secureProperties) {
146
+ /** Read the properties service of a live deployment. */
147
+ export function currentSettings(existing) {
143
148
  const configuration = existing.application.configuration ?? {};
144
149
  const service = (configuration['mule.agent.application.properties.service'] ??
145
150
  {});
151
+ return { properties: { ...(service.properties ?? {}) }, secureProperties: { ...(service.secureProperties ?? {}) } };
152
+ }
153
+ export function isEmptySettingsChange(change) {
154
+ if (!change)
155
+ return true;
156
+ return (Object.keys(change.properties ?? {}).length === 0 &&
157
+ Object.keys(change.secureProperties ?? {}).length === 0 &&
158
+ (change.removeProperties ?? []).length === 0 &&
159
+ (change.removeSecureProperties ?? []).length === 0 &&
160
+ (change.moveToSecure ?? []).length === 0);
161
+ }
162
+ /**
163
+ * Plan a settings change against the live deployment.
164
+ *
165
+ * The platform stores secure values encrypted and returns them as `******`. Sending `******` back
166
+ * for a key keeps its stored value, so every untouched secure key is resent masked; that is what
167
+ * lets one secret change without wiping the others. Removal works because the full maps are sent.
168
+ */
169
+ export function planSettingsChange(existing, change) {
170
+ const current = currentSettings(existing);
171
+ const next = { properties: { ...current.properties }, secureProperties: { ...current.secureProperties } };
172
+ const warnings = [];
173
+ const errors = [];
174
+ const diff = {
175
+ added: [],
176
+ changed: [],
177
+ removed: [],
178
+ secureAdded: [],
179
+ secureChanged: [],
180
+ secureRemoved: [],
181
+ movedToSecure: [],
182
+ };
183
+ const setPlain = change.properties ?? {};
184
+ const setSecure = change.secureProperties ?? {};
185
+ const removePlain = new Set(change.removeProperties ?? []);
186
+ const removeSecure = new Set(change.removeSecureProperties ?? []);
187
+ const moves = new Set(change.moveToSecure ?? []);
188
+ for (const key of Object.keys(setPlain)) {
189
+ if (key in setSecure)
190
+ errors.push(`"${key}" is given as both a plain and a secure property`);
191
+ if (removePlain.has(key))
192
+ errors.push(`"${key}" is both set and removed`);
193
+ if (moves.has(key))
194
+ errors.push(`"${key}" is both set as plain and moved to secure`);
195
+ if (setPlain[key] === MASKED)
196
+ errors.push(`"${key}": "${MASKED}" is not a valid plain property value`);
197
+ }
198
+ for (const key of Object.keys(setSecure)) {
199
+ if (removeSecure.has(key))
200
+ errors.push(`"${key}" is both set and removed`);
201
+ if (setSecure[key] === MASKED && !(key in current.secureProperties)) {
202
+ errors.push(`"${key}": "${MASKED}" keeps a stored secret, but no secure property "${key}" exists`);
203
+ }
204
+ if (key in current.properties && !removePlain.has(key) && !moves.has(key)) {
205
+ errors.push(`"${key}" already exists as a plain property. Use moveToSecure to move its current value, or add it to removeProperties`);
206
+ }
207
+ }
208
+ for (const key of moves) {
209
+ if (!(key in current.properties)) {
210
+ if (key in current.secureProperties)
211
+ warnings.push(`"${key}" is already a secure property`);
212
+ else
213
+ errors.push(`"${key}" cannot move to secure: no plain property with that name`);
214
+ }
215
+ if (key in setSecure)
216
+ errors.push(`"${key}" is both moved and given a new secure value`);
217
+ }
218
+ if (errors.length)
219
+ throw new Error(`Invalid settings change:\n- ${errors.join('\n- ')}`);
220
+ const showValue = (key, value) => value === undefined ? undefined : looksSecret(key) ? redactValue(value) : value;
221
+ for (const key of removePlain) {
222
+ if (!(key in next.properties)) {
223
+ warnings.push(`"${key}" is not a plain property; nothing to remove`);
224
+ continue;
225
+ }
226
+ delete next.properties[key];
227
+ diff.removed.push(key);
228
+ }
229
+ for (const key of removeSecure) {
230
+ if (!(key in next.secureProperties)) {
231
+ warnings.push(`"${key}" is not a secure property; nothing to remove`);
232
+ continue;
233
+ }
234
+ delete next.secureProperties[key];
235
+ diff.secureRemoved.push(key);
236
+ }
237
+ for (const key of moves) {
238
+ if (!(key in current.properties))
239
+ continue;
240
+ next.secureProperties[key] = current.properties[key];
241
+ delete next.properties[key];
242
+ diff.movedToSecure.push(key);
243
+ }
244
+ for (const [key, value] of Object.entries(setPlain)) {
245
+ const before = current.properties[key];
246
+ if (before === value)
247
+ continue;
248
+ next.properties[key] = value;
249
+ if (before === undefined)
250
+ diff.added.push({ key, to: showValue(key, value) });
251
+ else
252
+ diff.changed.push({ key, from: showValue(key, before), to: showValue(key, value) });
253
+ if (looksSecret(key)) {
254
+ warnings.push(`"${key}" looks like a secret but is stored as plain text; consider secureProperties`);
255
+ }
256
+ }
257
+ for (const [key, value] of Object.entries(setSecure)) {
258
+ if (value === MASKED)
259
+ continue;
260
+ if (key in current.secureProperties)
261
+ diff.secureChanged.push(key);
262
+ else
263
+ diff.secureAdded.push(key);
264
+ next.secureProperties[key] = value;
265
+ }
266
+ const changed = diff.added.length +
267
+ diff.changed.length +
268
+ diff.removed.length +
269
+ diff.secureAdded.length +
270
+ diff.secureChanged.length +
271
+ diff.secureRemoved.length +
272
+ diff.movedToSecure.length >
273
+ 0;
146
274
  return {
147
- applicationName: existing.name,
148
- properties: { ...(service.properties ?? {}), ...(properties ?? {}) },
149
- secureProperties: { ...(service.secureProperties ?? {}), ...(secureProperties ?? {}) },
275
+ service: {
276
+ applicationName: existing.name,
277
+ properties: next.properties,
278
+ secureProperties: next.secureProperties,
279
+ },
280
+ diff,
281
+ warnings,
282
+ changed,
150
283
  };
151
284
  }
152
285
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../src/safety/deployment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../src/safety/deployment.ts"],"names":[],"mappings":"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"}