@sfdxy/anypoint-connect 0.16.2 → 0.17.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 (141) 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 +38 -5
  19. package/dist/api/LogsApi.d.ts.map +1 -1
  20. package/dist/api/LogsApi.js +70 -13
  21. package/dist/api/LogsApi.js.map +1 -1
  22. package/dist/cli.js +5 -1
  23. package/dist/cli.js.map +1 -1
  24. package/dist/client/AnypointClient.d.ts +2 -0
  25. package/dist/client/AnypointClient.d.ts.map +1 -1
  26. package/dist/client/AnypointClient.js +3 -0
  27. package/dist/client/AnypointClient.js.map +1 -1
  28. package/dist/commands/alerts.d.ts +16 -0
  29. package/dist/commands/alerts.d.ts.map +1 -0
  30. package/dist/commands/alerts.js +358 -0
  31. package/dist/commands/alerts.js.map +1 -0
  32. package/dist/commands/api.d.ts.map +1 -1
  33. package/dist/commands/api.js +8 -3
  34. package/dist/commands/api.js.map +1 -1
  35. package/dist/commands/app-change-cli.d.ts +5 -2
  36. package/dist/commands/app-change-cli.d.ts.map +1 -1
  37. package/dist/commands/app-change-cli.js +19 -5
  38. package/dist/commands/app-change-cli.js.map +1 -1
  39. package/dist/commands/apps.d.ts.map +1 -1
  40. package/dist/commands/apps.js +26 -21
  41. package/dist/commands/apps.js.map +1 -1
  42. package/dist/commands/deploy.d.ts.map +1 -1
  43. package/dist/commands/deploy.js +17 -6
  44. package/dist/commands/deploy.js.map +1 -1
  45. package/dist/commands/index.d.ts +1 -0
  46. package/dist/commands/index.d.ts.map +1 -1
  47. package/dist/commands/index.js +1 -0
  48. package/dist/commands/index.js.map +1 -1
  49. package/dist/commands/logs.d.ts +3 -2
  50. package/dist/commands/logs.d.ts.map +1 -1
  51. package/dist/commands/logs.js +65 -4
  52. package/dist/commands/logs.js.map +1 -1
  53. package/dist/config/profiles.d.ts +10 -2
  54. package/dist/config/profiles.d.ts.map +1 -1
  55. package/dist/config/profiles.js +52 -21
  56. package/dist/config/profiles.js.map +1 -1
  57. package/dist/index.d.ts +8 -1
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +7 -0
  60. package/dist/index.js.map +1 -1
  61. package/dist/mcp/server.d.ts.map +1 -1
  62. package/dist/mcp/server.js +3 -2
  63. package/dist/mcp/server.js.map +1 -1
  64. package/dist/mcp/tools/alerts.d.ts +82 -0
  65. package/dist/mcp/tools/alerts.d.ts.map +1 -0
  66. package/dist/mcp/tools/alerts.js +409 -0
  67. package/dist/mcp/tools/alerts.js.map +1 -0
  68. package/dist/mcp/tools/api-manager.d.ts.map +1 -1
  69. package/dist/mcp/tools/api-manager.js +6 -1
  70. package/dist/mcp/tools/api-manager.js.map +1 -1
  71. package/dist/mcp/tools/app-inputs.d.ts +4 -2
  72. package/dist/mcp/tools/app-inputs.d.ts.map +1 -1
  73. package/dist/mcp/tools/app-inputs.js +14 -2
  74. package/dist/mcp/tools/app-inputs.js.map +1 -1
  75. package/dist/mcp/tools/apps-deploy.d.ts.map +1 -1
  76. package/dist/mcp/tools/apps-deploy.js +48 -12
  77. package/dist/mcp/tools/apps-deploy.js.map +1 -1
  78. package/dist/mcp/tools/apps-lifecycle.d.ts.map +1 -1
  79. package/dist/mcp/tools/apps-lifecycle.js +27 -12
  80. package/dist/mcp/tools/apps-lifecycle.js.map +1 -1
  81. package/dist/mcp/tools/audit.d.ts.map +1 -1
  82. package/dist/mcp/tools/audit.js +17 -4
  83. package/dist/mcp/tools/audit.js.map +1 -1
  84. package/dist/mcp/tools/exchange.d.ts.map +1 -1
  85. package/dist/mcp/tools/exchange.js +38 -18
  86. package/dist/mcp/tools/exchange.js.map +1 -1
  87. package/dist/mcp/tools/identity.d.ts.map +1 -1
  88. package/dist/mcp/tools/identity.js +4 -1
  89. package/dist/mcp/tools/identity.js.map +1 -1
  90. package/dist/mcp/tools/index.d.ts +1 -0
  91. package/dist/mcp/tools/index.d.ts.map +1 -1
  92. package/dist/mcp/tools/index.js +1 -0
  93. package/dist/mcp/tools/index.js.map +1 -1
  94. package/dist/mcp/tools/logs.d.ts +5 -3
  95. package/dist/mcp/tools/logs.d.ts.map +1 -1
  96. package/dist/mcp/tools/logs.js +60 -11
  97. package/dist/mcp/tools/logs.js.map +1 -1
  98. package/dist/mcp/tools/profile.d.ts +17 -3
  99. package/dist/mcp/tools/profile.d.ts.map +1 -1
  100. package/dist/mcp/tools/profile.js +122 -10
  101. package/dist/mcp/tools/profile.js.map +1 -1
  102. package/dist/mcp/tools/shared.d.ts +22 -2
  103. package/dist/mcp/tools/shared.d.ts.map +1 -1
  104. package/dist/mcp/tools/shared.js +29 -4
  105. package/dist/mcp/tools/shared.js.map +1 -1
  106. package/dist/safety/artifact.d.ts +45 -0
  107. package/dist/safety/artifact.d.ts.map +1 -1
  108. package/dist/safety/artifact.js +109 -0
  109. package/dist/safety/artifact.js.map +1 -1
  110. package/dist/safety/deployment.d.ts.map +1 -1
  111. package/dist/safety/deployment.js +9 -8
  112. package/dist/safety/deployment.js.map +1 -1
  113. package/dist/safety/guards.d.ts +10 -0
  114. package/dist/safety/guards.d.ts.map +1 -1
  115. package/dist/safety/guards.js +16 -0
  116. package/dist/safety/guards.js.map +1 -1
  117. package/dist/safety/preapproval.d.ts +102 -0
  118. package/dist/safety/preapproval.d.ts.map +1 -0
  119. package/dist/safety/preapproval.js +251 -0
  120. package/dist/safety/preapproval.js.map +1 -0
  121. package/dist/safety/secrets.d.ts +7 -0
  122. package/dist/safety/secrets.d.ts.map +1 -1
  123. package/dist/safety/secrets.js +16 -0
  124. package/dist/safety/secrets.js.map +1 -1
  125. package/dist/workflows/alerts.d.ts +299 -0
  126. package/dist/workflows/alerts.d.ts.map +1 -0
  127. package/dist/workflows/alerts.js +595 -0
  128. package/dist/workflows/alerts.js.map +1 -0
  129. package/dist/workflows/app-change.d.ts +25 -1
  130. package/dist/workflows/app-change.d.ts.map +1 -1
  131. package/dist/workflows/app-change.js +22 -1
  132. package/dist/workflows/app-change.js.map +1 -1
  133. package/dist/workflows/artifact-verification.d.ts +52 -0
  134. package/dist/workflows/artifact-verification.d.ts.map +1 -0
  135. package/dist/workflows/artifact-verification.js +85 -0
  136. package/dist/workflows/artifact-verification.js.map +1 -0
  137. package/dist/workflows/jar-deployment.d.ts +36 -10
  138. package/dist/workflows/jar-deployment.d.ts.map +1 -1
  139. package/dist/workflows/jar-deployment.js +40 -12
  140. package/dist/workflows/jar-deployment.js.map +1 -1
  141. package/package.json +1 -1
@@ -1,14 +1,43 @@
1
1
  /**
2
- * MCP Tool Registrar — Profile management tools
3
- * set_project_profile, get_project_profile
2
+ * MCP Tool Registrar — Profile and production policy tools
3
+ * get_project_profile, set_project_profile, set_production_preapproval, set_unmarked_artifact_allowance
4
+ *
5
+ * Production pre-approvals and unmarked-artifact allowances live only in the user-level store
6
+ * (src/safety/preapproval.ts), bound to organization and environment IDs. Project files cannot
7
+ * grant them.
4
8
  */
5
9
  import { z } from 'zod';
6
10
  import { resolveProfile, listProfiles, writeProjectConfig, discoverProjectConfig, hasSavedConfig, } from '../../config/profiles.js';
7
- import { mcpText } from './shared.js';
8
- export function registerProfileTools(server) {
11
+ import { isProductionEnv } from '../../safety/guards.js';
12
+ import { resolveProjectRoot } from '../../safety/paths.js';
13
+ import { ALL_MUTATING, NAMED_ONLY_TOOLS, PREAPPROVABLE_TOOLS, ignoredProjectApprovalWarning, readApprovalState, savePreapproval, saveUnmarkedAllowance, validatePreapproval, validateUnmarkedAllowance, } from '../../safety/preapproval.js';
14
+ import { dryRunPreview, mcpError, mcpText, resolveEnvironment } from './shared.js';
15
+ /** The production policy as shown to the agent: IDs, display names, tools and expiry. Never secrets. */
16
+ export function describeProductionPolicy(state, orgId) {
17
+ const inOrg = (list) => (orgId ? list.filter((e) => e.orgId === orgId) : list);
18
+ const warning = ignoredProjectApprovalWarning();
19
+ return {
20
+ source: state.source,
21
+ productionPreapprovals: inOrg(state.productionPreapprovals),
22
+ unmarkedArtifactAllowances: inOrg(state.unmarkedArtifactAllowances),
23
+ ...(state.invalid.length ? { invalid: state.invalid } : {}),
24
+ ...(warning ? { ignoredProjectApproval: warning } : {}),
25
+ };
26
+ }
27
+ const scopeInputs = {
28
+ environment: z.string().describe('Production environment name or ID; stored by its resolved ID'),
29
+ expires: z.string().optional().describe('ISO 8601 date-time after which the entry is ignored'),
30
+ thisProjectOnly: z
31
+ .boolean()
32
+ .optional()
33
+ .describe('Apply only to tools run in the current project (its root path is stored)'),
34
+ clear: z.boolean().optional().describe('Remove the entry for this organization, environment and project'),
35
+ confirm: z.boolean().optional().describe('Write the change. Without it the tool returns a preview'),
36
+ };
37
+ export function registerProfileTools(server, client) {
9
38
  server.registerTool('get_project_profile', {
10
39
  title: 'Get Project Profile',
11
- description: 'Returns the currently active Anypoint profile for this project, how it was resolved (flag, env, project-file, or default), and lists all available profiles. Use this to understand which Anypoint org/credentials are in use.',
40
+ description: 'Returns the currently active Anypoint profile for this project, how it was resolved (flag, env, project-file, or default), lists all available profiles, and shows the user-level production policy: production pre-approvals and unmarked-artifact allowances, each bound to an organization and environment ID. Use this to understand which Anypoint org/credentials are in use and which production writes skip confirmProduction.',
12
41
  annotations: { readOnlyHint: true },
13
42
  }, async () => {
14
43
  const resolved = resolveProfile();
@@ -23,27 +52,27 @@ export function registerProfileTools(server) {
23
52
  hasCredentials: hasSavedConfig(p),
24
53
  isActive: p === resolved.name,
25
54
  })),
55
+ productionPolicy: describeProductionPolicy(readApprovalState()),
26
56
  });
27
57
  });
28
58
  server.registerTool('set_project_profile', {
29
59
  title: 'Set Project Profile',
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.',
60
+ description: 'Binds the current project directory to a named Anypoint profile by writing .anypoint-connect.json (the nearest one, walking up, unless directory is given). Other fields of the file are kept. Production approvals are not stored here; see set_production_preapproval.',
31
61
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true },
32
62
  inputSchema: {
33
63
  profile: z.string().describe('The profile name to bind to this project directory'),
34
64
  directory: z
35
65
  .string()
36
66
  .optional()
37
- .describe('Directory to write .anypoint-connect.json in (defaults to cwd)'),
67
+ .describe('Directory to write .anypoint-connect.json in (default: the nearest existing one, else cwd)'),
38
68
  },
39
69
  }, async ({ profile, directory }) => {
40
70
  try {
41
- // Validate profile exists
42
71
  const profiles = listProfiles();
72
+ const filePath = writeProjectConfig(profile, directory);
43
73
  if (profiles.length > 0 && !profiles.includes(profile)) {
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.`);
74
+ return mcpText(`Warning: Profile "${profile}" does not exist yet. Available profiles: ${profiles.join(', ')}. The binding was written to ${filePath}, but you'll need to run "anc config init --profile ${profile}" to set up credentials.`);
45
75
  }
46
- const filePath = writeProjectConfig(profile, directory);
47
76
  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.`);
48
77
  }
49
78
  catch (error) {
@@ -58,5 +87,88 @@ export function registerProfileTools(server) {
58
87
  };
59
88
  }
60
89
  });
90
+ /** Resolve the scope of an entry: org and environment IDs, display name, optional project root. */
91
+ async function resolveScope(environment, thisProjectOnly) {
92
+ if (!client)
93
+ throw new Error('No Anypoint client');
94
+ const { orgId, env } = await resolveEnvironment(client, environment);
95
+ if (!isProductionEnv(env.name, env.isProduction)) {
96
+ throw new Error(`${env.name} is not a production environment; production policy applies only there`);
97
+ }
98
+ return {
99
+ env,
100
+ scope: {
101
+ orgId,
102
+ environmentId: env.id,
103
+ environmentName: env.name,
104
+ ...(thisProjectOnly ? { projectPath: resolveProjectRoot() } : {}),
105
+ },
106
+ };
107
+ }
108
+ server.registerTool('set_production_preapproval', {
109
+ title: 'Set Production Pre-approval',
110
+ description: 'Pre-approves production writes for one organization and environment (stored by ID in the user-level ~/.anypoint-connect/production-approvals.json, never in the repository), so the named tools do not need confirmProduction (CLI: the typed phrase) until it expires. The entry is scoped to the organization ID and environment ID, not to a profile or credential: it applies to every profile on this machine that resolves to that organization and environment, survives profile switches within the organization, and never matches another organization. confirm: true, expectedSha256, expectedDeploymentId and every refusal still apply. ' +
111
+ `tools is a list or "${ALL_MUTATING}" (all of ${PREAPPROVABLE_TOOLS.join(', ')} except ${NAMED_ONLY_TOOLS.join(', ')}, which must be named). Previews by default; pass confirm: true to write, clear: true to remove.`,
112
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true },
113
+ inputSchema: {
114
+ ...scopeInputs,
115
+ tools: z
116
+ .union([z.literal(ALL_MUTATING), z.array(z.enum(PREAPPROVABLE_TOOLS)).min(1)])
117
+ .optional()
118
+ .describe(`Tool names, or "${ALL_MUTATING}". Required unless clear is true`),
119
+ },
120
+ }, async ({ environment, tools, expires, thisProjectOnly, clear, confirm }) => {
121
+ try {
122
+ const { scope } = await resolveScope(environment, thisProjectOnly);
123
+ if (!clear && !tools)
124
+ throw new Error('Pass tools, or clear: true');
125
+ const entry = clear ? null : validatePreapproval({ ...scope, tools, ...(expires ? { expires } : {}) });
126
+ const preview = {
127
+ action: clear ? 'clear production pre-approval' : 'set production pre-approval',
128
+ scope,
129
+ ...(entry ? { entry } : {}),
130
+ current: readApprovalState().productionPreapprovals.filter((e) => e.orgId === scope.orgId),
131
+ };
132
+ if (!confirm)
133
+ return dryRunPreview(preview);
134
+ const file = savePreapproval(scope, entry);
135
+ return mcpText({
136
+ message: clear ? 'Production pre-approval cleared.' : 'Production pre-approval set.',
137
+ file,
138
+ productionPolicy: describeProductionPolicy(readApprovalState(), scope.orgId),
139
+ });
140
+ }
141
+ catch (error) {
142
+ return mcpError(error);
143
+ }
144
+ });
145
+ server.registerTool('set_unmarked_artifact_allowance', {
146
+ title: 'Allow Unmarked Artifacts in Production',
147
+ description: 'Allows jars without a mule-build build marker (built by another pipeline) to be deployed to one production organization and environment, stored by ID in the user-level ~/.anypoint-connect/production-approvals.json. Like a pre-approval it is scoped to the organization ID and environment ID, not to a profile or credential. Without it such jars are refused for production as "build provenance unknown". It never admits a jar whose marker says it is not production deployable, or an invalid marker. Previews by default; pass confirm: true to write, clear: true to remove.',
148
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true },
149
+ inputSchema: scopeInputs,
150
+ }, async ({ environment, expires, thisProjectOnly, clear, confirm }) => {
151
+ try {
152
+ const { scope } = await resolveScope(environment, thisProjectOnly);
153
+ const entry = clear ? null : validateUnmarkedAllowance({ ...scope, ...(expires ? { expires } : {}) });
154
+ const preview = {
155
+ action: clear ? 'clear unmarked-artifact allowance' : 'allow unmarked artifacts',
156
+ scope,
157
+ ...(entry ? { entry } : {}),
158
+ current: readApprovalState().unmarkedArtifactAllowances.filter((e) => e.orgId === scope.orgId),
159
+ };
160
+ if (!confirm)
161
+ return dryRunPreview(preview);
162
+ const file = saveUnmarkedAllowance(scope, entry);
163
+ return mcpText({
164
+ message: clear ? 'Unmarked-artifact allowance cleared.' : 'Unmarked artifacts allowed.',
165
+ file,
166
+ productionPolicy: describeProductionPolicy(readApprovalState(), scope.orgId),
167
+ });
168
+ }
169
+ catch (error) {
170
+ return mcpError(error);
171
+ }
172
+ });
61
173
  }
62
174
  //# sourceMappingURL=profile.js.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/mcp/tools/profile.ts"],"names":[],"mappings":"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"}
@@ -53,12 +53,31 @@ export declare const writeInputs: {
53
53
  confirm: z.ZodOptional<z.ZodBoolean>;
54
54
  confirmProduction: z.ZodOptional<z.ZodBoolean>;
55
55
  };
56
+ type GuardEnv = Pick<Environment, 'id' | 'name' | 'isProduction'>;
57
+ export interface ProductionFields {
58
+ production?: true;
59
+ productionPreapproved?: boolean;
60
+ preapprovalSource?: string;
61
+ preapprovalExpires?: string;
62
+ /** A project file tried to grant approval; it is ignored. */
63
+ preapprovalWarning?: string;
64
+ }
65
+ /**
66
+ * Production fields for previews and results: `production`, whether a user-level pre-approval for
67
+ * this organization, environment and tool applies, and where it is stored. Empty outside production.
68
+ */
69
+ export declare function productionFields(orgId: string, env: GuardEnv, tool: string): ProductionFields;
56
70
  /**
57
71
  * 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.
72
+ * production without `confirmProduction`), or `null` when the caller may proceed. A user-level
73
+ * pre-approval for the organization, environment and `tool` stands in for `confirmProduction`;
74
+ * `confirm` is always required.
59
75
  */
60
76
  export declare function guardWrite(input: {
61
- env: Pick<Environment, 'name' | 'isProduction'>;
77
+ orgId: string;
78
+ env: GuardEnv;
79
+ /** The MCP tool name, matched against the pre-approval. */
80
+ tool: string;
62
81
  confirm?: boolean;
63
82
  confirmProduction?: boolean;
64
83
  preview: Record<string, unknown>;
@@ -74,4 +93,5 @@ export declare function guardWrite(input: {
74
93
  }[];
75
94
  isError: true;
76
95
  } | null;
96
+ export {};
77
97
  //# 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;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"}
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;AAKxB,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,KAAK,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,cAAc,CAAC,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAC7B,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAW7F;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC;IACd,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;;;;;;;;;;;SAiCA"}
@@ -5,6 +5,7 @@
5
5
  import { z } from 'zod';
6
6
  import { errorMessage } from '../../utils/errors.js';
7
7
  import { isProductionEnv } from '../../safety/guards.js';
8
+ import { checkPreapproval, ignoredProjectApprovalWarning } from '../../safety/preapproval.js';
8
9
  /** Resolve the default org and an environment name or ID in one step. */
9
10
  export async function resolveEnvironment(client, environment) {
10
11
  const orgId = await client.getDefaultOrgId();
@@ -55,19 +56,42 @@ export const writeInputs = {
55
56
  .optional()
56
57
  .describe('Required in addition to confirm when the target environment is production'),
57
58
  };
59
+ /**
60
+ * Production fields for previews and results: `production`, whether a user-level pre-approval for
61
+ * this organization, environment and tool applies, and where it is stored. Empty outside production.
62
+ */
63
+ export function productionFields(orgId, env, tool) {
64
+ if (!isProductionEnv(env.name, env.isProduction))
65
+ return {};
66
+ const decision = checkPreapproval({ orgId, env }, tool);
67
+ const warning = ignoredProjectApprovalWarning();
68
+ return {
69
+ production: true,
70
+ productionPreapproved: decision.productionPreapproved,
71
+ ...(decision.preapprovalSource ? { preapprovalSource: decision.preapprovalSource } : {}),
72
+ ...(decision.preapprovalExpires ? { preapprovalExpires: decision.preapprovalExpires } : {}),
73
+ ...(warning ? { preapprovalWarning: warning } : {}),
74
+ };
75
+ }
58
76
  /**
59
77
  * 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.
78
+ * production without `confirmProduction`), or `null` when the caller may proceed. A user-level
79
+ * pre-approval for the organization, environment and `tool` stands in for `confirmProduction`;
80
+ * `confirm` is always required.
61
81
  */
62
82
  export function guardWrite(input) {
63
- const production = isProductionEnv(input.env.name, input.env.isProduction);
83
+ const production = productionFields(input.orgId, input.env, input.tool);
84
+ const preapproved = production.productionPreapproved === true;
64
85
  if (!input.confirm) {
65
86
  return dryRunPreview({
66
87
  ...input.preview,
67
- ...(production ? { production: true, requires: 'confirm: true and confirmProduction: true' } : {}),
88
+ ...production,
89
+ ...(production.production
90
+ ? { requires: preapproved ? 'confirm: true' : 'confirm: true and confirmProduction: true' }
91
+ : {}),
68
92
  });
69
93
  }
70
- if (production && !input.confirmProduction) {
94
+ if (production.production && !preapproved && !input.confirmProduction) {
71
95
  return {
72
96
  content: [
73
97
  {
@@ -76,6 +100,7 @@ export function guardWrite(input) {
76
100
  refused: true,
77
101
  message: `${input.env.name} is a production environment. Nothing was changed. Re-call with confirm: true and confirmProduction: true to apply.`,
78
102
  ...input.preview,
103
+ ...production,
79
104
  }, null, 2),
80
105
  },
81
106
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/mcp/tools/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/mcp/tools/shared.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,51 @@ export declare function inspectArtifact(bytes: Uint8Array, expectedArtifactId?:
8
8
  sha256: string;
9
9
  coordinates?: ArtifactCoordinates;
10
10
  };
11
+ /** Where mule-build (3.2.0 and later) records how a jar was built. */
12
+ export declare const BUILD_INFO_PATH = "META-INF/mule-build/build-info.json";
13
+ /** What a jar says about its own build, read from {@link BUILD_INFO_PATH}. */
14
+ export type BuildProvenance = {
15
+ status: 'unknown';
16
+ } | {
17
+ status: 'invalid';
18
+ reason: string;
19
+ } | {
20
+ status: 'recorded';
21
+ schemaVersion: number;
22
+ tool: string;
23
+ toolVersion: string;
24
+ stripped: boolean;
25
+ productionDeployable: boolean;
26
+ };
27
+ /** Read the build-info marker without extracting anything else. A jar without one has unknown provenance. */
28
+ export declare function readBuildProvenance(bytes: Uint8Array): BuildProvenance;
29
+ /** Whether unmarked jars may go to the target; see src/safety/preapproval.ts. */
30
+ export interface UnmarkedPolicy {
31
+ unmarkedAllowed: boolean;
32
+ source?: string;
33
+ expires?: string;
34
+ }
35
+ /** The outcome of checking a jar's build provenance against where it is going. */
36
+ export interface ProvenanceCheck {
37
+ /** Serializable summary for previews. */
38
+ buildProvenance: BuildProvenance & {
39
+ note?: string;
40
+ };
41
+ /** Present for a production target: whether unmarked jars are allowed there, and by what. */
42
+ provenancePolicy?: UnmarkedPolicy;
43
+ warnings: string[];
44
+ /** Set when the jar must not go to the target. */
45
+ blocker?: string;
46
+ }
47
+ /**
48
+ * Decide whether a jar may go to an environment. For production, only a marker with schemaVersion 1,
49
+ * tool "mule-build", stripped false and productionDeployable true passes. A jar marked not production
50
+ * deployable, or with an unreadable or inconsistent marker, is refused with no override. A jar
51
+ * without a marker is refused unless an unmarked-artifact allowance covers the org and environment.
52
+ * Outside production every case passes, with a warning or a note. `production` is undefined when the
53
+ * target is not known yet (publishing only).
54
+ */
55
+ export declare function checkBuildProvenance(provenance: BuildProvenance, production: boolean | undefined, unmarked?: UnmarkedPolicy): ProvenanceCheck;
11
56
  /** Compare the exact bytes that will be uploaded with the reviewed build or preview digest. */
12
57
  export declare function verifyArtifactDigest(bytes: Uint8Array, expectedSha256?: string): string;
13
58
  //# sourceMappingURL=artifact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifact.d.ts","sourceRoot":"","sources":["../../src/safety/artifact.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAC3B,KAAK,EAAE,UAAU,EACjB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,cAAc,UAAQ,GACvB;IACC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACrC,CA4CA;AAED,+FAA+F;AAC/F,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CASvF"}
1
+ {"version":3,"file":"artifact.d.ts","sourceRoot":"","sources":["../../src/safety/artifact.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAC3B,KAAK,EAAE,UAAU,EACjB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,cAAc,UAAQ,GACvB;IACC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACrC,CA4CA;AAED,sEAAsE;AACtE,eAAO,MAAM,eAAe,wCAAwC,CAAC;AAIrE,8EAA8E;AAC9E,MAAM,MAAM,eAAe,GACrB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrC;IACI,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,oBAAoB,EAAE,OAAO,CAAC;CACjC,CAAC;AAER,6GAA6G;AAC7G,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAqDtE;AAKD,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC5B,yCAAyC;IACzC,eAAe,EAAE,eAAe,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,6FAA6F;IAC7F,gBAAgB,CAAC,EAAE,cAAc,CAAC;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAID;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,OAAO,GAAG,SAAS,EAC/B,QAAQ,GAAE,cAA2C,GACtD,eAAe,CAsCjB;AAED,+FAA+F;AAC/F,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CASvF"}
@@ -46,6 +46,115 @@ export function inspectArtifact(bytes, expectedArtifactId, allowAmbiguous = fals
46
46
  }
47
47
  return { sha256, coordinates: candidates[0] };
48
48
  }
49
+ /** Where mule-build (3.2.0 and later) records how a jar was built. */
50
+ export const BUILD_INFO_PATH = 'META-INF/mule-build/build-info.json';
51
+ const BUILD_INFO_MAX_BYTES = 65536;
52
+ /** Read the build-info marker without extracting anything else. A jar without one has unknown provenance. */
53
+ export function readBuildProvenance(bytes) {
54
+ let seen = 0;
55
+ let oversized = false;
56
+ const entries = unzipSync(bytes, {
57
+ filter(entry) {
58
+ if (entry.name !== BUILD_INFO_PATH)
59
+ return false;
60
+ seen++;
61
+ if (entry.originalSize > BUILD_INFO_MAX_BYTES) {
62
+ oversized = true;
63
+ return false;
64
+ }
65
+ return true;
66
+ },
67
+ });
68
+ if (seen === 0)
69
+ return { status: 'unknown' };
70
+ if (seen > 1)
71
+ return { status: 'invalid', reason: `the jar has ${seen} ${BUILD_INFO_PATH} entries` };
72
+ if (oversized)
73
+ return { status: 'invalid', reason: `${BUILD_INFO_PATH} exceeds ${BUILD_INFO_MAX_BYTES} bytes` };
74
+ let info;
75
+ try {
76
+ const parsed = JSON.parse(strFromU8(entries[BUILD_INFO_PATH]));
77
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
78
+ throw new Error('not an object');
79
+ info = parsed;
80
+ }
81
+ catch {
82
+ return { status: 'invalid', reason: `${BUILD_INFO_PATH} is not a JSON object` };
83
+ }
84
+ const { schemaVersion, tool, toolVersion, stripped, productionDeployable } = info;
85
+ if (typeof schemaVersion !== 'number' ||
86
+ !Number.isInteger(schemaVersion) ||
87
+ schemaVersion < 1 ||
88
+ typeof tool !== 'string' ||
89
+ typeof toolVersion !== 'string' ||
90
+ typeof stripped !== 'boolean' ||
91
+ typeof productionDeployable !== 'boolean') {
92
+ return {
93
+ status: 'invalid',
94
+ reason: `${BUILD_INFO_PATH} lacks schemaVersion, tool, toolVersion, stripped or productionDeployable`,
95
+ };
96
+ }
97
+ // Only the contract this tool understands counts; anything else cannot vouch for the build.
98
+ if (schemaVersion !== BUILD_INFO_SCHEMA_VERSION) {
99
+ return { status: 'invalid', reason: `unsupported schemaVersion ${schemaVersion} (expected 1)` };
100
+ }
101
+ if (tool !== BUILD_INFO_TOOL)
102
+ return { status: 'invalid', reason: `unknown build tool "${tool}"` };
103
+ if (productionDeployable === stripped) {
104
+ return {
105
+ status: 'invalid',
106
+ reason: `inconsistent marker: stripped ${stripped} with productionDeployable ${productionDeployable}`,
107
+ };
108
+ }
109
+ return { status: 'recorded', schemaVersion, tool, toolVersion, stripped, productionDeployable };
110
+ }
111
+ const BUILD_INFO_SCHEMA_VERSION = 1;
112
+ const BUILD_INFO_TOOL = 'mule-build';
113
+ const UNKNOWN_NOTE = `build provenance unknown: the jar has no ${BUILD_INFO_PATH} (built before mule-build 3.2.0 or by another tool)`;
114
+ /**
115
+ * Decide whether a jar may go to an environment. For production, only a marker with schemaVersion 1,
116
+ * tool "mule-build", stripped false and productionDeployable true passes. A jar marked not production
117
+ * deployable, or with an unreadable or inconsistent marker, is refused with no override. A jar
118
+ * without a marker is refused unless an unmarked-artifact allowance covers the org and environment.
119
+ * Outside production every case passes, with a warning or a note. `production` is undefined when the
120
+ * target is not known yet (publishing only).
121
+ */
122
+ export function checkBuildProvenance(provenance, production, unmarked = { unmarkedAllowed: false }) {
123
+ const policy = production ? { provenancePolicy: unmarked } : {};
124
+ if (provenance.status === 'unknown') {
125
+ const buildProvenance = { ...provenance, note: UNKNOWN_NOTE };
126
+ if (production && !unmarked.unmarkedAllowed) {
127
+ return {
128
+ buildProvenance,
129
+ ...policy,
130
+ warnings: [],
131
+ blocker: 'Refused: build provenance unknown. Production takes only jars whose mule-build marker says productionDeployable. ' +
132
+ 'For artifacts built by another pipeline, add an unmarked-artifact allowance for this organization and environment (set_unmarked_artifact_allowance).',
133
+ };
134
+ }
135
+ return { buildProvenance, ...policy, warnings: [] };
136
+ }
137
+ if (provenance.status === 'recorded' && provenance.productionDeployable) {
138
+ return { buildProvenance: provenance, ...policy, warnings: [] };
139
+ }
140
+ const problem = provenance.status === 'invalid'
141
+ ? `its build marker is not valid (${provenance.reason})`
142
+ : `its build marks it not production deployable (${provenance.tool} ${provenance.toolVersion}, stripped: ${provenance.stripped})`;
143
+ if (production) {
144
+ return {
145
+ buildProvenance: provenance,
146
+ ...policy,
147
+ warnings: [],
148
+ blocker: `Refused: this jar cannot go to a production environment because ${problem}. Build a production-deployable jar (secure properties not stripped) and preview again.`,
149
+ };
150
+ }
151
+ return {
152
+ buildProvenance: provenance,
153
+ warnings: [
154
+ `This jar is not production deployable: ${problem}. Deploying it to a production environment is refused.`,
155
+ ],
156
+ };
157
+ }
49
158
  /** Compare the exact bytes that will be uploaded with the reviewed build or preview digest. */
50
159
  export function verifyArtifactDigest(bytes, expectedSha256) {
51
160
  const sha256 = createHash('sha256').update(bytes).digest('hex');
@@ -1 +1 @@
1
- {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/safety/artifact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/safety/artifact.ts"],"names":[],"mappings":"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"}
@@ -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;AAGhC,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,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,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,CAgDlF;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,2GAA2G;AAC3G,MAAM,WAAW,cAAc;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IACzB,yFAAyF;IACzF,OAAO,EAAE,4BAA4B,CAAC;IACtC,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,GAAG;IACtD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C,CAKA;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CASjF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,GAAG,YAAY,CA6GhG;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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"}
@@ -53,14 +53,15 @@ export function parseVcores(vcores) {
53
53
  export function buildCreatePayload(input) {
54
54
  const region = input.region || DEFAULT_REGION;
55
55
  const vCores = parseVcores(input.vcores ?? DEFAULT_VCORES);
56
- const configuration = {};
57
- if (input.properties || input.secureProperties) {
58
- configuration['mule.agent.application.properties.service'] = {
56
+ // Always sent, even when empty: a create without the properties service ends FAILED with
57
+ // "Cannot invoke ResourceRef.getId() because r is null".
58
+ const configuration = {
59
+ 'mule.agent.application.properties.service': {
59
60
  applicationName: input.appName,
60
- ...(input.properties ? { properties: input.properties } : {}),
61
- ...(input.secureProperties ? { secureProperties: input.secureProperties } : {}),
62
- };
63
- }
61
+ properties: input.properties ?? {},
62
+ secureProperties: input.secureProperties ?? {},
63
+ },
64
+ };
64
65
  return {
65
66
  name: input.appName,
66
67
  application: {
@@ -72,7 +73,7 @@ export function buildCreatePayload(input) {
72
73
  },
73
74
  desiredState: 'STARTED',
74
75
  ...(vCores !== undefined ? { vCores } : {}),
75
- ...(Object.keys(configuration).length > 0 ? { configuration } : {}),
76
+ configuration,
76
77
  },
77
78
  target: {
78
79
  provider: 'MC',
@@ -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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"}