@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
|
@@ -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.13.1",
|
|
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-
|
|
15
|
+
"updatedAt": "2026-07-22T00:00:00Z",
|
|
16
16
|
"compatibility": {
|
|
17
17
|
"minVersion": "1.4.0",
|
|
18
18
|
"maxVersion": "2.0.0",
|
|
@@ -27,6 +27,46 @@
|
|
|
27
27
|
],
|
|
28
28
|
"dependencies": [],
|
|
29
29
|
"changelog": [
|
|
30
|
+
{
|
|
31
|
+
"version": "1.13.1",
|
|
32
|
+
"date": "2026-07-22T00:00:00Z",
|
|
33
|
+
"changes": [
|
|
34
|
+
"Added optional configuration[].category for portal UI grouping labels (parity with application-schema)."
|
|
35
|
+
],
|
|
36
|
+
"breaking": false
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"version": "1.13.0",
|
|
40
|
+
"date": "2026-07-02T00:00:00Z",
|
|
41
|
+
"changes": [
|
|
42
|
+
"Added authentications[] with usage enum (api, webhookInbound, syncExecution, messageInbound, messageOutbound, callback, provisioning). Legacy authentication retained with deprecation."
|
|
43
|
+
],
|
|
44
|
+
"breaking": false
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"version": "1.12.0",
|
|
48
|
+
"date": "2026-06-30T00:00:00Z",
|
|
49
|
+
"changes": [
|
|
50
|
+
"authentication.credential.formFields accepts array (allowlist) or object with defaults { visible, required, locked } and fields[] for allowlist/denylist projection."
|
|
51
|
+
],
|
|
52
|
+
"breaking": false
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"version": "1.11.0",
|
|
56
|
+
"date": "2026-06-30T00:00:00Z",
|
|
57
|
+
"changes": [
|
|
58
|
+
"authentication.credential.formFields[] items may set optional label and placeholder overrides per field."
|
|
59
|
+
],
|
|
60
|
+
"breaking": false
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"version": "1.10.0",
|
|
64
|
+
"date": "2026-06-30T00:00:00Z",
|
|
65
|
+
"changes": [
|
|
66
|
+
"Added optional authentication.credential.formFields[] for per-system Authentication tab field projection."
|
|
67
|
+
],
|
|
68
|
+
"breaking": false
|
|
69
|
+
},
|
|
30
70
|
{
|
|
31
71
|
"version": "1.9.0",
|
|
32
72
|
"date": "2026-06-15T00:00:00Z",
|
|
@@ -212,8 +252,7 @@
|
|
|
212
252
|
"compileCom",
|
|
213
253
|
"generateEnterpriseDatasources",
|
|
214
254
|
"generateRestContracts",
|
|
215
|
-
"generateMcpContracts"
|
|
216
|
-
"runDigitalWorkerTask"
|
|
255
|
+
"generateMcpContracts"
|
|
217
256
|
],
|
|
218
257
|
"description": "Platform task type executed when the subscription fires."
|
|
219
258
|
},
|
|
@@ -222,104 +261,6 @@
|
|
|
222
261
|
"minimum": 1,
|
|
223
262
|
"default": 1,
|
|
224
263
|
"description": "Task definition version snapshot for audit."
|
|
225
|
-
},
|
|
226
|
-
"digitalWorkerKey": {
|
|
227
|
-
"type": "string",
|
|
228
|
-
"minLength": 1,
|
|
229
|
-
"description": "Target digital worker system key (runDigitalWorkerTask)."
|
|
230
|
-
},
|
|
231
|
-
"taskType": {
|
|
232
|
-
"type": "string",
|
|
233
|
-
"minLength": 1,
|
|
234
|
-
"description": "Worker task type label (runDigitalWorkerTask)."
|
|
235
|
-
},
|
|
236
|
-
"objectiveTemplate": {
|
|
237
|
-
"type": "string",
|
|
238
|
-
"description": "Objective template with {{recordId}} placeholders."
|
|
239
|
-
},
|
|
240
|
-
"requiresApproval": {
|
|
241
|
-
"type": "boolean",
|
|
242
|
-
"default": false
|
|
243
|
-
},
|
|
244
|
-
"owner": {
|
|
245
|
-
"$ref": "#/$defs/subscriptionTaskOwner"
|
|
246
|
-
}
|
|
247
|
-
},
|
|
248
|
-
"additionalProperties": false
|
|
249
|
-
},
|
|
250
|
-
"subscriptionCondition": {
|
|
251
|
-
"type": "object",
|
|
252
|
-
"required": [
|
|
253
|
-
"field",
|
|
254
|
-
"operator"
|
|
255
|
-
],
|
|
256
|
-
"properties": {
|
|
257
|
-
"field": {
|
|
258
|
-
"type": "string",
|
|
259
|
-
"minLength": 1,
|
|
260
|
-
"description": "Path against afterSummary (default) or before.* prefix."
|
|
261
|
-
},
|
|
262
|
-
"operator": {
|
|
263
|
-
"type": "string",
|
|
264
|
-
"enum": [
|
|
265
|
-
"equals",
|
|
266
|
-
"notEquals",
|
|
267
|
-
"in",
|
|
268
|
-
"notIn",
|
|
269
|
-
"exists",
|
|
270
|
-
"missing",
|
|
271
|
-
"changed",
|
|
272
|
-
"greaterThan",
|
|
273
|
-
"lessThan"
|
|
274
|
-
]
|
|
275
|
-
},
|
|
276
|
-
"value": {}
|
|
277
|
-
},
|
|
278
|
-
"additionalProperties": false
|
|
279
|
-
},
|
|
280
|
-
"subscriptionTriggerPolicy": {
|
|
281
|
-
"type": "object",
|
|
282
|
-
"required": [
|
|
283
|
-
"mode"
|
|
284
|
-
],
|
|
285
|
-
"properties": {
|
|
286
|
-
"mode": {
|
|
287
|
-
"type": "string",
|
|
288
|
-
"enum": [
|
|
289
|
-
"immediate",
|
|
290
|
-
"debounce",
|
|
291
|
-
"scheduled"
|
|
292
|
-
]
|
|
293
|
-
},
|
|
294
|
-
"windowSeconds": {
|
|
295
|
-
"type": "integer",
|
|
296
|
-
"minimum": 1,
|
|
297
|
-
"description": "Required when mode is debounce."
|
|
298
|
-
}
|
|
299
|
-
},
|
|
300
|
-
"additionalProperties": false
|
|
301
|
-
},
|
|
302
|
-
"subscriptionTaskOwner": {
|
|
303
|
-
"type": "object",
|
|
304
|
-
"required": [
|
|
305
|
-
"mode"
|
|
306
|
-
],
|
|
307
|
-
"properties": {
|
|
308
|
-
"mode": {
|
|
309
|
-
"type": "string",
|
|
310
|
-
"enum": [
|
|
311
|
-
"explicit",
|
|
312
|
-
"recordField"
|
|
313
|
-
]
|
|
314
|
-
},
|
|
315
|
-
"userId": {
|
|
316
|
-
"type": "string",
|
|
317
|
-
"minLength": 1
|
|
318
|
-
},
|
|
319
|
-
"field": {
|
|
320
|
-
"type": "string",
|
|
321
|
-
"minLength": 1,
|
|
322
|
-
"description": "Record summary field for recordField mode."
|
|
323
264
|
}
|
|
324
265
|
},
|
|
325
266
|
"additionalProperties": false
|
|
@@ -350,24 +291,11 @@
|
|
|
350
291
|
"event": {
|
|
351
292
|
"type": "string",
|
|
352
293
|
"minLength": 1,
|
|
353
|
-
"description": "V1 event namespace (platform
|
|
294
|
+
"description": "V1 event namespace (platform.* or schedule.*)."
|
|
354
295
|
},
|
|
355
296
|
"filter": {
|
|
356
297
|
"$ref": "#/$defs/subscriptionFilter"
|
|
357
298
|
},
|
|
358
|
-
"conditions": {
|
|
359
|
-
"type": "array",
|
|
360
|
-
"items": {
|
|
361
|
-
"$ref": "#/$defs/subscriptionCondition"
|
|
362
|
-
}
|
|
363
|
-
},
|
|
364
|
-
"triggerPolicy": {
|
|
365
|
-
"$ref": "#/$defs/subscriptionTriggerPolicy"
|
|
366
|
-
},
|
|
367
|
-
"deduplicationKeyTemplate": {
|
|
368
|
-
"type": "string",
|
|
369
|
-
"description": "Default: {{subscriptionId}}:{{resourceType}}:{{recordId}}:{{task.taskType}}"
|
|
370
|
-
},
|
|
371
299
|
"task": {
|
|
372
300
|
"$ref": "#/$defs/subscriptionTask"
|
|
373
301
|
},
|
|
@@ -587,7 +515,7 @@
|
|
|
587
515
|
},
|
|
588
516
|
{
|
|
589
517
|
"key": "clientId",
|
|
590
|
-
"required":
|
|
518
|
+
"required": false
|
|
591
519
|
},
|
|
592
520
|
{
|
|
593
521
|
"key": "expectedIssuer",
|
|
@@ -611,7 +539,12 @@
|
|
|
611
539
|
"description": "Optional URL used when testing the credential (GET). Full URL or path. For OIDC, discovery URL is typically used if testEndpoint omitted."
|
|
612
540
|
}
|
|
613
541
|
],
|
|
614
|
-
"security": [
|
|
542
|
+
"security": [
|
|
543
|
+
{
|
|
544
|
+
"key": "clientSecret",
|
|
545
|
+
"required": false
|
|
546
|
+
}
|
|
547
|
+
]
|
|
615
548
|
},
|
|
616
549
|
"hmac": {
|
|
617
550
|
"variables": [
|
|
@@ -645,6 +578,14 @@
|
|
|
645
578
|
{
|
|
646
579
|
"key": "signingSecret",
|
|
647
580
|
"required": true
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
"key": "botToken",
|
|
584
|
+
"required": false
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
"key": "clientSecret",
|
|
588
|
+
"required": false
|
|
648
589
|
}
|
|
649
590
|
]
|
|
650
591
|
},
|
|
@@ -703,6 +644,117 @@
|
|
|
703
644
|
"type": "boolean",
|
|
704
645
|
"description": "Template is immutable after first deploy.",
|
|
705
646
|
"default": true
|
|
647
|
+
},
|
|
648
|
+
"formFields": {
|
|
649
|
+
"description": "Optional Authentication tab field projection. Omitted: security keys only; variables hidden. Array: allowlist. Object: defaults.visible false = allowlist on fields[]; defaults.visible true = registry denylist.",
|
|
650
|
+
"oneOf": [
|
|
651
|
+
{
|
|
652
|
+
"type": "array",
|
|
653
|
+
"items": {
|
|
654
|
+
"type": "object",
|
|
655
|
+
"required": [
|
|
656
|
+
"name"
|
|
657
|
+
],
|
|
658
|
+
"properties": {
|
|
659
|
+
"name": {
|
|
660
|
+
"type": "string",
|
|
661
|
+
"minLength": 1,
|
|
662
|
+
"description": "Registry field name for authentication.credential.method."
|
|
663
|
+
},
|
|
664
|
+
"required": {
|
|
665
|
+
"type": "boolean",
|
|
666
|
+
"description": "Override registry required flag for this field."
|
|
667
|
+
},
|
|
668
|
+
"visible": {
|
|
669
|
+
"type": "boolean",
|
|
670
|
+
"description": "When false, exclude this field from the projected form."
|
|
671
|
+
},
|
|
672
|
+
"locked": {
|
|
673
|
+
"type": "boolean",
|
|
674
|
+
"description": "When true, show read-only (prefilled from variables or stored config)."
|
|
675
|
+
},
|
|
676
|
+
"label": {
|
|
677
|
+
"type": "string",
|
|
678
|
+
"minLength": 1,
|
|
679
|
+
"description": "Override registry display label for this field on the Authentication tab."
|
|
680
|
+
},
|
|
681
|
+
"placeholder": {
|
|
682
|
+
"type": "string",
|
|
683
|
+
"description": "Override registry placeholder for this field on the Authentication tab."
|
|
684
|
+
}
|
|
685
|
+
},
|
|
686
|
+
"additionalProperties": false
|
|
687
|
+
}
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
"type": "object",
|
|
691
|
+
"required": [
|
|
692
|
+
"fields"
|
|
693
|
+
],
|
|
694
|
+
"properties": {
|
|
695
|
+
"defaults": {
|
|
696
|
+
"type": "object",
|
|
697
|
+
"properties": {
|
|
698
|
+
"visible": {
|
|
699
|
+
"type": "boolean"
|
|
700
|
+
},
|
|
701
|
+
"required": {
|
|
702
|
+
"type": "boolean"
|
|
703
|
+
},
|
|
704
|
+
"locked": {
|
|
705
|
+
"type": "boolean"
|
|
706
|
+
}
|
|
707
|
+
},
|
|
708
|
+
"additionalProperties": false
|
|
709
|
+
},
|
|
710
|
+
"visible": {
|
|
711
|
+
"type": "boolean",
|
|
712
|
+
"description": "Default visible flag for entries in fields[] (false = allowlist mode)."
|
|
713
|
+
},
|
|
714
|
+
"required": {
|
|
715
|
+
"type": "boolean",
|
|
716
|
+
"description": "Default required flag for entries in fields[]."
|
|
717
|
+
},
|
|
718
|
+
"locked": {
|
|
719
|
+
"type": "boolean",
|
|
720
|
+
"description": "Default locked flag for entries in fields[]."
|
|
721
|
+
},
|
|
722
|
+
"fields": {
|
|
723
|
+
"type": "array",
|
|
724
|
+
"items": {
|
|
725
|
+
"type": "object",
|
|
726
|
+
"required": [
|
|
727
|
+
"name"
|
|
728
|
+
],
|
|
729
|
+
"properties": {
|
|
730
|
+
"name": {
|
|
731
|
+
"type": "string",
|
|
732
|
+
"minLength": 1
|
|
733
|
+
},
|
|
734
|
+
"required": {
|
|
735
|
+
"type": "boolean"
|
|
736
|
+
},
|
|
737
|
+
"visible": {
|
|
738
|
+
"type": "boolean"
|
|
739
|
+
},
|
|
740
|
+
"locked": {
|
|
741
|
+
"type": "boolean"
|
|
742
|
+
},
|
|
743
|
+
"label": {
|
|
744
|
+
"type": "string",
|
|
745
|
+
"minLength": 1
|
|
746
|
+
},
|
|
747
|
+
"placeholder": {
|
|
748
|
+
"type": "string"
|
|
749
|
+
}
|
|
750
|
+
},
|
|
751
|
+
"additionalProperties": false
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
},
|
|
755
|
+
"additionalProperties": false
|
|
756
|
+
}
|
|
757
|
+
]
|
|
706
758
|
}
|
|
707
759
|
},
|
|
708
760
|
"additionalProperties": false
|
|
@@ -721,6 +773,80 @@
|
|
|
721
773
|
}
|
|
722
774
|
},
|
|
723
775
|
"additionalProperties": false
|
|
776
|
+
},
|
|
777
|
+
"authenticationUsageEntry": {
|
|
778
|
+
"type": "object",
|
|
779
|
+
"description": "Authentication slot with usage separation. Reuses authType branches from legacy authentication.",
|
|
780
|
+
"required": [
|
|
781
|
+
"key",
|
|
782
|
+
"usage",
|
|
783
|
+
"authType"
|
|
784
|
+
],
|
|
785
|
+
"properties": {
|
|
786
|
+
"key": {
|
|
787
|
+
"type": "string",
|
|
788
|
+
"pattern": "^[a-zA-Z0-9_-]+$",
|
|
789
|
+
"minLength": 1,
|
|
790
|
+
"maxLength": 64
|
|
791
|
+
},
|
|
792
|
+
"usage": {
|
|
793
|
+
"type": "string",
|
|
794
|
+
"enum": [
|
|
795
|
+
"api",
|
|
796
|
+
"webhookInbound",
|
|
797
|
+
"syncExecution",
|
|
798
|
+
"messageInbound",
|
|
799
|
+
"messageOutbound",
|
|
800
|
+
"callback",
|
|
801
|
+
"provisioning"
|
|
802
|
+
]
|
|
803
|
+
},
|
|
804
|
+
"authType": {
|
|
805
|
+
"type": "string",
|
|
806
|
+
"enum": [
|
|
807
|
+
"credential",
|
|
808
|
+
"apiProvider",
|
|
809
|
+
"none"
|
|
810
|
+
]
|
|
811
|
+
},
|
|
812
|
+
"credential": {
|
|
813
|
+
"$ref": "#/$defs/credentialTemplate"
|
|
814
|
+
},
|
|
815
|
+
"apiProvider": {
|
|
816
|
+
"$ref": "#/$defs/apiProviderReference"
|
|
817
|
+
}
|
|
818
|
+
},
|
|
819
|
+
"additionalProperties": false,
|
|
820
|
+
"allOf": [
|
|
821
|
+
{
|
|
822
|
+
"if": {
|
|
823
|
+
"properties": {
|
|
824
|
+
"authType": {
|
|
825
|
+
"const": "credential"
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
},
|
|
829
|
+
"then": {
|
|
830
|
+
"required": [
|
|
831
|
+
"credential"
|
|
832
|
+
]
|
|
833
|
+
}
|
|
834
|
+
},
|
|
835
|
+
{
|
|
836
|
+
"if": {
|
|
837
|
+
"properties": {
|
|
838
|
+
"authType": {
|
|
839
|
+
"const": "apiProvider"
|
|
840
|
+
}
|
|
841
|
+
}
|
|
842
|
+
},
|
|
843
|
+
"then": {
|
|
844
|
+
"required": [
|
|
845
|
+
"apiProvider"
|
|
846
|
+
]
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
]
|
|
724
850
|
}
|
|
725
851
|
},
|
|
726
852
|
"x-systemKindCatalog": {
|
|
@@ -913,7 +1039,7 @@
|
|
|
913
1039
|
"default": false
|
|
914
1040
|
},
|
|
915
1041
|
"authentication": {
|
|
916
|
-
"description": "Nested authentication: authType credential (local template), apiProvider (Miso delegated), or none.",
|
|
1042
|
+
"description": "Nested authentication: authType credential (local template), apiProvider (Miso delegated), or none. Deprecated — prefer authentications[] with usage.",
|
|
917
1043
|
"oneOf": [
|
|
918
1044
|
{
|
|
919
1045
|
"type": "object",
|
|
@@ -961,6 +1087,14 @@
|
|
|
961
1087
|
}
|
|
962
1088
|
]
|
|
963
1089
|
},
|
|
1090
|
+
"authentications": {
|
|
1091
|
+
"type": "array",
|
|
1092
|
+
"description": "Multi-slot authentication with usage separation. One authentication normalizes to [{key:default, usage:api, ...}].",
|
|
1093
|
+
"items": {
|
|
1094
|
+
"$ref": "#/$defs/authenticationUsageEntry"
|
|
1095
|
+
},
|
|
1096
|
+
"uniqueItems": true
|
|
1097
|
+
},
|
|
964
1098
|
"openapi": {
|
|
965
1099
|
"type": "object",
|
|
966
1100
|
"description": "System-level connectivity and bootstrap hints for OpenAPI-backed systems (e.g. default specUrl for discovery, documentKey alignment with shared registry entries). Not the authoritative per-datasource vendor OpenAPI contract; that is declared on the datasource via externalSpec and validated against imported material.",
|
|
@@ -1037,6 +1171,12 @@
|
|
|
1037
1171
|
"required": {
|
|
1038
1172
|
"type": "boolean"
|
|
1039
1173
|
},
|
|
1174
|
+
"category": {
|
|
1175
|
+
"type": "string",
|
|
1176
|
+
"description": "Optional UI grouping label for portal/deployment wizard Configuration tab",
|
|
1177
|
+
"minLength": 1,
|
|
1178
|
+
"maxLength": 100
|
|
1179
|
+
},
|
|
1040
1180
|
"portalInput": {
|
|
1041
1181
|
"type": "object",
|
|
1042
1182
|
"required": [
|
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
{ "cliFlag": "-e, --env <env>", "requestField": null, "note": "Controller/dataplane URL and token selection" },
|
|
10
10
|
{ "cliFlag": "-p, --payload <file>", "requestField": "payloadTemplate", "note": "Loaded object merged into request when integration-style test" },
|
|
11
11
|
{ "cliFlag": "--timeout <ms>", "requestField": null, "note": "Client aggregate HTTP budget (POST + polls)" },
|
|
12
|
+
{ "cliFlag": "--version <target>", "requestField": "e2eOptions.versionTarget", "runType": "e2e", "default": "latest", "values": ["latest", "running", "<versionId>"] },
|
|
13
|
+
{ "cliFlag": "--sync-mode <mode>", "requestField": "e2eOptions.syncMode", "runType": "e2e", "default": "auto", "values": ["auto", "never", "force"], "note": "Distinct from --sync (publish local files before test)" },
|
|
14
|
+
{ "cliFlag": "--sync", "requestField": null, "note": "Publish local integration files before test (upload); not the same as --sync-mode" },
|
|
12
15
|
{ "cliFlag": "--debug [level]", "requestField": "includeDebug", "default": false, "note": "summary|full|raw affects TTY appendix only; any presence sets includeDebug" },
|
|
13
16
|
{ "cliFlag": "--no-async", "requestField": "asyncRun", "note": "When true on CLI, omit asyncRun or set false; sync-only POST" },
|
|
14
17
|
{ "cliFlag": "--no-run-scenarios", "requestField": "e2eOptions.runScenarios", "runType": "e2e" },
|
|
@@ -204,6 +204,19 @@ parameters:
|
|
|
204
204
|
notes: >-
|
|
205
205
|
JWT signing secret; generated on first ensure. Azure Bicep typically uses `${prefix}-secrets-jwtKeyVault`.
|
|
206
206
|
|
|
207
|
+
# LICENSE_JWT=kv://miso-controller-jwt-licenseKeyVault — local default skips Mori/JWT license checks.
|
|
208
|
+
# Controller ignores DEVELOPMENT when DEPLOYMENT=azure.
|
|
209
|
+
- key: miso-controller-jwt-licenseKeyVault
|
|
210
|
+
scope: app
|
|
211
|
+
generator:
|
|
212
|
+
type: literal
|
|
213
|
+
value: 'DEVELOPMENT'
|
|
214
|
+
ensureOn: [upInfra, resolveApp]
|
|
215
|
+
azure:
|
|
216
|
+
notes: >-
|
|
217
|
+
Local/dev default DEVELOPMENT disables license validation (no Mori/JWT required).
|
|
218
|
+
Ignored when DEPLOYMENT=azure. Override with a real offline license JWT (or empty for Mori) in non-dev.
|
|
219
|
+
|
|
207
220
|
# Exact entry so this is not caught by *KeyVault → randomBytes32 (invalid email).
|
|
208
221
|
- key: miso-controller-admin-emailKeyVault
|
|
209
222
|
scope: app
|
|
@@ -327,7 +340,18 @@ parameters:
|
|
|
327
340
|
vaultSecretName: dataplane-client-secretKeyVault
|
|
328
341
|
notes: Per-app OAuth client secret for dataplane; generated on first ensure.
|
|
329
342
|
|
|
330
|
-
# Mori / telemetry: optional locally (LICENSE_JWT=DEVELOPMENT skips Mori)
|
|
343
|
+
# Mori / telemetry: optional locally (LICENSE_JWT via miso-controller-jwt-licenseKeyVault=DEVELOPMENT skips Mori).
|
|
344
|
+
# MORI_AUTH_METHOD=kv://mori-controller-auth-methodKeyVault — local default apiKey.
|
|
345
|
+
- key: mori-controller-auth-methodKeyVault
|
|
346
|
+
scope: infra
|
|
347
|
+
generator:
|
|
348
|
+
type: literal
|
|
349
|
+
value: 'apiKey'
|
|
350
|
+
ensureOn: [upInfra, resolveApp]
|
|
351
|
+
azure:
|
|
352
|
+
notes: >-
|
|
353
|
+
Local/dev default apiKey. Override when using Mori basic auth or other methods.
|
|
354
|
+
|
|
331
355
|
- key: mori-controller-api-keyKeyVault
|
|
332
356
|
scope: infra
|
|
333
357
|
generator:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version":
|
|
2
|
+
"version": 8,
|
|
3
3
|
"semantics": {
|
|
4
4
|
"visibility.show": "When false, the field name is omitted from default portal field lists, embedded credential form field lists, and from public API credentialConfig read models (GET/list with decrypt=false), in addition to any omission driven by encrypted. GET with decrypt=true returns the full decrypted config for authorized callers and does not apply this visibility filter.",
|
|
5
5
|
"visibility.showValue": "UI-only: whether stored values may be shown versus placeholders in form flows that honor this flag. Does not control encryption at rest or public API stripping.",
|
|
@@ -114,10 +114,12 @@
|
|
|
114
114
|
"display": {
|
|
115
115
|
"label": "Tenant ID",
|
|
116
116
|
"control": "text",
|
|
117
|
-
"enabled": true
|
|
117
|
+
"enabled": true,
|
|
118
|
+
"placeholder": "Azure AD directory (tenant) ID",
|
|
119
|
+
"description": "Used for Microsoft identity platforms. May also appear in tokenUrl as {{tenantId}}."
|
|
118
120
|
},
|
|
119
121
|
"visibility": {
|
|
120
|
-
"show":
|
|
122
|
+
"show": true,
|
|
121
123
|
"showValue": true
|
|
122
124
|
},
|
|
123
125
|
"encrypted": false
|
|
@@ -149,6 +151,20 @@
|
|
|
149
151
|
"showValue": false
|
|
150
152
|
},
|
|
151
153
|
"encrypted": true
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"name": "accessTokenExpiresAt",
|
|
157
|
+
"required": false,
|
|
158
|
+
"display": {
|
|
159
|
+
"label": "Access Token Expires At",
|
|
160
|
+
"control": "text",
|
|
161
|
+
"enabled": false
|
|
162
|
+
},
|
|
163
|
+
"visibility": {
|
|
164
|
+
"show": false,
|
|
165
|
+
"showValue": false
|
|
166
|
+
},
|
|
167
|
+
"encrypted": false
|
|
152
168
|
}
|
|
153
169
|
]
|
|
154
170
|
},
|
|
@@ -394,7 +410,7 @@
|
|
|
394
410
|
]
|
|
395
411
|
},
|
|
396
412
|
"oidc": {
|
|
397
|
-
"active":
|
|
413
|
+
"active": true,
|
|
398
414
|
"display": {
|
|
399
415
|
"label": "OIDC",
|
|
400
416
|
"order": 5
|
|
@@ -485,7 +501,7 @@
|
|
|
485
501
|
]
|
|
486
502
|
},
|
|
487
503
|
"hmac": {
|
|
488
|
-
"active":
|
|
504
|
+
"active": true,
|
|
489
505
|
"display": {
|
|
490
506
|
"label": "HMAC",
|
|
491
507
|
"order": 6
|
|
@@ -279,6 +279,15 @@
|
|
|
279
279
|
}
|
|
280
280
|
},
|
|
281
281
|
"additionalProperties": false
|
|
282
|
+
},
|
|
283
|
+
"fieldHints": {
|
|
284
|
+
"type": "object",
|
|
285
|
+
"description": "Optional per-field extraction hints for governed FK review (plan 441.1).",
|
|
286
|
+
"additionalProperties": {
|
|
287
|
+
"type": "string",
|
|
288
|
+
"minLength": 1,
|
|
289
|
+
"maxLength": 512
|
|
290
|
+
}
|
|
282
291
|
}
|
|
283
292
|
},
|
|
284
293
|
"additionalProperties": false
|
|
@@ -90,7 +90,7 @@ function logTrustWarningsAndFindings(run, opts) {
|
|
|
90
90
|
function logTrustFooter(run, opts) {
|
|
91
91
|
logger.log('');
|
|
92
92
|
logger.log(metaGray(' ── Integration reality (informative) ──'));
|
|
93
|
-
logger.log(metaGray(` Local manifest: ${opts.
|
|
93
|
+
logger.log(metaGray(` Local manifest: ${opts.noPublish ? 'not uploaded (--no-publish)' : 'uploaded before run'}`));
|
|
94
94
|
logger.log(metaGray(` Publish gate: ${publishGateLine(run.trustDecision, opts.strict === true)}`));
|
|
95
95
|
logger.log(SEP);
|
|
96
96
|
}
|
package/lib/utils/api.js
CHANGED
|
@@ -426,8 +426,14 @@ async function authenticatedApiCall(url, options = {}, tokenOrAuthConfig) {
|
|
|
426
426
|
headers
|
|
427
427
|
});
|
|
428
428
|
|
|
429
|
-
// Only attempt device token refresh on 401 when user Bearer token was used (not for client-token)
|
|
430
|
-
|
|
429
|
+
// Only attempt device token refresh on 401 when user Bearer token was used (not for client-token).
|
|
430
|
+
// Token-forward (builder-api): never refresh from mount device store — keep the caller JWT.
|
|
431
|
+
if (
|
|
432
|
+
!response.success &&
|
|
433
|
+
response.status === 401 &&
|
|
434
|
+
authType !== 'client-token' &&
|
|
435
|
+
!(typeof tokenOrAuthConfig === 'object' && tokenOrAuthConfig?.preserveBearer)
|
|
436
|
+
) {
|
|
431
437
|
try {
|
|
432
438
|
const { forceRefreshDeviceToken } = require('./token-manager');
|
|
433
439
|
const refreshedToken = await forceRefreshDeviceToken(authControllerUrl || extractControllerUrl(url));
|