@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
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema":"http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id":"
|
|
3
|
+
"$id":"aifabrix://schema/external-system.schema.json",
|
|
4
4
|
"title":"AI Fabrix External System Configuration Schema",
|
|
5
5
|
"description":"Schema for configuring an external system connected to the AI Fabrix Dataplane. This defines authentication, OpenAPI/MCP bindings, field mappings defaults, metadata handling and portal inputs.",
|
|
6
6
|
"metadata":{
|
|
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.6.0",
|
|
11
11
|
"type":"schema",
|
|
12
12
|
"category":"integration",
|
|
13
13
|
"author":"AI Fabrix Team",
|
|
14
14
|
"createdAt":"2024-01-01T00:00:00Z",
|
|
15
|
-
"updatedAt":"2026-
|
|
15
|
+
"updatedAt":"2026-04-09T00:00:00Z",
|
|
16
16
|
"compatibility":{
|
|
17
17
|
"minVersion":"1.4.0",
|
|
18
18
|
"maxVersion":"2.0.0",
|
|
@@ -29,6 +29,14 @@
|
|
|
29
29
|
|
|
30
30
|
],
|
|
31
31
|
"changelog":[
|
|
32
|
+
{
|
|
33
|
+
"version":"1.6.0",
|
|
34
|
+
"date":"2026-04-09T00:00:00Z",
|
|
35
|
+
"changes":[
|
|
36
|
+
"Added identityPropagation configuration for impersonation, attribution, and system identity execution modes",
|
|
37
|
+
"Added tokenBroker mint endpoint and attribution field injection settings for runtime identity behavior"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
32
40
|
{
|
|
33
41
|
"version":"1.5.0",
|
|
34
42
|
"date":"2026-03-07T00:00:00Z",
|
|
@@ -367,7 +375,7 @@
|
|
|
367
375
|
"value":{
|
|
368
376
|
"type":"string",
|
|
369
377
|
"description":"Role identifier (used in JWT and ACL)",
|
|
370
|
-
"pattern":"^[a-
|
|
378
|
+
"pattern":"^[a-z0-9-]+$"
|
|
371
379
|
},
|
|
372
380
|
"description":{
|
|
373
381
|
"type":"string",
|
|
@@ -411,7 +419,7 @@
|
|
|
411
419
|
"description":"Roles that have this permission",
|
|
412
420
|
"items":{
|
|
413
421
|
"type":"string",
|
|
414
|
-
"pattern":"^[a-
|
|
422
|
+
"pattern":"^[a-z0-9-]+$",
|
|
415
423
|
"minLength":1,
|
|
416
424
|
"maxLength":50
|
|
417
425
|
},
|
|
@@ -484,6 +492,112 @@
|
|
|
484
492
|
"description":"SHA256 hash of triggerPaths payload (64-char hex). Used to detect structural changes. Optional; Dataplane computes when absent.",
|
|
485
493
|
"pattern":"^[a-f0-9]{64}$"
|
|
486
494
|
},
|
|
495
|
+
"identityPropagation":{
|
|
496
|
+
"type":"object",
|
|
497
|
+
"description":"Declares supported identity propagation modes and defaults for outbound operations.",
|
|
498
|
+
"required":[
|
|
499
|
+
"modes",
|
|
500
|
+
"default"
|
|
501
|
+
],
|
|
502
|
+
"properties":{
|
|
503
|
+
"modes":{
|
|
504
|
+
"type":"array",
|
|
505
|
+
"items":{
|
|
506
|
+
"type":"string",
|
|
507
|
+
"enum":[
|
|
508
|
+
"impersonation",
|
|
509
|
+
"attribution",
|
|
510
|
+
"system"
|
|
511
|
+
]
|
|
512
|
+
},
|
|
513
|
+
"uniqueItems":true,
|
|
514
|
+
"minItems":1
|
|
515
|
+
},
|
|
516
|
+
"default":{
|
|
517
|
+
"type":"string",
|
|
518
|
+
"enum":[
|
|
519
|
+
"impersonation",
|
|
520
|
+
"attribution",
|
|
521
|
+
"system"
|
|
522
|
+
]
|
|
523
|
+
},
|
|
524
|
+
"impersonation":{
|
|
525
|
+
"type":"object",
|
|
526
|
+
"properties":{
|
|
527
|
+
"tokenBroker":{
|
|
528
|
+
"type":"object",
|
|
529
|
+
"properties":{
|
|
530
|
+
"mintEndpoint":{
|
|
531
|
+
"type":"string",
|
|
532
|
+
"default":"/api/v1/auth/token/mint",
|
|
533
|
+
"description":"Controller endpoint for delegated token minting."
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
"additionalProperties":false
|
|
537
|
+
},
|
|
538
|
+
"scopes":{
|
|
539
|
+
"type":"array",
|
|
540
|
+
"items":{
|
|
541
|
+
"type":"string"
|
|
542
|
+
}
|
|
543
|
+
},
|
|
544
|
+
"requiredUserConsent":{
|
|
545
|
+
"type":"boolean",
|
|
546
|
+
"default":false
|
|
547
|
+
}
|
|
548
|
+
},
|
|
549
|
+
"additionalProperties":false
|
|
550
|
+
},
|
|
551
|
+
"attribution":{
|
|
552
|
+
"type":"object",
|
|
553
|
+
"properties":{
|
|
554
|
+
"actorFieldMappings":{
|
|
555
|
+
"type":"object",
|
|
556
|
+
"description":"Map target fields to actor templates (supports {{actor.*}} and {{request.*}}).",
|
|
557
|
+
"additionalProperties":{
|
|
558
|
+
"type":[
|
|
559
|
+
"string",
|
|
560
|
+
"number",
|
|
561
|
+
"boolean"
|
|
562
|
+
]
|
|
563
|
+
}
|
|
564
|
+
},
|
|
565
|
+
"commentTemplate":{
|
|
566
|
+
"type":"string",
|
|
567
|
+
"description":"Optional comment template for attribution logs (supports {{actor.*}})."
|
|
568
|
+
},
|
|
569
|
+
"injectionLocations":{
|
|
570
|
+
"type":"array",
|
|
571
|
+
"items":{
|
|
572
|
+
"type":"string",
|
|
573
|
+
"enum":[
|
|
574
|
+
"body",
|
|
575
|
+
"headers",
|
|
576
|
+
"query",
|
|
577
|
+
"comment"
|
|
578
|
+
]
|
|
579
|
+
},
|
|
580
|
+
"default":[
|
|
581
|
+
"body"
|
|
582
|
+
],
|
|
583
|
+
"uniqueItems":true
|
|
584
|
+
}
|
|
585
|
+
},
|
|
586
|
+
"additionalProperties":false
|
|
587
|
+
},
|
|
588
|
+
"system":{
|
|
589
|
+
"type":"object",
|
|
590
|
+
"properties":{
|
|
591
|
+
"allowWrites":{
|
|
592
|
+
"type":"boolean",
|
|
593
|
+
"default":true
|
|
594
|
+
}
|
|
595
|
+
},
|
|
596
|
+
"additionalProperties":false
|
|
597
|
+
}
|
|
598
|
+
},
|
|
599
|
+
"additionalProperties":false
|
|
600
|
+
},
|
|
487
601
|
"rateLimit":{
|
|
488
602
|
"type":"object",
|
|
489
603
|
"description":"Outbound rate limit for requests from the dataplane to this external system. When set, the dataplane enforces the limit per base URL and handles HTTP 429 (wait and retry). When absent, global env defaults apply (CIP_EXECUTION_RATE_LIMIT_REQUESTS_PER_SECOND, CIP_EXECUTION_RATE_LIMIT_BURST_SIZE). Supports window-based (e.g. HubSpot 100/10s) or token-bucket style (requestsPerSecond + burstSize).",
|
|
@@ -522,6 +636,68 @@
|
|
|
522
636
|
{"requestsPerWindow":100,"windowSeconds":10},
|
|
523
637
|
{"requestsPerSecond":10,"burstSize":100}
|
|
524
638
|
]
|
|
639
|
+
},
|
|
640
|
+
"performance":{
|
|
641
|
+
"type":"object",
|
|
642
|
+
"description":"Performance defaults for runtime paths in this external system.",
|
|
643
|
+
"properties":{
|
|
644
|
+
"cacheDefaults":{
|
|
645
|
+
"type":"object",
|
|
646
|
+
"description":"Default cache policy inherited by datasources unless overridden under sync.cache.",
|
|
647
|
+
"properties":{
|
|
648
|
+
"enabled":{
|
|
649
|
+
"type":"boolean",
|
|
650
|
+
"default":true
|
|
651
|
+
},
|
|
652
|
+
"ttlSeconds":{
|
|
653
|
+
"type":"integer",
|
|
654
|
+
"minimum":1,
|
|
655
|
+
"maximum":604800,
|
|
656
|
+
"default":1800
|
|
657
|
+
}
|
|
658
|
+
},
|
|
659
|
+
"additionalProperties":false
|
|
660
|
+
}
|
|
661
|
+
},
|
|
662
|
+
"additionalProperties":false
|
|
663
|
+
},
|
|
664
|
+
"certification":{
|
|
665
|
+
"type":"object",
|
|
666
|
+
"description":"Public certification settings for external system version verification.",
|
|
667
|
+
"required":[
|
|
668
|
+
"enabled",
|
|
669
|
+
"publicKey",
|
|
670
|
+
"algorithm",
|
|
671
|
+
"issuer",
|
|
672
|
+
"version"
|
|
673
|
+
],
|
|
674
|
+
"properties":{
|
|
675
|
+
"enabled":{
|
|
676
|
+
"type":"boolean",
|
|
677
|
+
"description":"Enable public certification metadata for this external system."
|
|
678
|
+
},
|
|
679
|
+
"publicKey":{
|
|
680
|
+
"type":"string",
|
|
681
|
+
"minLength":1,
|
|
682
|
+
"description":"Public key used to verify RS256 signatures. Private key must never appear in schema."
|
|
683
|
+
},
|
|
684
|
+
"algorithm":{
|
|
685
|
+
"type":"string",
|
|
686
|
+
"const":"RS256",
|
|
687
|
+
"description":"Signing algorithm. Must be RS256."
|
|
688
|
+
},
|
|
689
|
+
"issuer":{
|
|
690
|
+
"type":"string",
|
|
691
|
+
"minLength":1,
|
|
692
|
+
"description":"Certificate issuer identifier."
|
|
693
|
+
},
|
|
694
|
+
"version":{
|
|
695
|
+
"type":"string",
|
|
696
|
+
"minLength":1,
|
|
697
|
+
"description":"Certification version identifier; must align with external system versioning."
|
|
698
|
+
}
|
|
699
|
+
},
|
|
700
|
+
"additionalProperties":false
|
|
525
701
|
}
|
|
526
702
|
},
|
|
527
703
|
"additionalProperties":false
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "Validation run CLI flag map",
|
|
4
|
+
"description": "Machine-readable mapping from CLI flags to ValidationRunRequest intent (plan §4). Exact JSON field names are defined in Dataplane OpenAPI.",
|
|
5
|
+
"operationId": "runValidation",
|
|
6
|
+
"flags": [
|
|
7
|
+
{ "cliFlag": "test | test-integration | test-e2e (subcommand)", "requestField": "runType", "values": ["test", "integration", "e2e"] },
|
|
8
|
+
{ "cliFlag": "-a, --app <app>", "requestField": null, "note": "Resolution only; paths and auth context" },
|
|
9
|
+
{ "cliFlag": "-e, --env <env>", "requestField": null, "note": "Controller/dataplane URL and token selection" },
|
|
10
|
+
{ "cliFlag": "-p, --payload <file>", "requestField": "payloadTemplate", "note": "Loaded object merged into request when integration-style test" },
|
|
11
|
+
{ "cliFlag": "--timeout <ms>", "requestField": null, "note": "Client aggregate HTTP budget (POST + polls)" },
|
|
12
|
+
{ "cliFlag": "--debug [level]", "requestField": "includeDebug", "default": false, "note": "summary|full|raw affects TTY appendix only; any presence sets includeDebug" },
|
|
13
|
+
{ "cliFlag": "--no-async", "requestField": "asyncRun", "note": "When true on CLI, omit asyncRun or set false; sync-only POST" },
|
|
14
|
+
{ "cliFlag": "--test-crud", "requestField": "e2eOptions.testCrud", "runType": "e2e" },
|
|
15
|
+
{ "cliFlag": "--record-id", "requestField": "e2eOptions.recordId", "runType": "e2e" },
|
|
16
|
+
{ "cliFlag": "--no-cleanup", "requestField": "e2eOptions.cleanup", "runType": "e2e" },
|
|
17
|
+
{ "cliFlag": "--primary-key-value", "requestField": "e2eOptions.primaryKeyValue", "runType": "e2e" },
|
|
18
|
+
{ "cliFlag": "--capability <key>", "requestField": "e2eOptions.capabilityKeys", "runType": "e2e", "note": "Single key forwarded as capabilityKeys array in request body when set" },
|
|
19
|
+
{ "cliFlag": "--strict-capability-scope", "requestField": null, "runType": "e2e", "note": "Client-only: exit ≥1 when capabilities[] has >1 row while --capability is set (plan §2.3)" },
|
|
20
|
+
{ "cliFlag": "--require-cert", "requestField": null, "note": "Client-only exit code 2 gate" },
|
|
21
|
+
{ "cliFlag": "--warnings-as-errors", "requestField": null, "note": "Client-only exit code 1 on warn" },
|
|
22
|
+
{ "cliFlag": "--json", "requestField": null, "note": "Stdout prints raw DatasourceTestRun" },
|
|
23
|
+
{ "cliFlag": "--summary", "requestField": null, "note": "Compact machine-oriented lines (plan §16.9)" },
|
|
24
|
+
{ "cliFlag": "-v, --verbose", "requestField": "e2eOptions.audit", "runType": "e2e", "note": "Also poll progress in legacy E2E path" },
|
|
25
|
+
{ "cliFlag": "--watch", "requestField": null, "note": "Client-only: re-run test / test-integration / test-e2e when watched paths change (debounced; plan §3.14)" },
|
|
26
|
+
{ "cliFlag": "--watch-path <path>", "requestField": null, "note": "Client-only: extra file or dir to watch (repeatable)" },
|
|
27
|
+
{ "cliFlag": "--watch-application-yaml", "requestField": null, "note": "Client-only: ensure integration/<app>/application.yaml is in the watch set" },
|
|
28
|
+
{ "cliFlag": "--watch-ci", "requestField": null, "note": "Client-only: exit after first validation run (normal exit code) for CI-style one-shot" },
|
|
29
|
+
{ "cliFlag": "--watch-full-diff", "requestField": null, "note": "Client-only: print full before/after fingerprint lines on change" }
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://aifabrix.dev/schemas/infra-parameter.schema.json",
|
|
4
|
+
"title": "Infra parameter catalog",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["version", "parameters"],
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"properties": {
|
|
9
|
+
"version": {
|
|
10
|
+
"type": "integer",
|
|
11
|
+
"minimum": 1
|
|
12
|
+
},
|
|
13
|
+
"standardUpInfraEnsureKeys": {
|
|
14
|
+
"type": "array",
|
|
15
|
+
"items": { "type": "string", "minLength": 1 },
|
|
16
|
+
"description": "Extra keys always merged on up-infra (e.g. default miso-controller DB pair when no workspace template lists them)."
|
|
17
|
+
},
|
|
18
|
+
"defaults": {
|
|
19
|
+
"type": "object",
|
|
20
|
+
"additionalProperties": false,
|
|
21
|
+
"description": "Default values for {{adminPassword}}, {{adminEmail}}, {{userPassword}} in literal generator values; overridden by aifabrix up-infra flags.",
|
|
22
|
+
"properties": {
|
|
23
|
+
"adminEmail": { "type": "string" },
|
|
24
|
+
"adminPassword": { "type": "string" },
|
|
25
|
+
"userPassword": { "type": "string" }
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"parameters": {
|
|
29
|
+
"type": "array",
|
|
30
|
+
"items": { "$ref": "#/definitions/parameterEntry" }
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"definitions": {
|
|
34
|
+
"ensureOnEnum": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"enum": ["upInfra", "resolveApp", "appRegister"]
|
|
37
|
+
},
|
|
38
|
+
"scopeEnum": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"enum": ["infra", "app", "shared-service"]
|
|
41
|
+
},
|
|
42
|
+
"generator": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"required": ["type"],
|
|
45
|
+
"additionalProperties": false,
|
|
46
|
+
"properties": {
|
|
47
|
+
"type": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"enum": [
|
|
50
|
+
"randomBytes32",
|
|
51
|
+
"randomAlphanumeric",
|
|
52
|
+
"password",
|
|
53
|
+
"emptyString",
|
|
54
|
+
"emptyAllowed",
|
|
55
|
+
"literal",
|
|
56
|
+
"databaseUrl",
|
|
57
|
+
"databasePassword"
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"value": {
|
|
61
|
+
"type": "string"
|
|
62
|
+
},
|
|
63
|
+
"length": {
|
|
64
|
+
"type": "integer",
|
|
65
|
+
"minimum": 1,
|
|
66
|
+
"maximum": 512,
|
|
67
|
+
"description": "For randomAlphanumeric: character count (default 32). For password: default 8. Charset [a-zA-Z0-9]."
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"azureBlock": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"additionalProperties": false,
|
|
74
|
+
"properties": {
|
|
75
|
+
"vaultSecretName": { "type": "string" },
|
|
76
|
+
"vaultSecretNamePattern": { "type": "string" },
|
|
77
|
+
"notes": { "type": "string" }
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"parameterEntry": {
|
|
81
|
+
"type": "object",
|
|
82
|
+
"required": ["scope", "generator", "ensureOn"],
|
|
83
|
+
"additionalProperties": false,
|
|
84
|
+
"properties": {
|
|
85
|
+
"key": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"minLength": 1
|
|
88
|
+
},
|
|
89
|
+
"keyPattern": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"minLength": 1
|
|
92
|
+
},
|
|
93
|
+
"scope": { "$ref": "#/definitions/scopeEnum" },
|
|
94
|
+
"generator": { "$ref": "#/definitions/generator" },
|
|
95
|
+
"ensureOn": {
|
|
96
|
+
"type": "array",
|
|
97
|
+
"minItems": 1,
|
|
98
|
+
"items": { "$ref": "#/definitions/ensureOnEnum" }
|
|
99
|
+
},
|
|
100
|
+
"requiredForLocal": { "type": "boolean" },
|
|
101
|
+
"azure": { "$ref": "#/definitions/azureBlock" },
|
|
102
|
+
"notes": { "type": "string" }
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|