@aifabrix/builder 2.42.1 → 2.44.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/rules/anchor-docs.mdc +15 -0
- package/README.md +2 -2
- package/anchor-docs/README.md +10 -0
- package/anchor-docs/_TEMPLATE +24 -0
- package/bin/aifabrix.js +13 -4
- package/integration/hubspot-test/README.md +157 -0
- package/integration/{hubspot → hubspot-test}/application.json +6 -6
- package/integration/{hubspot → hubspot-test}/create-hubspot.js +10 -10
- package/integration/hubspot-test/env.template +4 -0
- package/integration/hubspot-test/hubspot-test-datasource-company.json +138 -0
- package/integration/hubspot-test/hubspot-test-datasource-contact.json +146 -0
- package/integration/hubspot-test/hubspot-test-datasource-deal.json +146 -0
- package/integration/hubspot-test/hubspot-test-datasource-users.json +76 -0
- package/integration/{hubspot/hubspot-deploy.json → hubspot-test/hubspot-test-deploy.json} +201 -24
- package/integration/{hubspot/hubspot-system.json → hubspot-test/hubspot-test-system.json} +8 -7
- package/integration/hubspot-test/rbac.json +166 -0
- package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-hubspot-credential-real.yaml +3 -3
- package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-hubspot-env-vars.yaml +2 -2
- package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-invalid-add-datasource.yaml +1 -1
- package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-invalid-credential-create.yaml +1 -1
- package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-invalid-credential-select.yaml +1 -1
- package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-invalid-known-platform.yaml +1 -1
- package/integration/hubspot-test/test-artifacts/wizard-invalid-missing-source.yaml +2 -0
- package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-invalid-mode.yaml +1 -1
- package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-invalid-openapi-file.yaml +1 -1
- package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-invalid-openapi-url.yaml +1 -1
- package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-invalid-source.yaml +1 -1
- package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-valid-for-dimension-array-test.yaml +1 -1
- package/integration/hubspot-test/test-artifacts/wizard-valid-for-dimension-key-test.yaml +5 -0
- package/integration/hubspot-test/test-artifacts/wizard-valid-for-dimension-path-test.yaml +5 -0
- package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-valid-for-dimension-test.yaml +1 -1
- package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-valid-for-rbac-test.yaml +1 -1
- package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-valid-for-rbac-yaml-test.yaml +1 -1
- package/integration/{hubspot → hubspot-test}/test-dataplane-down-tests.js +1 -7
- package/integration/{hubspot → hubspot-test}/test-dataplane-down.js +3 -3
- package/integration/{hubspot → hubspot-test}/test.js +137 -102
- package/integration/{hubspot → hubspot-test}/wizard-hubspot-e2e.yaml +2 -2
- package/integration/{hubspot → hubspot-test}/wizard-hubspot-platform.yaml +1 -1
- package/integration/hubspot-test/wizard-hubspot-test-headless.yaml +23 -0
- package/integration/roundtrip-test-local/README.md +144 -0
- package/integration/roundtrip-test-local/application.yaml +13 -0
- package/integration/roundtrip-test-local/env.template +15 -0
- package/integration/roundtrip-test-local/roundtrip-test-local-datasource-roundtrip-test-company.yaml +14 -0
- package/integration/roundtrip-test-local/roundtrip-test-local-deploy.json +61 -0
- package/integration/roundtrip-test-local/roundtrip-test-local-system.yaml +25 -0
- package/integration/roundtrip-test-local2/README.md +144 -0
- package/integration/roundtrip-test-local2/application.yaml +13 -0
- package/integration/roundtrip-test-local2/env.template +15 -0
- package/integration/roundtrip-test-local2/roundtrip-test-local2-datasource-company.yaml +31 -0
- package/integration/roundtrip-test-local2/roundtrip-test-local2-deploy.json +86 -0
- package/integration/roundtrip-test-local2/roundtrip-test-local2-system.yaml +25 -0
- package/integration/test/wizard.yaml +8 -0
- package/jest.config.default.js +10 -0
- package/jest.config.integration.fixtures.js +22 -0
- package/jest.config.integration.js +21 -18
- package/jest.config.isolated.js +10 -0
- package/jest.projects.js +288 -0
- package/lib/api/datasources-core.api.js +3 -3
- package/lib/api/dev-mtls-request.js +110 -0
- package/lib/api/dev-server-https.js +145 -0
- package/lib/api/dev.api.js +133 -144
- package/lib/api/index.js +0 -1
- package/lib/api/pipeline.api.js +67 -20
- package/lib/api/service-users.api.js +111 -2
- package/lib/api/types/dev.types.js +4 -3
- package/lib/api/types/pipeline.types.js +8 -5
- package/lib/api/types/service-users.types.js +41 -0
- package/lib/api/types/validation-run.types.js +56 -0
- package/lib/api/validation-run.api.js +99 -0
- package/lib/api/validation-runner.js +99 -0
- package/lib/app/config.js +1 -1
- package/lib/app/deploy-status-display.js +2 -2
- package/lib/app/deploy.js +7 -6
- package/lib/app/display.js +2 -1
- package/lib/app/dockerfile.js +3 -2
- package/lib/app/down.js +2 -1
- package/lib/app/helpers.js +6 -5
- package/lib/app/index.js +27 -8
- package/lib/app/list.js +7 -6
- package/lib/app/push.js +4 -3
- package/lib/app/register.js +19 -8
- package/lib/app/rotate-secret.js +17 -13
- package/lib/app/run-container-start.js +184 -0
- package/lib/app/run-docker-fallback.js +108 -0
- package/lib/app/run-env-compose.js +30 -42
- package/lib/app/run-helpers.js +49 -126
- package/lib/app/run-infra-requirements.js +30 -0
- package/lib/app/run-resolve-image.js +21 -0
- package/lib/app/run.js +74 -21
- package/lib/app/show-display.js +1 -1
- package/lib/app/show.js +1 -1
- package/lib/build/index.js +13 -10
- package/lib/cli/index.js +2 -0
- package/lib/cli/setup-app.help.js +67 -0
- package/lib/cli/setup-app.js +59 -123
- package/lib/cli/setup-app.test-commands.js +179 -0
- package/lib/cli/setup-auth.js +36 -14
- package/lib/cli/setup-credential-deployment.js +22 -8
- package/lib/cli/setup-dev-path-commands.js +124 -0
- package/lib/cli/setup-dev.js +190 -103
- package/lib/cli/setup-environment.js +11 -20
- package/lib/cli/setup-external-system.js +62 -22
- package/lib/cli/setup-infra.js +139 -47
- package/lib/cli/setup-parameters.js +32 -0
- package/lib/cli/setup-secrets.js +147 -10
- package/lib/cli/setup-service-user.js +146 -20
- package/lib/cli/setup-utility.js +47 -19
- package/lib/commands/app-down.js +5 -7
- package/lib/commands/app-install.js +14 -7
- package/lib/commands/app-logs.js +13 -10
- package/lib/commands/app-shell.js +4 -1
- package/lib/commands/app-test.js +25 -19
- package/lib/commands/app.js +22 -10
- package/lib/commands/auth-config.js +10 -14
- package/lib/commands/auth-status.js +4 -3
- package/lib/commands/credential-env.js +4 -3
- package/lib/commands/credential-list.js +5 -4
- package/lib/commands/credential-push.js +4 -3
- package/lib/commands/datasource-unified-test-cli.js +495 -0
- package/lib/commands/datasource-unified-test-cli.options.js +149 -0
- package/lib/commands/datasource-validation-cli.js +129 -0
- package/lib/commands/datasource.js +123 -71
- package/lib/commands/deployment-list.js +6 -5
- package/lib/commands/dev-cli-handlers.js +122 -18
- package/lib/commands/dev-down.js +4 -3
- package/lib/commands/dev-init.js +231 -116
- package/lib/commands/dev-show-display.js +473 -0
- package/lib/commands/login-credentials.js +3 -2
- package/lib/commands/login-device.js +4 -3
- package/lib/commands/login.js +5 -4
- package/lib/commands/logout.js +8 -7
- package/lib/commands/parameters-validate.js +54 -0
- package/lib/commands/repair-datasource.js +314 -68
- package/lib/commands/repair-env-template.js +16 -10
- package/lib/commands/repair-rbac.js +25 -19
- package/lib/commands/repair.js +116 -32
- package/lib/commands/secrets-list.js +23 -12
- package/lib/commands/secrets-remove-all.js +220 -0
- package/lib/commands/secrets-remove.js +22 -13
- package/lib/commands/secrets-set.js +21 -12
- package/lib/commands/secrets-validate.js +20 -7
- package/lib/commands/secure.js +10 -9
- package/lib/commands/service-user.js +243 -13
- package/lib/commands/test-e2e-external.js +27 -1
- package/lib/commands/up-common.js +28 -2
- package/lib/commands/up-dataplane.js +31 -18
- package/lib/commands/up-miso.js +19 -29
- package/lib/commands/upload.js +138 -39
- package/lib/commands/wizard-core-helpers.js +1 -1
- package/lib/commands/wizard-dataplane.js +4 -3
- package/lib/commands/wizard-helpers.js +3 -3
- package/lib/commands/wizard.js +2 -2
- package/lib/core/admin-secrets.js +16 -5
- package/lib/core/audit-logger.js +12 -4
- package/lib/core/config-attach-extensions.js +46 -0
- package/lib/core/config-runtime-paths.js +29 -0
- package/lib/core/config.js +59 -58
- package/lib/core/diff.js +3 -2
- package/lib/core/ensure-encryption-key.js +2 -4
- package/lib/core/secrets-ensure-infra.js +77 -0
- package/lib/core/secrets-ensure.js +120 -64
- package/lib/core/secrets-env-write.js +35 -7
- package/lib/core/secrets-infra-placeholder-sync.js +61 -0
- package/lib/core/secrets.js +228 -42
- package/lib/core/templates-env.js +4 -3
- package/lib/core/templates.js +1 -1
- package/lib/datasource/abac-validator.js +148 -0
- package/lib/datasource/deploy.js +75 -53
- package/lib/datasource/field-reference-validator.js +77 -36
- package/lib/datasource/integration-context.js +63 -0
- package/lib/datasource/list.js +8 -7
- package/lib/datasource/log-viewer.js +252 -0
- package/lib/datasource/resolve-app.js +109 -0
- package/lib/datasource/test-e2e.js +95 -155
- package/lib/datasource/test-integration.js +121 -109
- package/lib/datasource/unified-validation-run-body.js +65 -0
- package/lib/datasource/unified-validation-run-post.js +23 -0
- package/lib/datasource/unified-validation-run-resolve.js +43 -0
- package/lib/datasource/unified-validation-run.js +92 -0
- package/lib/datasource/validate.js +162 -15
- package/lib/deployment/deployer.js +4 -3
- package/lib/deployment/environment.js +7 -6
- package/lib/deployment/push.js +17 -8
- package/lib/external-system/delete.js +4 -3
- package/lib/external-system/deploy.js +131 -53
- package/lib/external-system/download-helpers.js +1 -1
- package/lib/external-system/download.js +7 -6
- package/lib/external-system/generator.js +104 -14
- package/lib/external-system/integration-test-dispatch.js +26 -0
- package/lib/external-system/test-execution.js +5 -1
- package/lib/external-system/test-helpers.js +0 -4
- package/lib/external-system/test-system-level-helpers.js +110 -0
- package/lib/external-system/test-system-level.js +83 -44
- package/lib/external-system/test.js +59 -8
- package/lib/generator/builders.js +23 -11
- package/lib/generator/deploy-manifest-azure-kv.js +81 -0
- package/lib/generator/external-controller-manifest.js +3 -3
- package/lib/generator/external.js +23 -11
- package/lib/generator/helpers.js +71 -12
- package/lib/generator/index.js +8 -4
- package/lib/generator/split-readme.js +12 -7
- package/lib/generator/split-variables.js +2 -1
- package/lib/generator/split.js +46 -11
- package/lib/generator/wizard-readme.js +3 -3
- package/lib/generator/wizard.js +16 -13
- package/lib/infrastructure/compose.js +60 -6
- package/lib/infrastructure/helpers.js +238 -51
- package/lib/infrastructure/index.js +64 -37
- package/lib/infrastructure/services.js +21 -15
- package/lib/internal/fs-real-sync.js +104 -0
- package/lib/internal/node-fs.js +98 -0
- package/lib/parameters/database-secret-values.js +173 -0
- package/lib/parameters/infra-kv-discovery.js +121 -0
- package/lib/parameters/infra-parameter-catalog.js +458 -0
- package/lib/parameters/infra-parameter-validate.js +64 -0
- package/lib/schema/application-schema.json +37 -17
- package/lib/schema/datasource-test-run.schema.json +493 -0
- package/lib/schema/deployment-rules.yaml +102 -63
- package/lib/schema/external-datasource.schema.json +1201 -433
- package/lib/schema/external-system.schema.json +181 -5
- package/lib/schema/flag-map-validation-run.json +31 -0
- package/lib/schema/infra-parameter.schema.json +106 -0
- package/lib/schema/infra.parameter.yaml +421 -0
- package/lib/schema/type/credential-auth-templates.json +40 -0
- package/lib/schema/type/document-storage.json +213 -0
- package/lib/schema/type/message-service.json +123 -0
- package/lib/schema/type/vector-store.json +88 -0
- package/lib/utils/aifabrix-runtime-config-dir.js +132 -0
- package/lib/utils/api-error-handler.js +2 -2
- package/lib/utils/api.js +49 -14
- package/lib/utils/app-config-resolver.js +23 -1
- package/lib/utils/app-register-api.js +3 -2
- package/lib/utils/app-register-auth.js +1 -1
- package/lib/utils/app-register-config.js +4 -4
- package/lib/utils/app-register-display.js +3 -2
- package/lib/utils/app-register-validator.js +3 -2
- package/lib/utils/app-run-containers.js +26 -22
- package/lib/utils/app-scoped-config.js +31 -0
- package/lib/utils/app-service-env-from-builder.js +164 -0
- package/lib/utils/build-copy.js +1 -1
- package/lib/utils/build-helpers.js +20 -20
- package/lib/utils/build-resolve-image.js +165 -0
- package/lib/utils/cli-layout-chalk.js +8 -0
- package/lib/utils/cli-test-layout-chalk.js +267 -0
- package/lib/utils/cli-utils.js +88 -11
- package/lib/utils/compose-db-passwords.js +138 -0
- package/lib/utils/compose-generate-docker-compose.js +216 -0
- package/lib/utils/compose-generator.js +197 -291
- package/lib/utils/compose-miso-env.js +18 -0
- package/lib/utils/compose-traefik-ingress-base.js +158 -0
- package/lib/utils/config-paths.js +209 -6
- package/lib/utils/config-scoped-resources-preference.js +41 -0
- package/lib/utils/controller-deployment-outcome.js +68 -0
- package/lib/utils/credential-display.js +2 -2
- package/lib/utils/credential-secrets-env.js +16 -1
- package/lib/utils/dataplane-pipeline-warning.js +4 -3
- package/lib/utils/datasource-test-run-capability-scope.js +43 -0
- package/lib/utils/datasource-test-run-debug-display.js +137 -0
- package/lib/utils/datasource-test-run-debug-slice.js +93 -0
- package/lib/utils/datasource-test-run-display.js +442 -0
- package/lib/utils/datasource-test-run-exit.js +58 -0
- package/lib/utils/datasource-test-run-legacy-adapter.js +93 -0
- package/lib/utils/datasource-test-run-report-version.js +51 -0
- package/lib/utils/datasource-test-run-schema-sync.js +59 -0
- package/lib/utils/datasource-test-run-tty-log.js +81 -0
- package/lib/utils/datasource-validation-watch.js +266 -0
- package/lib/utils/declarative-url-ports.js +47 -0
- package/lib/utils/derive-env-key-from-client-id.js +41 -0
- package/lib/utils/dev-ca-install.js +185 -23
- package/lib/utils/dev-cert-helper.js +266 -17
- package/lib/utils/dev-hosts-helper.js +307 -0
- package/lib/utils/dev-init-cert-hints.js +37 -0
- package/lib/utils/dev-init-health-messages.js +52 -0
- package/lib/utils/dev-init-resolve.js +86 -0
- package/lib/utils/dev-init-ssh-merge.js +65 -0
- package/lib/utils/dev-ssh-config-helper.js +196 -0
- package/lib/utils/dev-user-groups.js +93 -0
- package/lib/utils/docker-build.js +42 -17
- package/lib/utils/docker-exec.js +28 -0
- package/lib/utils/docker-manifest-public-port.js +116 -0
- package/lib/utils/docker-not-running-hint.js +52 -0
- package/lib/utils/docker.js +98 -11
- package/lib/utils/ensure-dev-certs-for-remote-docker.js +192 -0
- package/lib/utils/env-config-loader.js +10 -91
- package/lib/utils/env-copy.js +19 -10
- package/lib/utils/env-map.js +42 -11
- package/lib/utils/env-template.js +2 -2
- package/lib/utils/environment-scoped-resources.js +144 -0
- package/lib/utils/error-formatter.js +125 -9
- package/lib/utils/error-formatters/http-status-errors.js +6 -5
- package/lib/utils/error-formatters/network-errors.js +2 -1
- package/lib/utils/error-formatters/permission-errors.js +2 -1
- package/lib/utils/error-formatters/validation-errors.js +2 -1
- package/lib/utils/external-env-template.js +180 -0
- package/lib/utils/external-readme.js +8 -1
- package/lib/utils/external-system-display.js +277 -136
- package/lib/utils/external-system-local-test-tty.js +389 -0
- package/lib/utils/external-system-readiness-core.js +377 -0
- package/lib/utils/external-system-readiness-deploy-display.js +270 -0
- package/lib/utils/external-system-readiness-display-internals.js +150 -0
- package/lib/utils/external-system-readiness-display.js +186 -0
- package/lib/utils/external-system-test-helpers.js +24 -6
- package/lib/utils/external-system-validators.js +32 -14
- package/lib/utils/health-check-url.js +119 -0
- package/lib/utils/health-check.js +59 -25
- package/lib/utils/help-builder.js +14 -13
- package/lib/utils/image-version.js +4 -8
- package/lib/utils/infra-containers.js +4 -7
- package/lib/utils/infra-env-defaults.js +162 -0
- package/lib/utils/infra-status-display.js +167 -0
- package/lib/utils/infra-status.js +16 -8
- package/lib/utils/local-secrets.js +29 -7
- package/lib/utils/paths.js +136 -48
- package/lib/utils/port-resolver.js +10 -23
- package/lib/utils/redis-env-scope.js +62 -0
- package/lib/utils/register-aifabrix-shell-env.js +204 -0
- package/lib/utils/remote-builder-validation.js +99 -0
- package/lib/utils/remote-dev-auth.js +117 -21
- package/lib/utils/remote-docker-env.js +67 -15
- package/lib/utils/remote-secrets-loader.js +13 -4
- package/lib/utils/resolve-docker-image-ref.js +124 -0
- package/lib/utils/schema-loader.js +22 -9
- package/lib/utils/secrets-bash-kv.js +25 -0
- package/lib/utils/secrets-generator.js +171 -51
- package/lib/utils/secrets-helpers.js +70 -59
- package/lib/utils/secrets-kv-scope.js +60 -0
- package/lib/utils/secrets-utils.js +35 -37
- package/lib/utils/secrets-validation.js +3 -1
- package/lib/utils/secrets-yaml-preserve.js +109 -0
- package/lib/utils/secure-file-permissions.js +91 -0
- package/lib/utils/ssh-key-helper.js +4 -2
- package/lib/utils/template-helpers.js +2 -2
- package/lib/utils/test-log-writer.js +3 -3
- package/lib/utils/token-manager.js +37 -5
- package/lib/utils/url-declarative-public-base.js +188 -0
- package/lib/utils/url-declarative-resolve-build.js +493 -0
- package/lib/utils/url-declarative-resolve-load-doc.js +51 -0
- package/lib/utils/url-declarative-resolve.js +220 -0
- package/lib/utils/url-declarative-token-parse.js +74 -0
- package/lib/utils/url-declarative-url-flags.js +50 -0
- package/lib/utils/url-declarative-vdir-inactive-env.js +99 -0
- package/lib/utils/url-public-path-prefix.js +34 -0
- package/lib/utils/urls-local-registry.js +220 -0
- package/lib/utils/validation-report-tty-kit.js +77 -0
- package/lib/utils/validation-run-poll.js +89 -0
- package/lib/utils/validation-run-post-retry.js +73 -0
- package/lib/utils/validation-run-request.js +98 -0
- package/lib/utils/variable-transformer.js +21 -4
- package/lib/utils/yaml-preserve.js +78 -1
- package/lib/validation/datasource-warnings.js +56 -0
- package/lib/validation/env-template-auth.js +50 -2
- package/lib/validation/external-manifest-validator.js +35 -7
- package/lib/validation/validate-display.js +37 -31
- package/lib/validation/validate.js +9 -10
- package/lib/validation/validator-unresolved-placeholders.js +98 -0
- package/lib/validation/validator.js +32 -78
- package/lib/validation/wizard-config-validator.js +2 -1
- package/package.json +11 -3
- package/scripts/check-datasource-test-run-schema-sync.js +34 -0
- package/scripts/diagnose-cli.js +150 -0
- package/scripts/install-local.js +304 -55
- package/templates/README.md +15 -2
- package/templates/applications/dataplane/application.yaml +52 -2
- package/templates/applications/dataplane/env.template +80 -18
- package/templates/applications/dataplane/rbac.yaml +8 -0
- package/templates/applications/keycloak/application.yaml +9 -1
- package/templates/applications/keycloak/env.template +15 -6
- package/templates/applications/miso-controller/application.yaml +10 -2
- package/templates/applications/miso-controller/env.template +55 -14
- package/templates/applications/miso-controller/rbac.yaml +5 -0
- package/templates/external-system/README.md.hbs +20 -7
- package/templates/external-system/deploy.js.hbs +5 -5
- package/templates/external-system/env.template.hbs +22 -0
- package/templates/external-system/external-datasource.yaml.hbs +197 -118
- package/templates/infra/compose.yaml.hbs +20 -4
- package/templates/python/docker-compose.hbs +16 -0
- package/templates/typescript/docker-compose.hbs +16 -0
- package/integration/hubspot/README.md +0 -102
- package/integration/hubspot/env.template +0 -4
- package/integration/hubspot/hubspot-datasource-company.json +0 -541
- package/integration/hubspot/hubspot-datasource-contact.json +0 -639
- package/integration/hubspot/hubspot-datasource-deal.json +0 -588
- package/integration/hubspot/hubspot-datasource-users.json +0 -116
- package/integration/hubspot/test-artifacts/wizard-invalid-missing-source.yaml +0 -2
- package/integration/hubspot/test-artifacts/wizard-valid-for-dimension-key-test.yaml +0 -5
- package/integration/hubspot/test-artifacts/wizard-valid-for-dimension-path-test.yaml +0 -5
- package/lib/api/external-test.api.js +0 -111
- package/lib/schema/env-config.yaml +0 -43
- /package/integration/{hubspot → hubspot-test}/companies.json +0 -0
- /package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-invalid-app-name.yaml +0 -0
- /package/integration/{hubspot → hubspot-test}/test-artifacts/wizard-invalid-missing-app.yaml +0 -0
- /package/integration/{hubspot → hubspot-test}/test-dataplane-down-helpers.js +0 -0
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "aifabrix://schema/datasource-test-run.schema.json",
|
|
4
|
+
"title": "DatasourceTestRun",
|
|
5
|
+
"description": "Canonical datasource-root test report (plans 362/365). Public success shape for POST /api/v1/validation/run (and async poll GET /validation/run/{testRunId}). runType=test|integration|e2e; CLI/docs may say test | test-integration | test-e2e; public JSON uses runType only. Includes validation layer (machine/explain), certificate snapshot, optional integration pipeline results, capability E2Es, debug by reference, plural audit refs, developer summaries. Forward-compatible: minor reportVersion bumps may add fields.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["reportVersion", "datasourceKey", "systemKey", "runType", "status"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"reportVersion": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "Semver-style contract version for this envelope. Policy: additive fields => minor bump within same major; removed/renamed fields => major bump. Route migrations must cite target reportVersion.",
|
|
12
|
+
"example": "1.1.0"
|
|
13
|
+
},
|
|
14
|
+
"runType": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Kind of run. Maps to CLI/commands: test=test, test-integration=integration, test-e2e=e2e. Do not use kebab strings inside runType.",
|
|
17
|
+
"enum": ["test", "integration", "e2e"]
|
|
18
|
+
},
|
|
19
|
+
"status": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "Root rollup across validation, integration, certificate, and capabilities for this datasource run: ok | warn | fail | skipped.",
|
|
22
|
+
"enum": ["ok", "warn", "fail", "skipped"]
|
|
23
|
+
},
|
|
24
|
+
"reportCompleteness": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "How much of the report is populated: full=all sections populated for this runType; partial=in progress or degraded fill; minimal=async accept or early poll (use testRunId/runId to continue).",
|
|
27
|
+
"enum": ["full", "partial", "minimal"]
|
|
28
|
+
},
|
|
29
|
+
"runId": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "Server-issued stable id for this logical report run (correlation)."
|
|
32
|
+
},
|
|
33
|
+
"testRunId": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "Compatibility id for async E2E polling (POST /validation/run with runType=e2e and asyncRun=true, then GET /validation/run/{testRunId}); may equal runId per implementation."
|
|
36
|
+
},
|
|
37
|
+
"systemKey": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"description": "External system key this datasource belongs to."
|
|
40
|
+
},
|
|
41
|
+
"datasourceKey": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"description": "External datasource key within the system."
|
|
44
|
+
},
|
|
45
|
+
"validation": {
|
|
46
|
+
"$ref": "#/$defs/ValidationLayerResult"
|
|
47
|
+
},
|
|
48
|
+
"integration": {
|
|
49
|
+
"$ref": "#/$defs/IntegrationResult"
|
|
50
|
+
},
|
|
51
|
+
"certificate": {
|
|
52
|
+
"$ref": "#/$defs/CertificateResult"
|
|
53
|
+
},
|
|
54
|
+
"capabilitySummary": {
|
|
55
|
+
"$ref": "#/$defs/CapabilitySummary"
|
|
56
|
+
},
|
|
57
|
+
"capabilities": {
|
|
58
|
+
"type": "array",
|
|
59
|
+
"description": "Per-capability results; optional nested e2e object per item (see CapabilityResult). Capability discovery precedence (highest first): request.capabilities > datasource.capabilities > execution.cip.operations > openapi.operations. Custom operation keys are permitted; CIP/OpenAPI keys use canonical CRUD names where applicable.",
|
|
60
|
+
"items": {
|
|
61
|
+
"$ref": "#/$defs/CapabilityResult"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"debug": {
|
|
65
|
+
"$ref": "#/$defs/DebugTrace"
|
|
66
|
+
},
|
|
67
|
+
"audit": {
|
|
68
|
+
"$ref": "#/$defs/AuditRefs"
|
|
69
|
+
},
|
|
70
|
+
"developer": {
|
|
71
|
+
"$ref": "#/$defs/DeveloperSummary"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"$defs": {
|
|
75
|
+
"ValidationLayerResult": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"required": ["status"],
|
|
78
|
+
"description": "Structural validation outcome and explain-oriented machine outputs (ICC/PDS/DTS-shaped metrics, certification machine payloads, issues). Separate from developer narrative under developer.*",
|
|
79
|
+
"properties": {
|
|
80
|
+
"status": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"description": "Validation layer rollup: ok | warn | fail.",
|
|
83
|
+
"enum": ["ok", "warn", "fail"]
|
|
84
|
+
},
|
|
85
|
+
"summary": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"description": "Short human summary of validation outcome."
|
|
88
|
+
},
|
|
89
|
+
"issues": {
|
|
90
|
+
"type": "array",
|
|
91
|
+
"description": "Structured issues with optional codes, severity, and remediation hints.",
|
|
92
|
+
"items": {
|
|
93
|
+
"$ref": "#/$defs/Issue"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"dataReadiness": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"description": "Normalized data readiness for downstream use.",
|
|
99
|
+
"enum": ["ready", "partial", "not_ready"]
|
|
100
|
+
},
|
|
101
|
+
"metricsOutput": {
|
|
102
|
+
"type": "object",
|
|
103
|
+
"description": "Explain-oriented metrics payload (e.g. ICC/PDS/DTS-shaped); align with ValidationRunService / engine—not CLI narrative.",
|
|
104
|
+
"additionalProperties": true
|
|
105
|
+
},
|
|
106
|
+
"certificationOutput": {
|
|
107
|
+
"type": "object",
|
|
108
|
+
"description": "Explain-oriented certification payload from validation/certify path—machine layer; not developer executive copy.",
|
|
109
|
+
"additionalProperties": true
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"IntegrationResult": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"required": ["status"],
|
|
116
|
+
"description": "Pipeline/integration layer (test-integration); ordered step outcomes—not per-capability E2E (see capabilities[].e2e).",
|
|
117
|
+
"properties": {
|
|
118
|
+
"status": {
|
|
119
|
+
"type": "string",
|
|
120
|
+
"description": "Integration layer rollup: ok | warn | fail | skipped.",
|
|
121
|
+
"enum": ["ok", "warn", "fail", "skipped"]
|
|
122
|
+
},
|
|
123
|
+
"summary": {
|
|
124
|
+
"type": "string",
|
|
125
|
+
"description": "Short human summary of the integration run."
|
|
126
|
+
},
|
|
127
|
+
"stepResults": {
|
|
128
|
+
"type": "array",
|
|
129
|
+
"description": "Ordered integration step outcomes (fetch, map, normalize, etc.).",
|
|
130
|
+
"items": {
|
|
131
|
+
"$ref": "#/$defs/IntegrationStepResult"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"IntegrationStepResult": {
|
|
137
|
+
"type": "object",
|
|
138
|
+
"required": ["name", "success"],
|
|
139
|
+
"description": "Single step in an integration pipeline run.",
|
|
140
|
+
"properties": {
|
|
141
|
+
"name": {
|
|
142
|
+
"type": "string",
|
|
143
|
+
"description": "Step identifier (e.g. fetch, map, normalize)."
|
|
144
|
+
},
|
|
145
|
+
"success": {
|
|
146
|
+
"type": "boolean",
|
|
147
|
+
"description": "Whether this step completed without failure."
|
|
148
|
+
},
|
|
149
|
+
"message": {
|
|
150
|
+
"type": "string",
|
|
151
|
+
"description": "Optional step-level message."
|
|
152
|
+
},
|
|
153
|
+
"order": {
|
|
154
|
+
"type": "integer",
|
|
155
|
+
"description": "Optional ordering index within the pipeline."
|
|
156
|
+
},
|
|
157
|
+
"evidence": {
|
|
158
|
+
"type": "object",
|
|
159
|
+
"description": "Structured evidence (timings, counts, IDs); shape is implementation-defined.",
|
|
160
|
+
"additionalProperties": true
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
"CertificateResult": {
|
|
165
|
+
"type": "object",
|
|
166
|
+
"required": ["status"],
|
|
167
|
+
"description": "Certification layer for the datasource: tier, blockers, and optional capability coverage counts.",
|
|
168
|
+
"properties": {
|
|
169
|
+
"status": {
|
|
170
|
+
"type": "string",
|
|
171
|
+
"description": "Whether certification passed at the reported level.",
|
|
172
|
+
"enum": ["passed", "not_passed"]
|
|
173
|
+
},
|
|
174
|
+
"level": {
|
|
175
|
+
"type": "string",
|
|
176
|
+
"description": "Achieved certification tier when applicable.",
|
|
177
|
+
"enum": ["bronze", "silver", "gold"]
|
|
178
|
+
},
|
|
179
|
+
"summary": {
|
|
180
|
+
"type": "string",
|
|
181
|
+
"description": "Short human summary of certification outcome."
|
|
182
|
+
},
|
|
183
|
+
"blockers": {
|
|
184
|
+
"type": "array",
|
|
185
|
+
"description": "Issues preventing a higher tier or pass.",
|
|
186
|
+
"items": {
|
|
187
|
+
"$ref": "#/$defs/Issue"
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
"capabilityCoverage": {
|
|
191
|
+
"$ref": "#/$defs/CapabilitySummary"
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
"CapabilitySummary": {
|
|
196
|
+
"type": "object",
|
|
197
|
+
"description": "Aggregate pass/fail counts across capabilities (e.g. for certificate coverage or dashboards).",
|
|
198
|
+
"properties": {
|
|
199
|
+
"total": {
|
|
200
|
+
"type": "integer",
|
|
201
|
+
"description": "Total capabilities considered."
|
|
202
|
+
},
|
|
203
|
+
"passed": {
|
|
204
|
+
"type": "integer",
|
|
205
|
+
"description": "Capabilities that passed."
|
|
206
|
+
},
|
|
207
|
+
"failed": {
|
|
208
|
+
"type": "integer",
|
|
209
|
+
"description": "Capabilities that failed or errored."
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"CapabilityResult": {
|
|
214
|
+
"type": "object",
|
|
215
|
+
"required": ["key", "status"],
|
|
216
|
+
"description": "Result for one capability or CIP operation key; may include E2E detail and dependency refs.",
|
|
217
|
+
"properties": {
|
|
218
|
+
"key": {
|
|
219
|
+
"type": "string",
|
|
220
|
+
"description": "Capability or operation key (e.g. deal.list).",
|
|
221
|
+
"example": "deal.create"
|
|
222
|
+
},
|
|
223
|
+
"type": {
|
|
224
|
+
"type": "string",
|
|
225
|
+
"description": "Class of capability: read | write | sync | custom.",
|
|
226
|
+
"enum": ["read", "write", "sync", "custom"]
|
|
227
|
+
},
|
|
228
|
+
"permission": {
|
|
229
|
+
"type": "string",
|
|
230
|
+
"description": "RBAC permission name when relevant to this capability."
|
|
231
|
+
},
|
|
232
|
+
"status": {
|
|
233
|
+
"type": "string",
|
|
234
|
+
"description": "Capability rollup: ok | warn | fail | skipped.",
|
|
235
|
+
"enum": ["ok", "warn", "fail", "skipped"]
|
|
236
|
+
},
|
|
237
|
+
"e2e": {
|
|
238
|
+
"$ref": "#/$defs/E2EResult"
|
|
239
|
+
},
|
|
240
|
+
"dependsOn": {
|
|
241
|
+
"type": "array",
|
|
242
|
+
"description": "Upstream validation or integration dependencies for this capability.",
|
|
243
|
+
"items": {
|
|
244
|
+
"$ref": "#/$defs/Dependency"
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
"E2EResult": {
|
|
250
|
+
"type": "object",
|
|
251
|
+
"description": "End-to-end test outcome for a single capability or strategy. Optional debug and auditRefs point at trace material for this E2E slice.",
|
|
252
|
+
"properties": {
|
|
253
|
+
"supported": {
|
|
254
|
+
"type": "boolean",
|
|
255
|
+
"description": "Whether E2E is supported for this capability in the current configuration."
|
|
256
|
+
},
|
|
257
|
+
"strategy": {
|
|
258
|
+
"type": "string",
|
|
259
|
+
"description": "E2E strategy used: read | writeRead | crudLifecycle | custom.",
|
|
260
|
+
"enum": ["read", "writeRead", "crudLifecycle", "custom"]
|
|
261
|
+
},
|
|
262
|
+
"status": {
|
|
263
|
+
"type": "string",
|
|
264
|
+
"description": "E2E rollup for this capability: ok | warn | fail | skipped.",
|
|
265
|
+
"enum": ["ok", "warn", "fail", "skipped"]
|
|
266
|
+
},
|
|
267
|
+
"steps": {
|
|
268
|
+
"type": "array",
|
|
269
|
+
"description": "Ordered execution steps for this E2E run.",
|
|
270
|
+
"items": {
|
|
271
|
+
"$ref": "#/$defs/ExecutionStep"
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
"debug": {
|
|
275
|
+
"$ref": "#/$defs/DebugTrace"
|
|
276
|
+
},
|
|
277
|
+
"auditRefs": {
|
|
278
|
+
"$ref": "#/$defs/AuditRefs"
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
"ExecutionStep": {
|
|
283
|
+
"type": "object",
|
|
284
|
+
"required": ["stage", "status"],
|
|
285
|
+
"description": "Single stage within an execution or E2E trace.",
|
|
286
|
+
"properties": {
|
|
287
|
+
"stage": {
|
|
288
|
+
"type": "string",
|
|
289
|
+
"description": "Pipeline stage name.",
|
|
290
|
+
"enum": [
|
|
291
|
+
"fetch",
|
|
292
|
+
"transform",
|
|
293
|
+
"normalize",
|
|
294
|
+
"execute",
|
|
295
|
+
"verify",
|
|
296
|
+
"sync"
|
|
297
|
+
]
|
|
298
|
+
},
|
|
299
|
+
"status": {
|
|
300
|
+
"type": "string",
|
|
301
|
+
"description": "Step outcome: ok | warn | fail.",
|
|
302
|
+
"enum": ["ok", "warn", "fail"]
|
|
303
|
+
},
|
|
304
|
+
"durationMs": {
|
|
305
|
+
"type": "number",
|
|
306
|
+
"description": "Wall-clock duration for this step in milliseconds."
|
|
307
|
+
},
|
|
308
|
+
"error": {
|
|
309
|
+
"$ref": "#/$defs/Error"
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
"Issue": {
|
|
314
|
+
"type": "object",
|
|
315
|
+
"required": ["message"],
|
|
316
|
+
"description": "Structured issue or blocker (validation, certificate, or policy).",
|
|
317
|
+
"properties": {
|
|
318
|
+
"code": {
|
|
319
|
+
"type": "string",
|
|
320
|
+
"description": "Stable code: DP-VAL-* (structural/config), DP-CIP-* (execution/CIP), DP-SEC-* (auth/RBAC/exposure), DP-CONN-* (REST/MCP/connectivity), DP-E2E-* (end-to-end live); warnings DP-*-Wnn. Mapped from engine errorCode in DatasourceTestRun builders.",
|
|
321
|
+
"example": "DP-CIP-010"
|
|
322
|
+
},
|
|
323
|
+
"message": {
|
|
324
|
+
"type": "string",
|
|
325
|
+
"description": "Human-readable description."
|
|
326
|
+
},
|
|
327
|
+
"severity": {
|
|
328
|
+
"type": "string",
|
|
329
|
+
"description": "blocking | warning | info.",
|
|
330
|
+
"enum": ["blocking", "warning", "info"]
|
|
331
|
+
},
|
|
332
|
+
"hint": {
|
|
333
|
+
"type": "string",
|
|
334
|
+
"description": "Remediation or next-step hint."
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
},
|
|
338
|
+
"Error": {
|
|
339
|
+
"type": "object",
|
|
340
|
+
"description": "Compact error object for execution steps and debug traces.",
|
|
341
|
+
"properties": {
|
|
342
|
+
"code": {
|
|
343
|
+
"type": "string",
|
|
344
|
+
"description": "Optional stable error code."
|
|
345
|
+
},
|
|
346
|
+
"message": {
|
|
347
|
+
"type": "string",
|
|
348
|
+
"description": "Human-readable error text."
|
|
349
|
+
},
|
|
350
|
+
"hint": {
|
|
351
|
+
"type": "string",
|
|
352
|
+
"description": "Remediation or next-step hint."
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
"Dependency": {
|
|
357
|
+
"type": "object",
|
|
358
|
+
"description": "Reference to an upstream validation or integration dependency.",
|
|
359
|
+
"properties": {
|
|
360
|
+
"type": {
|
|
361
|
+
"type": "string",
|
|
362
|
+
"description": "Kind of dependency.",
|
|
363
|
+
"enum": ["validation", "integration"]
|
|
364
|
+
},
|
|
365
|
+
"ref": {
|
|
366
|
+
"type": "string",
|
|
367
|
+
"description": "Opaque reference to the dependent run or artifact."
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
"DebugTrace": {
|
|
372
|
+
"type": "object",
|
|
373
|
+
"description": "Debug material for the run. Prefer summaries and payloadRefs; embed large request/response bodies only when mode=raw and after redaction—deep trace remains on existing audit/trace APIs.",
|
|
374
|
+
"properties": {
|
|
375
|
+
"mode": {
|
|
376
|
+
"type": "string",
|
|
377
|
+
"description": "Verbosity: summary | full | raw (raw may include redacted payloads).",
|
|
378
|
+
"enum": ["summary", "full", "raw"]
|
|
379
|
+
},
|
|
380
|
+
"executionSummary": {
|
|
381
|
+
"type": "string",
|
|
382
|
+
"description": "Human-readable summary of executed work."
|
|
383
|
+
},
|
|
384
|
+
"executionIds": {
|
|
385
|
+
"type": "array",
|
|
386
|
+
"items": { "type": "string" },
|
|
387
|
+
"description": "CIP execution ids tied to this debug slice (opaque correlation)."
|
|
388
|
+
},
|
|
389
|
+
"steps": {
|
|
390
|
+
"type": "array",
|
|
391
|
+
"description": "Execution steps included in this trace.",
|
|
392
|
+
"items": {
|
|
393
|
+
"$ref": "#/$defs/ExecutionStep"
|
|
394
|
+
}
|
|
395
|
+
},
|
|
396
|
+
"errors": {
|
|
397
|
+
"type": "array",
|
|
398
|
+
"description": "Errors collected during the traced run.",
|
|
399
|
+
"items": {
|
|
400
|
+
"$ref": "#/$defs/Error"
|
|
401
|
+
}
|
|
402
|
+
},
|
|
403
|
+
"recommendations": {
|
|
404
|
+
"type": "array",
|
|
405
|
+
"items": { "type": "string" },
|
|
406
|
+
"description": "Suggested remediations or follow-ups."
|
|
407
|
+
},
|
|
408
|
+
"payloadRefs": {
|
|
409
|
+
"type": "array",
|
|
410
|
+
"description": "Pointers to full payloads via audit/trace APIs when authorized.",
|
|
411
|
+
"items": {
|
|
412
|
+
"$ref": "#/$defs/PayloadRef"
|
|
413
|
+
}
|
|
414
|
+
},
|
|
415
|
+
"e2eAsyncDebug": {
|
|
416
|
+
"type": "object",
|
|
417
|
+
"description": "Async E2E poll: masked debug from run store (requestId, timing, stepDebug, firstRequestUrl, requestParams, …).",
|
|
418
|
+
"additionalProperties": true
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
},
|
|
422
|
+
"PayloadRef": {
|
|
423
|
+
"type": "object",
|
|
424
|
+
"description": "Reference to stored or audit-linked payload; avoids bloating the report envelope.",
|
|
425
|
+
"properties": {
|
|
426
|
+
"key": {
|
|
427
|
+
"type": "string",
|
|
428
|
+
"description": "Logical name (e.g. lastRequest, normalizedSnapshot)."
|
|
429
|
+
},
|
|
430
|
+
"ref": {
|
|
431
|
+
"type": "string",
|
|
432
|
+
"description": "Opaque id or URL to retrieve via audit/trace APIs when authorized."
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
},
|
|
436
|
+
"AuditRefs": {
|
|
437
|
+
"type": "object",
|
|
438
|
+
"description": "Plural by design: one datasource-root run can fan out to multiple executions. Resolve traces via these refs—no parallel trace store.",
|
|
439
|
+
"properties": {
|
|
440
|
+
"executionIds": {
|
|
441
|
+
"type": "array",
|
|
442
|
+
"items": { "type": "string" },
|
|
443
|
+
"description": "Opaque execution identifiers."
|
|
444
|
+
},
|
|
445
|
+
"traceRefs": {
|
|
446
|
+
"type": "array",
|
|
447
|
+
"items": { "type": "string" },
|
|
448
|
+
"description": "URLs or opaque refs to execution trace endpoints."
|
|
449
|
+
},
|
|
450
|
+
"rbacTraceRefs": {
|
|
451
|
+
"type": "array",
|
|
452
|
+
"items": { "type": "string" },
|
|
453
|
+
"description": "RBAC decision or trace refs."
|
|
454
|
+
},
|
|
455
|
+
"abacTraceRefs": {
|
|
456
|
+
"type": "array",
|
|
457
|
+
"items": { "type": "string" },
|
|
458
|
+
"description": "ABAC decision or trace refs."
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
},
|
|
462
|
+
"DeveloperSummary": {
|
|
463
|
+
"type": "object",
|
|
464
|
+
"description": "CLI-oriented narrative strings only; keep ICC/PDS/DTS and raw metrics in validation.metricsOutput / certificate / debug machine paths.",
|
|
465
|
+
"properties": {
|
|
466
|
+
"executiveSummary": {
|
|
467
|
+
"type": "string",
|
|
468
|
+
"description": "High-level narrative for developers."
|
|
469
|
+
},
|
|
470
|
+
"whatPassed": {
|
|
471
|
+
"type": "array",
|
|
472
|
+
"items": { "type": "string" },
|
|
473
|
+
"description": "Bullets describing what succeeded."
|
|
474
|
+
},
|
|
475
|
+
"whatFailed": {
|
|
476
|
+
"type": "array",
|
|
477
|
+
"items": { "type": "string" },
|
|
478
|
+
"description": "Bullets describing what failed."
|
|
479
|
+
},
|
|
480
|
+
"whatNeedsAttention": {
|
|
481
|
+
"type": "array",
|
|
482
|
+
"items": { "type": "string" },
|
|
483
|
+
"description": "Bullets for warnings or follow-ups."
|
|
484
|
+
},
|
|
485
|
+
"nextActions": {
|
|
486
|
+
"type": "array",
|
|
487
|
+
"items": { "type": "string" },
|
|
488
|
+
"description": "Suggested next steps."
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
}
|
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
# Schemas (application, external-system, external-datasource) remain clean; no x-* annotations.
|
|
6
6
|
#
|
|
7
7
|
# Semantics:
|
|
8
|
-
# triggerPaths: Change affects deployment key / requires deploy
|
|
9
|
-
# overridablePaths: Value can differ per environment (preserve on promote)
|
|
10
|
-
#
|
|
8
|
+
# deployment.triggerPaths: Change affects deployment key / requires deploy
|
|
9
|
+
# deployment.overridablePaths: Value can differ per environment (preserve on promote)
|
|
10
|
+
# certification.triggerPaths: Subset of 346.rules.md §17 — inputs to certification contract hash only
|
|
11
|
+
# A path may appear in both deployment trigger and overridable (e.g. authentication.endpoints).
|
|
11
12
|
#
|
|
12
13
|
# Path format: Dot notation. Child paths override parent when both match.
|
|
13
14
|
# Schema keys: application | externalSystem | externalDataSource
|
|
@@ -32,6 +33,7 @@ application:
|
|
|
32
33
|
- configuration.items.portalInput
|
|
33
34
|
- healthCheck
|
|
34
35
|
- healthCheck.path
|
|
36
|
+
- healthCheck.bashProbe
|
|
35
37
|
- healthCheck.probePath
|
|
36
38
|
- healthCheck.probeRequestType
|
|
37
39
|
- healthCheck.probeProtocol
|
|
@@ -53,65 +55,102 @@ application:
|
|
|
53
55
|
- healthCheck.probeIntervalInSeconds
|
|
54
56
|
|
|
55
57
|
externalSystem:
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
58
|
+
deployment:
|
|
59
|
+
triggerPaths:
|
|
60
|
+
- key
|
|
61
|
+
- displayName
|
|
62
|
+
- description
|
|
63
|
+
- type
|
|
64
|
+
- enabled
|
|
65
|
+
- authentication
|
|
66
|
+
- openapi
|
|
67
|
+
- mcp
|
|
68
|
+
- dataSources
|
|
69
|
+
- configuration
|
|
70
|
+
- configuration.items
|
|
71
|
+
- tags
|
|
72
|
+
- roles
|
|
73
|
+
- permissions
|
|
74
|
+
- endpoints
|
|
75
|
+
- endpointsActive
|
|
76
|
+
- generateMcpContract
|
|
77
|
+
- generateOpenApiContract
|
|
78
|
+
overridablePaths:
|
|
79
|
+
- authentication.oauth2
|
|
80
|
+
- authentication.apikey
|
|
81
|
+
- authentication.basic
|
|
82
|
+
- authentication.aad
|
|
83
|
+
- openapi.specUrl
|
|
84
|
+
- openapi.documentKey
|
|
85
|
+
- mcp.serverUrl
|
|
86
|
+
- mcp.toolPrefix
|
|
87
|
+
- configuration.items.value
|
|
88
|
+
- credentialIdOrKey
|
|
89
|
+
certification:
|
|
90
|
+
triggerPaths:
|
|
91
|
+
- key
|
|
92
|
+
- type
|
|
93
|
+
- version
|
|
94
|
+
- authentication
|
|
95
|
+
- openapi
|
|
96
|
+
- mcp
|
|
97
|
+
- roles
|
|
98
|
+
- permissions
|
|
99
|
+
- generateMcpContract
|
|
100
|
+
- generateOpenApiContract
|
|
101
|
+
- configuration
|
|
102
|
+
- configuration.items
|
|
103
|
+
- endpoints
|
|
104
|
+
- endpointsActive
|
|
86
105
|
|
|
87
106
|
externalDataSource:
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
107
|
+
deployment:
|
|
108
|
+
triggerPaths:
|
|
109
|
+
- key
|
|
110
|
+
- displayName
|
|
111
|
+
- description
|
|
112
|
+
- enabled
|
|
113
|
+
- systemKey
|
|
114
|
+
- entityType
|
|
115
|
+
- resourceType
|
|
116
|
+
- version
|
|
117
|
+
- metadataSchema
|
|
118
|
+
- fieldMappings
|
|
119
|
+
- exposed
|
|
120
|
+
- validation
|
|
121
|
+
- quality
|
|
122
|
+
- indexing
|
|
123
|
+
- context
|
|
124
|
+
- documentStorage
|
|
125
|
+
- capabilities
|
|
126
|
+
- execution
|
|
127
|
+
- config
|
|
128
|
+
- openapi
|
|
129
|
+
overridablePaths:
|
|
130
|
+
- sync
|
|
131
|
+
- sync.mode
|
|
132
|
+
- sync.schedule
|
|
133
|
+
- sync.batchSize
|
|
134
|
+
- sync.maxParallelRequests
|
|
135
|
+
- openapi.baseUrl
|
|
136
|
+
- openapi.resourcePath
|
|
137
|
+
certification:
|
|
138
|
+
triggerPaths:
|
|
139
|
+
- key
|
|
140
|
+
- systemKey
|
|
141
|
+
- version
|
|
142
|
+
- entityType
|
|
143
|
+
- resourceType
|
|
144
|
+
- metadataSchema
|
|
145
|
+
- primaryKey
|
|
146
|
+
- labelKey
|
|
147
|
+
- foreignKeys
|
|
148
|
+
- dimensions
|
|
149
|
+
- fieldMappings
|
|
150
|
+
- exposed
|
|
151
|
+
- capabilities
|
|
152
|
+
- openapi
|
|
153
|
+
- execution
|
|
154
|
+
- documentStorage
|
|
155
|
+
- contract
|
|
156
|
+
- config.extensions
|