@aifabrix/builder 2.53.1 → 2.55.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/README.md +8 -0
- package/bin/aifabrix.js +2 -2
- package/lib/agent-kit/apply-ops.js +82 -0
- package/lib/agent-kit/checksums.js +28 -0
- package/lib/agent-kit/classify.js +113 -0
- package/lib/agent-kit/claude-shim.js +61 -0
- package/lib/agent-kit/constants.js +55 -0
- package/lib/agent-kit/file-list.js +103 -0
- package/lib/agent-kit/host-approve.js +130 -0
- package/lib/agent-kit/hosting/github.js +63 -0
- package/lib/agent-kit/hosts.js +71 -0
- package/lib/agent-kit/init.js +319 -0
- package/lib/agent-kit/kit-root.js +17 -0
- package/lib/agent-kit/managed-section.js +79 -0
- package/lib/agent-kit/package-load.js +45 -0
- package/lib/agent-kit/plan-ops.js +69 -0
- package/lib/agent-kit/remote-prompts.js +239 -0
- package/lib/agent-kit/render-host-markdown.js +40 -0
- package/lib/agent-kit/repo-guard.js +47 -0
- package/lib/agent-kit/report.js +107 -0
- package/lib/agent-kit/run.js +82 -0
- package/lib/agent-kit/scm/git.js +122 -0
- package/lib/agent-kit/state-file.js +83 -0
- package/lib/agent-kit/status.js +50 -0
- package/lib/agent-kit/v1-detect.js +81 -0
- package/lib/agent-kit/validate-kit.js +87 -0
- package/lib/agent-kit/workspace-name.js +40 -0
- package/lib/agent-kit/workspace-skeleton.js +103 -0
- package/lib/api/assistants.api.js +8 -5
- package/lib/api/channel-identity.api.js +41 -0
- package/lib/api/evidence-authoring.api.js +5 -1
- package/lib/api/evidence.api.js +2 -0
- package/lib/api/role-assistant-test-pack.api.js +86 -0
- package/lib/api/types/evidence.types.js +2 -0
- package/lib/api/work-search.api.js +163 -0
- package/lib/api/work.api.js +19 -12
- package/lib/app/list-external-systems.js +2 -1
- package/lib/app/show-display.js +33 -6
- package/lib/app/show.js +25 -2
- package/lib/channels/add-channel.js +164 -126
- package/lib/channels/approval-guides/chatgpt.js +14 -18
- package/lib/channels/approval-guides/claude.js +29 -0
- package/lib/channels/approval-guides/index.js +88 -22
- package/lib/channels/approval-guides/mcp-client.js +27 -0
- package/lib/channels/approval-guides/microsoft-copilot.js +52 -3
- package/lib/channels/approval-guides/slack.js +10 -10
- package/lib/channels/approval-guides/teams-bot.js +8 -12
- package/lib/channels/channel-add-continuations.js +91 -0
- package/lib/channels/channel-add-ensure.js +124 -27
- package/lib/channels/channel-add-existing.js +160 -28
- package/lib/channels/channel-add-failure.js +61 -0
- package/lib/channels/channel-add-remaining.js +492 -0
- package/lib/channels/channel-add-tty.js +190 -0
- package/lib/channels/channel-add-wizard-config.js +138 -0
- package/lib/channels/channel-add-wizard.js +250 -0
- package/lib/channels/channel-artifact-generator.js +27 -13
- package/lib/channels/channel-cardinality.js +83 -0
- package/lib/channels/channel-catalog-icon.js +45 -0
- package/lib/channels/channel-cli-instructions.js +75 -0
- package/lib/channels/channel-configuration-map.js +213 -0
- package/lib/channels/channel-credential.js +11 -14
- package/lib/channels/channel-definition-project.js +101 -0
- package/lib/channels/channel-definition-registry.js +154 -0
- package/lib/channels/channel-definition-status.js +115 -0
- package/lib/channels/channel-description.js +60 -2
- package/lib/channels/channel-discovery.js +16 -2
- package/lib/channels/channel-external-system.js +86 -9
- package/lib/channels/channel-install-envelope-actions.js +88 -0
- package/lib/channels/channel-install-envelope-microsoft.js +155 -0
- package/lib/channels/channel-install-envelope.js +358 -0
- package/lib/channels/channel-install-help-md.js +172 -0
- package/lib/channels/channel-install-http-payload.js +62 -0
- package/lib/channels/channel-install-inventory.js +115 -0
- package/lib/channels/channel-install-profiles.js +90 -0
- package/lib/channels/channel-instance-collision.js +118 -0
- package/lib/channels/channel-instance-key.js +100 -0
- package/lib/channels/channel-instance-materialize.js +240 -0
- package/lib/channels/channel-integration-generator.js +18 -9
- package/lib/channels/channel-integration-template.js +101 -22
- package/lib/channels/channel-inventory-fetch.js +79 -0
- package/lib/channels/channel-oauth-preflight.js +104 -0
- package/lib/channels/channel-package-version.js +76 -0
- package/lib/channels/channel-predefined-client.js +154 -0
- package/lib/channels/channel-probe.js +7 -2
- package/lib/channels/channel-runtime-resolver.js +194 -72
- package/lib/channels/channel-status-display.js +86 -16
- package/lib/channels/channel-targets.js +132 -92
- package/lib/channels/chatgpt-callback.js +318 -0
- package/lib/channels/chatgpt-channel-add.js +229 -0
- package/lib/channels/chatgpt-preflight.js +396 -0
- package/lib/channels/chatgpt-runtime-contract.js +17 -0
- package/lib/channels/chatgpt-setup-values.js +124 -0
- package/lib/channels/claude-callback.js +67 -0
- package/lib/channels/claude-channel-add.js +254 -0
- package/lib/channels/claude-runtime-contract.js +40 -0
- package/lib/channels/claude-runtime.js +58 -0
- package/lib/channels/claude-setup-values.js +92 -0
- package/lib/channels/mcp-client/config-merge.js +148 -0
- package/lib/channels/mcp-client/ensure-client.js +231 -0
- package/lib/channels/mcp-client/paths.js +53 -0
- package/lib/channels/mcp-client/profiles.js +122 -0
- package/lib/channels/mcp-client/redirect-uris.js +99 -0
- package/lib/channels/mcp-client/runtime.js +59 -0
- package/lib/channels/mcp-client-channel-add.js +186 -0
- package/lib/channels/microsoft-copilot-channel-add.js +117 -7
- package/lib/channels/microsoft-copilot-entra-identifier-uris.js +187 -0
- package/lib/channels/microsoft-copilot-entra-sso-form.js +106 -18
- package/lib/channels/microsoft-copilot-entra-sso.js +31 -2
- package/lib/channels/microsoft-copilot-package-prior.js +107 -0
- package/lib/channels/microsoft-copilot-package.js +29 -28
- package/lib/channels/microsoft-provisioning/a365.js +80 -0
- package/lib/channels/microsoft-provisioning/auth-config.js +240 -0
- package/lib/channels/microsoft-provisioning/auth.js +179 -0
- package/lib/channels/microsoft-provisioning/cli.js +71 -0
- package/lib/channels/microsoft-provisioning/constants.js +75 -0
- package/lib/channels/microsoft-provisioning/errors.js +117 -0
- package/lib/channels/microsoft-provisioning/index.js +55 -0
- package/lib/channels/microsoft-provisioning/install-atk.js +158 -0
- package/lib/channels/microsoft-provisioning/install-teams.js +115 -0
- package/lib/channels/microsoft-provisioning/login-portal-device.js +236 -0
- package/lib/channels/microsoft-provisioning/login-portal-parse.js +71 -0
- package/lib/channels/microsoft-provisioning/login-portal-teams.js +193 -0
- package/lib/channels/microsoft-provisioning/login-portal.js +230 -0
- package/lib/channels/microsoft-provisioning/persist.js +110 -0
- package/lib/channels/microsoft-provisioning/teams-bot-args.js +119 -0
- package/lib/channels/microsoft-provisioning/teams-bot-controller.js +123 -0
- package/lib/channels/microsoft-provisioning/teams-bot-parse.js +134 -0
- package/lib/channels/microsoft-provisioning/teams-bot-persist.js +113 -0
- package/lib/channels/microsoft-provisioning/teams-bot-provision.js +234 -0
- package/lib/channels/microsoft-provisioning/teams-bot-secrets.js +45 -0
- package/lib/channels/microsoft-provisioning/teams-cli.js +82 -0
- package/lib/channels/runtime-tool-catalog.js +5 -2
- package/lib/channels/slack-channel-add-portal.js +130 -0
- package/lib/channels/slack-channel-add-tty-auth.js +95 -0
- package/lib/channels/slack-channel-add.js +311 -0
- package/lib/channels/slack-mcp-callback.js +51 -0
- package/lib/channels/slack-mcp-runtime.js +156 -0
- package/lib/channels/slack-provisioning/apps.js +181 -0
- package/lib/channels/slack-provisioning/auth-store.js +110 -0
- package/lib/channels/slack-provisioning/auth-ticket.js +185 -0
- package/lib/channels/slack-provisioning/auth.js +115 -0
- package/lib/channels/slack-provisioning/callbacks.js +41 -0
- package/lib/channels/slack-provisioning/cli.js +226 -0
- package/lib/channels/slack-provisioning/constants.js +37 -0
- package/lib/channels/slack-provisioning/credentials.js +169 -0
- package/lib/channels/slack-provisioning/curl-shim.js +132 -0
- package/lib/channels/slack-provisioning/developer-install.js +118 -0
- package/lib/channels/slack-provisioning/env-file.js +120 -0
- package/lib/channels/slack-provisioning/errors.js +47 -0
- package/lib/channels/slack-provisioning/go-ca-bundle.js +137 -0
- package/lib/channels/slack-provisioning/index.js +250 -0
- package/lib/channels/slack-provisioning/install-cli.js +335 -0
- package/lib/channels/slack-provisioning/manifest.js +89 -0
- package/lib/channels/slack-provisioning/oauth-lock.js +33 -0
- package/lib/channels/slack-provisioning/offer-cli.js +113 -0
- package/lib/channels/slack-provisioning/onboard-members.js +122 -0
- package/lib/channels/slack-provisioning/onboard.js +89 -0
- package/lib/channels/slack-provisioning/persist.js +95 -0
- package/lib/channels/slack-provisioning/remaining-urls.js +158 -0
- package/lib/channels/slack-provisioning/with-curl-on-path.js +53 -0
- package/lib/channels/teams-bot-channel-add.js +94 -0
- package/lib/channels/vendor-dataplane-url.js +249 -0
- package/lib/cli/index.js +4 -0
- package/lib/cli/setup-certification-commands.js +2 -2
- package/lib/cli/setup-certification.help.js +5 -1
- package/lib/cli/setup-external-system-help.js +2 -0
- package/lib/cli/setup-external-system.js +1 -1
- package/lib/commands/agent-kit-help.js +79 -0
- package/lib/commands/agent-kit.js +346 -0
- package/lib/commands/channel-add-help.js +366 -0
- package/lib/commands/channel-add-setup.js +162 -80
- package/lib/commands/channel-configure.js +118 -0
- package/lib/commands/channel.js +10 -1
- package/lib/commands/datasource-capability-relate-cli.js +5 -4
- package/lib/commands/governance-upload-external.js +6 -3
- package/lib/commands/lifecycle-command-action.js +2 -5
- package/lib/commands/lifecycle-external.js +93 -21
- package/lib/commands/repair-auth-apply.js +1 -1
- package/lib/commands/repair-datasource-key-skip.js +39 -0
- package/lib/commands/repair-datasource-keys.js +24 -12
- package/lib/commands/repair-datasource-test-payload.js +4 -2
- package/lib/commands/repair-datasource-webhooks-sync-bridge.js +23 -2
- package/lib/commands/repair-datasource.js +3 -0
- package/lib/commands/repair-external-run.js +59 -25
- package/lib/commands/repair-openapi-rest-runtime.js +127 -0
- package/lib/commands/repair-orchestration-tag-merge.js +339 -0
- package/lib/commands/repair-rbac-catalog-defaults.js +96 -0
- package/lib/commands/repair-rbac-platform-preset.js +26 -15
- package/lib/commands/repair-rbac-reader-roles.js +8 -21
- package/lib/commands/repair-rbac.js +26 -44
- package/lib/commands/repair-system-permissions.js +24 -22
- package/lib/commands/role-assistant-copy-output.js +61 -0
- package/lib/commands/role-assistant-copy.js +155 -0
- package/lib/commands/role-assistant-test-output.js +22 -9
- package/lib/commands/role-assistant-test-result-rows.js +42 -0
- package/lib/commands/role-assistant.js +150 -43
- package/lib/commands/search.js +143 -0
- package/lib/commands/test-e2e-external.js +148 -21
- package/lib/commands/test-trust-external.js +7 -5
- package/lib/commands/upload-credential-push-log.js +2 -1
- package/lib/commands/upload-publish-context.js +1 -1
- package/lib/commands/upload-role-assistant-shell.js +124 -0
- package/lib/commands/upload-sidecar-followups.js +10 -4
- package/lib/commands/upload.js +18 -3
- package/lib/commands/verify-operations-skip-e2e.js +131 -0
- package/lib/commands/verify-operations-step-plan.js +6 -33
- package/lib/commands/verify-operations-steps.js +3 -1
- package/lib/core/secrets-docker-env.js +4 -1
- package/lib/core/secrets-env-content.js +17 -3
- package/lib/datasource/capability/capability-manifest.js +0 -3
- package/lib/datasource/capability/copy-test-payload.js +3 -0
- package/lib/datasource/capability/relate-operations.js +28 -10
- package/lib/datasource/capability/run-capability-relate.js +48 -25
- package/lib/datasource/datasource-identifier.js +13 -5
- package/lib/deployment/deployer-poll-run.js +117 -35
- package/lib/external-system/deploy-dataplane-published.js +70 -0
- package/lib/external-system/deploy-helpers.js +26 -1
- package/lib/external-system/deploy.js +22 -8
- package/lib/external-system/download-helpers.js +29 -2
- package/lib/external-system/download-role-assistant.js +109 -4
- package/lib/external-system/download.js +46 -30
- package/lib/external-system/sync-deploy-manifest.js +3 -2
- package/lib/external-system/upload-identity.js +42 -0
- package/lib/generator/index.js +19 -15
- package/lib/generator/split.js +13 -2
- package/lib/generator/wizard-datasource-key.js +54 -0
- package/lib/generator/wizard.js +55 -54
- package/lib/integration-definition/apply-datasource-keys.js +75 -0
- package/lib/integration-definition/apply-relationships.js +195 -0
- package/lib/integration-definition/apply-static-enterprise.js +229 -0
- package/lib/integration-definition/apply-system-file.js +71 -0
- package/lib/integration-definition/apply-test-endpoint.js +89 -0
- package/lib/integration-definition/apply-viewpoint-defaults.js +157 -0
- package/lib/integration-definition/apply.js +78 -59
- package/lib/integration-definition/enrich-openapi-operations.js +36 -10
- package/lib/integration-definition/enrich-openapi-pick.js +87 -0
- package/lib/lifecycle/role-assistant-governance.js +181 -0
- package/lib/lifecycle/scenario-upload.js +181 -30
- package/lib/programmatic/builder-api-cors.js +143 -0
- package/lib/programmatic/builder-api-request.js +6 -0
- package/lib/programmatic/builder-api-route-dispatch.js +56 -42
- package/lib/programmatic/builder-api-server.js +8 -1
- package/lib/programmatic/capability-registry.js +55 -0
- package/lib/programmatic/channel-install-help-resolve.js +359 -0
- package/lib/programmatic/channel-install-session.js +218 -0
- package/lib/programmatic/help-content/channel-onboarding.md +2 -0
- package/lib/programmatic/help-content/cip-overview.md +3 -1
- package/lib/programmatic/http-raw-response.js +62 -0
- package/lib/programmatic/index.js +2 -0
- package/lib/programmatic/openapi-apply-result-schemas.js +8 -0
- package/lib/programmatic/openapi-channel-install-bindings.js +179 -0
- package/lib/programmatic/openapi-channel-install-schemas.js +289 -0
- package/lib/programmatic/openapi-component-schemas.js +19 -1
- package/lib/programmatic/openapi-description-enricher.js +3 -1
- package/lib/programmatic/openapi-descriptions.js +80 -3
- package/lib/programmatic/openapi-envelope-examples.js +124 -0
- package/lib/programmatic/openapi-operation-bindings.js +9 -1
- package/lib/programmatic/openapi-request-schemas.js +5 -0
- package/lib/programmatic/openapi-schema-descriptions-channel.js +319 -0
- package/lib/programmatic/openapi-schema-descriptions-operations.js +19 -0
- package/lib/programmatic/openapi-spec.js +13 -8
- package/lib/programmatic/platform-rbac-catalog.js +36 -18
- package/lib/programmatic/request-timeout.js +3 -0
- package/lib/programmatic/route-handler-map.js +58 -1
- package/lib/programmatic/route-handlers-context.js +2 -1
- package/lib/programmatic/run-auth-permissions.js +54 -0
- package/lib/programmatic/run-channel-catalog.js +238 -0
- package/lib/programmatic/run-channel-install-artifacts.js +137 -0
- package/lib/programmatic/run-channel-install-copilot.js +353 -0
- package/lib/programmatic/run-channel-install-options.js +236 -0
- package/lib/programmatic/run-channel-install-teams-bot.js +204 -0
- package/lib/programmatic/run-channel-install.js +346 -0
- package/lib/programmatic/run-channel-package.js +87 -7
- package/lib/programmatic/run-download.js +41 -0
- package/lib/programmatic/workspace-context.js +2 -0
- package/lib/protection/auth-context.js +3 -1
- package/lib/protection/protection-display.js +3 -2
- package/lib/protection/report-exit.js +50 -0
- package/lib/protection/run-commands.js +2 -0
- package/lib/role-assistant/evidence-sync.js +4 -2
- package/lib/role-assistant/evidence-validation-issues.js +51 -0
- package/lib/role-assistant/knowledge-sync.js +10 -4
- package/lib/role-assistant/package-validate.js +175 -0
- package/lib/role-assistant/settings.js +49 -2
- package/lib/role-assistant/test-case-assertion-row.js +36 -0
- package/lib/role-assistant/test-case-copy-bind.js +77 -0
- package/lib/role-assistant/test-case-copy-expected.js +127 -0
- package/lib/role-assistant/test-case-copy-from-work.js +90 -0
- package/lib/role-assistant/test-case-copy-interactions.js +67 -0
- package/lib/role-assistant/test-case-copy.js +119 -0
- package/lib/role-assistant/test-case-expected-catalog.js +135 -0
- package/lib/role-assistant/test-case-validate.js +88 -0
- package/lib/role-assistant/test-cases-bid.js +117 -4
- package/lib/role-assistant/test-cases-evaluate.js +159 -24
- package/lib/role-assistant/test-cases-evidence.js +175 -0
- package/lib/role-assistant/test-cases-honesty.js +155 -6
- package/lib/role-assistant/test-cases-lifecycle.js +291 -0
- package/lib/role-assistant/test-cases-search-graph.js +122 -0
- package/lib/role-assistant/test-cases-search.js +247 -0
- package/lib/role-assistant/test-cases.js +71 -172
- package/lib/role-assistant/test-pack-map.js +180 -0
- package/lib/role-assistant/test-pack-sync.js +187 -0
- package/lib/role-assistant/test-runner-debug.js +54 -0
- package/lib/role-assistant/test-runner-respond-body.js +36 -0
- package/lib/role-assistant/test-runner-search.js +164 -0
- package/lib/role-assistant/test-runner-start-payload.js +63 -10
- package/lib/role-assistant/test-runner-workhub-answers.js +45 -16
- package/lib/role-assistant/test-runner-workhub-helpers.js +40 -2
- package/lib/role-assistant/test-runner-workhub-soft.js +9 -3
- package/lib/role-assistant/test-runner-workhub.js +74 -32
- package/lib/role-assistant/test-runner.js +66 -11
- package/lib/schema/external-datasource.schema.json +146 -21
- package/lib/schema/external-system.schema.json +177 -2
- package/lib/schema/mcp-client-profile.schema.json +103 -0
- package/lib/schema/role-assistant-test-case.schema.json +408 -0
- package/lib/search/dataplane-context.js +23 -0
- package/lib/search/search-args.js +211 -0
- package/lib/search/search-display.js +238 -0
- package/lib/search/search-errors.js +50 -0
- package/lib/search/search-prompts.js +119 -0
- package/lib/search/search-roles.js +85 -0
- package/lib/search/search-run.js +241 -0
- package/lib/search/search-skills.js +198 -0
- package/lib/utils/app-path-resolve.js +4 -0
- package/lib/utils/authentication-env-template.js +44 -6
- package/lib/utils/authentication-slot-show.js +153 -0
- package/lib/utils/credential-display.js +43 -1
- package/lib/utils/credential-secrets-env.js +6 -1
- package/lib/utils/env-copy.js +19 -7
- package/lib/utils/external-env-template.js +20 -2
- package/lib/utils/external-system-readiness-compact-blocks.js +5 -1
- package/lib/utils/external-system-readiness-compact-display.js +30 -1
- package/lib/utils/external-system-validators.js +2 -1
- package/lib/utils/help-builder.js +3 -1
- package/lib/utils/paths.js +18 -1
- package/lib/utils/platform-shell-package.js +69 -0
- package/lib/utils/port-resolver.js +50 -1
- package/lib/utils/rewrite-name-flag.js +20 -0
- package/lib/utils/role-assistant-paths.js +13 -10
- package/lib/utils/schema-loader.js +37 -0
- package/lib/utils/schema-resolver.js +11 -1
- package/lib/utils/secrets-helpers.js +12 -21
- package/lib/utils/token-manager.js +10 -5
- package/lib/validation/validate-external-file.js +5 -1
- package/lib/validation/validate.js +41 -0
- package/package.json +1 -1
- package/templates/README.md +1 -1
- package/templates/agent-kit/adapters/claude/nested.CLAUDE.md +1 -0
- package/templates/agent-kit/adapters/claude/root.CLAUDE.md +5 -0
- package/templates/agent-kit/adapters/cursor/commands/cust-0-plan.md +5 -0
- package/templates/agent-kit/adapters/cursor/commands/cust-1-validate.md +5 -0
- package/templates/agent-kit/adapters/cursor/commands/cust-2-build.md +5 -0
- package/templates/agent-kit/adapters/cursor/commands/cust-3-push.md +5 -0
- package/templates/agent-kit/adapters/cursor/commands/cust-biz-1-validate.md +5 -0
- package/templates/agent-kit/adapters/cursor/commands/cust-biz-2-build.md +5 -0
- package/templates/agent-kit/adapters/cursor/commands/cust-biz-3-prove.md +5 -0
- package/templates/agent-kit/agent-kit.yaml +45 -0
- package/templates/agent-kit/instructions/AGENTKIT.md +83 -0
- package/templates/agent-kit/instructions/integration.AGENTS.md +25 -0
- package/templates/agent-kit/instructions/role-assistant.AGENTS.md +22 -0
- package/templates/agent-kit/instructions/root.AGENTS.md +37 -0
- package/templates/agent-kit/parity-inventory.yaml +188 -0
- package/templates/agent-kit/skills/aifabrix-connected-system/SKILL.md +58 -0
- package/templates/agent-kit/skills/aifabrix-connected-system/references/contract-checklist.md +40 -0
- package/templates/agent-kit/skills/aifabrix-connected-system/references/delivery-gates.md +54 -0
- package/templates/agent-kit/skills/aifabrix-connected-system/references/production-safety.md +35 -0
- package/templates/agent-kit/skills/aifabrix-connected-system/scripts/reserved-system-key.js +19 -0
- package/templates/agent-kit/skills/aifabrix-plan/SKILL.md +51 -0
- package/templates/agent-kit/skills/aifabrix-plan/references/challenge-checklist.md +108 -0
- package/templates/agent-kit/skills/aifabrix-plan/references/interaction.md +34 -0
- package/templates/agent-kit/skills/aifabrix-plan/references/plan-template.md +182 -0
- package/templates/agent-kit/skills/aifabrix-prove/SKILL.md +50 -0
- package/templates/agent-kit/skills/aifabrix-prove/references/demo-template.md +65 -0
- package/templates/agent-kit/skills/aifabrix-prove/references/evidence-lifecycle.md +68 -0
- package/templates/agent-kit/skills/aifabrix-prove/references/learning-template.md +66 -0
- package/templates/agent-kit/skills/aifabrix-role-assistant/SKILL.md +42 -0
- package/templates/agent-kit/skills/aifabrix-role-assistant/references/package-boundary.md +21 -0
- package/templates/agent-kit/skills/shared/hosts.md +78 -0
- package/templates/agent-kit/workspace/.cursor/plans/README.md +22 -0
- package/templates/agent-kit/workspace/LICENSE.mit +21 -0
- package/templates/agent-kit/workspace/README.md +89 -0
- package/templates/applications/builder-api/Dockerfile +3 -1
- package/templates/applications/builder-api/env.template +7 -0
- package/templates/applications/dataplane/application.yaml +6 -5
- package/templates/applications/dataplane/env.template +2 -2
- package/templates/applications/dataplane/rbac.yaml +35 -2
- package/templates/applications/keycloak/Dockerfile +30 -4
- package/templates/applications/keycloak/application.yaml +2 -2
- package/templates/applications/keycloak/cimd-lenient-parse/AbstractClientIdMetadataDocumentExecutor.java +896 -0
- package/templates/applications/keycloak/cimd-lenient-parse/SOURCE.md +19 -0
- package/templates/applications/keycloak/env.template +3 -0
- package/templates/applications/miso-controller/application.yaml +1 -2
- package/templates/applications/miso-controller/env.template +10 -9
- package/templates/channels/README.md +5 -5
- package/templates/channels/chatgpt/TROUBLESHOOTING.md +51 -0
- package/templates/channels/chatgpt/channel.json +59 -0
- package/templates/channels/chatgpt/icon.svg +1 -0
- package/templates/channels/chatgpt/install.template.md.hbs +20 -95
- package/templates/channels/chatgpt/integration/README.md +1 -1
- package/templates/channels/chatgpt/integration/application.json +2 -2
- package/templates/channels/chatgpt/integration/chatgpt-system.json +49 -4
- package/templates/channels/chatgpt/integration/env.template +2 -4
- package/templates/channels/chatgpt/integration/rbac.json +13 -0
- package/templates/channels/claude/TROUBLESHOOTING.md +44 -0
- package/templates/channels/claude/channel.json +59 -0
- package/templates/channels/claude/icon.svg +1 -0
- package/templates/channels/claude/install.template.md.hbs +22 -0
- package/templates/channels/claude/integration/README.md +14 -0
- package/templates/channels/claude/integration/application.json +15 -0
- package/templates/channels/claude/integration/claude-system.json +59 -0
- package/templates/channels/claude/integration/env.template +2 -0
- package/templates/channels/claude/integration/rbac.json +13 -0
- package/templates/channels/claude/manifest.template.json.hbs +40 -0
- package/templates/channels/mcp-client/channel.json +72 -0
- package/templates/channels/mcp-client/icon.svg +1 -0
- package/templates/channels/mcp-client/install.template.md.hbs +24 -0
- package/templates/channels/mcp-client/integration/README.md +13 -0
- package/templates/channels/mcp-client/integration/application.json +15 -0
- package/templates/channels/mcp-client/integration/env.template +2 -0
- package/templates/channels/mcp-client/integration/mcp-client-system.json +72 -0
- package/templates/channels/mcp-client/integration/rbac.json +13 -0
- package/templates/channels/mcp-client/manifest.template.json.hbs +41 -0
- package/templates/channels/mcp-client/profiles/cursor.json +26 -0
- package/templates/channels/mcp-client/profiles/github-copilot.json +29 -0
- package/templates/channels/mcp-client/profiles/vscode.json +29 -0
- package/templates/channels/microsoft-copilot/channel.json +73 -0
- package/templates/channels/microsoft-copilot/declarative-agent.template.json.hbs +8 -4
- package/templates/channels/microsoft-copilot/entra-sso-registration.template.md.hbs +65 -5
- package/templates/channels/microsoft-copilot/icon.svg +1 -0
- package/templates/channels/microsoft-copilot/install.template.md.hbs +9 -9
- package/templates/channels/microsoft-copilot/integration/README.md +1 -1
- package/templates/channels/microsoft-copilot/integration/application.json +2 -2
- package/templates/channels/microsoft-copilot/integration/env.template +3 -6
- package/templates/channels/microsoft-copilot/integration/microsoft-copilot-system.json +63 -4
- package/templates/channels/microsoft-copilot/integration/rbac.json +13 -0
- package/templates/channels/microsoft-copilot/oauth-plugin-vault-required.template.md.hbs +5 -5
- package/templates/channels/slack/channel.json +234 -0
- package/templates/channels/slack/icon.svg +1 -0
- package/templates/channels/slack/install.template.md.hbs +45 -28
- package/templates/channels/slack/integration/README.md +245 -22
- package/templates/channels/slack/integration/application.json +44 -7
- package/templates/channels/slack/integration/env.template +15 -6
- package/templates/channels/slack/integration/openapi/openapi.json +126 -0
- package/templates/channels/slack/integration/rbac.json +84 -0
- package/templates/channels/slack/integration/slack-datasource-commands.json +154 -0
- package/templates/channels/slack/integration/slack-datasource-conversations.json +28 -3
- package/templates/channels/slack/integration/slack-datasource-events.json +154 -0
- package/templates/channels/slack/integration/slack-datasource-interactive.json +154 -0
- package/templates/channels/slack/integration/slack-datasource-messages.json +40 -2
- package/templates/channels/slack/integration/slack-system.json +161 -72
- package/templates/channels/slack/manifest.template.json.hbs +10 -4
- package/templates/channels/teams-bot/channel.json +162 -0
- package/templates/channels/teams-bot/icon.svg +1 -0
- package/templates/channels/teams-bot/install.template.md.hbs +12 -13
- package/templates/channels/teams-bot/integration/README.md +5 -4
- package/templates/channels/teams-bot/integration/application.json +6 -4
- package/templates/channels/teams-bot/integration/env.template +5 -4
- package/templates/channels/teams-bot/integration/openapi/openapi.json +68 -0
- package/templates/channels/teams-bot/integration/rbac.json +21 -0
- package/templates/channels/teams-bot/integration/teams-bot-datasource-activities.json +154 -0
- package/templates/channels/teams-bot/integration/teams-bot-system.json +128 -23
- package/templates/channels/web-embed/channel.json +60 -0
- package/templates/channels/web-embed/install.template.md.hbs +1 -1
- package/templates/channels/web-embed/integration/README.md +2 -2
- package/templates/channels/web-embed/integration/application.json +2 -2
- package/templates/channels/web-embed/integration/env.template +1 -1
- package/templates/channels/web-embed/integration/rbac.json +13 -0
- package/templates/channels/web-embed/integration/web-embed-system.json +50 -4
- package/templates/python/docker-compose.hbs +14 -0
- package/templates/typescript/docker-compose.hbs +14 -0
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"key":"external-datasource-schema",
|
|
8
8
|
"name":"External Data Source Configuration Schema",
|
|
9
9
|
"description":"JSON schema for validating ExternalDataSource configuration files",
|
|
10
|
-
"version":"2.9.
|
|
10
|
+
"version":"2.9.11",
|
|
11
11
|
"type":"schema",
|
|
12
12
|
"category":"integration",
|
|
13
13
|
"author":"AI Fabrix Team",
|
|
14
14
|
"createdAt":"2024-01-01T00:00:00Z",
|
|
15
|
-
"updatedAt":"2026-08-
|
|
15
|
+
"updatedAt":"2026-08-30T00:00:00Z",
|
|
16
16
|
"compatibility":{
|
|
17
17
|
"minVersion":"1.0.0",
|
|
18
18
|
"maxVersion":"3.0.0",
|
|
@@ -32,10 +32,35 @@
|
|
|
32
32
|
],
|
|
33
33
|
"changelog":[
|
|
34
34
|
{
|
|
35
|
-
"version":"2.9.
|
|
36
|
-
"date":"2026-08-
|
|
35
|
+
"version":"2.9.11",
|
|
36
|
+
"date":"2026-08-30T00:00:00Z",
|
|
37
37
|
"changes":[
|
|
38
|
-
"
|
|
38
|
+
"Documented fieldMappings.attributes.expression closed pipe-function allow-list (toLower, toUpper, trim, substring, replace, default, coalesce, join, split, normalizeWhitespace, index). CIP $defs unchanged (543 visual N/A)."
|
|
39
|
+
],
|
|
40
|
+
"breaking":false
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"version":"2.9.10",
|
|
44
|
+
"date":"2026-08-29T00:00:00Z",
|
|
45
|
+
"changes":[
|
|
46
|
+
"Added optional sync.incrementalKey (CIP list fetch.query filter already on the list operation) and optional sync.incrementalSchedule (only when incrementalKey is set). schedule is the full-set (sync all) cron. CIP $defs unchanged (543 visual N/A)."
|
|
47
|
+
],
|
|
48
|
+
"breaking":false
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"version":"2.9.9",
|
|
52
|
+
"date":"2026-08-27T00:00:00Z",
|
|
53
|
+
"changes":[
|
|
54
|
+
"Added optional testPayload.listWindow {page, pageSize} so capacity and CIP-simulate list probes stop after a few vendor pages. Does not change CIP paginate.maxPages. CIP $defs unchanged (543 visual N/A).",
|
|
55
|
+
"Clarified testPayload descriptions: mapping expectedResult vs capacity expectedRows, write input is exposed shape, listWindow vs live paginate.maxPages."
|
|
56
|
+
],
|
|
57
|
+
"breaking":false
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"version":"2.9.8",
|
|
61
|
+
"date":"2026-08-25T00:00:00Z",
|
|
62
|
+
"changes":[
|
|
63
|
+
"Added optional testPayload.scenarios items expectedRows, identityKey, numericTolerance, and matchMode for capacity E2E row gold (list/get and named CIP). Mapping-step expectedResult is unchanged."
|
|
39
64
|
],
|
|
40
65
|
"breaking":false
|
|
41
66
|
},
|
|
@@ -528,7 +553,7 @@
|
|
|
528
553
|
},
|
|
529
554
|
"webhook":{
|
|
530
555
|
"type":"object",
|
|
531
|
-
"description":"Vendor webhook
|
|
556
|
+
"description":"Vendor webhook configuration. events[] that match a capability key invoke that CIP operation; other names trigger SyncIntent and CIP get.",
|
|
532
557
|
"additionalProperties":false,
|
|
533
558
|
"properties":{
|
|
534
559
|
"enabled":{
|
|
@@ -551,7 +576,7 @@
|
|
|
551
576
|
"type":"string",
|
|
552
577
|
"minLength":1
|
|
553
578
|
},
|
|
554
|
-
"description":"
|
|
579
|
+
"description":"Event names that select work. A name that matches capabilities[].key invokes that operation (fieldMappings reshape the body). Other names trigger SyncIntent and CIP get. Do not mix both kinds on one datasource."
|
|
555
580
|
},
|
|
556
581
|
"deleteEvents":{
|
|
557
582
|
"type":"array",
|
|
@@ -564,7 +589,7 @@
|
|
|
564
589
|
"idPath":{
|
|
565
590
|
"type":"string",
|
|
566
591
|
"minLength":1,
|
|
567
|
-
"description":"JSONPath to extract vendor object id from webhook payload, e.g. $.objectId"
|
|
592
|
+
"description":"JSONPath to extract vendor object id from webhook payload, e.g. $.objectId. Required for change-signal events; not required when every events[] entry is a capability key."
|
|
568
593
|
},
|
|
569
594
|
"eventTypePath":{
|
|
570
595
|
"type":"string",
|
|
@@ -614,7 +639,7 @@
|
|
|
614
639
|
"properties":{
|
|
615
640
|
"expression":{
|
|
616
641
|
"type":"string",
|
|
617
|
-
"description":"Pipe-based DSL expression. Allowed roots: raw.<path>, fk.<fk>.metadata.<field>, fk.<fk>.dimension.<dimension>[.label], dimension.<dimension>[.label]. FK traversal in DSL is one-hop only.",
|
|
642
|
+
"description":"Pipe-based DSL expression. Allowed roots: raw.<path>, fk.<fk>.metadata.<field>, fk.<fk>.dimension.<dimension>[.label], dimension.<dimension>[.label]. FK traversal in DSL is one-hop only. Closed pipe functions: toLower, toUpper, trim, substring, replace, default, coalesce, join, split, normalizeWhitespace, index.",
|
|
618
643
|
"maxLength":512,
|
|
619
644
|
"pattern":"^\\s*\\{\\{(raw\\.[a-zA-Z0-9_\\[\\].]+|fk\\.[a-z][a-zA-Z0-9]*\\.metadata\\.[a-z][a-zA-Z0-9]*|fk\\.[a-z][a-zA-Z0-9]*\\.dimension\\.[a-zA-Z0-9_]+(\\.label)?|dimension\\.[a-zA-Z0-9_]+(\\.label)?)\\}\\}(\\s*\\|\\s*[a-zA-Z0-9_]+(\\([^)]*\\))?)*\\s*$"
|
|
620
645
|
},
|
|
@@ -848,7 +873,7 @@
|
|
|
848
873
|
},
|
|
849
874
|
"schedule":{
|
|
850
875
|
"type":"string",
|
|
851
|
-
"description":"Cron
|
|
876
|
+
"description":"Cron for full-set (sync all) jobs. Supports 5-field cron syntax or @hourly/@daily/@weekly/@monthly.",
|
|
852
877
|
"pattern":"^(@hourly|@daily|@weekly|@monthly|([0-9*/,-]+\\s+){4}[0-9*/,-]+)$"
|
|
853
878
|
},
|
|
854
879
|
"batchSize":{
|
|
@@ -856,8 +881,23 @@
|
|
|
856
881
|
"minimum":1,
|
|
857
882
|
"maximum":10000,
|
|
858
883
|
"default":500
|
|
884
|
+
},
|
|
885
|
+
"incrementalKey":{
|
|
886
|
+
"type":"string",
|
|
887
|
+
"description":"Name of the list CIP fetch.query filter already authored on the list operation. Must map to a metadataSchema field of type date, date-time, or integer (unix time). Incremental jobs bind lastSyncedAt into that key. Never inferred from field names.",
|
|
888
|
+
"pattern":"^[a-zA-Z_$][a-zA-Z0-9_$]*$"
|
|
889
|
+
},
|
|
890
|
+
"incrementalSchedule":{
|
|
891
|
+
"type":"string",
|
|
892
|
+
"description":"Optional cron for incremental jobs. Allowed only when incrementalKey is set. schedule remains the full-set (sync all) cron.",
|
|
893
|
+
"pattern":"^(@hourly|@daily|@weekly|@monthly|([0-9*/,-]+\\s+){4}[0-9*/,-]+)$"
|
|
859
894
|
}
|
|
860
895
|
},
|
|
896
|
+
"dependentRequired":{
|
|
897
|
+
"incrementalSchedule":[
|
|
898
|
+
"incrementalKey"
|
|
899
|
+
]
|
|
900
|
+
},
|
|
861
901
|
"additionalProperties":false
|
|
862
902
|
},
|
|
863
903
|
"openapi":{
|
|
@@ -1022,14 +1062,15 @@
|
|
|
1022
1062
|
},
|
|
1023
1063
|
"testPayload":{
|
|
1024
1064
|
"type":"object",
|
|
1025
|
-
"description":"
|
|
1065
|
+
"description":"Author-owned proof contract for this Business Entity. Mapping uses payloadTemplate plus expectedResult (one normalized record). Capacity E2E walks scenarios in array order: omit expectedRows for success-only; set expectedRows plus identityKey to prove CIP output rows (list, get, and named viewpoint answers). listWindow is the list probe and does not change live CIP paginate.maxPages. Root is closed — unknown keys fail validate. Role Assistant search is not the owner of gold amounts.",
|
|
1026
1066
|
"properties":{
|
|
1027
1067
|
"mode":{
|
|
1028
1068
|
"type":"string",
|
|
1029
1069
|
"enum":[
|
|
1030
1070
|
"mock",
|
|
1031
1071
|
"live"
|
|
1032
|
-
]
|
|
1072
|
+
],
|
|
1073
|
+
"description":"live runs against the connected system (certification). mock is offline mapping/unit only."
|
|
1033
1074
|
},
|
|
1034
1075
|
"primaryKey":{
|
|
1035
1076
|
"type":"object",
|
|
@@ -1041,9 +1082,29 @@
|
|
|
1041
1082
|
"default":true,
|
|
1042
1083
|
"description":"When true (default if scenarios include create), after create the executor merges returned identifiers into the effective primary key for later get/update/delete in that run. When false, mutations use the static manifest primaryKey (destructive on shared fixtures). Ignored when no create scenario exists."
|
|
1043
1084
|
},
|
|
1085
|
+
"listWindow":{
|
|
1086
|
+
"type":"object",
|
|
1087
|
+
"description":"Default list probe for capacity and CIP-simulate. Runtime passes CIP page and pageSize so paginate stops after a few pages. Does not change production CIP paginate.maxPages (live completeness). Scenario input.page/pageSize override this step. Omitted defaults: page 1, pageSize 5. limit is not a CIP window key.",
|
|
1088
|
+
"additionalProperties":false,
|
|
1089
|
+
"properties":{
|
|
1090
|
+
"page":{
|
|
1091
|
+
"type":"integer",
|
|
1092
|
+
"minimum":1,
|
|
1093
|
+
"default":1,
|
|
1094
|
+
"description":"1-based list page for the probe (default 1)."
|
|
1095
|
+
},
|
|
1096
|
+
"pageSize":{
|
|
1097
|
+
"type":"integer",
|
|
1098
|
+
"minimum":1,
|
|
1099
|
+
"maximum":100,
|
|
1100
|
+
"default":5,
|
|
1101
|
+
"description":"Rows per probe page (default 5, max 100)."
|
|
1102
|
+
}
|
|
1103
|
+
}
|
|
1104
|
+
},
|
|
1044
1105
|
"scenarios":{
|
|
1045
1106
|
"type":"array",
|
|
1046
|
-
"description":"Ordered
|
|
1107
|
+
"description":"Ordered capacity E2E steps (array order). Each operation must match a CIP operation key. Writes prove persist on a following get with expectedRows — do not gold create/update/delete rows. Optional order is diagnostics only.",
|
|
1047
1108
|
"items":{
|
|
1048
1109
|
"type":"object",
|
|
1049
1110
|
"required":[
|
|
@@ -1052,7 +1113,8 @@
|
|
|
1052
1113
|
"properties":{
|
|
1053
1114
|
"operation":{
|
|
1054
1115
|
"type":"string",
|
|
1055
|
-
"pattern":"^[a-z][a-zA-Z0-9]*$"
|
|
1116
|
+
"pattern":"^[a-z][a-zA-Z0-9]*$",
|
|
1117
|
+
"description":"CIP operation key for this step (list, get, create, update, delete, or a named capability such as a viewpoint answer)."
|
|
1056
1118
|
},
|
|
1057
1119
|
"enabled":{
|
|
1058
1120
|
"type":"boolean",
|
|
@@ -1061,14 +1123,58 @@
|
|
|
1061
1123
|
},
|
|
1062
1124
|
"input":{
|
|
1063
1125
|
"type":"object",
|
|
1064
|
-
"additionalProperties":true
|
|
1126
|
+
"additionalProperties":true,
|
|
1127
|
+
"description":"Write scenarios: exposed (normalized) payload a REST or MCP caller would send — not the vendor envelope. List scenarios: optional page/pageSize override of listWindow. Read get typically uses testPayload.primaryKey, not this object."
|
|
1065
1128
|
},
|
|
1066
1129
|
"order":{
|
|
1067
1130
|
"type":"integer",
|
|
1068
1131
|
"description":"Optional stable sort hint for scenario execution / diagnostics."
|
|
1132
|
+
},
|
|
1133
|
+
"expectedRows":{
|
|
1134
|
+
"type":"array",
|
|
1135
|
+
"description":"Capacity E2E gold for CIP output rows. Omitted means success-only (invoke did not throw). Empty array means expect zero rows (zero is a fact, not unknown). Same contract for record list/get and viewpoint named operations. PostgreSQL remains the calculator — this asserts the result. Requires identityKey when the array has one or more items.",
|
|
1136
|
+
"items":{
|
|
1137
|
+
"type":"object",
|
|
1138
|
+
"additionalProperties":true
|
|
1139
|
+
}
|
|
1140
|
+
},
|
|
1141
|
+
"identityKey":{
|
|
1142
|
+
"type":"string",
|
|
1143
|
+
"minLength":1,
|
|
1144
|
+
"description":"Published output field that uniquely identifies each gold row (this datasource output, often externalId). Required when expectedRows has one or more items. Not a platform-wide vocabulary."
|
|
1145
|
+
},
|
|
1146
|
+
"numericTolerance":{
|
|
1147
|
+
"type":"number",
|
|
1148
|
+
"minimum":0,
|
|
1149
|
+
"default":0,
|
|
1150
|
+
"description":"Absolute tolerance applied only to numeric expected fields (COUNT typically 0). Does not apply to strings."
|
|
1151
|
+
},
|
|
1152
|
+
"matchMode":{
|
|
1153
|
+
"type":"string",
|
|
1154
|
+
"enum":[
|
|
1155
|
+
"subsetIdentities",
|
|
1156
|
+
"exactIdentities"
|
|
1157
|
+
],
|
|
1158
|
+
"default":"subsetIdentities",
|
|
1159
|
+
"description":"subsetIdentities (default): every gold identity must appear in CIP output (extra live rows allowed — typical for list probes). exactIdentities also fails extra actual identities."
|
|
1069
1160
|
}
|
|
1070
1161
|
},
|
|
1071
|
-
"additionalProperties":false
|
|
1162
|
+
"additionalProperties":false,
|
|
1163
|
+
"if":{
|
|
1164
|
+
"required":[
|
|
1165
|
+
"expectedRows"
|
|
1166
|
+
],
|
|
1167
|
+
"properties":{
|
|
1168
|
+
"expectedRows":{
|
|
1169
|
+
"minItems":1
|
|
1170
|
+
}
|
|
1171
|
+
}
|
|
1172
|
+
},
|
|
1173
|
+
"then":{
|
|
1174
|
+
"required":[
|
|
1175
|
+
"identityKey"
|
|
1176
|
+
]
|
|
1177
|
+
}
|
|
1072
1178
|
}
|
|
1073
1179
|
},
|
|
1074
1180
|
"fk":{
|
|
@@ -1094,12 +1200,12 @@
|
|
|
1094
1200
|
},
|
|
1095
1201
|
"payloadTemplate":{
|
|
1096
1202
|
"type":"object",
|
|
1097
|
-
"description":"Sample payload
|
|
1203
|
+
"description":"Sample payload that mapping expressions read (typically provider/raw shape for raw.*). Used by the mapping step and expression resolution. Not write scenario input — writes use scenarios[].input in the exposed shape.",
|
|
1098
1204
|
"additionalProperties":true
|
|
1099
1205
|
},
|
|
1100
1206
|
"expectedResult":{
|
|
1101
1207
|
"type":"object",
|
|
1102
|
-
"description":"
|
|
1208
|
+
"description":"Mapping-step gold for ONE normalized record after fieldMappings (shape/subset). Not aggregates, not multi-row CIP output — that is scenarios[].expectedRows.",
|
|
1103
1209
|
"additionalProperties":true
|
|
1104
1210
|
}
|
|
1105
1211
|
},
|
|
@@ -2545,7 +2651,7 @@
|
|
|
2545
2651
|
"viewpoint",
|
|
2546
2652
|
"record"
|
|
2547
2653
|
],
|
|
2548
|
-
"description":"If 'openapi', refer to openapi.operations.*. If 'http', use explicit method/path. If 'datasource', execute another datasource operation. If 'viewpoint', execute saved SQL in fetch.query against records storage (storageType view). If 'record', read or persist governed rows in local record storage with no vendor HTTP
|
|
2654
|
+
"description":"If 'openapi', refer to openapi.operations.*. If 'http', use explicit method/path. If 'datasource', execute another datasource operation. If 'viewpoint', execute saved SQL in fetch.query against records storage (storageType view). If 'record', read or persist governed rows in local record storage with no vendor HTTP. Persist vs read follows the CIP operation shape (create|update), not the operation key. Fetch token is singular record; output.mode remains plural records."
|
|
2549
2655
|
},
|
|
2550
2656
|
"openapiRef":{
|
|
2551
2657
|
"type":"string",
|
|
@@ -2598,7 +2704,7 @@
|
|
|
2598
2704
|
"description":"When true, append fetch items to the pipeline accumulator for a following merge step."
|
|
2599
2705
|
},
|
|
2600
2706
|
"query":{
|
|
2601
|
-
"description":"When source is openapi/http/datasource: static query parameter object. When source is viewpoint: non-empty SQL SELECT string. ABAC/runtime may still append supported filters at execution for viewpoint."
|
|
2707
|
+
"description":"When source is openapi/http/datasource: static query parameter object. When source is viewpoint: non-empty SQL SELECT string. Forbidden when source is record. ABAC/runtime may still append supported filters at execution for viewpoint."
|
|
2602
2708
|
},
|
|
2603
2709
|
"bodyTemplate":{
|
|
2604
2710
|
"description":"Optional static request body or template for POST/PUT/PATCH fetches.",
|
|
@@ -2735,6 +2841,25 @@
|
|
|
2735
2841
|
}
|
|
2736
2842
|
}
|
|
2737
2843
|
}
|
|
2844
|
+
},
|
|
2845
|
+
{
|
|
2846
|
+
"if":{
|
|
2847
|
+
"properties":{
|
|
2848
|
+
"source":{
|
|
2849
|
+
"const":"record"
|
|
2850
|
+
}
|
|
2851
|
+
},
|
|
2852
|
+
"required":[
|
|
2853
|
+
"source"
|
|
2854
|
+
]
|
|
2855
|
+
},
|
|
2856
|
+
"then":{
|
|
2857
|
+
"not":{
|
|
2858
|
+
"required":[
|
|
2859
|
+
"query"
|
|
2860
|
+
]
|
|
2861
|
+
}
|
|
2862
|
+
}
|
|
2738
2863
|
}
|
|
2739
2864
|
],
|
|
2740
2865
|
"additionalProperties":false
|
|
@@ -2910,7 +3035,7 @@
|
|
|
2910
3035
|
"description":"Optional inline mapping overrides { normalizedField -> expression }.",
|
|
2911
3036
|
"additionalProperties":{
|
|
2912
3037
|
"type":"string",
|
|
2913
|
-
"description":"Pipe-based DSL expression overriding fieldMappings expression."
|
|
3038
|
+
"description":"Pipe-based DSL expression overriding fieldMappings expression. Same closed function allow-list as fieldMappings.attributes.expression."
|
|
2914
3039
|
}
|
|
2915
3040
|
}
|
|
2916
3041
|
},
|
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"key": "external-system-schema",
|
|
8
8
|
"name": "External System Configuration Schema",
|
|
9
9
|
"description": "JSON schema for validating ExternalSystem configuration files",
|
|
10
|
-
"version": "1.
|
|
10
|
+
"version": "1.17.0",
|
|
11
11
|
"type": "schema",
|
|
12
12
|
"category": "integration",
|
|
13
13
|
"author": "AI Fabrix Team",
|
|
14
14
|
"createdAt": "2024-01-01T00:00:00Z",
|
|
15
|
-
"updatedAt": "2026-08-
|
|
15
|
+
"updatedAt": "2026-08-28T00:00:00Z",
|
|
16
16
|
"compatibility": {
|
|
17
17
|
"minVersion": "1.4.0",
|
|
18
18
|
"maxVersion": "2.0.0",
|
|
@@ -27,6 +27,30 @@
|
|
|
27
27
|
],
|
|
28
28
|
"dependencies": [],
|
|
29
29
|
"changelog": [
|
|
30
|
+
{
|
|
31
|
+
"version": "1.17.0",
|
|
32
|
+
"date": "2026-08-28T00:00:00Z",
|
|
33
|
+
"changes": [
|
|
34
|
+
"Added optional channel.status (visible | hide | coming-soon) for Channel Definition catalog and install. Omit for visible. hide: omitted from catalog and refused for new install. coming-soon: catalog read-only, new install refused."
|
|
35
|
+
],
|
|
36
|
+
"breaking": false
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"version": "1.16.0",
|
|
40
|
+
"date": "2026-08-23T00:00:00Z",
|
|
41
|
+
"changes": [
|
|
42
|
+
"Added optional channel.maxInstances (integer, minimum 1) for Channel Definition cardinality. Omit for unbounded. Builder refuses new installs at the cap; existing instance keys are not deleted."
|
|
43
|
+
],
|
|
44
|
+
"breaking": false
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"version": "1.15.0",
|
|
48
|
+
"date": "2026-08-22T00:00:00Z",
|
|
49
|
+
"changes": [
|
|
50
|
+
"Added optional top-level channel specialization for Channel Definition documents and materialized communication Connected Systems (definitionKey, provisioning.mode automatic|guided|cli, runtimeTarget, profiles, packaging)."
|
|
51
|
+
],
|
|
52
|
+
"breaking": false
|
|
53
|
+
},
|
|
30
54
|
{
|
|
31
55
|
"version": "1.14.0",
|
|
32
56
|
"date": "2026-08-07T00:00:00Z",
|
|
@@ -1716,6 +1740,157 @@
|
|
|
1716
1740
|
}
|
|
1717
1741
|
},
|
|
1718
1742
|
"additionalProperties": false
|
|
1743
|
+
},
|
|
1744
|
+
"channel": {
|
|
1745
|
+
"type": "object",
|
|
1746
|
+
"description": "Optional Channel Definition specialization. Present on Channel Definition documents and materialized communication Connected Systems. Omit on non-channel External Systems.",
|
|
1747
|
+
"additionalProperties": false,
|
|
1748
|
+
"required": [
|
|
1749
|
+
"definitionKey",
|
|
1750
|
+
"provisioning"
|
|
1751
|
+
],
|
|
1752
|
+
"properties": {
|
|
1753
|
+
"definitionKey": {
|
|
1754
|
+
"type": "string",
|
|
1755
|
+
"description": "Stable catalog identity. Equals key on a definition document; preserved on a materialized instance whose key may differ.",
|
|
1756
|
+
"pattern": "^[a-z0-9-]+$",
|
|
1757
|
+
"minLength": 3,
|
|
1758
|
+
"maxLength": 40
|
|
1759
|
+
},
|
|
1760
|
+
"provisioning": {
|
|
1761
|
+
"type": "object",
|
|
1762
|
+
"additionalProperties": false,
|
|
1763
|
+
"required": [
|
|
1764
|
+
"mode"
|
|
1765
|
+
],
|
|
1766
|
+
"properties": {
|
|
1767
|
+
"mode": {
|
|
1768
|
+
"type": "string",
|
|
1769
|
+
"enum": [
|
|
1770
|
+
"automatic",
|
|
1771
|
+
"guided",
|
|
1772
|
+
"cli"
|
|
1773
|
+
],
|
|
1774
|
+
"description": "automatic: API completes with no remaining vendor step. guided: API runs install; vendor leftovers use help.md. cli: hosted API must not run the adapter; return generated CLI instructions."
|
|
1775
|
+
}
|
|
1776
|
+
}
|
|
1777
|
+
},
|
|
1778
|
+
"runtimeTarget": {
|
|
1779
|
+
"type": "object",
|
|
1780
|
+
"additionalProperties": false,
|
|
1781
|
+
"required": [
|
|
1782
|
+
"defaultSystemKey"
|
|
1783
|
+
],
|
|
1784
|
+
"properties": {
|
|
1785
|
+
"defaultSystemKey": {
|
|
1786
|
+
"type": "string",
|
|
1787
|
+
"pattern": "^[a-z0-9-]+$",
|
|
1788
|
+
"description": "Default runtime or MCP Connected System key. Not the channel instance key."
|
|
1789
|
+
},
|
|
1790
|
+
"configurable": {
|
|
1791
|
+
"type": "boolean",
|
|
1792
|
+
"description": "When true, install may choose an approved runtime or MCP Connected System."
|
|
1793
|
+
}
|
|
1794
|
+
}
|
|
1795
|
+
},
|
|
1796
|
+
"experimental": {
|
|
1797
|
+
"type": "boolean",
|
|
1798
|
+
"default": false
|
|
1799
|
+
},
|
|
1800
|
+
"status": {
|
|
1801
|
+
"type": "string",
|
|
1802
|
+
"enum": [
|
|
1803
|
+
"visible",
|
|
1804
|
+
"hide",
|
|
1805
|
+
"coming-soon"
|
|
1806
|
+
],
|
|
1807
|
+
"default": "visible",
|
|
1808
|
+
"description": "Channel catalog and install availability. Omit or visible: listed and installable. hide: omitted from the catalog; new install is refused (CLI and API). coming-soon: listed read-only with a coming-soon indication; new install is refused (CLI and API). Does not disable existing installations. Distinct from experimental (opt-in CLI)."
|
|
1809
|
+
},
|
|
1810
|
+
"maxInstances": {
|
|
1811
|
+
"type": "integer",
|
|
1812
|
+
"minimum": 1,
|
|
1813
|
+
"description": "Maximum Connected System instances for this Channel Definition. Omit for unbounded. Builder refuses new installs at the cap; existing instance keys are not deleted."
|
|
1814
|
+
},
|
|
1815
|
+
"profiles": {
|
|
1816
|
+
"type": "array",
|
|
1817
|
+
"items": {
|
|
1818
|
+
"type": "object",
|
|
1819
|
+
"additionalProperties": false,
|
|
1820
|
+
"required": [
|
|
1821
|
+
"key",
|
|
1822
|
+
"displayLabel"
|
|
1823
|
+
],
|
|
1824
|
+
"properties": {
|
|
1825
|
+
"key": {
|
|
1826
|
+
"type": "string",
|
|
1827
|
+
"minLength": 1
|
|
1828
|
+
},
|
|
1829
|
+
"displayLabel": {
|
|
1830
|
+
"type": "string",
|
|
1831
|
+
"minLength": 1
|
|
1832
|
+
}
|
|
1833
|
+
}
|
|
1834
|
+
}
|
|
1835
|
+
},
|
|
1836
|
+
"artifacts": {
|
|
1837
|
+
"type": "array",
|
|
1838
|
+
"description": "Generic artifact ids produced at install (no vendor URLs).",
|
|
1839
|
+
"items": {
|
|
1840
|
+
"type": "string",
|
|
1841
|
+
"minLength": 1
|
|
1842
|
+
}
|
|
1843
|
+
},
|
|
1844
|
+
"packaging": {
|
|
1845
|
+
"type": "object",
|
|
1846
|
+
"description": "Builder implementation packaging metadata. Not a consumer contract.",
|
|
1847
|
+
"additionalProperties": false,
|
|
1848
|
+
"properties": {
|
|
1849
|
+
"templateDir": {
|
|
1850
|
+
"type": "string"
|
|
1851
|
+
},
|
|
1852
|
+
"channelType": {
|
|
1853
|
+
"type": "string"
|
|
1854
|
+
},
|
|
1855
|
+
"artifactFileName": {
|
|
1856
|
+
"type": "string"
|
|
1857
|
+
},
|
|
1858
|
+
"artifactFormat": {
|
|
1859
|
+
"type": "string"
|
|
1860
|
+
},
|
|
1861
|
+
"credentialKey": {
|
|
1862
|
+
"type": "string"
|
|
1863
|
+
},
|
|
1864
|
+
"capabilities": {
|
|
1865
|
+
"type": "array",
|
|
1866
|
+
"items": {
|
|
1867
|
+
"type": "string"
|
|
1868
|
+
}
|
|
1869
|
+
},
|
|
1870
|
+
"displayLabel": {
|
|
1871
|
+
"type": "string"
|
|
1872
|
+
},
|
|
1873
|
+
"category": {
|
|
1874
|
+
"type": "string"
|
|
1875
|
+
},
|
|
1876
|
+
"wizardOrder": {
|
|
1877
|
+
"type": "integer"
|
|
1878
|
+
},
|
|
1879
|
+
"remainingManualStep": {
|
|
1880
|
+
"type": "string"
|
|
1881
|
+
},
|
|
1882
|
+
"docsAnchor": {
|
|
1883
|
+
"type": "string"
|
|
1884
|
+
},
|
|
1885
|
+
"approvalRequired": {
|
|
1886
|
+
"type": "boolean"
|
|
1887
|
+
},
|
|
1888
|
+
"vendorAuthRequired": {
|
|
1889
|
+
"type": "boolean"
|
|
1890
|
+
}
|
|
1891
|
+
}
|
|
1892
|
+
}
|
|
1893
|
+
}
|
|
1719
1894
|
}
|
|
1720
1895
|
},
|
|
1721
1896
|
"additionalProperties": false
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "MCP client installation profile",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["key", "displayName", "transport", "config", "oauth", "reload", "uninstall"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"key": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"pattern": "^[a-z][a-z0-9-]*$"
|
|
11
|
+
},
|
|
12
|
+
"displayName": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"minLength": 1
|
|
15
|
+
},
|
|
16
|
+
"transport": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"enum": ["streamable-http"]
|
|
19
|
+
},
|
|
20
|
+
"config": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"additionalProperties": false,
|
|
23
|
+
"required": ["scope", "relativePath", "serversKey", "serverKey"],
|
|
24
|
+
"properties": {
|
|
25
|
+
"scope": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"enum": ["user", "project"]
|
|
28
|
+
},
|
|
29
|
+
"relativePath": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"minLength": 1
|
|
32
|
+
},
|
|
33
|
+
"serversKey": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"enum": ["mcpServers", "servers"]
|
|
36
|
+
},
|
|
37
|
+
"serverKey": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"minLength": 1
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"oauth": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"additionalProperties": false,
|
|
46
|
+
"required": [
|
|
47
|
+
"integrationClientKey",
|
|
48
|
+
"keycloakClientId",
|
|
49
|
+
"registrationMode",
|
|
50
|
+
"redirectUris"
|
|
51
|
+
],
|
|
52
|
+
"properties": {
|
|
53
|
+
"integrationClientKey": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"minLength": 1
|
|
56
|
+
},
|
|
57
|
+
"keycloakClientId": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"minLength": 1
|
|
60
|
+
},
|
|
61
|
+
"registrationMode": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"enum": ["predefinedClient", "cimd"]
|
|
64
|
+
},
|
|
65
|
+
"redirectUris": {
|
|
66
|
+
"type": "array",
|
|
67
|
+
"minItems": 1,
|
|
68
|
+
"items": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"minLength": 1
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"cimdDocumentHosts": {
|
|
74
|
+
"type": "array",
|
|
75
|
+
"items": {
|
|
76
|
+
"type": "string"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"reload": {
|
|
82
|
+
"type": "object",
|
|
83
|
+
"additionalProperties": false,
|
|
84
|
+
"required": ["remainingStep"],
|
|
85
|
+
"properties": {
|
|
86
|
+
"remainingStep": {
|
|
87
|
+
"type": "string",
|
|
88
|
+
"minLength": 1
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"uninstall": {
|
|
93
|
+
"type": "object",
|
|
94
|
+
"additionalProperties": false,
|
|
95
|
+
"required": ["removeServerKeyOnly"],
|
|
96
|
+
"properties": {
|
|
97
|
+
"removeServerKeyOnly": {
|
|
98
|
+
"type": "boolean"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|