@aifabrix/builder 2.49.2 → 2.51.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 (459) hide show
  1. package/.cursor/plans/157.1-security-quality-violations-by-type.csv +374 -0
  2. package/.cursor/rules/assistant-driven-integration-build.mdc +40 -0
  3. package/.cursor/rules/deploy-rules/docker-image-ip-policy.mdc +49 -0
  4. package/.cursor/rules/plan-rules/application-lifecycle.mdc +30 -0
  5. package/.cursor/rules/plan-rules/plan-frontmatter.mdc +35 -0
  6. package/.cursor/rules/plan-rules/plan-lifecycle.mdc +31 -0
  7. package/.cursor/rules/plan-rules/plan-validation-gate.mdc +34 -0
  8. package/.cursor/skills/README.md +1 -0
  9. package/.dockerignore +52 -0
  10. package/.eslintignore +22 -0
  11. package/README.md +2 -0
  12. package/bin/builder-api-cleanup.js +26 -0
  13. package/bin/builder-api-nest.js +10 -0
  14. package/bin/builder-api-spike.js +19 -0
  15. package/enterprise-knowledge/README.md +50 -0
  16. package/enterprise-knowledge/enterprise-integration-lifecycle/README.md +22 -0
  17. package/enterprise-knowledge/enterprise-integration-lifecycle/application.json +15 -0
  18. package/enterprise-knowledge/enterprise-integration-lifecycle/deploy.js +69 -0
  19. package/enterprise-knowledge/enterprise-integration-lifecycle/enterprise-integration-lifecycle-deploy.json +52 -0
  20. package/enterprise-knowledge/enterprise-integration-lifecycle/enterprise-integration-lifecycle-system.json +29 -0
  21. package/enterprise-knowledge/enterprise-integration-lifecycle/env.template +2 -0
  22. package/integration/README.md +81 -0
  23. package/integration/github/README.md +53 -0
  24. package/integration/github/application.json +21 -0
  25. package/integration/github/deploy.js +72 -0
  26. package/integration/github/env.template +11 -0
  27. package/integration/github/github-datasource-issue-comments.json +239 -0
  28. package/integration/github/github-datasource-issues.json +399 -0
  29. package/integration/github/github-datasource-repository.json +354 -0
  30. package/integration/github/github-deploy.json +1202 -0
  31. package/integration/github/github-system.json +82 -0
  32. package/integration/hubspot-test/README.md +1 -1
  33. package/integration/hubspot-test/create-hubspot.js +1 -16
  34. package/jest.isolated-projects.js +31 -1
  35. package/jest.projects.js +87 -1
  36. package/lib/api/dev-server-https.js +1 -1
  37. package/lib/api/enterprise-knowledge.api.js +63 -0
  38. package/lib/api/evidence-kinds.api.js +128 -0
  39. package/lib/api/evidence.api.js +172 -0
  40. package/lib/api/external-systems.api.js +8 -2
  41. package/lib/api/pipeline.api.js +5 -1
  42. package/lib/api/resource-types.api.js +5 -4
  43. package/lib/api/roles.api.js +121 -0
  44. package/lib/api/types/enterprise-knowledge.types.js +46 -0
  45. package/lib/api/types/evidence-kinds.types.js +42 -0
  46. package/lib/api/types/evidence.types.js +67 -0
  47. package/lib/api/types/resource-types.types.js +2 -0
  48. package/lib/api/types/roles.types.js +36 -0
  49. package/lib/app/certification-verify-rows.js +1 -1
  50. package/lib/app/controller-application-filter.js +36 -0
  51. package/lib/app/deploy.js +1 -1
  52. package/lib/app/list-external-systems.js +130 -0
  53. package/lib/app/list.js +20 -8
  54. package/lib/app/run.js +3 -1
  55. package/lib/app/show-display.js +8 -3
  56. package/lib/app/show-online.js +178 -0
  57. package/lib/app/show.js +39 -90
  58. package/lib/build/builder-api-docker-staging.js +47 -0
  59. package/lib/build/miso-controller-npm-sdk-guard.js +2 -2
  60. package/lib/build/standard-docker-build.js +2 -0
  61. package/lib/certification/merge-certification-from-artifact.js +1 -1
  62. package/lib/certification/post-unified-cert-sync.js +4 -31
  63. package/lib/certification/sync-after-external-command.js +0 -1
  64. package/lib/certification/sync-system-certification.js +0 -3
  65. package/lib/channels/add-channel.js +40 -34
  66. package/lib/channels/approval-guides/chatgpt.js +33 -0
  67. package/lib/channels/approval-guides/credential-portal.js +38 -0
  68. package/lib/channels/approval-guides/index.js +110 -0
  69. package/lib/channels/approval-guides/microsoft-copilot.js +34 -0
  70. package/lib/channels/approval-guides/slack.js +34 -0
  71. package/lib/channels/approval-guides/teams-bot.js +35 -0
  72. package/lib/channels/approval-guides/web-embed.js +32 -0
  73. package/lib/channels/channel-approval-guide.js +11 -0
  74. package/lib/channels/channel-artifact-generator.js +18 -5
  75. package/lib/channels/channel-audit.js +3 -0
  76. package/lib/channels/channel-auth-context.js +1 -1
  77. package/lib/channels/channel-description.js +59 -0
  78. package/lib/channels/channel-integration-generator.js +13 -230
  79. package/lib/channels/channel-integration-template.js +94 -0
  80. package/lib/channels/channel-runtime-resolver.js +43 -3
  81. package/lib/channels/channel-status-display.js +66 -26
  82. package/lib/channels/channel-targets.js +3 -3
  83. package/lib/cli/index.js +31 -3
  84. package/lib/cli/infra-guided.js +5 -1
  85. package/lib/cli/setup-app-external-create.js +111 -0
  86. package/lib/cli/setup-app.help.js +1 -1
  87. package/lib/cli/setup-app.js +60 -130
  88. package/lib/cli/setup-app.test-commands.js +26 -52
  89. package/lib/cli/setup-certification-commands.js +4 -4
  90. package/lib/cli/setup-certification.help.js +9 -9
  91. package/lib/cli/setup-dev.js +30 -9
  92. package/lib/cli/setup-external-system-help.js +4 -6
  93. package/lib/cli/setup-external-system.js +58 -52
  94. package/lib/cli/setup-infra-up-builder-api-action.js +64 -0
  95. package/lib/cli/setup-infra-up-platform-action.js +3 -1
  96. package/lib/cli/setup-infra.js +15 -0
  97. package/lib/cli/setup-list.js +43 -0
  98. package/lib/cli/setup-utility-help-after.js +12 -0
  99. package/lib/cli/setup-utility-repair.js +26 -7
  100. package/lib/cli/setup-utility-validate.js +41 -2
  101. package/lib/cli/setup-utility.js +5 -3
  102. package/lib/commands/app.js +15 -43
  103. package/lib/commands/channel-add-setup.js +110 -0
  104. package/lib/commands/channel.js +42 -8
  105. package/lib/commands/datasource-sync-display.js +96 -0
  106. package/lib/commands/datasource-sync-policy.js +210 -0
  107. package/lib/commands/datasource-test-trust-cli.js +6 -6
  108. package/lib/commands/datasource-unified-test-cli.js +2 -1
  109. package/lib/commands/datasource-unified-test-cli.options.js +33 -23
  110. package/lib/commands/deploy-gate-failure-details.js +184 -0
  111. package/lib/commands/deploy-gate-orchestrator.js +368 -0
  112. package/lib/commands/dev-cli-handlers.js +7 -62
  113. package/lib/commands/dev-host-ops-params.js +91 -0
  114. package/lib/commands/dev-host-ops-poll.js +111 -0
  115. package/lib/commands/dev-host-ops.js +107 -94
  116. package/lib/commands/dev-init.js +6 -106
  117. package/lib/commands/dev-refresh.js +197 -0
  118. package/lib/commands/enterprise-knowledge.js +284 -0
  119. package/lib/commands/evidence-cli-leaves.js +250 -0
  120. package/lib/commands/evidence-kind.js +428 -0
  121. package/lib/commands/evidence.js +51 -0
  122. package/lib/commands/governance-cli-shared.js +2 -2
  123. package/lib/commands/governance-command-action.js +5 -3
  124. package/lib/commands/governance-fixture-subjects.js +85 -0
  125. package/lib/commands/governance.js +1 -1
  126. package/lib/commands/lifecycle-command-action.js +2 -2
  127. package/lib/commands/lifecycle-external.js +3 -3
  128. package/lib/commands/manifest-cli-auth.js +29 -0
  129. package/lib/commands/manifest-cli-commands.js +170 -0
  130. package/lib/commands/manifest-cli-integration-path.js +63 -0
  131. package/lib/commands/manifest.js +21 -0
  132. package/lib/commands/protection-cli-leaves.js +3 -3
  133. package/lib/commands/repair-auth-apply.js +15 -1
  134. package/lib/commands/repair-authentications-454.js +169 -0
  135. package/lib/commands/repair-capability-openapi-warnings.js +126 -0
  136. package/lib/commands/repair-datasource-apply.js +135 -0
  137. package/lib/commands/repair-datasource-auto-rbac.js +62 -1
  138. package/lib/commands/repair-datasource-http-service-contract.js +239 -0
  139. package/lib/commands/repair-datasource-operation-security.js +180 -0
  140. package/lib/commands/repair-datasource-run.js +7 -2
  141. package/lib/commands/repair-datasource-sync-operations.js +177 -0
  142. package/lib/commands/repair-datasource-webhooks-sync-bridge.js +133 -0
  143. package/lib/commands/repair-datasource.js +12 -68
  144. package/lib/commands/repair-env-template.js +11 -1
  145. package/lib/commands/repair-external-run.js +121 -31
  146. package/lib/commands/repair-internal.js +1 -1
  147. package/lib/commands/repair-openapi-export.js +156 -0
  148. package/lib/commands/repair-openapi-sync.js +33 -8
  149. package/lib/commands/repair-orchestration-datasource-split.js +259 -0
  150. package/lib/commands/repair-persist.js +22 -1
  151. package/lib/commands/repair-rbac-platform-preset.js +204 -0
  152. package/lib/commands/repair-rbac-reader-roles.js +191 -0
  153. package/lib/commands/repair-rbac.js +163 -86
  154. package/lib/commands/repair-steps.js +83 -18
  155. package/lib/commands/repair-system-permissions.js +1 -0
  156. package/lib/commands/repair.js +1 -1
  157. package/lib/commands/resource-type.js +166 -44
  158. package/lib/commands/role.js +452 -0
  159. package/lib/commands/run-post-publish-data-sync.js +68 -0
  160. package/lib/commands/setup-modes.js +1 -1
  161. package/lib/commands/setup.js +1 -1
  162. package/lib/commands/test-e2e-external.js +21 -8
  163. package/lib/commands/test-governance-cli-options.js +2 -2
  164. package/lib/commands/test-trust-cli-options.js +2 -2
  165. package/lib/commands/up-builder-api-bootstrap.js +71 -0
  166. package/lib/commands/up-builder-api-provision.js +241 -0
  167. package/lib/commands/up-builder-api.js +88 -0
  168. package/lib/commands/up-common.js +25 -1
  169. package/lib/commands/upload-credential-push-log.js +117 -0
  170. package/lib/commands/upload-data-sync-finalize.js +60 -0
  171. package/lib/commands/upload-probe.js +66 -0
  172. package/lib/commands/upload-publish-context.js +4 -1
  173. package/lib/commands/upload-sidecar-followups.js +55 -27
  174. package/lib/commands/upload.js +116 -157
  175. package/lib/commands/validate-json.js +230 -0
  176. package/lib/commands/verify-governance-combined-external.js +1 -1
  177. package/lib/commands/verify-governance-db.js +2 -2
  178. package/lib/commands/verify-operations-command-action.js +2 -2
  179. package/lib/commands/verify-operations-step-plan.js +79 -41
  180. package/lib/commands/verify-operations-steps.js +2 -2
  181. package/lib/commands/verify-trust-command-action.js +1 -1
  182. package/lib/commands/wizard-core.js +1 -1
  183. package/lib/commands/wizard-headless.js +2 -1
  184. package/lib/core/admin-secrets.js +2 -6
  185. package/lib/core/audit-logger.js +1 -1
  186. package/lib/core/secrets-env-content.js +10 -4
  187. package/lib/core/secrets-env-write.js +2 -13
  188. package/lib/core/secrets-load.js +1 -3
  189. package/lib/datasource/agent-trust-run.js +3 -3
  190. package/lib/datasource/capability/relate-operations.js +1 -1
  191. package/lib/datasource/deploy.js +3 -1
  192. package/lib/datasource/test-e2e.js +6 -1
  193. package/lib/datasource/unified-validation-run-body.js +4 -1
  194. package/lib/datasource/unified-validation-run.js +1 -1
  195. package/lib/deployment/deploy-poll-ui.js +73 -12
  196. package/lib/deployment/deployer-poll-run.js +113 -0
  197. package/lib/deployment/deployer.js +17 -87
  198. package/lib/evidence/dataplane-context.js +21 -0
  199. package/lib/evidence/evidence-display.js +78 -0
  200. package/lib/evidence/evidence-service.js +392 -0
  201. package/lib/external-system/deploy.js +290 -112
  202. package/lib/external-system/download.js +7 -3
  203. package/lib/external-system/test-execution.js +1 -1
  204. package/lib/external-system/test-system-level.js +8 -10
  205. package/lib/external-system/test.js +12 -6
  206. package/lib/generator/deploy-script.js +73 -0
  207. package/lib/generator/external.js +2 -1
  208. package/lib/generator/helpers.js +13 -5
  209. package/lib/generator/index.js +17 -2
  210. package/lib/generator/split-variables.js +9 -3
  211. package/lib/generator/wizard.js +3 -36
  212. package/lib/infrastructure/helpers-docker-check.js +6 -0
  213. package/lib/infrastructure/helpers.js +1 -1
  214. package/lib/internal/fs-real-sync.js +22 -1
  215. package/lib/internal/node-fs.js +2 -0
  216. package/lib/lifecycle/lifecycle-governance-options.js +1 -1
  217. package/lib/lifecycle/verify-step-progress.js +1 -1
  218. package/lib/programmatic/access-log.js +26 -0
  219. package/lib/programmatic/auth-config.js +45 -0
  220. package/lib/programmatic/bearer-auth.js +176 -0
  221. package/lib/programmatic/builder-api-request.js +175 -0
  222. package/lib/programmatic/builder-api-route-dispatch.js +82 -0
  223. package/lib/programmatic/builder-api-runtime-config.js +42 -0
  224. package/lib/programmatic/builder-api-server.js +230 -0
  225. package/lib/programmatic/builder-help-authentication-catalog.js +282 -0
  226. package/lib/programmatic/builder-help-connected-system-ui.js +266 -0
  227. package/lib/programmatic/builder-help-enterprise-sync-fabrix.js +60 -0
  228. package/lib/programmatic/builder-help-envelope.js +36 -0
  229. package/lib/programmatic/builder-help-fixtures.js +200 -0
  230. package/lib/programmatic/builder-help-governance.js +172 -0
  231. package/lib/programmatic/builder-help-schema-catalog.js +92 -0
  232. package/lib/programmatic/builder-help.js +361 -0
  233. package/lib/programmatic/capability-registry.js +77 -0
  234. package/lib/programmatic/command-options.js +32 -0
  235. package/lib/programmatic/enterprise-mcp-client.js +114 -0
  236. package/lib/programmatic/http-problem-details.js +99 -0
  237. package/lib/programmatic/http-route-match.js +40 -0
  238. package/lib/programmatic/idempotency-cache.js +69 -0
  239. package/lib/programmatic/index.js +53 -0
  240. package/lib/programmatic/integration-path-scope.js +39 -0
  241. package/lib/programmatic/log-redaction.js +66 -0
  242. package/lib/programmatic/manifest-get-section.js +146 -0
  243. package/lib/programmatic/manifest-patch-section.js +252 -0
  244. package/lib/programmatic/manifest-repair.js +122 -0
  245. package/lib/programmatic/manifest-section-dependency-graph.js +160 -0
  246. package/lib/programmatic/manifest-section-io.js +225 -0
  247. package/lib/programmatic/manifest-section-quality.js +171 -0
  248. package/lib/programmatic/manifest-section-registry-data.js +269 -0
  249. package/lib/programmatic/manifest-section-registry.js +222 -0
  250. package/lib/programmatic/nest-http-bridge.js +34 -0
  251. package/lib/programmatic/openapi-component-schemas.js +68 -0
  252. package/lib/programmatic/openapi-description-enricher.js +117 -0
  253. package/lib/programmatic/openapi-descriptions.js +190 -0
  254. package/lib/programmatic/openapi-docs-serving.js +123 -0
  255. package/lib/programmatic/openapi-help-schemas.js +63 -0
  256. package/lib/programmatic/openapi-manifest-schemas.js +141 -0
  257. package/lib/programmatic/openapi-operation-bindings.js +274 -0
  258. package/lib/programmatic/openapi-request-schemas.js +155 -0
  259. package/lib/programmatic/openapi-result-schemas.js +493 -0
  260. package/lib/programmatic/openapi-schema-descriptions-certify.js +139 -0
  261. package/lib/programmatic/openapi-schema-descriptions-core.js +162 -0
  262. package/lib/programmatic/openapi-schema-descriptions-help.js +40 -0
  263. package/lib/programmatic/openapi-schema-descriptions-manifest.js +143 -0
  264. package/lib/programmatic/openapi-schema-descriptions-mcp.js +118 -0
  265. package/lib/programmatic/openapi-schema-descriptions-operations.js +281 -0
  266. package/lib/programmatic/openapi-schema-helpers.js +108 -0
  267. package/lib/programmatic/openapi-spec.js +203 -0
  268. package/lib/programmatic/orchestration-openapi-meta.js +159 -0
  269. package/lib/programmatic/platform-rbac-catalog.js +90 -0
  270. package/lib/programmatic/request-timeout.js +53 -0
  271. package/lib/programmatic/route-handler-map.js +143 -0
  272. package/lib/programmatic/route-handlers-context.js +29 -0
  273. package/lib/programmatic/route-handlers.js +33 -0
  274. package/lib/programmatic/run-certify.js +57 -0
  275. package/lib/programmatic/run-enterprise-mcp.js +32 -0
  276. package/lib/programmatic/run-lifecycle.js +29 -0
  277. package/lib/programmatic/run-repair.js +41 -0
  278. package/lib/programmatic/run-repository-emcp.js +62 -0
  279. package/lib/programmatic/run-template-workspace.js +74 -0
  280. package/lib/programmatic/run-test.js +49 -0
  281. package/lib/programmatic/run-upload.js +63 -0
  282. package/lib/programmatic/run-validate.js +53 -0
  283. package/lib/programmatic/run-wizard.js +40 -0
  284. package/lib/programmatic/system-key.js +48 -0
  285. package/lib/programmatic/wizard-config-normalize.js +118 -0
  286. package/lib/programmatic/workspace-cleanup.js +128 -0
  287. package/lib/programmatic/workspace-context.js +145 -0
  288. package/lib/programmatic/workspace-lock.js +75 -0
  289. package/lib/programmatic/workspace-meta.js +64 -0
  290. package/lib/programmatic/workspace-ops.js +149 -0
  291. package/lib/protection/run-commands-upload-sync.js +35 -0
  292. package/lib/protection/run-commands.js +2 -20
  293. package/lib/protection/upload-batch.js +11 -7
  294. package/lib/resolvers/evidence-kind-file.js +230 -0
  295. package/lib/resolvers/resource-type-file.js +58 -1
  296. package/lib/resolvers/role-file.js +227 -0
  297. package/lib/schema/application-schema.json +22 -2
  298. package/lib/schema/external-datasource.schema.json +245 -2
  299. package/lib/schema/external-system.schema.json +259 -119
  300. package/lib/schema/flag-map-validation-run.json +3 -0
  301. package/lib/schema/infra.parameter.yaml +25 -1
  302. package/lib/schema/type/credential-field-registry.json +21 -5
  303. package/lib/schema/type/document-storage.json +9 -0
  304. package/lib/utils/agent-trust-run-display.js +1 -1
  305. package/lib/utils/api.js +8 -2
  306. package/lib/utils/app-path-resolve.js +168 -0
  307. package/lib/utils/app-register-config.js +4 -3
  308. package/lib/utils/authentication-env-template.js +222 -0
  309. package/lib/utils/cli-sync-options.js +62 -10
  310. package/lib/utils/cli-utils.js +15 -3
  311. package/lib/utils/cli-workspace-options.js +29 -0
  312. package/lib/utils/compose-generate-docker-compose.js +102 -0
  313. package/lib/utils/configuration-env-resolver.js +203 -27
  314. package/lib/utils/datasource-test-run-certificate-tty.js +28 -2
  315. package/lib/utils/datasource-test-run-certification-debug.js +130 -0
  316. package/lib/utils/datasource-test-run-debug-display.js +2 -0
  317. package/lib/utils/datasource-test-run-debug-slice.js +7 -0
  318. package/lib/utils/datasource-test-run-display.js +2 -1
  319. package/lib/utils/dev-ca-install.js +5 -6
  320. package/lib/utils/dev-config.js +2 -2
  321. package/lib/utils/dev-init-ssh-merge.js +165 -23
  322. package/lib/utils/dev-list-sort.js +145 -0
  323. package/lib/utils/dev-pin-share-instructions.js +110 -0
  324. package/lib/utils/dev-platform-tls.js +0 -63
  325. package/lib/utils/dev-ssh-config-helper.js +177 -33
  326. package/lib/utils/docker-build.js +46 -27
  327. package/lib/utils/docker-daemon-tls-ca.js +1 -1
  328. package/lib/utils/docker-exec.js +91 -6
  329. package/lib/utils/enterprise-knowledge-paths.js +142 -0
  330. package/lib/utils/env-copy.js +3 -4
  331. package/lib/utils/env-dotenv-format.js +103 -0
  332. package/lib/utils/error-formatters/error-parser.js +0 -3
  333. package/lib/utils/external-env-template.js +5 -2
  334. package/lib/utils/external-system-display.js +5 -1
  335. package/lib/utils/external-system-readiness-compact-blocks.js +248 -0
  336. package/lib/utils/external-system-readiness-compact-display.js +324 -0
  337. package/lib/utils/external-system-readiness-core.js +16 -0
  338. package/lib/utils/external-system-readiness-deploy-display.js +29 -11
  339. package/lib/utils/external-system-readiness-display-internals.js +3 -1
  340. package/lib/utils/external-system-readiness-display.js +20 -30
  341. package/lib/utils/external-system-system-test-tty-certification.js +135 -0
  342. package/lib/utils/external-system-system-test-tty.js +5 -41
  343. package/lib/utils/health-check-request.js +2 -3
  344. package/lib/utils/help-builder.js +9 -1
  345. package/lib/utils/host-ops-job-labels.js +236 -0
  346. package/lib/utils/host-ops-job-result.js +61 -0
  347. package/lib/utils/host-ops-poll-ui.js +163 -0
  348. package/lib/utils/image-name.js +22 -4
  349. package/lib/utils/integration-path-resolve.js +112 -0
  350. package/lib/utils/logger.js +37 -4
  351. package/lib/utils/manifest-source-emit.js +1 -1
  352. package/lib/utils/paths-reload-source.js +148 -0
  353. package/lib/utils/paths-system-builder-keys.js +25 -0
  354. package/lib/utils/paths.js +183 -30
  355. package/lib/utils/pipeline-upload-auth-retry.js +4 -0
  356. package/lib/utils/postgres-platform-bootstrap.js +24 -17
  357. package/lib/utils/postgres-wipe.js +5 -2
  358. package/lib/utils/remote-dev-auth.js +39 -4
  359. package/lib/utils/resolve-docker-image-ref.js +36 -6
  360. package/lib/utils/runtime-configuration-values.js +64 -2
  361. package/lib/utils/secrets-helpers.js +5 -1
  362. package/lib/utils/ssh-known-hosts.js +130 -0
  363. package/lib/utils/test-target-cli-options.js +75 -0
  364. package/lib/utils/token-manager.js +16 -0
  365. package/lib/utils/upload-sync-options.js +20 -2
  366. package/lib/utils/validation-run-request.js +11 -2
  367. package/lib/validation/external-manifest-validator.js +11 -1
  368. package/lib/validation/openapi-contract-surface-validator.js +430 -0
  369. package/lib/validation/openapi-contract-vendor-validation.js +238 -0
  370. package/lib/validation/validate-external-file.js +160 -0
  371. package/lib/validation/validate.js +6 -117
  372. package/lib/validation/validator.js +6 -5
  373. package/package.json +76 -37
  374. package/packages/builder-api/README.md +120 -0
  375. package/packages/builder-api/package.json +30 -0
  376. package/packages/builder-api/src/app.module.ts +7 -0
  377. package/packages/builder-api/src/auth/auth.module.ts +5 -0
  378. package/packages/builder-api/src/external-system/external-system.module.ts +5 -0
  379. package/packages/builder-api/src/main.ts +16 -0
  380. package/packages/builder-api/tsconfig.json +15 -0
  381. package/scripts/check-builder-api-architecture-grep.js +79 -0
  382. package/scripts/docker_image_content_gate.js +47 -0
  383. package/scripts/docker_image_content_gate.sh +5 -0
  384. package/scripts/export-builder-api-evidence.js +262 -0
  385. package/scripts/lib/builder-api-docker-staging-copy.js +60 -0
  386. package/scripts/lib/builder-api-docker-staging-core.js +183 -0
  387. package/scripts/lib/docker-image-content-gate-core.js +166 -0
  388. package/scripts/lib/plan-actor.js +109 -0
  389. package/scripts/lib/plan-config.js +20 -0
  390. package/scripts/lib/plan-gates.js +154 -0
  391. package/scripts/lib/plan-meta.js +104 -0
  392. package/scripts/lib/plan-parse.js +162 -0
  393. package/scripts/lib/plan-prevalidate-gates.js +337 -0
  394. package/scripts/lib/plan-run-core.js +125 -0
  395. package/scripts/lib/plan-run-report.js +119 -0
  396. package/scripts/plan-approve.js +24 -0
  397. package/scripts/plan-archive.js +49 -0
  398. package/scripts/plan-run.js +13 -0
  399. package/scripts/plan-set-actor.js +21 -0
  400. package/scripts/plan-validate.js +80 -0
  401. package/scripts/pnpm/af.mjs +110 -0
  402. package/scripts/pnpm/check-quiet.mjs +32 -0
  403. package/scripts/pnpm/dev-install.mjs +29 -0
  404. package/scripts/pnpm/dev-reload.mjs +18 -0
  405. package/scripts/pnpm/help.mjs +55 -0
  406. package/scripts/pnpm/lib/dev-reload-core.mjs +189 -0
  407. package/scripts/pnpm/lib/dev-reload-log-capture.mjs +67 -0
  408. package/scripts/pnpm/lib/dev-reload-log-utils.mjs +32 -0
  409. package/scripts/pnpm/lib/resolve-aifabrix-bin.mjs +124 -0
  410. package/scripts/pnpm/lib/resolve-app-url.mjs +183 -0
  411. package/scripts/pnpm/lib/spinner.mjs +42 -0
  412. package/scripts/stage_builder_api_for_docker.js +65 -0
  413. package/scripts/sync-builder-api-template.js +44 -0
  414. package/templates/README.md +3 -0
  415. package/templates/applications/builder-api/Dockerfile +38 -0
  416. package/templates/applications/builder-api/application.yaml +75 -0
  417. package/templates/applications/builder-api/env.template +48 -0
  418. package/templates/applications/dataplane/application.yaml +27 -5
  419. package/templates/applications/dataplane/env.template +38 -15
  420. package/templates/applications/dataplane/rbac.yaml +85 -3
  421. package/templates/applications/miso-controller/application.yaml +10 -1
  422. package/templates/applications/miso-controller/env.template +11 -10
  423. package/templates/applications/miso-controller/rbac.yaml +72 -0
  424. package/templates/channels/README.md +18 -0
  425. package/templates/channels/ai-fabrix-icon.jpg +0 -0
  426. package/templates/channels/chatgpt/install.template.md.hbs +21 -24
  427. package/templates/channels/chatgpt/integration/README.md +11 -0
  428. package/templates/channels/chatgpt/integration/application.json +15 -0
  429. package/templates/channels/chatgpt/integration/chatgpt-system.json +29 -0
  430. package/templates/channels/chatgpt/integration/env.template +4 -0
  431. package/templates/channels/microsoft-copilot/install.template.md.hbs +20 -25
  432. package/templates/channels/microsoft-copilot/integration/README.md +11 -0
  433. package/templates/channels/microsoft-copilot/integration/application.json +15 -0
  434. package/templates/channels/microsoft-copilot/integration/env.template +6 -0
  435. package/templates/channels/microsoft-copilot/integration/microsoft-copilot-system.json +34 -0
  436. package/templates/channels/slack/install.template.md.hbs +48 -18
  437. package/templates/channels/slack/integration/README.md +38 -0
  438. package/templates/channels/slack/integration/application.json +18 -0
  439. package/templates/channels/slack/integration/env.template +29 -0
  440. package/templates/channels/slack/integration/slack-datasource-conversations.json +226 -0
  441. package/templates/channels/slack/integration/slack-datasource-messages.json +269 -0
  442. package/templates/channels/slack/integration/slack-system.json +144 -0
  443. package/templates/channels/slack/manifest.template.json.hbs +20 -10
  444. package/templates/channels/teams-bot/install.template.md.hbs +31 -17
  445. package/templates/channels/teams-bot/integration/README.md +18 -0
  446. package/templates/channels/teams-bot/integration/application.json +17 -0
  447. package/templates/channels/teams-bot/integration/env.template +5 -0
  448. package/templates/channels/teams-bot/integration/teams-bot-system.json +55 -0
  449. package/templates/channels/teams-bot/manifest.template.json.hbs +27 -0
  450. package/templates/channels/web-embed/install.template.md.hbs +16 -26
  451. package/templates/channels/web-embed/integration/README.md +11 -0
  452. package/templates/channels/web-embed/integration/application.json +15 -0
  453. package/templates/channels/web-embed/integration/env.template +4 -0
  454. package/templates/channels/web-embed/integration/web-embed-system.json +29 -0
  455. package/templates/openapi/redoc_page.html +86 -0
  456. package/templates/python/docker-compose.hbs +11 -0
  457. package/templates/python/requirements.txt +2 -2
  458. package/templates/typescript/docker-compose.hbs +11 -0
  459. package/lib/certification/cli-cert-sync-skip.js +0 -21
@@ -1,33 +1,30 @@
1
- # {{appName}} — assistant channel install
1
+ # {{appName}} — ChatGPT assistant channel install
2
2
 
3
3
  {{appDescription}}
4
4
 
5
5
  Environment: **{{environment}}** · Credential key: `{{credentialKey}}`
6
6
 
7
- ## Platform callback URLs
7
+ ## Connect ChatGPT workspace (admin)
8
8
 
9
- Configure these in your Slack app, Teams bot registration, or platform admin console. Do not embed secrets in generated files — use AI Fabrix credential storage only.
9
+ 1. Sign in to [OpenAI Platform](https://platform.openai.com/) or your **ChatGPT Enterprise** workspace admin console.
10
+ 2. Create a custom GPT, workspace connector, or MCP integration using the generated manifest from `dist/channels/chatgpt/channel-chatgpt.json`.
11
+ 3. Configure the **OpenAPI specification URL** and **MCP endpoint** from **Platform endpoints** below.
12
+ 4. Complete OAuth or API key setup as required by your ChatGPT deployment model.
13
+ 5. Save the **API key** or **OAuth client credentials** in AI Fabrix: [Authentication settings]({{credentialPortalUrl}})
14
+ 6. Publish the connector to your workspace and complete admin approval if your organization requires it.
10
15
 
11
- {{#if eventsUrl}}
12
- - **Events:** {{eventsUrl}}
13
- {{/if}}
14
- {{#if interactionUrl}}
15
- - **Interactivity:** {{interactionUrl}}
16
- {{/if}}
17
- {{#if commandUrl}}
18
- - **Slash commands:** {{commandUrl}}
19
- {{/if}}
20
- {{#if oauthCallbackUrl}}
21
- - **OAuth redirect:** {{oauthCallbackUrl}}
22
- {{/if}}
23
- {{#if messagesUrl}}
24
- - **Bot messages:** {{messagesUrl}}
16
+ ## Platform endpoints
17
+
18
+ Configure these on the ChatGPT connector / custom GPT. Do not embed secrets in generated files — use AI Fabrix credential storage only.
19
+
20
+ {{#if openapiUrl}}
21
+ - **OpenAPI spec:** {{openapiUrl}}
25
22
  {{/if}}
26
- {{#if notificationsUrl}}
27
- - **Notifications:** {{notificationsUrl}}
23
+ {{#if mcpUrl}}
24
+ - **MCP:** {{mcpUrl}}
28
25
  {{/if}}
29
- {{#if botConfigUrl}}
30
- - **Bot config:** {{botConfigUrl}}
26
+ {{#if actionsBaseUrl}}
27
+ - **Actions base:** {{actionsBaseUrl}}
31
28
  {{/if}}
32
29
 
33
30
  ## Assistant catalog
@@ -36,14 +33,14 @@ Runtime lists **assistants** available to each user from:
36
33
 
37
34
  {{assistantCatalogUrl}}
38
35
 
39
- ## After admin approval
36
+ ## After workspace approval
40
37
 
41
38
  ```bash
42
- aifabrix app add-channel {{channelTarget}} --name "{{baseName}}"
39
+ aifabrix channel add {{channelTarget}} --name "{{baseName}}"
43
40
  ```
44
41
 
45
42
  Optional validation:
46
43
 
47
44
  ```bash
48
- aifabrix app add-channel {{channelTarget}} --name "{{baseName}}" --probe
45
+ aifabrix channel add {{channelTarget}} --name "{{baseName}}" --probe
49
46
  ```
@@ -0,0 +1,11 @@
1
+ # ChatGPT assistant channel (lab fixture)
2
+
3
+ SSOT for `aifabrix channel scaffold chatgpt` templates (`make sync-json` → builder).
4
+
5
+ ```bash
6
+ cd aifabrix-dataplane
7
+ aifabrix validate chatgpt
8
+ aifabrix upload chatgpt --probe
9
+ aifabrix deploy chatgpt
10
+ aifabrix app add-channel chatgpt --name "Your Assistant"
11
+ ```
@@ -0,0 +1,15 @@
1
+ {
2
+ "app": {
3
+ "key": "chatgpt",
4
+ "displayName": "ChatGPT assistant channel",
5
+ "description": "Assistant communication channel — deploy then app add-channel",
6
+ "type": "external"
7
+ },
8
+ "externalIntegration": {
9
+ "schemaBasePath": "./",
10
+ "systems": ["chatgpt-system.json"],
11
+ "dataSources": [],
12
+ "autopublish": true,
13
+ "version": "1.0.0"
14
+ }
15
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "key": "chatgpt",
3
+ "displayName": "ChatGPT assistant channel",
4
+ "description": "Communication external system for ChatGPT assistant channel install",
5
+ "type": "custom",
6
+ "systemKind": "communication",
7
+ "enabled": true,
8
+ "authentication": {
9
+ "authType": "credential",
10
+ "credential": {
11
+ "credentialKey": "chatgpt-channel",
12
+ "displayName": "ChatGPT assistant channel",
13
+ "method": "apikey",
14
+ "writeOnce": true,
15
+ "variables": {
16
+ "baseUrl": "https://api.openai.com/v1"
17
+ },
18
+ "security": {
19
+ "apiKey": "kv://chatgpt/apiKey"
20
+ },
21
+ "formFields": [
22
+ { "name": "apiKey", "required": true }
23
+ ]
24
+ }
25
+ },
26
+ "configuration": [],
27
+ "dataSources": [],
28
+ "endpointsActive": false
29
+ }
@@ -0,0 +1,4 @@
1
+ # ChatGPT assistant channel — lab fixture secrets
2
+ # aifabrix secret set chatgpt/apiKey "<value>" --shared
3
+
4
+ KV_CHATGPT_APIKEY=kv://chatgpt/apiKey
@@ -1,33 +1,28 @@
1
- # {{appName}} — assistant channel install
1
+ # {{appName}} — Microsoft Copilot assistant channel install
2
2
 
3
3
  {{appDescription}}
4
4
 
5
5
  Environment: **{{environment}}** · Credential key: `{{credentialKey}}`
6
6
 
7
- ## Platform callback URLs
7
+ ## Publish the Copilot extension (M365 admin)
8
8
 
9
- Configure these in your Slack app, Teams bot registration, or platform admin console. Do not embed secrets in generated files — use AI Fabrix credential storage only.
9
+ 1. Sign in to [Microsoft 365 admin](https://admin.cloud.microsoft.com/) or **Copilot Studio** as a tenant admin.
10
+ 2. Create or open a Copilot extensibility project (declarative agent or API plugin).
11
+ 3. Import or configure using the generated manifest JSON from `dist/channels/microsoft-copilot/channel-microsoft-copilot.json`.
12
+ 4. Point the **OpenAPI** and **action** endpoints to the URLs in **Platform endpoints** below.
13
+ 5. Register OAuth client credentials for the API provider connection when the platform prompts for them.
14
+ 6. Save the **OAuth client ID** and **client secret** in AI Fabrix: [Authentication settings]({{credentialPortalUrl}})
15
+ 7. Submit for M365 admin approval and publish to your organization when review completes.
10
16
 
11
- {{#if eventsUrl}}
12
- - **Events:** {{eventsUrl}}
13
- {{/if}}
14
- {{#if interactionUrl}}
15
- - **Interactivity:** {{interactionUrl}}
16
- {{/if}}
17
- {{#if commandUrl}}
18
- - **Slash commands:** {{commandUrl}}
19
- {{/if}}
20
- {{#if oauthCallbackUrl}}
21
- - **OAuth redirect:** {{oauthCallbackUrl}}
22
- {{/if}}
23
- {{#if messagesUrl}}
24
- - **Bot messages:** {{messagesUrl}}
25
- {{/if}}
26
- {{#if notificationsUrl}}
27
- - **Notifications:** {{notificationsUrl}}
17
+ ## Platform endpoints
18
+
19
+ Configure these on the Copilot connector / API plugin. Do not embed secrets in generated files — use AI Fabrix credential storage only.
20
+
21
+ {{#if openapiUrl}}
22
+ - **OpenAPI spec:** {{openapiUrl}}
28
23
  {{/if}}
29
- {{#if botConfigUrl}}
30
- - **Bot config:** {{botConfigUrl}}
24
+ {{#if actionsBaseUrl}}
25
+ - **Actions base:** {{actionsBaseUrl}}
31
26
  {{/if}}
32
27
 
33
28
  ## Assistant catalog
@@ -36,14 +31,14 @@ Runtime lists **assistants** available to each user from:
36
31
 
37
32
  {{assistantCatalogUrl}}
38
33
 
39
- ## After admin approval
34
+ ## After M365 admin approval
40
35
 
41
36
  ```bash
42
- aifabrix app add-channel {{channelTarget}} --name "{{baseName}}"
37
+ aifabrix channel add {{channelTarget}} --name "{{baseName}}"
43
38
  ```
44
39
 
45
40
  Optional validation:
46
41
 
47
42
  ```bash
48
- aifabrix app add-channel {{channelTarget}} --name "{{baseName}}" --probe
43
+ aifabrix channel add {{channelTarget}} --name "{{baseName}}" --probe
49
44
  ```
@@ -0,0 +1,11 @@
1
+ # Microsoft Copilot assistant channel (lab fixture)
2
+
3
+ SSOT for `aifabrix channel scaffold microsoft-copilot` templates (`make sync-json` → builder).
4
+
5
+ ```bash
6
+ cd aifabrix-dataplane
7
+ aifabrix validate microsoft-copilot
8
+ aifabrix upload microsoft-copilot --probe
9
+ aifabrix deploy microsoft-copilot
10
+ aifabrix app add-channel microsoft-copilot --name "Your Assistant"
11
+ ```
@@ -0,0 +1,15 @@
1
+ {
2
+ "app": {
3
+ "key": "microsoft-copilot",
4
+ "displayName": "Microsoft Copilot assistant channel",
5
+ "description": "Assistant communication channel — deploy then app add-channel",
6
+ "type": "external"
7
+ },
8
+ "externalIntegration": {
9
+ "schemaBasePath": "./",
10
+ "systems": ["microsoft-copilot-system.json"],
11
+ "dataSources": [],
12
+ "autopublish": true,
13
+ "version": "1.0.0"
14
+ }
15
+ }
@@ -0,0 +1,6 @@
1
+ # Microsoft Copilot assistant channel — lab fixture secrets
2
+ # aifabrix secret set microsoft-copilot/clientId "<value>" --shared
3
+ # aifabrix secret set microsoft-copilot/clientSecret "<value>" --shared
4
+
5
+ KV_MICROSOFT_COPILOT_CLIENTID=kv://microsoft-copilot/clientId
6
+ KV_MICROSOFT_COPILOT_CLIENTSECRET=kv://microsoft-copilot/clientSecret
@@ -0,0 +1,34 @@
1
+ {
2
+ "key": "microsoft-copilot",
3
+ "displayName": "Microsoft Copilot assistant channel",
4
+ "description": "Communication external system for Microsoft Copilot assistant channel install",
5
+ "type": "custom",
6
+ "systemKind": "communication",
7
+ "enabled": true,
8
+ "authentication": {
9
+ "authType": "credential",
10
+ "credential": {
11
+ "credentialKey": "microsoft-copilot-channel",
12
+ "displayName": "Microsoft Copilot assistant channel",
13
+ "method": "oauth2",
14
+ "writeOnce": true,
15
+ "variables": {
16
+ "tokenUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/token",
17
+ "grantType": "client_credentials",
18
+ "scope": "https://graph.microsoft.com/.default",
19
+ "baseUrl": "https://graph.microsoft.com/v1.0"
20
+ },
21
+ "security": {
22
+ "clientId": "kv://microsoft-copilot/clientId",
23
+ "clientSecret": "kv://microsoft-copilot/clientSecret"
24
+ },
25
+ "formFields": [
26
+ { "name": "clientId", "required": true },
27
+ { "name": "clientSecret", "required": true }
28
+ ]
29
+ }
30
+ },
31
+ "configuration": [],
32
+ "dataSources": [],
33
+ "endpointsActive": false
34
+ }
@@ -1,12 +1,27 @@
1
- # {{appName}} — assistant channel install
1
+ # {{appName}} — Slack communication channel install
2
2
 
3
3
  {{appDescription}}
4
4
 
5
- Environment: **{{environment}}** · Credential key: `{{credentialKey}}`
5
+ Environment: **{{environment}}** · Credential key: `{{credentialKey}}` · Command prefix: `{{commandPrefix}}`
6
+
7
+ One Slack app delivers **Role Assistant** chat, **Work hub** shortcuts, and **document approval**.
8
+
9
+ **Chat with your assistant:** DM this app (no slash command for Q&A).
10
+
11
+ ## Create the Slack app (workspace admin)
12
+
13
+ 1. Open [Slack API — Your Apps](https://api.slack.com/apps) and sign in as a workspace admin.
14
+ 2. Click **Create New App** → **From an app manifest**.
15
+ 3. Select your workspace, then paste or upload the generated manifest JSON from `dist/channels/slack/channel-slack.json` (same folder as this file).
16
+ 4. Review callback URLs and OAuth scopes — they must match the values in **Platform callback URLs** below.
17
+ 5. Confirm **App Home → Messages tab** is **ON** in the manifest (required for bot DMs and proactive notifications; slash commands work without it).
18
+ 6. Click **Create**, then open **Install App** → **Install to Workspace** and approve.
19
+ 7. Copy **Bot User OAuth Token** and **Signing Secret** from the Slack app settings.
20
+ 8. Save **Bot User OAuth Token** and **Signing Secret** in AI Fabrix: [Authentication settings]({{credentialPortalUrl}})
6
21
 
7
22
  ## Platform callback URLs
8
23
 
9
- Configure these in your Slack app, Teams bot registration, or platform admin console. Do not embed secrets in generated files — use AI Fabrix credential storage only.
24
+ Configure these in your Slack app if you edit settings manually. Do not embed secrets in generated files — use AI Fabrix credential storage only.
10
25
 
11
26
  {{#if eventsUrl}}
12
27
  - **Events:** {{eventsUrl}}
@@ -17,18 +32,27 @@ Configure these in your Slack app, Teams bot registration, or platform admin con
17
32
  {{#if commandUrl}}
18
33
  - **Slash commands:** {{commandUrl}}
19
34
  {{/if}}
20
- {{#if oauthCallbackUrl}}
21
- - **OAuth redirect:** {{oauthCallbackUrl}}
22
- {{/if}}
23
- {{#if messagesUrl}}
24
- - **Bot messages:** {{messagesUrl}}
25
- {{/if}}
26
- {{#if notificationsUrl}}
27
- - **Notifications:** {{notificationsUrl}}
28
- {{/if}}
29
- {{#if botConfigUrl}}
30
- - **Bot config:** {{botConfigUrl}}
31
- {{/if}}
35
+
36
+ Register these **V1** slash commands in the manifest (all use the same request URL):
37
+
38
+ | Command | Purpose |
39
+ | --- | --- |
40
+ | `/{{commandPrefix}}-help` | Command help and portal links |
41
+ | `/{{commandPrefix}}-assistants` | See your Role Assistants and chat in DM |
42
+ | `/{{commandPrefix}}-tasks` | Tasks waiting for you — View opens the Work hub |
43
+ | `/{{commandPrefix}}-documents [status] [count]` | Documents waiting for review — Open in portal |
44
+
45
+ Single-task and single-document detail, plus approve-in-Slack, are **not** registered in the manifest — use list **View** buttons or the portal for full review.
46
+
47
+ Document review **block actions** use the **Interactivity** URL above.
48
+
49
+ ## Validate after manifest import
50
+
51
+ 1. `/{{commandPrefix}}-help` — returns Block Kit help (proves command is registered and dataplane responds).
52
+ 2. `/{{commandPrefix}}-assistants` — Role Assistant status cards or activation offer.
53
+ 3. `/{{commandPrefix}}-tasks` — waiting-for-me work items (when Work hub is enabled).
54
+ 4. `/{{commandPrefix}}-documents` — document list with **Review in portal** links.
55
+ 5. DM the bot — assistant chat.
32
56
 
33
57
  ## Assistant catalog
34
58
 
@@ -36,14 +60,20 @@ Runtime lists **assistants** available to each user from:
36
60
 
37
61
  {{assistantCatalogUrl}}
38
62
 
39
- ## After admin approval
63
+ ## After Slack install
40
64
 
41
65
  ```bash
42
- aifabrix app add-channel {{channelTarget}} --name "{{baseName}}"
66
+ aifabrix channel add {{channelTarget}} --name "{{baseName}}"
43
67
  ```
44
68
 
45
69
  Optional validation:
46
70
 
47
71
  ```bash
48
- aifabrix app add-channel {{channelTarget}} --name "{{baseName}}" --probe
72
+ aifabrix channel add {{channelTarget}} --name "{{baseName}}" --probe
73
+ ```
74
+
75
+ To use a different slash prefix (default `af`):
76
+
77
+ ```bash
78
+ aifabrix channel add {{channelTarget}} --name "{{baseName}}" --command-prefix <key>
49
79
  ```
@@ -0,0 +1,38 @@
1
+ # Slack communication channel
2
+
3
+ Communication external system for **Role Assistants** (workforce transport) **and document approval** — one Slack app, dual surface (plan 455.2).
4
+
5
+ ## What this integration is
6
+
7
+ - Slack app manifest install (`channel-slack.json` via `aifabrix channel add slack`)
8
+ - **Workforce:** slash commands (`/assistants`, `/tasks`, `/task`), Events API (DM chat), interactive components
9
+ - **Document approval:** slash commands (`/documents`, `/document`, `/approve`, `/help`), review card block actions, proactive notifications
10
+ - **Command SSOT:** `templates/slack/command_catalog.yaml` + Block Kit JSON under `templates/slack/`; optional install prefix (default `af`) registers `/af-*` aliases
11
+ - Outbound CIP: `slack-messages`, `slack-conversations` (workforce replies, DMs, and approval notifications)
12
+
13
+ ## What this integration is not
14
+
15
+ - **Not** channel listing / user directory sync (`slack-channels`, `slack-users` are out of scope for this scaffold).
16
+
17
+ ## Endpoints
18
+
19
+ Registered at `/api/v1/external/systems/slack/`:
20
+
21
+ | Path | Purpose |
22
+ | --- | --- |
23
+ | `/commands` | Slash commands (workforce + document approval) |
24
+ | `/events` | Events API |
25
+ | `/interactive` | Block actions (approve, reject, metadata) |
26
+ | `/notifications` | Proactive messages |
27
+ | `/documents` | Document review Block Kit payload |
28
+ | `/bot-config` | Bot configuration |
29
+
30
+ ## Workflow
31
+
32
+ ```bash
33
+ aifabrix channel scaffold slack # or use this folder as SSOT
34
+ aifabrix upload slack --force
35
+ aifabrix channel add slack --name "Your Assistant"
36
+ ```
37
+
38
+ Publish template changes: `make sync-json` in dataplane → `aifabrix-builder/templates/channels/slack/integration/`.
@@ -0,0 +1,18 @@
1
+ {
2
+ "app": {
3
+ "key": "slack",
4
+ "displayName": "slack assistant channel",
5
+ "description": "Assistant communication channel — upload then channel add",
6
+ "type": "external"
7
+ },
8
+ "externalIntegration": {
9
+ "schemaBasePath": "./",
10
+ "systems": ["slack-system.json"],
11
+ "dataSources": [
12
+ "slack-datasource-messages.json",
13
+ "slack-datasource-conversations.json"
14
+ ],
15
+ "autopublish": true,
16
+ "version": "1.0.0"
17
+ }
18
+ }
@@ -0,0 +1,29 @@
1
+ # Slack assistant channel (communication) — lab fixture secrets
2
+ # Copy to integration/slack/.env (or use aifabrix secret set --shared) before deploy/upload.
3
+ #
4
+ # Manifest: integration/slack/slack-system.json
5
+ # Credential key: slack-app (method hmac)
6
+ #
7
+ # Resolution order at deploy: dataplane secret store (POST /api/v1/credential/secret)
8
+ # then KV_* env fallback in the dataplane container.
9
+ #
10
+ # In .env set plain values (not kv:// literals), e.g.:
11
+ # KV_SLACK_SIGNINGSECRET=<Signing Secret from Slack app Basic Information>
12
+ # KV_SLACK_BOTTOKEN=xoxb-<Bot User OAuth Token from OAuth & Permissions>
13
+ # (NOT xapp- app-level tokens — bot tokens always start with xoxb-)
14
+ # Optional OAuth client secret (not required for webhook + bot outbound smoke):
15
+ # KV_SLACK_CLIENTSECRET=<Client Secret>
16
+ #
17
+ # Shared secrets (Builder CLI, keys without kv:// prefix):
18
+ # aifabrix secret set slack/signingSecret "<value>" --shared
19
+ # aifabrix secret set slack/botToken "xoxb-..." --shared
20
+ # aifabrix secret set slack/clientSecret "<value>" --shared
21
+
22
+ # Required — webhook signature verification (438.3 inbound)
23
+ KV_SLACK_SIGNINGSECRET=kv://slack/signingSecret
24
+
25
+ # Required — outbound Slack Web API (post message, etc.)
26
+ KV_SLACK_BOTTOKEN=kv://slack/botToken
27
+
28
+ # Optional — OAuth app client secret
29
+ KV_SLACK_CLIENTSECRET=kv://slack/clientSecret