@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.
- package/.cursor/plans/157.1-security-quality-violations-by-type.csv +374 -0
- package/.cursor/rules/assistant-driven-integration-build.mdc +40 -0
- package/.cursor/rules/deploy-rules/docker-image-ip-policy.mdc +49 -0
- package/.cursor/rules/plan-rules/application-lifecycle.mdc +30 -0
- package/.cursor/rules/plan-rules/plan-frontmatter.mdc +35 -0
- package/.cursor/rules/plan-rules/plan-lifecycle.mdc +31 -0
- package/.cursor/rules/plan-rules/plan-validation-gate.mdc +34 -0
- package/.cursor/skills/README.md +1 -0
- package/.dockerignore +52 -0
- package/.eslintignore +22 -0
- package/README.md +2 -0
- package/bin/builder-api-cleanup.js +26 -0
- package/bin/builder-api-nest.js +10 -0
- package/bin/builder-api-spike.js +19 -0
- package/enterprise-knowledge/README.md +50 -0
- package/enterprise-knowledge/enterprise-integration-lifecycle/README.md +22 -0
- package/enterprise-knowledge/enterprise-integration-lifecycle/application.json +15 -0
- package/enterprise-knowledge/enterprise-integration-lifecycle/deploy.js +69 -0
- package/enterprise-knowledge/enterprise-integration-lifecycle/enterprise-integration-lifecycle-deploy.json +52 -0
- package/enterprise-knowledge/enterprise-integration-lifecycle/enterprise-integration-lifecycle-system.json +29 -0
- package/enterprise-knowledge/enterprise-integration-lifecycle/env.template +2 -0
- package/integration/README.md +81 -0
- package/integration/github/README.md +53 -0
- package/integration/github/application.json +21 -0
- package/integration/github/deploy.js +72 -0
- package/integration/github/env.template +11 -0
- package/integration/github/github-datasource-issue-comments.json +239 -0
- package/integration/github/github-datasource-issues.json +399 -0
- package/integration/github/github-datasource-repository.json +354 -0
- package/integration/github/github-deploy.json +1202 -0
- package/integration/github/github-system.json +82 -0
- package/integration/hubspot-test/README.md +1 -1
- package/integration/hubspot-test/create-hubspot.js +1 -16
- package/jest.isolated-projects.js +31 -1
- package/jest.projects.js +87 -1
- package/lib/api/dev-server-https.js +1 -1
- package/lib/api/enterprise-knowledge.api.js +63 -0
- package/lib/api/evidence-kinds.api.js +128 -0
- package/lib/api/evidence.api.js +172 -0
- package/lib/api/external-systems.api.js +8 -2
- package/lib/api/pipeline.api.js +5 -1
- package/lib/api/resource-types.api.js +5 -4
- package/lib/api/roles.api.js +121 -0
- package/lib/api/types/enterprise-knowledge.types.js +46 -0
- package/lib/api/types/evidence-kinds.types.js +42 -0
- package/lib/api/types/evidence.types.js +67 -0
- package/lib/api/types/resource-types.types.js +2 -0
- package/lib/api/types/roles.types.js +36 -0
- package/lib/app/certification-verify-rows.js +1 -1
- package/lib/app/controller-application-filter.js +36 -0
- package/lib/app/deploy.js +1 -1
- package/lib/app/list-external-systems.js +130 -0
- package/lib/app/list.js +20 -8
- package/lib/app/run.js +3 -1
- package/lib/app/show-display.js +8 -3
- package/lib/app/show-online.js +178 -0
- package/lib/app/show.js +39 -90
- package/lib/build/builder-api-docker-staging.js +47 -0
- package/lib/build/miso-controller-npm-sdk-guard.js +2 -2
- package/lib/build/standard-docker-build.js +2 -0
- package/lib/certification/merge-certification-from-artifact.js +1 -1
- package/lib/certification/post-unified-cert-sync.js +4 -31
- package/lib/certification/sync-after-external-command.js +0 -1
- package/lib/certification/sync-system-certification.js +0 -3
- package/lib/channels/add-channel.js +40 -34
- package/lib/channels/approval-guides/chatgpt.js +33 -0
- package/lib/channels/approval-guides/credential-portal.js +38 -0
- package/lib/channels/approval-guides/index.js +110 -0
- package/lib/channels/approval-guides/microsoft-copilot.js +34 -0
- package/lib/channels/approval-guides/slack.js +34 -0
- package/lib/channels/approval-guides/teams-bot.js +35 -0
- package/lib/channels/approval-guides/web-embed.js +32 -0
- package/lib/channels/channel-approval-guide.js +11 -0
- package/lib/channels/channel-artifact-generator.js +18 -5
- package/lib/channels/channel-audit.js +3 -0
- package/lib/channels/channel-auth-context.js +1 -1
- package/lib/channels/channel-description.js +59 -0
- package/lib/channels/channel-integration-generator.js +13 -230
- package/lib/channels/channel-integration-template.js +94 -0
- package/lib/channels/channel-runtime-resolver.js +43 -3
- package/lib/channels/channel-status-display.js +66 -26
- package/lib/channels/channel-targets.js +3 -3
- package/lib/cli/index.js +31 -3
- package/lib/cli/infra-guided.js +5 -1
- package/lib/cli/setup-app-external-create.js +111 -0
- package/lib/cli/setup-app.help.js +1 -1
- package/lib/cli/setup-app.js +60 -130
- package/lib/cli/setup-app.test-commands.js +26 -52
- package/lib/cli/setup-certification-commands.js +4 -4
- package/lib/cli/setup-certification.help.js +9 -9
- package/lib/cli/setup-dev.js +30 -9
- package/lib/cli/setup-external-system-help.js +4 -6
- package/lib/cli/setup-external-system.js +58 -52
- package/lib/cli/setup-infra-up-builder-api-action.js +64 -0
- package/lib/cli/setup-infra-up-platform-action.js +3 -1
- package/lib/cli/setup-infra.js +15 -0
- package/lib/cli/setup-list.js +43 -0
- package/lib/cli/setup-utility-help-after.js +12 -0
- package/lib/cli/setup-utility-repair.js +26 -7
- package/lib/cli/setup-utility-validate.js +41 -2
- package/lib/cli/setup-utility.js +5 -3
- package/lib/commands/app.js +15 -43
- package/lib/commands/channel-add-setup.js +110 -0
- package/lib/commands/channel.js +42 -8
- package/lib/commands/datasource-sync-display.js +96 -0
- package/lib/commands/datasource-sync-policy.js +210 -0
- package/lib/commands/datasource-test-trust-cli.js +6 -6
- package/lib/commands/datasource-unified-test-cli.js +2 -1
- package/lib/commands/datasource-unified-test-cli.options.js +33 -23
- package/lib/commands/deploy-gate-failure-details.js +184 -0
- package/lib/commands/deploy-gate-orchestrator.js +368 -0
- package/lib/commands/dev-cli-handlers.js +7 -62
- package/lib/commands/dev-host-ops-params.js +91 -0
- package/lib/commands/dev-host-ops-poll.js +111 -0
- package/lib/commands/dev-host-ops.js +107 -94
- package/lib/commands/dev-init.js +6 -106
- package/lib/commands/dev-refresh.js +197 -0
- package/lib/commands/enterprise-knowledge.js +284 -0
- package/lib/commands/evidence-cli-leaves.js +250 -0
- package/lib/commands/evidence-kind.js +428 -0
- package/lib/commands/evidence.js +51 -0
- package/lib/commands/governance-cli-shared.js +2 -2
- package/lib/commands/governance-command-action.js +5 -3
- package/lib/commands/governance-fixture-subjects.js +85 -0
- package/lib/commands/governance.js +1 -1
- package/lib/commands/lifecycle-command-action.js +2 -2
- package/lib/commands/lifecycle-external.js +3 -3
- package/lib/commands/manifest-cli-auth.js +29 -0
- package/lib/commands/manifest-cli-commands.js +170 -0
- package/lib/commands/manifest-cli-integration-path.js +63 -0
- package/lib/commands/manifest.js +21 -0
- package/lib/commands/protection-cli-leaves.js +3 -3
- package/lib/commands/repair-auth-apply.js +15 -1
- package/lib/commands/repair-authentications-454.js +169 -0
- package/lib/commands/repair-capability-openapi-warnings.js +126 -0
- package/lib/commands/repair-datasource-apply.js +135 -0
- package/lib/commands/repair-datasource-auto-rbac.js +62 -1
- package/lib/commands/repair-datasource-http-service-contract.js +239 -0
- package/lib/commands/repair-datasource-operation-security.js +180 -0
- package/lib/commands/repair-datasource-run.js +7 -2
- package/lib/commands/repair-datasource-sync-operations.js +177 -0
- package/lib/commands/repair-datasource-webhooks-sync-bridge.js +133 -0
- package/lib/commands/repair-datasource.js +12 -68
- package/lib/commands/repair-env-template.js +11 -1
- package/lib/commands/repair-external-run.js +121 -31
- package/lib/commands/repair-internal.js +1 -1
- package/lib/commands/repair-openapi-export.js +156 -0
- package/lib/commands/repair-openapi-sync.js +33 -8
- package/lib/commands/repair-orchestration-datasource-split.js +259 -0
- package/lib/commands/repair-persist.js +22 -1
- package/lib/commands/repair-rbac-platform-preset.js +204 -0
- package/lib/commands/repair-rbac-reader-roles.js +191 -0
- package/lib/commands/repair-rbac.js +163 -86
- package/lib/commands/repair-steps.js +83 -18
- package/lib/commands/repair-system-permissions.js +1 -0
- package/lib/commands/repair.js +1 -1
- package/lib/commands/resource-type.js +166 -44
- package/lib/commands/role.js +452 -0
- package/lib/commands/run-post-publish-data-sync.js +68 -0
- package/lib/commands/setup-modes.js +1 -1
- package/lib/commands/setup.js +1 -1
- package/lib/commands/test-e2e-external.js +21 -8
- package/lib/commands/test-governance-cli-options.js +2 -2
- package/lib/commands/test-trust-cli-options.js +2 -2
- package/lib/commands/up-builder-api-bootstrap.js +71 -0
- package/lib/commands/up-builder-api-provision.js +241 -0
- package/lib/commands/up-builder-api.js +88 -0
- package/lib/commands/up-common.js +25 -1
- package/lib/commands/upload-credential-push-log.js +117 -0
- package/lib/commands/upload-data-sync-finalize.js +60 -0
- package/lib/commands/upload-probe.js +66 -0
- package/lib/commands/upload-publish-context.js +4 -1
- package/lib/commands/upload-sidecar-followups.js +55 -27
- package/lib/commands/upload.js +116 -157
- package/lib/commands/validate-json.js +230 -0
- package/lib/commands/verify-governance-combined-external.js +1 -1
- package/lib/commands/verify-governance-db.js +2 -2
- package/lib/commands/verify-operations-command-action.js +2 -2
- package/lib/commands/verify-operations-step-plan.js +79 -41
- package/lib/commands/verify-operations-steps.js +2 -2
- package/lib/commands/verify-trust-command-action.js +1 -1
- package/lib/commands/wizard-core.js +1 -1
- package/lib/commands/wizard-headless.js +2 -1
- package/lib/core/admin-secrets.js +2 -6
- package/lib/core/audit-logger.js +1 -1
- package/lib/core/secrets-env-content.js +10 -4
- package/lib/core/secrets-env-write.js +2 -13
- package/lib/core/secrets-load.js +1 -3
- package/lib/datasource/agent-trust-run.js +3 -3
- package/lib/datasource/capability/relate-operations.js +1 -1
- package/lib/datasource/deploy.js +3 -1
- package/lib/datasource/test-e2e.js +6 -1
- package/lib/datasource/unified-validation-run-body.js +4 -1
- package/lib/datasource/unified-validation-run.js +1 -1
- package/lib/deployment/deploy-poll-ui.js +73 -12
- package/lib/deployment/deployer-poll-run.js +113 -0
- package/lib/deployment/deployer.js +17 -87
- package/lib/evidence/dataplane-context.js +21 -0
- package/lib/evidence/evidence-display.js +78 -0
- package/lib/evidence/evidence-service.js +392 -0
- package/lib/external-system/deploy.js +290 -112
- package/lib/external-system/download.js +7 -3
- package/lib/external-system/test-execution.js +1 -1
- package/lib/external-system/test-system-level.js +8 -10
- package/lib/external-system/test.js +12 -6
- package/lib/generator/deploy-script.js +73 -0
- package/lib/generator/external.js +2 -1
- package/lib/generator/helpers.js +13 -5
- package/lib/generator/index.js +17 -2
- package/lib/generator/split-variables.js +9 -3
- package/lib/generator/wizard.js +3 -36
- package/lib/infrastructure/helpers-docker-check.js +6 -0
- package/lib/infrastructure/helpers.js +1 -1
- package/lib/internal/fs-real-sync.js +22 -1
- package/lib/internal/node-fs.js +2 -0
- package/lib/lifecycle/lifecycle-governance-options.js +1 -1
- package/lib/lifecycle/verify-step-progress.js +1 -1
- package/lib/programmatic/access-log.js +26 -0
- package/lib/programmatic/auth-config.js +45 -0
- package/lib/programmatic/bearer-auth.js +176 -0
- package/lib/programmatic/builder-api-request.js +175 -0
- package/lib/programmatic/builder-api-route-dispatch.js +82 -0
- package/lib/programmatic/builder-api-runtime-config.js +42 -0
- package/lib/programmatic/builder-api-server.js +230 -0
- package/lib/programmatic/builder-help-authentication-catalog.js +282 -0
- package/lib/programmatic/builder-help-connected-system-ui.js +266 -0
- package/lib/programmatic/builder-help-enterprise-sync-fabrix.js +60 -0
- package/lib/programmatic/builder-help-envelope.js +36 -0
- package/lib/programmatic/builder-help-fixtures.js +200 -0
- package/lib/programmatic/builder-help-governance.js +172 -0
- package/lib/programmatic/builder-help-schema-catalog.js +92 -0
- package/lib/programmatic/builder-help.js +361 -0
- package/lib/programmatic/capability-registry.js +77 -0
- package/lib/programmatic/command-options.js +32 -0
- package/lib/programmatic/enterprise-mcp-client.js +114 -0
- package/lib/programmatic/http-problem-details.js +99 -0
- package/lib/programmatic/http-route-match.js +40 -0
- package/lib/programmatic/idempotency-cache.js +69 -0
- package/lib/programmatic/index.js +53 -0
- package/lib/programmatic/integration-path-scope.js +39 -0
- package/lib/programmatic/log-redaction.js +66 -0
- package/lib/programmatic/manifest-get-section.js +146 -0
- package/lib/programmatic/manifest-patch-section.js +252 -0
- package/lib/programmatic/manifest-repair.js +122 -0
- package/lib/programmatic/manifest-section-dependency-graph.js +160 -0
- package/lib/programmatic/manifest-section-io.js +225 -0
- package/lib/programmatic/manifest-section-quality.js +171 -0
- package/lib/programmatic/manifest-section-registry-data.js +269 -0
- package/lib/programmatic/manifest-section-registry.js +222 -0
- package/lib/programmatic/nest-http-bridge.js +34 -0
- package/lib/programmatic/openapi-component-schemas.js +68 -0
- package/lib/programmatic/openapi-description-enricher.js +117 -0
- package/lib/programmatic/openapi-descriptions.js +190 -0
- package/lib/programmatic/openapi-docs-serving.js +123 -0
- package/lib/programmatic/openapi-help-schemas.js +63 -0
- package/lib/programmatic/openapi-manifest-schemas.js +141 -0
- package/lib/programmatic/openapi-operation-bindings.js +274 -0
- package/lib/programmatic/openapi-request-schemas.js +155 -0
- package/lib/programmatic/openapi-result-schemas.js +493 -0
- package/lib/programmatic/openapi-schema-descriptions-certify.js +139 -0
- package/lib/programmatic/openapi-schema-descriptions-core.js +162 -0
- package/lib/programmatic/openapi-schema-descriptions-help.js +40 -0
- package/lib/programmatic/openapi-schema-descriptions-manifest.js +143 -0
- package/lib/programmatic/openapi-schema-descriptions-mcp.js +118 -0
- package/lib/programmatic/openapi-schema-descriptions-operations.js +281 -0
- package/lib/programmatic/openapi-schema-helpers.js +108 -0
- package/lib/programmatic/openapi-spec.js +203 -0
- package/lib/programmatic/orchestration-openapi-meta.js +159 -0
- package/lib/programmatic/platform-rbac-catalog.js +90 -0
- package/lib/programmatic/request-timeout.js +53 -0
- package/lib/programmatic/route-handler-map.js +143 -0
- package/lib/programmatic/route-handlers-context.js +29 -0
- package/lib/programmatic/route-handlers.js +33 -0
- package/lib/programmatic/run-certify.js +57 -0
- package/lib/programmatic/run-enterprise-mcp.js +32 -0
- package/lib/programmatic/run-lifecycle.js +29 -0
- package/lib/programmatic/run-repair.js +41 -0
- package/lib/programmatic/run-repository-emcp.js +62 -0
- package/lib/programmatic/run-template-workspace.js +74 -0
- package/lib/programmatic/run-test.js +49 -0
- package/lib/programmatic/run-upload.js +63 -0
- package/lib/programmatic/run-validate.js +53 -0
- package/lib/programmatic/run-wizard.js +40 -0
- package/lib/programmatic/system-key.js +48 -0
- package/lib/programmatic/wizard-config-normalize.js +118 -0
- package/lib/programmatic/workspace-cleanup.js +128 -0
- package/lib/programmatic/workspace-context.js +145 -0
- package/lib/programmatic/workspace-lock.js +75 -0
- package/lib/programmatic/workspace-meta.js +64 -0
- package/lib/programmatic/workspace-ops.js +149 -0
- package/lib/protection/run-commands-upload-sync.js +35 -0
- package/lib/protection/run-commands.js +2 -20
- package/lib/protection/upload-batch.js +11 -7
- package/lib/resolvers/evidence-kind-file.js +230 -0
- package/lib/resolvers/resource-type-file.js +58 -1
- package/lib/resolvers/role-file.js +227 -0
- package/lib/schema/application-schema.json +22 -2
- package/lib/schema/external-datasource.schema.json +245 -2
- package/lib/schema/external-system.schema.json +259 -119
- package/lib/schema/flag-map-validation-run.json +3 -0
- package/lib/schema/infra.parameter.yaml +25 -1
- package/lib/schema/type/credential-field-registry.json +21 -5
- package/lib/schema/type/document-storage.json +9 -0
- package/lib/utils/agent-trust-run-display.js +1 -1
- package/lib/utils/api.js +8 -2
- package/lib/utils/app-path-resolve.js +168 -0
- package/lib/utils/app-register-config.js +4 -3
- package/lib/utils/authentication-env-template.js +222 -0
- package/lib/utils/cli-sync-options.js +62 -10
- package/lib/utils/cli-utils.js +15 -3
- package/lib/utils/cli-workspace-options.js +29 -0
- package/lib/utils/compose-generate-docker-compose.js +102 -0
- package/lib/utils/configuration-env-resolver.js +203 -27
- package/lib/utils/datasource-test-run-certificate-tty.js +28 -2
- package/lib/utils/datasource-test-run-certification-debug.js +130 -0
- package/lib/utils/datasource-test-run-debug-display.js +2 -0
- package/lib/utils/datasource-test-run-debug-slice.js +7 -0
- package/lib/utils/datasource-test-run-display.js +2 -1
- package/lib/utils/dev-ca-install.js +5 -6
- package/lib/utils/dev-config.js +2 -2
- package/lib/utils/dev-init-ssh-merge.js +165 -23
- package/lib/utils/dev-list-sort.js +145 -0
- package/lib/utils/dev-pin-share-instructions.js +110 -0
- package/lib/utils/dev-platform-tls.js +0 -63
- package/lib/utils/dev-ssh-config-helper.js +177 -33
- package/lib/utils/docker-build.js +46 -27
- package/lib/utils/docker-daemon-tls-ca.js +1 -1
- package/lib/utils/docker-exec.js +91 -6
- package/lib/utils/enterprise-knowledge-paths.js +142 -0
- package/lib/utils/env-copy.js +3 -4
- package/lib/utils/env-dotenv-format.js +103 -0
- package/lib/utils/error-formatters/error-parser.js +0 -3
- package/lib/utils/external-env-template.js +5 -2
- package/lib/utils/external-system-display.js +5 -1
- package/lib/utils/external-system-readiness-compact-blocks.js +248 -0
- package/lib/utils/external-system-readiness-compact-display.js +324 -0
- package/lib/utils/external-system-readiness-core.js +16 -0
- package/lib/utils/external-system-readiness-deploy-display.js +29 -11
- package/lib/utils/external-system-readiness-display-internals.js +3 -1
- package/lib/utils/external-system-readiness-display.js +20 -30
- package/lib/utils/external-system-system-test-tty-certification.js +135 -0
- package/lib/utils/external-system-system-test-tty.js +5 -41
- package/lib/utils/health-check-request.js +2 -3
- package/lib/utils/help-builder.js +9 -1
- package/lib/utils/host-ops-job-labels.js +236 -0
- package/lib/utils/host-ops-job-result.js +61 -0
- package/lib/utils/host-ops-poll-ui.js +163 -0
- package/lib/utils/image-name.js +22 -4
- package/lib/utils/integration-path-resolve.js +112 -0
- package/lib/utils/logger.js +37 -4
- package/lib/utils/manifest-source-emit.js +1 -1
- package/lib/utils/paths-reload-source.js +148 -0
- package/lib/utils/paths-system-builder-keys.js +25 -0
- package/lib/utils/paths.js +183 -30
- package/lib/utils/pipeline-upload-auth-retry.js +4 -0
- package/lib/utils/postgres-platform-bootstrap.js +24 -17
- package/lib/utils/postgres-wipe.js +5 -2
- package/lib/utils/remote-dev-auth.js +39 -4
- package/lib/utils/resolve-docker-image-ref.js +36 -6
- package/lib/utils/runtime-configuration-values.js +64 -2
- package/lib/utils/secrets-helpers.js +5 -1
- package/lib/utils/ssh-known-hosts.js +130 -0
- package/lib/utils/test-target-cli-options.js +75 -0
- package/lib/utils/token-manager.js +16 -0
- package/lib/utils/upload-sync-options.js +20 -2
- package/lib/utils/validation-run-request.js +11 -2
- package/lib/validation/external-manifest-validator.js +11 -1
- package/lib/validation/openapi-contract-surface-validator.js +430 -0
- package/lib/validation/openapi-contract-vendor-validation.js +238 -0
- package/lib/validation/validate-external-file.js +160 -0
- package/lib/validation/validate.js +6 -117
- package/lib/validation/validator.js +6 -5
- package/package.json +76 -37
- package/packages/builder-api/README.md +120 -0
- package/packages/builder-api/package.json +30 -0
- package/packages/builder-api/src/app.module.ts +7 -0
- package/packages/builder-api/src/auth/auth.module.ts +5 -0
- package/packages/builder-api/src/external-system/external-system.module.ts +5 -0
- package/packages/builder-api/src/main.ts +16 -0
- package/packages/builder-api/tsconfig.json +15 -0
- package/scripts/check-builder-api-architecture-grep.js +79 -0
- package/scripts/docker_image_content_gate.js +47 -0
- package/scripts/docker_image_content_gate.sh +5 -0
- package/scripts/export-builder-api-evidence.js +262 -0
- package/scripts/lib/builder-api-docker-staging-copy.js +60 -0
- package/scripts/lib/builder-api-docker-staging-core.js +183 -0
- package/scripts/lib/docker-image-content-gate-core.js +166 -0
- package/scripts/lib/plan-actor.js +109 -0
- package/scripts/lib/plan-config.js +20 -0
- package/scripts/lib/plan-gates.js +154 -0
- package/scripts/lib/plan-meta.js +104 -0
- package/scripts/lib/plan-parse.js +162 -0
- package/scripts/lib/plan-prevalidate-gates.js +337 -0
- package/scripts/lib/plan-run-core.js +125 -0
- package/scripts/lib/plan-run-report.js +119 -0
- package/scripts/plan-approve.js +24 -0
- package/scripts/plan-archive.js +49 -0
- package/scripts/plan-run.js +13 -0
- package/scripts/plan-set-actor.js +21 -0
- package/scripts/plan-validate.js +80 -0
- package/scripts/pnpm/af.mjs +110 -0
- package/scripts/pnpm/check-quiet.mjs +32 -0
- package/scripts/pnpm/dev-install.mjs +29 -0
- package/scripts/pnpm/dev-reload.mjs +18 -0
- package/scripts/pnpm/help.mjs +55 -0
- package/scripts/pnpm/lib/dev-reload-core.mjs +189 -0
- package/scripts/pnpm/lib/dev-reload-log-capture.mjs +67 -0
- package/scripts/pnpm/lib/dev-reload-log-utils.mjs +32 -0
- package/scripts/pnpm/lib/resolve-aifabrix-bin.mjs +124 -0
- package/scripts/pnpm/lib/resolve-app-url.mjs +183 -0
- package/scripts/pnpm/lib/spinner.mjs +42 -0
- package/scripts/stage_builder_api_for_docker.js +65 -0
- package/scripts/sync-builder-api-template.js +44 -0
- package/templates/README.md +3 -0
- package/templates/applications/builder-api/Dockerfile +38 -0
- package/templates/applications/builder-api/application.yaml +75 -0
- package/templates/applications/builder-api/env.template +48 -0
- package/templates/applications/dataplane/application.yaml +27 -5
- package/templates/applications/dataplane/env.template +38 -15
- package/templates/applications/dataplane/rbac.yaml +85 -3
- package/templates/applications/miso-controller/application.yaml +10 -1
- package/templates/applications/miso-controller/env.template +11 -10
- package/templates/applications/miso-controller/rbac.yaml +72 -0
- package/templates/channels/README.md +18 -0
- package/templates/channels/ai-fabrix-icon.jpg +0 -0
- package/templates/channels/chatgpt/install.template.md.hbs +21 -24
- package/templates/channels/chatgpt/integration/README.md +11 -0
- package/templates/channels/chatgpt/integration/application.json +15 -0
- package/templates/channels/chatgpt/integration/chatgpt-system.json +29 -0
- package/templates/channels/chatgpt/integration/env.template +4 -0
- package/templates/channels/microsoft-copilot/install.template.md.hbs +20 -25
- package/templates/channels/microsoft-copilot/integration/README.md +11 -0
- package/templates/channels/microsoft-copilot/integration/application.json +15 -0
- package/templates/channels/microsoft-copilot/integration/env.template +6 -0
- package/templates/channels/microsoft-copilot/integration/microsoft-copilot-system.json +34 -0
- package/templates/channels/slack/install.template.md.hbs +48 -18
- package/templates/channels/slack/integration/README.md +38 -0
- package/templates/channels/slack/integration/application.json +18 -0
- package/templates/channels/slack/integration/env.template +29 -0
- package/templates/channels/slack/integration/slack-datasource-conversations.json +226 -0
- package/templates/channels/slack/integration/slack-datasource-messages.json +269 -0
- package/templates/channels/slack/integration/slack-system.json +144 -0
- package/templates/channels/slack/manifest.template.json.hbs +20 -10
- package/templates/channels/teams-bot/install.template.md.hbs +31 -17
- package/templates/channels/teams-bot/integration/README.md +18 -0
- package/templates/channels/teams-bot/integration/application.json +17 -0
- package/templates/channels/teams-bot/integration/env.template +5 -0
- package/templates/channels/teams-bot/integration/teams-bot-system.json +55 -0
- package/templates/channels/teams-bot/manifest.template.json.hbs +27 -0
- package/templates/channels/web-embed/install.template.md.hbs +16 -26
- package/templates/channels/web-embed/integration/README.md +11 -0
- package/templates/channels/web-embed/integration/application.json +15 -0
- package/templates/channels/web-embed/integration/env.template +4 -0
- package/templates/channels/web-embed/integration/web-embed-system.json +29 -0
- package/templates/openapi/redoc_page.html +86 -0
- package/templates/python/docker-compose.hbs +11 -0
- package/templates/python/requirements.txt +2 -2
- package/templates/typescript/docker-compose.hbs +11 -0
- 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
|
-
##
|
|
7
|
+
## Connect ChatGPT workspace (admin)
|
|
8
8
|
|
|
9
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
{{
|
|
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
|
|
27
|
-
- **
|
|
23
|
+
{{#if mcpUrl}}
|
|
24
|
+
- **MCP:** {{mcpUrl}}
|
|
28
25
|
{{/if}}
|
|
29
|
-
{{#if
|
|
30
|
-
- **
|
|
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
|
|
36
|
+
## After workspace approval
|
|
40
37
|
|
|
41
38
|
```bash
|
|
42
|
-
aifabrix
|
|
39
|
+
aifabrix channel add {{channelTarget}} --name "{{baseName}}"
|
|
43
40
|
```
|
|
44
41
|
|
|
45
42
|
Optional validation:
|
|
46
43
|
|
|
47
44
|
```bash
|
|
48
|
-
aifabrix
|
|
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
|
+
}
|
|
@@ -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
|
-
##
|
|
7
|
+
## Publish the Copilot extension (M365 admin)
|
|
8
8
|
|
|
9
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
{{
|
|
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
|
|
30
|
-
- **
|
|
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
|
|
37
|
+
aifabrix channel add {{channelTarget}} --name "{{baseName}}"
|
|
43
38
|
```
|
|
44
39
|
|
|
45
40
|
Optional validation:
|
|
46
41
|
|
|
47
42
|
```bash
|
|
48
|
-
aifabrix
|
|
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}} —
|
|
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
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
{{
|
|
26
|
-
{{
|
|
27
|
-
|
|
28
|
-
{{
|
|
29
|
-
|
|
30
|
-
- **
|
|
31
|
-
|
|
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
|
|
63
|
+
## After Slack install
|
|
40
64
|
|
|
41
65
|
```bash
|
|
42
|
-
aifabrix
|
|
66
|
+
aifabrix channel add {{channelTarget}} --name "{{baseName}}"
|
|
43
67
|
```
|
|
44
68
|
|
|
45
69
|
Optional validation:
|
|
46
70
|
|
|
47
71
|
```bash
|
|
48
|
-
aifabrix
|
|
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
|