@aifabrix/builder 2.49.1 โ†’ 2.50.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 (413) hide show
  1. package/.cursor/process/README.md +9 -0
  2. package/.cursor/rules/deploy-rules/docker-image-ip-policy.mdc +49 -0
  3. package/.cursor/rules/plan-rules/application-lifecycle.mdc +30 -0
  4. package/.cursor/rules/plan-rules/plan-frontmatter.mdc +35 -0
  5. package/.cursor/rules/plan-rules/plan-lifecycle.mdc +31 -0
  6. package/.cursor/rules/plan-rules/plan-validation-gate.mdc +34 -0
  7. package/.cursor/skills/README.md +1 -0
  8. package/.dockerignore +52 -0
  9. package/.eslintignore +22 -0
  10. package/README.md +2 -0
  11. package/bin/builder-api-cleanup.js +26 -0
  12. package/bin/builder-api-nest.js +10 -0
  13. package/bin/builder-api-spike.js +19 -0
  14. package/enterprise-knowledge/README.md +50 -0
  15. package/enterprise-knowledge/enterprise-integration-lifecycle/README.md +22 -0
  16. package/enterprise-knowledge/enterprise-integration-lifecycle/application.json +15 -0
  17. package/enterprise-knowledge/enterprise-integration-lifecycle/deploy.js +69 -0
  18. package/enterprise-knowledge/enterprise-integration-lifecycle/enterprise-integration-lifecycle-deploy.json +52 -0
  19. package/enterprise-knowledge/enterprise-integration-lifecycle/enterprise-integration-lifecycle-system.json +29 -0
  20. package/enterprise-knowledge/enterprise-integration-lifecycle/env.template +2 -0
  21. package/integration/README.md +81 -0
  22. package/integration/github/README.md +53 -0
  23. package/integration/github/application.json +21 -0
  24. package/integration/github/deploy.js +72 -0
  25. package/integration/github/env.template +11 -0
  26. package/integration/github/github-datasource-issue-comments.json +239 -0
  27. package/integration/github/github-datasource-issues.json +399 -0
  28. package/integration/github/github-datasource-repository.json +354 -0
  29. package/integration/github/github-deploy.json +1202 -0
  30. package/integration/github/github-system.json +82 -0
  31. package/integration/hubspot-test/README.md +1 -1
  32. package/jest.isolated-projects.js +31 -1
  33. package/jest.projects.js +87 -1
  34. package/lib/api/dev-server-https.js +1 -1
  35. package/lib/api/dev.api.js +1 -0
  36. package/lib/api/enterprise-knowledge.api.js +63 -0
  37. package/lib/api/evidence.api.js +172 -0
  38. package/lib/api/external-systems.api.js +8 -2
  39. package/lib/api/host-ops.api.js +69 -0
  40. package/lib/api/resource-types.api.js +1 -0
  41. package/lib/api/types/enterprise-knowledge.types.js +46 -0
  42. package/lib/api/types/evidence.types.js +67 -0
  43. package/lib/api/types/resource-types.types.js +2 -0
  44. package/lib/app/controller-application-filter.js +36 -0
  45. package/lib/app/deploy.js +1 -1
  46. package/lib/app/list-external-systems.js +130 -0
  47. package/lib/app/list.js +20 -8
  48. package/lib/app/run.js +3 -1
  49. package/lib/app/show-display.js +8 -3
  50. package/lib/app/show-online.js +178 -0
  51. package/lib/app/show.js +37 -88
  52. package/lib/build/builder-api-docker-staging.js +47 -0
  53. package/lib/build/miso-controller-npm-sdk-guard.js +2 -2
  54. package/lib/build/standard-docker-build.js +2 -0
  55. package/lib/certification/post-unified-cert-sync.js +4 -31
  56. package/lib/certification/sync-after-external-command.js +0 -1
  57. package/lib/certification/sync-system-certification.js +0 -3
  58. package/lib/channels/add-channel.js +40 -34
  59. package/lib/channels/approval-guides/chatgpt.js +33 -0
  60. package/lib/channels/approval-guides/credential-portal.js +38 -0
  61. package/lib/channels/approval-guides/index.js +110 -0
  62. package/lib/channels/approval-guides/microsoft-copilot.js +34 -0
  63. package/lib/channels/approval-guides/slack.js +34 -0
  64. package/lib/channels/approval-guides/teams-bot.js +35 -0
  65. package/lib/channels/approval-guides/web-embed.js +32 -0
  66. package/lib/channels/channel-approval-guide.js +11 -0
  67. package/lib/channels/channel-artifact-generator.js +16 -4
  68. package/lib/channels/channel-audit.js +3 -0
  69. package/lib/channels/channel-auth-context.js +1 -1
  70. package/lib/channels/channel-description.js +59 -0
  71. package/lib/channels/channel-integration-generator.js +13 -230
  72. package/lib/channels/channel-integration-template.js +94 -0
  73. package/lib/channels/channel-runtime-resolver.js +43 -3
  74. package/lib/channels/channel-status-display.js +66 -26
  75. package/lib/channels/channel-targets.js +3 -3
  76. package/lib/cli/index.js +27 -3
  77. package/lib/cli/infra-guided.js +5 -1
  78. package/lib/cli/setup-app-external-create.js +111 -0
  79. package/lib/cli/setup-app.help.js +1 -1
  80. package/lib/cli/setup-app.js +38 -125
  81. package/lib/cli/setup-app.test-commands.js +26 -52
  82. package/lib/cli/setup-certification-commands.js +4 -4
  83. package/lib/cli/setup-certification.help.js +9 -9
  84. package/lib/cli/setup-dev-path-commands.js +24 -0
  85. package/lib/cli/setup-dev.js +115 -16
  86. package/lib/cli/setup-external-system-help.js +4 -6
  87. package/lib/cli/setup-external-system.js +58 -52
  88. package/lib/cli/setup-infra-up-builder-api-action.js +64 -0
  89. package/lib/cli/setup-infra-up-platform-action.js +3 -1
  90. package/lib/cli/setup-infra.js +15 -0
  91. package/lib/cli/setup-list.js +43 -0
  92. package/lib/cli/setup-utility-repair.js +26 -7
  93. package/lib/cli/setup-utility.js +5 -3
  94. package/lib/commands/app.js +15 -43
  95. package/lib/commands/channel-add-setup.js +110 -0
  96. package/lib/commands/channel.js +42 -8
  97. package/lib/commands/datasource-sync-display.js +96 -0
  98. package/lib/commands/datasource-sync-policy.js +210 -0
  99. package/lib/commands/datasource-test-trust-cli.js +6 -6
  100. package/lib/commands/datasource-unified-test-cli.js +2 -1
  101. package/lib/commands/datasource-unified-test-cli.options.js +33 -23
  102. package/lib/commands/deploy-gate-failure-details.js +163 -0
  103. package/lib/commands/deploy-gate-orchestrator.js +322 -0
  104. package/lib/commands/dev-cli-handlers.js +64 -61
  105. package/lib/commands/dev-host-ops-params.js +91 -0
  106. package/lib/commands/dev-host-ops-poll.js +111 -0
  107. package/lib/commands/dev-host-ops.js +252 -0
  108. package/lib/commands/dev-init.js +3 -1
  109. package/lib/commands/enterprise-knowledge.js +284 -0
  110. package/lib/commands/evidence-cli-leaves.js +250 -0
  111. package/lib/commands/evidence.js +51 -0
  112. package/lib/commands/governance-cli-shared.js +2 -2
  113. package/lib/commands/governance-command-action.js +2 -2
  114. package/lib/commands/governance-fixture-subjects.js +85 -0
  115. package/lib/commands/governance.js +1 -1
  116. package/lib/commands/lifecycle-command-action.js +2 -2
  117. package/lib/commands/lifecycle-external.js +3 -3
  118. package/lib/commands/manifest-cli-auth.js +29 -0
  119. package/lib/commands/manifest-cli-commands.js +170 -0
  120. package/lib/commands/manifest-cli-integration-path.js +63 -0
  121. package/lib/commands/manifest.js +21 -0
  122. package/lib/commands/protection-cli-leaves.js +3 -3
  123. package/lib/commands/repair-auth-apply.js +15 -1
  124. package/lib/commands/repair-authentications-454.js +169 -0
  125. package/lib/commands/repair-capability-openapi-warnings.js +126 -0
  126. package/lib/commands/repair-datasource-apply.js +135 -0
  127. package/lib/commands/repair-datasource-auto-rbac.js +62 -1
  128. package/lib/commands/repair-datasource-http-service-contract.js +239 -0
  129. package/lib/commands/repair-datasource-operation-security.js +180 -0
  130. package/lib/commands/repair-datasource-run.js +7 -2
  131. package/lib/commands/repair-datasource-sync-operations.js +177 -0
  132. package/lib/commands/repair-datasource-webhooks-sync-bridge.js +133 -0
  133. package/lib/commands/repair-datasource.js +12 -68
  134. package/lib/commands/repair-env-template.js +11 -1
  135. package/lib/commands/repair-external-run.js +121 -31
  136. package/lib/commands/repair-internal.js +1 -1
  137. package/lib/commands/repair-openapi-export.js +156 -0
  138. package/lib/commands/repair-openapi-sync.js +19 -2
  139. package/lib/commands/repair-orchestration-datasource-split.js +259 -0
  140. package/lib/commands/repair-persist.js +22 -1
  141. package/lib/commands/repair-rbac-platform-preset.js +204 -0
  142. package/lib/commands/repair-rbac-reader-roles.js +191 -0
  143. package/lib/commands/repair-rbac.js +163 -86
  144. package/lib/commands/repair-steps.js +83 -18
  145. package/lib/commands/repair-system-permissions.js +1 -0
  146. package/lib/commands/repair.js +1 -1
  147. package/lib/commands/resource-type.js +65 -26
  148. package/lib/commands/run-post-publish-data-sync.js +68 -0
  149. package/lib/commands/setup-modes.js +1 -1
  150. package/lib/commands/test-e2e-external.js +21 -8
  151. package/lib/commands/test-governance-cli-options.js +2 -2
  152. package/lib/commands/test-trust-cli-options.js +2 -2
  153. package/lib/commands/up-builder-api-bootstrap.js +71 -0
  154. package/lib/commands/up-builder-api-provision.js +241 -0
  155. package/lib/commands/up-builder-api.js +88 -0
  156. package/lib/commands/up-common.js +25 -1
  157. package/lib/commands/upload-credential-push-log.js +117 -0
  158. package/lib/commands/upload-data-sync-finalize.js +60 -0
  159. package/lib/commands/upload-probe.js +66 -0
  160. package/lib/commands/upload-publish-context.js +4 -1
  161. package/lib/commands/upload-sidecar-followups.js +55 -27
  162. package/lib/commands/upload.js +116 -157
  163. package/lib/commands/verify-governance-combined-external.js +1 -1
  164. package/lib/commands/verify-governance-db.js +2 -2
  165. package/lib/commands/verify-operations-command-action.js +2 -2
  166. package/lib/commands/verify-operations-step-plan.js +2 -2
  167. package/lib/commands/verify-operations-steps.js +2 -2
  168. package/lib/commands/verify-trust-command-action.js +1 -1
  169. package/lib/commands/wizard-core.js +1 -1
  170. package/lib/commands/wizard-headless.js +2 -1
  171. package/lib/core/admin-secrets.js +2 -6
  172. package/lib/core/secrets-env-content.js +10 -4
  173. package/lib/core/secrets-env-write.js +2 -13
  174. package/lib/datasource/agent-trust-run.js +3 -3
  175. package/lib/datasource/deploy.js +3 -1
  176. package/lib/datasource/test-e2e.js +6 -1
  177. package/lib/datasource/unified-validation-run-body.js +4 -1
  178. package/lib/datasource/unified-validation-run.js +1 -1
  179. package/lib/deployment/deploy-poll-ui.js +73 -12
  180. package/lib/deployment/deployer-poll-run.js +113 -0
  181. package/lib/deployment/deployer.js +17 -87
  182. package/lib/evidence/dataplane-context.js +21 -0
  183. package/lib/evidence/evidence-display.js +78 -0
  184. package/lib/evidence/evidence-service.js +392 -0
  185. package/lib/external-system/deploy.js +290 -112
  186. package/lib/external-system/download.js +7 -3
  187. package/lib/external-system/test-execution.js +1 -1
  188. package/lib/external-system/test-system-level.js +8 -10
  189. package/lib/external-system/test.js +12 -6
  190. package/lib/generator/deploy-script.js +73 -0
  191. package/lib/generator/external.js +2 -1
  192. package/lib/generator/index.js +17 -2
  193. package/lib/generator/wizard.js +3 -36
  194. package/lib/internal/fs-real-sync.js +22 -1
  195. package/lib/internal/node-fs.js +2 -0
  196. package/lib/lifecycle/lifecycle-governance-options.js +1 -1
  197. package/lib/lifecycle/verify-step-progress.js +1 -1
  198. package/lib/programmatic/access-log.js +26 -0
  199. package/lib/programmatic/auth-config.js +44 -0
  200. package/lib/programmatic/bearer-auth.js +176 -0
  201. package/lib/programmatic/builder-api-request.js +175 -0
  202. package/lib/programmatic/builder-api-route-dispatch.js +82 -0
  203. package/lib/programmatic/builder-api-runtime-config.js +42 -0
  204. package/lib/programmatic/builder-api-server.js +230 -0
  205. package/lib/programmatic/builder-help-authentication-catalog.js +282 -0
  206. package/lib/programmatic/builder-help-connected-system-ui.js +266 -0
  207. package/lib/programmatic/builder-help-enterprise-sync-fabrix.js +60 -0
  208. package/lib/programmatic/builder-help-envelope.js +36 -0
  209. package/lib/programmatic/builder-help-fixtures.js +200 -0
  210. package/lib/programmatic/builder-help-governance.js +172 -0
  211. package/lib/programmatic/builder-help-schema-catalog.js +92 -0
  212. package/lib/programmatic/builder-help.js +361 -0
  213. package/lib/programmatic/capability-registry.js +77 -0
  214. package/lib/programmatic/command-options.js +32 -0
  215. package/lib/programmatic/enterprise-mcp-client.js +98 -0
  216. package/lib/programmatic/http-problem-details.js +99 -0
  217. package/lib/programmatic/http-route-match.js +40 -0
  218. package/lib/programmatic/idempotency-cache.js +69 -0
  219. package/lib/programmatic/index.js +53 -0
  220. package/lib/programmatic/integration-path-scope.js +39 -0
  221. package/lib/programmatic/log-redaction.js +66 -0
  222. package/lib/programmatic/manifest-get-section.js +146 -0
  223. package/lib/programmatic/manifest-patch-section.js +252 -0
  224. package/lib/programmatic/manifest-repair.js +122 -0
  225. package/lib/programmatic/manifest-section-dependency-graph.js +160 -0
  226. package/lib/programmatic/manifest-section-io.js +225 -0
  227. package/lib/programmatic/manifest-section-quality.js +171 -0
  228. package/lib/programmatic/manifest-section-registry-data.js +269 -0
  229. package/lib/programmatic/manifest-section-registry.js +205 -0
  230. package/lib/programmatic/nest-http-bridge.js +34 -0
  231. package/lib/programmatic/openapi-component-schemas.js +68 -0
  232. package/lib/programmatic/openapi-description-enricher.js +117 -0
  233. package/lib/programmatic/openapi-descriptions.js +190 -0
  234. package/lib/programmatic/openapi-docs-serving.js +123 -0
  235. package/lib/programmatic/openapi-help-schemas.js +63 -0
  236. package/lib/programmatic/openapi-manifest-schemas.js +141 -0
  237. package/lib/programmatic/openapi-operation-bindings.js +274 -0
  238. package/lib/programmatic/openapi-request-schemas.js +155 -0
  239. package/lib/programmatic/openapi-result-schemas.js +476 -0
  240. package/lib/programmatic/openapi-schema-descriptions-certify.js +139 -0
  241. package/lib/programmatic/openapi-schema-descriptions-core.js +159 -0
  242. package/lib/programmatic/openapi-schema-descriptions-help.js +40 -0
  243. package/lib/programmatic/openapi-schema-descriptions-manifest.js +143 -0
  244. package/lib/programmatic/openapi-schema-descriptions-mcp.js +118 -0
  245. package/lib/programmatic/openapi-schema-descriptions-operations.js +281 -0
  246. package/lib/programmatic/openapi-schema-helpers.js +93 -0
  247. package/lib/programmatic/openapi-spec.js +203 -0
  248. package/lib/programmatic/orchestration-openapi-meta.js +159 -0
  249. package/lib/programmatic/platform-rbac-catalog.js +90 -0
  250. package/lib/programmatic/request-timeout.js +53 -0
  251. package/lib/programmatic/route-handler-map.js +143 -0
  252. package/lib/programmatic/route-handlers-context.js +29 -0
  253. package/lib/programmatic/route-handlers.js +33 -0
  254. package/lib/programmatic/run-certify.js +57 -0
  255. package/lib/programmatic/run-enterprise-mcp.js +32 -0
  256. package/lib/programmatic/run-lifecycle.js +29 -0
  257. package/lib/programmatic/run-repair.js +41 -0
  258. package/lib/programmatic/run-repository-emcp.js +54 -0
  259. package/lib/programmatic/run-template-workspace.js +61 -0
  260. package/lib/programmatic/run-test.js +49 -0
  261. package/lib/programmatic/run-upload.js +63 -0
  262. package/lib/programmatic/run-validate.js +53 -0
  263. package/lib/programmatic/run-wizard.js +40 -0
  264. package/lib/programmatic/system-key.js +48 -0
  265. package/lib/programmatic/wizard-config-normalize.js +118 -0
  266. package/lib/programmatic/workspace-cleanup.js +128 -0
  267. package/lib/programmatic/workspace-context.js +145 -0
  268. package/lib/programmatic/workspace-lock.js +75 -0
  269. package/lib/programmatic/workspace-meta.js +64 -0
  270. package/lib/programmatic/workspace-ops.js +149 -0
  271. package/lib/protection/run-commands-upload-sync.js +35 -0
  272. package/lib/protection/run-commands.js +2 -20
  273. package/lib/protection/upload-batch.js +11 -7
  274. package/lib/resolvers/resource-type-file.js +22 -0
  275. package/lib/schema/external-datasource.schema.json +161 -1
  276. package/lib/schema/external-system.schema.json +242 -4
  277. package/lib/schema/flag-map-validation-run.json +3 -0
  278. package/lib/schema/type/credential-field-registry.json +2 -2
  279. package/lib/schema/type/document-storage.json +9 -0
  280. package/lib/utils/agent-trust-run-display.js +1 -1
  281. package/lib/utils/app-path-resolve.js +168 -0
  282. package/lib/utils/authentication-env-template.js +222 -0
  283. package/lib/utils/cli-sync-options.js +7 -11
  284. package/lib/utils/cli-utils.js +4 -0
  285. package/lib/utils/cli-workspace-options.js +29 -0
  286. package/lib/utils/compose-generate-docker-compose.js +102 -0
  287. package/lib/utils/configuration-env-resolver.js +203 -27
  288. package/lib/utils/datasource-test-run-certificate-tty.js +28 -2
  289. package/lib/utils/datasource-test-run-certification-debug.js +130 -0
  290. package/lib/utils/datasource-test-run-debug-display.js +2 -0
  291. package/lib/utils/datasource-test-run-debug-slice.js +7 -0
  292. package/lib/utils/datasource-test-run-display.js +2 -1
  293. package/lib/utils/dev-init-ssh-merge.js +165 -23
  294. package/lib/utils/dev-pin-share-instructions.js +110 -0
  295. package/lib/utils/dev-ssh-config-helper.js +177 -33
  296. package/lib/utils/enterprise-knowledge-paths.js +142 -0
  297. package/lib/utils/env-copy.js +2 -1
  298. package/lib/utils/env-dotenv-format.js +103 -0
  299. package/lib/utils/external-env-template.js +4 -1
  300. package/lib/utils/external-system-display.js +5 -1
  301. package/lib/utils/external-system-readiness-compact-blocks.js +221 -0
  302. package/lib/utils/external-system-readiness-compact-display.js +324 -0
  303. package/lib/utils/external-system-readiness-core.js +16 -0
  304. package/lib/utils/external-system-readiness-deploy-display.js +29 -11
  305. package/lib/utils/external-system-readiness-display-internals.js +3 -1
  306. package/lib/utils/external-system-readiness-display.js +20 -30
  307. package/lib/utils/external-system-system-test-tty-certification.js +135 -0
  308. package/lib/utils/external-system-system-test-tty.js +5 -41
  309. package/lib/utils/help-builder.js +6 -1
  310. package/lib/utils/host-ops-job-labels.js +236 -0
  311. package/lib/utils/host-ops-job-result.js +61 -0
  312. package/lib/utils/host-ops-poll-ui.js +163 -0
  313. package/lib/utils/integration-path-resolve.js +112 -0
  314. package/lib/utils/paths-reload-source.js +148 -0
  315. package/lib/utils/paths-system-builder-keys.js +25 -0
  316. package/lib/utils/paths.js +151 -26
  317. package/lib/utils/runtime-configuration-values.js +64 -2
  318. package/lib/utils/secrets-helpers.js +5 -1
  319. package/lib/utils/ssh-known-hosts.js +130 -0
  320. package/lib/utils/test-target-cli-options.js +75 -0
  321. package/lib/utils/upload-sync-options.js +4 -0
  322. package/lib/utils/validation-run-request.js +11 -2
  323. package/lib/validation/external-manifest-validator.js +11 -1
  324. package/lib/validation/openapi-contract-surface-validator.js +426 -0
  325. package/lib/validation/openapi-contract-vendor-validation.js +238 -0
  326. package/lib/validation/validate-external-file.js +160 -0
  327. package/lib/validation/validate.js +6 -117
  328. package/package.json +46 -29
  329. package/packages/builder-api/README.md +120 -0
  330. package/packages/builder-api/package.json +30 -0
  331. package/packages/builder-api/src/app.module.ts +7 -0
  332. package/packages/builder-api/src/auth/auth.module.ts +5 -0
  333. package/packages/builder-api/src/external-system/external-system.module.ts +5 -0
  334. package/packages/builder-api/src/main.ts +16 -0
  335. package/packages/builder-api/tsconfig.json +15 -0
  336. package/scripts/check-builder-api-architecture-grep.js +79 -0
  337. package/scripts/docker_image_content_gate.js +47 -0
  338. package/scripts/docker_image_content_gate.sh +5 -0
  339. package/scripts/export-builder-api-evidence.js +262 -0
  340. package/scripts/lib/builder-api-docker-staging-copy.js +60 -0
  341. package/scripts/lib/builder-api-docker-staging-core.js +183 -0
  342. package/scripts/lib/docker-image-content-gate-core.js +166 -0
  343. package/scripts/lib/plan-actor.js +109 -0
  344. package/scripts/lib/plan-config.js +20 -0
  345. package/scripts/lib/plan-gates.js +154 -0
  346. package/scripts/lib/plan-meta.js +104 -0
  347. package/scripts/lib/plan-parse.js +162 -0
  348. package/scripts/lib/plan-prevalidate-gates.js +326 -0
  349. package/scripts/lib/plan-run-core.js +125 -0
  350. package/scripts/lib/plan-run-report.js +108 -0
  351. package/scripts/plan-approve.js +24 -0
  352. package/scripts/plan-archive.js +49 -0
  353. package/scripts/plan-run.js +13 -0
  354. package/scripts/plan-set-actor.js +21 -0
  355. package/scripts/plan-validate.js +80 -0
  356. package/scripts/pnpm/af.mjs +110 -0
  357. package/scripts/pnpm/check-quiet.mjs +32 -0
  358. package/scripts/pnpm/dev-install.mjs +29 -0
  359. package/scripts/pnpm/dev-reload.mjs +18 -0
  360. package/scripts/pnpm/help.mjs +55 -0
  361. package/scripts/pnpm/lib/dev-reload-core.mjs +189 -0
  362. package/scripts/pnpm/lib/dev-reload-log-capture.mjs +67 -0
  363. package/scripts/pnpm/lib/dev-reload-log-utils.mjs +32 -0
  364. package/scripts/pnpm/lib/resolve-aifabrix-bin.mjs +124 -0
  365. package/scripts/pnpm/lib/resolve-app-url.mjs +183 -0
  366. package/scripts/pnpm/lib/spinner.mjs +42 -0
  367. package/scripts/stage_builder_api_for_docker.js +65 -0
  368. package/scripts/sync-builder-api-template.js +44 -0
  369. package/templates/README.md +3 -0
  370. package/templates/applications/builder-api/Dockerfile +38 -0
  371. package/templates/applications/builder-api/application.yaml +75 -0
  372. package/templates/applications/builder-api/env.template +48 -0
  373. package/templates/applications/dataplane/application.yaml +1 -1
  374. package/templates/applications/dataplane/env.template +10 -6
  375. package/templates/applications/dataplane/rbac.yaml +21 -1
  376. package/templates/applications/miso-controller/application.yaml +1 -1
  377. package/templates/applications/miso-controller/env.template +1 -3
  378. package/templates/channels/README.md +18 -0
  379. package/templates/channels/ai-fabrix-icon.jpg +0 -0
  380. package/templates/channels/chatgpt/install.template.md.hbs +21 -24
  381. package/templates/channels/chatgpt/integration/README.md +11 -0
  382. package/templates/channels/chatgpt/integration/application.json +15 -0
  383. package/templates/channels/chatgpt/integration/chatgpt-system.json +29 -0
  384. package/templates/channels/chatgpt/integration/env.template +4 -0
  385. package/templates/channels/microsoft-copilot/install.template.md.hbs +20 -25
  386. package/templates/channels/microsoft-copilot/integration/README.md +11 -0
  387. package/templates/channels/microsoft-copilot/integration/application.json +15 -0
  388. package/templates/channels/microsoft-copilot/integration/env.template +6 -0
  389. package/templates/channels/microsoft-copilot/integration/microsoft-copilot-system.json +34 -0
  390. package/templates/channels/slack/install.template.md.hbs +48 -18
  391. package/templates/channels/slack/integration/README.md +38 -0
  392. package/templates/channels/slack/integration/application.json +18 -0
  393. package/templates/channels/slack/integration/env.template +29 -0
  394. package/templates/channels/slack/integration/slack-datasource-conversations.json +226 -0
  395. package/templates/channels/slack/integration/slack-datasource-messages.json +269 -0
  396. package/templates/channels/slack/integration/slack-system.json +86 -0
  397. package/templates/channels/slack/manifest.template.json.hbs +20 -10
  398. package/templates/channels/teams-bot/install.template.md.hbs +31 -17
  399. package/templates/channels/teams-bot/integration/README.md +18 -0
  400. package/templates/channels/teams-bot/integration/application.json +17 -0
  401. package/templates/channels/teams-bot/integration/env.template +5 -0
  402. package/templates/channels/teams-bot/integration/teams-bot-system.json +55 -0
  403. package/templates/channels/teams-bot/manifest.template.json.hbs +27 -0
  404. package/templates/channels/web-embed/install.template.md.hbs +16 -26
  405. package/templates/channels/web-embed/integration/README.md +11 -0
  406. package/templates/channels/web-embed/integration/application.json +15 -0
  407. package/templates/channels/web-embed/integration/env.template +4 -0
  408. package/templates/channels/web-embed/integration/web-embed-system.json +29 -0
  409. package/templates/openapi/redoc_page.html +86 -0
  410. package/templates/python/docker-compose.hbs +11 -0
  411. package/templates/python/requirements.txt +1 -1
  412. package/templates/typescript/docker-compose.hbs +11 -0
  413. package/lib/certification/cli-cert-sync-skip.js +0 -21
@@ -0,0 +1,9 @@
1
+ # Process documentation
2
+
3
+ Canonical process descriptions for aifabrix-builder automation and release workflows.
4
+
5
+ | Process | Description |
6
+ | ------- | ----------- |
7
+ | [deployment.md](./deployment.md) | NPM release: preflight, release branch CI, PR to `main`, publish and GitHub release |
8
+
9
+ Command specs (agent-executable) live under [`.cursor/commands/`](../commands/).
@@ -0,0 +1,49 @@
1
+ ---
2
+ description: Builder-api and platform app Docker image IP policy โ€” staging, explicit COPY, content gate
3
+ globs:
4
+ - builder/builder-api/Dockerfile
5
+ - templates/applications/builder-api/Dockerfile
6
+ - .dockerignore
7
+ - scripts/stage_builder_api_for_docker.js
8
+ - scripts/docker_image_content_gate.js
9
+ - lib/build/builder-api-docker-staging.js
10
+ alwaysApply: false
11
+ ---
12
+
13
+ # Docker image IP policy (builder-api)
14
+
15
+ Customer-pullable **builder-api** images must contain **runtime orchestration only**, not the full Builder CLI monorepo.
16
+
17
+ ## Required pattern (builder-api)
18
+
19
+ 1. **Deny by default** โ€” repo-root `.dockerignore` excludes dev trees from build context.
20
+ 2. **Stage on host** โ€” `node scripts/stage_builder_api_for_docker.js` (also via `aifabrix build builder-api`) writes `docker-builder-api-staging/`.
21
+ 3. **Explicit COPY** โ€” `builder/builder-api/Dockerfile` copies staging output only; never `COPY lib ./lib` or `COPY . .`.
22
+ 4. **Prove it** โ€” `node scripts/docker_image_content_gate.js <image> builder-api` must pass before ACR push.
23
+ 5. **Non-root** โ€” container runs as `appuser` (or documented service user).
24
+ 6. **No agent ACR build** โ€” see `acr-build-restrictions.mdc` in miso builder rules; user runs registry build/push.
25
+
26
+ ## SSOT files
27
+
28
+ | File | Role |
29
+ | ---- | ---- |
30
+ | `builder/builder-api/Dockerfile` | Canonical image definition |
31
+ | `templates/applications/builder-api/Dockerfile` | Published via `npm run sync-json` only |
32
+ | `scripts/stage_builder_api_for_docker.js` | Runtime allowlist + manifest |
33
+ | `scripts/docker_image_content_gate.js` | Post-build forbidden-path gate |
34
+ | `.dockerignore` | Build context hardening |
35
+
36
+ ## Forbidden in builder-api images
37
+
38
+ - `/app/.cursor`, `/app/builder`, `/app/integration`, `/app/tests`, `/app/docs`, `/app/scripts`, `/app/packages`
39
+ - `/app/bin/aifabrix.js` (full CLI entry)
40
+ - `/app/templates/*` except `templates/openapi/` and `templates/external-system/` (runtime wizard/ReDoc only)
41
+ - `*.md` under `/app/lib/`
42
+
43
+ ## Dev-reload
44
+
45
+ `aifabrix run builder-api --reload` bind-mounts source for local dev. Image hardening applies to **production/ACR** builds only.
46
+
47
+ ## When changing runtime imports
48
+
49
+ If `lib/programmatic/` or its transitive requires change, re-run staging manifest tests (`tests/scripts/stage_builder_api_for_docker.test.js`) and rebuild the image gate.
@@ -0,0 +1,30 @@
1
+ ---
2
+ description: Mandatory application development lifecycle โ€” semantic checklist before validate-plan and at close-out
3
+ alwaysApply: true
4
+ ---
5
+
6
+ # Application development lifecycle (mandatory)
7
+
8
+ Every AI Fabrix product change must follow the full application development lifecycle before it is considered complete. This is law, not guidance.
9
+
10
+ **Skill (SSOT):** `.cursor/skills/aifabrix-application-lifecycle/SKILL.md`
11
+
12
+ Load `references/` files only when change class or repo requires them โ€” do not inline repo overlays in chat unless applying them.
13
+
14
+ ## When agents must run it
15
+
16
+ | Moment | Action |
17
+ | --- | --- |
18
+ | `/validate-plan` | Produce `## Application Development Lifecycle Coverage` under `## Plan Validation Report` |
19
+ | `/validate-implementation` | Upgrade `planned` โ†’ `covered`; no `missing` on required areas; **implementation code validation law** on plan-touched paths (Pyright/IDE, 600/50 Python, 500/50 TS) โ€” see skill `references/implementation-code-validation-law.md` |
20
+ | Ad-hoc implementation (no plan) | Run abbreviated checklist per change-class matrix in the skill |
21
+
22
+ ## Integration with mechanical gates
23
+
24
+ This rule does **not** replace `plan-validation-gate.mdc`, `plan-validate.js`, or repo `*-plan-validate` skills. It adds the **semantic coverage table** and **lifecycle decision** those gates do not emit today.
25
+
26
+ Do not stamp `planValidatedStatus: validated` when lifecycle decision is `blocked` or `needs-human-answer`.
27
+
28
+ ## Repo plan-validate skills
29
+
30
+ Each repo's `*-plan-validate` skill must invoke `aifabrix-application-lifecycle` as its **first semantic step** before architecture/reuse/testing gates.
@@ -0,0 +1,35 @@
1
+ ---
2
+ description: YAML frontmatter for .cursor/plans/*.plan.md
3
+ globs: .cursor/plans/**/*
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Plan frontmatter (builder)
8
+
9
+ ## Required (new plans)
10
+
11
+ | Field | Rules |
12
+ | --- | --- |
13
+ | `name` | Matches basename stem |
14
+ | `overview` | Non-empty summary |
15
+ | `status` | `draft` \| `review` \| `approved` \| `in_progress` \| `completed` \| `archived` |
16
+ | `todos` | Non-empty; `id`, `content`, `status` |
17
+ | `createdBy` | Display name on create |
18
+ | `planType` | `code` \| `docs` \| `meta` |
19
+
20
+ ## Validation stamp (set by agent via plan-validate.js only)
21
+
22
+ | Field | Values |
23
+ | --- | --- |
24
+ | `planValidatedStatus` | `validated` \| `needs-updates` \| `incomplete` |
25
+ | `lastValidatedBy` | Display name |
26
+ | `lastValidatedAt` | `YYYY-MM-DD` |
27
+
28
+ ## Approval (set by plan-approve.js only)
29
+
30
+ | Field | Set when |
31
+ | --- | --- |
32
+ | `approvedBy` | User `approve-yes` on validate-plan |
33
+ | `approvedAt` | Same run |
34
+
35
+ Actor file: `~/.aifabrix/plan-actor.yaml`
@@ -0,0 +1,31 @@
1
+ ---
2
+ description: Cursor plan lifecycle phases and validation gate
3
+ globs: .cursor/plans/**/*
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Plan lifecycle (builder)
8
+
9
+ ## Phases
10
+
11
+ 1. **Plan** โ€” draft under `.cursor/plans/`
12
+ 2. **Validate** โ€” `/validate-plan`, `builder-validate-plan` skill; semantic checklist: `aifabrix-application-lifecycle`
13
+ 3. **Approve** โ€” `approve-plan` AskQuestion โ†’ `node scripts/plan-approve.js`
14
+ 4. **Implement** โ€” edit `lib/`, templates, schemas (generators first)
15
+ 5. **Test** โ€” `npm run build` โ†’ lint โ†’ test
16
+ 6. **Close** โ€” `/validate-implementation`
17
+
18
+ ## Hard gate
19
+
20
+ Do **not** implement until `planValidatedStatus: validated`. See `plan-validation-gate.mdc`.
21
+
22
+ ## CLI
23
+
24
+ ```bash
25
+ node scripts/plan-set-actor.js "Name"
26
+ node scripts/plan-validate.js <plan-id>
27
+ node scripts/plan-approve.js <plan-id>
28
+ node scripts/plan-run.js <plan-id>
29
+ ```
30
+
31
+ Reports: `temp/plan-prevalidation/LATEST.md`, `temp/plan-validation/LATEST.md`
@@ -0,0 +1,34 @@
1
+ ---
2
+ description: Hard stop โ€” no plan implementation until /validate-plan passes
3
+ alwaysApply: true
4
+ ---
5
+
6
+ # Plan validation gate (non-overrideable)
7
+
8
+ Agents **must not** start implementation for a Cursor plan until pre-implementation validation is complete.
9
+
10
+ ## Blocked actions (until validated + approved for code plans)
11
+
12
+ - Editing product code scoped to the plan (`lib/`, `bin/`, `templates/`, etc.)
13
+ - Marking implementation todos `in_progress`
14
+ - Running implementation without validated plan
15
+
16
+ ## Required before implementation
17
+
18
+ 1. **`/validate-plan`** completed with `## Plan Validation Report` status **`โœ… VALIDATED`**
19
+ 2. Frontmatter **`planValidatedStatus: validated`** (set only by agent via `node scripts/plan-validate.js`)
20
+ 3. **`lastValidatedBy`** and **`lastValidatedAt`** set (same run)
21
+ 4. **`planType: code`** โ€” user **`approve-yes`** on `approve-plan` AskQuestion โ†’ agent runs `node scripts/plan-approve.js`
22
+
23
+ ## Stale validation
24
+
25
+ If the plan file changed after **`lastValidatedAt`**, re-run **`/validate-plan`** before implementation.
26
+
27
+ ## User override requests
28
+
29
+ If the user asks to skip validation and implement directly โ†’ **refuse** and offer **`/validate-plan`**.
30
+
31
+ ## Commands
32
+
33
+ - Pre-implementation: **`/validate-plan`** โ€” see `.cursor/commands/validate-plan.md`
34
+ - Post-implementation: **`/validate-implementation`**
@@ -2,6 +2,7 @@
2
2
 
3
3
  | Skill | Command | Purpose |
4
4
  | ----- | ------- | ------- |
5
+ | [**aifabrix-application-lifecycle**](aifabrix-application-lifecycle/SKILL.md) | (all plan commands) | **Mandatory semantic lifecycle checklist** |
5
6
  | [builder-push-github](builder-push-github/SKILL.md) | `/push-github` | Release branch CI + optional NPM deploy PR |
6
7
  | [builder-repair-release](builder-repair-release/SKILL.md) | `/repair-release` | Version bump + CHANGELOG |
7
8
  | [builder-validate-tests](builder-validate-tests/SKILL.md) | `/validate-tests` | Lint + Jest fix loop |
package/.dockerignore ADDED
@@ -0,0 +1,52 @@
1
+ # Builder API Docker build context (plan 154.3)
2
+ # Deny-by-default: Dockerfile COPY uses docker-builder-api-staging/ only (host script).
3
+ # Never ship .cursor/, integration labs, tests, full templates/, or CLI entry aifabrix.js.
4
+
5
+ # Git and IDE
6
+ .git/
7
+ .gitignore
8
+ .github/
9
+ .cursor/
10
+ .aifabrix/
11
+ .vscode/
12
+ .idea/
13
+ *.swp
14
+ *~
15
+ .DS_Store
16
+
17
+ # Dev / CI trees (not runtime)
18
+ tests/
19
+ docs/
20
+ integration/
21
+ packages/
22
+ builder/
23
+ scripts/
24
+ temp/
25
+ .temp/
26
+ coverage/
27
+ .nyc_output/
28
+ eslint-report.json
29
+
30
+ # Full source trees replaced by docker-builder-api-staging/
31
+ lib/
32
+ bin/
33
+ templates/
34
+
35
+ # Staged runtime output (must remain in context)
36
+ !docker-builder-api-staging/
37
+
38
+ # Node dev artifacts (package manifests whitelisted below)
39
+ node_modules/
40
+ npm-debug.log*
41
+
42
+ # Env and secrets
43
+ .env
44
+ .env.*
45
+
46
+ # Misc root clutter
47
+ *.md
48
+ !docker-builder-api-staging/**
49
+
50
+ # Keep npm install inputs
51
+ !package.json
52
+ !package-lock.json
package/.eslintignore ADDED
@@ -0,0 +1,22 @@
1
+ # Dependencies and coverage
2
+ node_modules/
3
+ coverage/
4
+ .nyc_output/
5
+
6
+ # Build and staging artifacts
7
+ dist/
8
+ build/
9
+ out/
10
+ docker-builder-api-staging/
11
+ packages/builder-api/dist/
12
+
13
+ # Temporary and local-only paths (see .gitignore)
14
+ .temp/
15
+ .temp/**
16
+ temp/
17
+ tmp-imgver*/
18
+ mount/
19
+
20
+ # Generated integration deploy scripts and local lab fixtures
21
+ integration/**/deploy.js
22
+ integration/**/backup/
package/README.md CHANGED
@@ -7,6 +7,8 @@ Open developer runtime for AI Fabrix ecosystem. Install the AI Fabrix platform a
7
7
 
8
8
  โ† **Full documentation:** [docs/README.md](docs/README.md) (table of contents for all guides)
9
9
 
10
+ **Contributor quick start (miso โ†” dataplane โ†” builder):** [QUICK-START.md](QUICK-START.md)
11
+
10
12
  ---
11
13
 
12
14
  ## Why AI Fabrix Builder?
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Purge expired builder-api workspaces (cron / scheduled job entry).
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ const { purgeExpiredWorkspaces } = require('../lib/programmatic/workspace-cleanup');
9
+
10
+ const dryRun = process.argv.includes('--dry-run');
11
+
12
+ const result = purgeExpiredWorkspaces({ dryRun });
13
+
14
+ // eslint-disable-next-line no-console
15
+ console.log(
16
+ dryRun
17
+ ? `Would purge ${result.count} workspace(s)`
18
+ : `Purged ${result.count} workspace(s)`
19
+ );
20
+
21
+ if (result.count > 0) {
22
+ for (const row of result.purged) {
23
+ // eslint-disable-next-line no-console
24
+ console.log(` ${row.userId}/integration/${row.systemKey}`);
25
+ }
26
+ }
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Start builder-api via NestJS bootstrap (plan 154.0 monorepo scaffold).
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ require('reflect-metadata');
9
+ require('ts-node/register/transpile-only');
10
+ require('../packages/builder-api/src/main.ts');
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Start builder-api HTTP server (plan 154.0 spike / pre-Nest).
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ const { createBuilderApiServer, BASE } = require('../lib/programmatic/builder-api-server');
9
+ const { ensureBuilderApiRuntimeConfigDir } = require('../lib/programmatic/builder-api-runtime-config');
10
+
11
+ ensureBuilderApiRuntimeConfigDir();
12
+
13
+ const port = Number(process.env.PORT || 3005);
14
+ const server = createBuilderApiServer(port);
15
+
16
+ server.on('listening', () => {
17
+ // eslint-disable-next-line no-console
18
+ console.log(`builder-api listening on http://localhost:${port}${BASE}/health`);
19
+ });
@@ -0,0 +1,50 @@
1
+ # Enterprise Knowledge anchors (aifabrix-builder SSOT)
2
+
3
+ Authoring workspace for **Enterprise Knowledge** external systems (`systemKind: enterpriseKnowledge`).
4
+
5
+ Connected Systems (vendor integrations) stay under `integration/`. Enterprise Knowledge anchors live here.
6
+
7
+ ## Layout
8
+
9
+ ```text
10
+ enterprise-knowledge/<anchorKey>/
11
+ application.json
12
+ <anchorKey>-system.json
13
+ <anchorKey>-deploy.json
14
+ env.template
15
+ deploy.js
16
+ ```
17
+
18
+ ## CLI
19
+
20
+ Commands resolve this tree automatically when `*-system.json` has `systemKind: enterpriseKnowledge`:
21
+
22
+ ```bash
23
+ aifabrix validate enterprise-integration-lifecycle
24
+ aifabrix upload enterprise-integration-lifecycle
25
+ aifabrix deploy enterprise-integration-lifecycle
26
+ ```
27
+
28
+ Optional override:
29
+
30
+ ```bash
31
+ aifabrix upload <anchor>
32
+ ```
33
+
34
+ Generate a full manifest preview (human review before upload/deploy):
35
+
36
+ ```bash
37
+ aifabrix enterprise-knowledge generate-manifest --domain sales --source-system hubspot-e2e
38
+ ```
39
+
40
+ Preview JSON is written under `enterprise-knowledge/<anchor>/generated-service-contracts/` unless `--output` or `--json` is used.
41
+
42
+ User-facing CLI copy uses **Enterprise Knowledge** (not internal abbreviations).
43
+
44
+ ## Platform anchor
45
+
46
+ | Anchor | Purpose |
47
+ | --- | --- |
48
+ | `enterprise-integration-lifecycle/` | Platform COM lifecycle subscriptions (repository.\*, template.\*) |
49
+
50
+ See repo-root `integration/README.md` for the three-layer platform model and Connected Systems workflows.
@@ -0,0 +1,22 @@
1
+ # Enterprise MCP โ€” Integration lifecycle (Layer 2)
2
+
3
+ Platform **enterpriseKnowledge** anchor for normalized **repository.*** and **template.*** Enterprise MCP tools.
4
+
5
+ | Generated datasource | Trigger |
6
+ | --- | --- |
7
+ | `enterprise-repository` | Published datasource with `resourceType: repository` (e.g. `github-repository`) |
8
+ | `enterprise-template` | Published datasource with `resourceType: template` |
9
+
10
+ **Builder-api** calls this system via `ENTERPRISE_MCP_SYSTEM_KEY=enterprise-integration-lifecycle` (see `builder/builder-api/env.template`).
11
+
12
+ ## Bootstrap
13
+
14
+ ```bash
15
+ aifabrix validate enterprise-integration-lifecycle
16
+ aifabrix json enterprise-integration-lifecycle
17
+ aifabrix upload enterprise-integration-lifecycle --probe
18
+ ```
19
+
20
+ Publish **before** uploading repository provider integrations (`github`).
21
+
22
+ See `tests/manual/com/integration_lifecycle_golden_path.md` in aifabrix-dataplane (manual proof).
@@ -0,0 +1,15 @@
1
+ {
2
+ "app": {
3
+ "key": "enterprise-integration-lifecycle",
4
+ "displayName": "Enterprise MCP โ€” Integration lifecycle",
5
+ "description": "Platform anchor for unified Enterprise MCP repository and template capabilities (154.1 Layer 2).",
6
+ "type": "external"
7
+ },
8
+ "externalIntegration": {
9
+ "version": "1.0.0",
10
+ "autopublish": false,
11
+ "schemaBasePath": "./",
12
+ "systems": ["enterprise-integration-lifecycle-system.json"],
13
+ "dataSources": []
14
+ }
15
+ }
@@ -0,0 +1,69 @@
1
+ #!/usr/bin/env node
2
+ /* eslint-disable no-console */
3
+ /**
4
+ * Deploy enterprise-integration-lifecycle external system and datasources using aifabrix CLI.
5
+ * Run: node deploy.js
6
+ * Flow: check auth โ†’ login if needed โ†’ deploy โ†’ run integration tests.
7
+ */
8
+
9
+ const { execSync } = require('child_process');
10
+ const path = require('path');
11
+
12
+ const scriptDir = __dirname;
13
+ // Project root (repo containing integration/ and builder/) so deploy/test-integration resolve app paths correctly
14
+ const projectRoot = path.join(scriptDir, '..', '..');
15
+ const appKey = 'enterprise-integration-lifecycle';
16
+ const env = process.env.ENVIRONMENT || 'dev';
17
+ // Controller URL: from config (aifabrix auth config) or set CONTROLLER env before running
18
+
19
+ /**
20
+ * Run a shell command with optional options.
21
+ * @param {string} cmd - Command to run
22
+ * @param {Object} [options={}] - Options (cwd, stdio, ignoreExit)
23
+ * @returns {boolean} True if command succeeded
24
+ */
25
+ function run(cmd, options = {}) {
26
+ const opts = { cwd: scriptDir, stdio: 'inherit', ...options };
27
+ try {
28
+ execSync(cmd, opts);
29
+ return true;
30
+ } catch (err) {
31
+ if (options.ignoreExit) return false;
32
+ process.exit(err.status ?? 1);
33
+ }
34
+ }
35
+
36
+ /**
37
+ * Check if aifabrix auth is logged in.
38
+ * @returns {boolean} True if logged in
39
+ */
40
+ function isLoggedIn() {
41
+ try {
42
+ execSync('aifabrix auth status', { cwd: scriptDir, stdio: 'pipe' });
43
+ return true;
44
+ } catch {
45
+ return false;
46
+ }
47
+ }
48
+
49
+ console.log('๐Ÿ” Checking authentication...');
50
+ if (!isLoggedIn()) {
51
+ console.log('โš  Not logged in. Run login (e.g. aifabrix login --controller <url> --method device --environment ' + env + ').');
52
+ run('aifabrix login --environment ' + env);
53
+ }
54
+
55
+ console.log('๐Ÿ” Validating configuration...');
56
+ run('aifabrix validate "' + path.join(scriptDir, 'enterprise-integration-lifecycle-system.json') + '"');
57
+ console.log('โœ” Validation passed');
58
+
59
+ console.log('๐Ÿš€ Deploying ' + appKey + '...');
60
+ run('aifabrix deploy ' + appKey, { cwd: projectRoot });
61
+ console.log('โœ” Deployment complete');
62
+
63
+ if (process.env.RUN_TESTS !== 'false') {
64
+ console.log('๐Ÿงช Running integration tests...');
65
+ run('aifabrix test-integration ' + appKey, { cwd: projectRoot });
66
+ console.log('โœ” Tests passed');
67
+ }
68
+
69
+ console.log('โœ” Done.');
@@ -0,0 +1,52 @@
1
+ {
2
+ "key": "enterprise-integration-lifecycle",
3
+ "displayName": "Enterprise MCP โ€” Integration lifecycle",
4
+ "description": "Platform anchor for unified Enterprise MCP repository and template capabilities (154.1 Layer 2).",
5
+ "type": "external",
6
+ "version": "1.0.0",
7
+ "externalIntegration": {
8
+ "schemaBasePath": "./",
9
+ "systems": [
10
+ "enterprise-integration-lifecycle-system.json"
11
+ ],
12
+ "dataSources": [],
13
+ "autopublish": false,
14
+ "version": "1.0.0"
15
+ },
16
+ "system": {
17
+ "key": "enterprise-integration-lifecycle",
18
+ "displayName": "Enterprise MCP โ€” Integration lifecycle",
19
+ "description": "Platform anchor for Builder workspace lifecycle. Generates enterprise-repository and enterprise-template MCP datasources when repository or template provider datasources publish. Referenced by builder-api ENTERPRISE_MCP_SYSTEM_KEY.",
20
+ "type": "custom",
21
+ "enabled": true,
22
+ "systemKind": "enterpriseKnowledge",
23
+ "authentication": {
24
+ "authType": "none"
25
+ },
26
+ "configuration": [],
27
+ "dataSources": [],
28
+ "subscriptions": [
29
+ {
30
+ "key": "enterprise-integration-lifecycle-generator",
31
+ "displayName": "Enterprise integration lifecycle generator",
32
+ "description": "Regenerate enterprise repository and template MCP datasources when provider datasources publish.",
33
+ "event": "platform.datasource.published",
34
+ "filter": {
35
+ "resourceTypes": [
36
+ "repository",
37
+ "template"
38
+ ]
39
+ },
40
+ "task": {
41
+ "type": "generateEnterpriseDatasources",
42
+ "version": 1
43
+ },
44
+ "runOnCreate": true
45
+ }
46
+ ]
47
+ },
48
+ "dataSources": [],
49
+ "requiresDatabase": false,
50
+ "requiresRedis": false,
51
+ "requiresStorage": false
52
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "key": "enterprise-integration-lifecycle",
3
+ "displayName": "Enterprise MCP โ€” Integration lifecycle",
4
+ "description": "Platform anchor for Builder workspace lifecycle. Generates enterprise-repository and enterprise-template MCP datasources when repository or template provider datasources publish. Referenced by builder-api ENTERPRISE_MCP_SYSTEM_KEY.",
5
+ "type": "custom",
6
+ "enabled": true,
7
+ "systemKind": "enterpriseKnowledge",
8
+ "authentication": {
9
+ "authType": "none"
10
+ },
11
+ "configuration": [],
12
+ "dataSources": [],
13
+ "subscriptions": [
14
+ {
15
+ "key": "enterprise-integration-lifecycle-generator",
16
+ "displayName": "Enterprise integration lifecycle generator",
17
+ "description": "Regenerate enterprise repository and template MCP datasources when provider datasources publish.",
18
+ "event": "platform.datasource.published",
19
+ "filter": {
20
+ "resourceTypes": ["repository", "template"]
21
+ },
22
+ "task": {
23
+ "type": "generateEnterpriseDatasources",
24
+ "version": 1
25
+ },
26
+ "runOnCreate": true
27
+ }
28
+ ]
29
+ }
@@ -0,0 +1,2 @@
1
+ # Enterprise MCP integration lifecycle anchor โ€” no secrets required.
2
+ # Publish once per environment before repository/template provider datasources.