@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,144 @@
|
|
|
1
|
+
# Roundtrip Test
|
|
2
|
+
|
|
3
|
+
Roundtrip validation test
|
|
4
|
+
|
|
5
|
+
## System Information
|
|
6
|
+
|
|
7
|
+
- **System Key**: `roundtrip-test-local`
|
|
8
|
+
- **System Type**: `openapi`
|
|
9
|
+
- **Datasources**: 1
|
|
10
|
+
|
|
11
|
+
## Files
|
|
12
|
+
|
|
13
|
+
- `application.yaml` – Application configuration with `app` and `externalIntegration` blocks
|
|
14
|
+
- `roundtrip-test-local-system.yaml` – External system definition (authentication, OpenAPI/MCP, RBAC)
|
|
15
|
+
- `roundtrip-test-local-datasource-roundtrip-test-company.yaml` – Datasource: Company
|
|
16
|
+
- `env.template` – Environment variables template (secrets, API keys)
|
|
17
|
+
- `roundtrip-test-local-deploy.json` – Deployment manifest (generated by `aifabrix json roundtrip-test-local`)
|
|
18
|
+
- `deploy.js` – Deploy script for the integration
|
|
19
|
+
- `wizard.yaml` – Wizard configuration (if created via wizard)
|
|
20
|
+
|
|
21
|
+
Optional: `rbac.yaml` – Roles and permissions merged into the system when present.
|
|
22
|
+
|
|
23
|
+
## Quick Start
|
|
24
|
+
|
|
25
|
+
Login to your controller
|
|
26
|
+
```bash
|
|
27
|
+
aifabrix auth config --set-controller <url> --set-environment dev
|
|
28
|
+
aifabrix login
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 1. Extend External System
|
|
32
|
+
|
|
33
|
+
Use the interactive wizard to extend your existing system:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
aifabrix wizard --app roundtrip-test-local
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 2. Configure Authentication and Datasources
|
|
40
|
+
|
|
41
|
+
Edit files in `integration/roundtrip-test-local/`:
|
|
42
|
+
|
|
43
|
+
- **Authentication**: `roundtrip-test-local-system.yaml` (auth type, credentials placeholders)
|
|
44
|
+
- **Field mappings**: `roundtrip-test-local-datasource-*-datasource.yaml` (dimensions, attributes, operations)
|
|
45
|
+
- **Credential and configuration**: `env.template` (security settings and configuration variables)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
### Secrets
|
|
49
|
+
|
|
50
|
+
Secrets are resolved from `.aifabrix` or key vault. Set them with:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
aifabrix secret set roundtrip-test-local/apiKey <your value> # API Key
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
### 3. Validate Configuration
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
aifabrix validate roundtrip-test-local
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 4. Repair Deployment Manifest
|
|
64
|
+
|
|
65
|
+
**Run repair regularly.** It keeps naming conventions, filenames, and the deployment manifest aligned with AI Fabrix platform best practices. Use it after editing datasources, env.template, or system config—and run it often to catch drift early.
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
aifabrix repair roundtrip-test-local
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Options:
|
|
72
|
+
--auth <method> Set authentication method (oauth2, aad, apikey, basic, queryParam, oidc, hmac, none); updates system file and env.template
|
|
73
|
+
--dry-run Report changes only; do not write
|
|
74
|
+
--rbac Ensure RBAC permissions per datasource and add default Admin/Reader roles if none exist
|
|
75
|
+
--expose Set exposed.attributes on each datasource to all fieldMappings.attributes keys
|
|
76
|
+
--sync Add default sync section to datasources that lack it
|
|
77
|
+
--test Generate testPayload.payloadTemplate and testPayload.expectedResult from attributes
|
|
78
|
+
|
|
79
|
+
### 5. Upload to dataplane
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
aifabrix upload roundtrip-test-local
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Testing
|
|
86
|
+
|
|
87
|
+
### Unit Tests (Local Validation, No API)
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
aifabrix test roundtrip-test-local
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Integration Tests (Via Dataplane)
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
aifabrix test-integration roundtrip-test-local
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### End-to-end Tests (Via Dataplane)
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
aifabrix test-e2e roundtrip-test-local
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Options:
|
|
106
|
+
-e, --env <env> Environment: dev, tst, or pro (builder: dev/tst for container)
|
|
107
|
+
-v, --verbose Show detailed step output and poll progress
|
|
108
|
+
--debug Include debug output and write log to integration/roundtrip-test-local/logs/
|
|
109
|
+
--no-async Use sync mode (no polling); single POST per datasource
|
|
110
|
+
|
|
111
|
+
### E2E tests per datasource
|
|
112
|
+
|
|
113
|
+
To run a full E2E test for a single datasource (config, credential, sync, data, CIP), use `aifabrix datasource test-e2e` with the datasource key and app:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# Company
|
|
117
|
+
aifabrix datasource test-e2e roundtrip-test-company --app roundtrip-test-local
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Options:
|
|
122
|
+
-a, --app roundtrip-test-local App key (default: resolve from cwd if inside integration/roundtrip-test-local/)
|
|
123
|
+
-e, --env <env> Environment: dev, tst, or pro
|
|
124
|
+
-v, --verbose Show detailed step output and poll progress
|
|
125
|
+
--debug Include debug output and write log to integration/roundtrip-test-local/logs/
|
|
126
|
+
--test-crud Enable CRUD lifecycle test (body testCrud: true)
|
|
127
|
+
--record-id <id> Record ID for test (body recordId)
|
|
128
|
+
--no-cleanup Disable cleanup after test (body cleanup: false)
|
|
129
|
+
--primary-key-value <value|@path> Primary key value or path to JSON file (e.g. @pk.json) for body primaryKeyValue
|
|
130
|
+
--no-async Use sync mode (no polling); single POST, no asyncRun
|
|
131
|
+
|
|
132
|
+
## Deployment
|
|
133
|
+
|
|
134
|
+
Deploy via miso-controller pipeline (same as regular apps). Auth and controller come from `aifabrix login` and `aifabrix auth config`:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
aifabrix deploy roundtrip-test-local
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Troubleshooting
|
|
141
|
+
|
|
142
|
+
- **Validation errors**: Run `aifabrix validate roundtrip-test-local` to see schema and manifest errors.
|
|
143
|
+
- **Deployment / auth**: Run `aifabrix auth config --set-controller <url> --set-environment <env>` and `aifabrix login` before `aifabrix deploy`.
|
|
144
|
+
- **File not found**: Run commands from the project root (where `package.json` and `integration/` live).
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
app:
|
|
2
|
+
key: roundtrip-test-local
|
|
3
|
+
displayName: Roundtrip Test
|
|
4
|
+
description: Roundtrip validation test
|
|
5
|
+
type: external
|
|
6
|
+
externalIntegration:
|
|
7
|
+
schemaBasePath: ./
|
|
8
|
+
systems:
|
|
9
|
+
- roundtrip-test-local-system.yaml
|
|
10
|
+
dataSources:
|
|
11
|
+
- roundtrip-test-local-datasource-roundtrip-test-company.yaml
|
|
12
|
+
autopublish: true
|
|
13
|
+
version: 1.0.0
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Environment variables for external system integration
|
|
2
|
+
# Use kv:// (or aifabrix secret set) for sensitive values; plain values for non-sensitive configuration.
|
|
3
|
+
#
|
|
4
|
+
|
|
5
|
+
# Authentication
|
|
6
|
+
# Type: oauth2
|
|
7
|
+
KV_ROUNDTRIP_TEST_LOCAL_CLIENTID=kv://roundtrip-test-local/clientId
|
|
8
|
+
KV_ROUNDTRIP_TEST_LOCAL_CLIENTSECRET=kv://roundtrip-test-local/clientSecret
|
|
9
|
+
# Non-secure (e.g. URLs): baseUrl, tokenUrl, authorizationUrl
|
|
10
|
+
|
|
11
|
+
# Configuration
|
|
12
|
+
# KV_ROUNDTRIP_TEST_CLIENTID
|
|
13
|
+
KV_ROUNDTRIP_TEST_CLIENTID=kv://roundtrip-test/clientId
|
|
14
|
+
# KV_ROUNDTRIP_TEST_CLIENTSECRET
|
|
15
|
+
KV_ROUNDTRIP_TEST_CLIENTSECRET=kv://roundtrip-test/clientSecret
|
package/integration/roundtrip-test-local/roundtrip-test-local-datasource-roundtrip-test-company.yaml
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
key: roundtrip-test-company
|
|
2
|
+
displayName: Company
|
|
3
|
+
systemKey: roundtrip-test-local
|
|
4
|
+
entityType: record-storage
|
|
5
|
+
resourceType: customer
|
|
6
|
+
primaryKey:
|
|
7
|
+
- country
|
|
8
|
+
fieldMappings:
|
|
9
|
+
dimensions:
|
|
10
|
+
country: metadata.country
|
|
11
|
+
attributes:
|
|
12
|
+
country:
|
|
13
|
+
expression: '{{metadata.country}}'
|
|
14
|
+
type: string
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"system": {
|
|
3
|
+
"key": "roundtrip-test-local",
|
|
4
|
+
"displayName": "Roundtrip Test",
|
|
5
|
+
"description": "Roundtrip validation test",
|
|
6
|
+
"type": "openapi",
|
|
7
|
+
"enabled": true,
|
|
8
|
+
"authentication": {
|
|
9
|
+
"method": "oauth2",
|
|
10
|
+
"variables": {
|
|
11
|
+
"baseUrl": "https://api.example.com",
|
|
12
|
+
"tokenUrl": "https://api.example.com/oauth/token",
|
|
13
|
+
"authorizationUrl": "https://api.example.com/oauth/authorize"
|
|
14
|
+
},
|
|
15
|
+
"security": {
|
|
16
|
+
"clientId": "kv://roundtrip-test/clientId",
|
|
17
|
+
"clientSecret": "kv://roundtrip-test/clientSecret"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"configuration": [
|
|
21
|
+
{
|
|
22
|
+
"name": "KV_ROUNDTRIP_TEST_CLIENTID",
|
|
23
|
+
"value": "roundtrip-test/clientId",
|
|
24
|
+
"location": "keyvault",
|
|
25
|
+
"required": true
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "KV_ROUNDTRIP_TEST_CLIENTSECRET",
|
|
29
|
+
"value": "roundtrip-test/clientSecret",
|
|
30
|
+
"location": "keyvault",
|
|
31
|
+
"required": true
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"dataSources": [
|
|
35
|
+
"roundtrip-test-company"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"dataSources": [
|
|
39
|
+
{
|
|
40
|
+
"key": "roundtrip-test-company",
|
|
41
|
+
"displayName": "Company",
|
|
42
|
+
"systemKey": "roundtrip-test-local",
|
|
43
|
+
"entityType": "record-storage",
|
|
44
|
+
"resourceType": "customer",
|
|
45
|
+
"primaryKey": [
|
|
46
|
+
"country"
|
|
47
|
+
],
|
|
48
|
+
"fieldMappings": {
|
|
49
|
+
"dimensions": {
|
|
50
|
+
"country": "metadata.country"
|
|
51
|
+
},
|
|
52
|
+
"attributes": {
|
|
53
|
+
"country": {
|
|
54
|
+
"expression": "{{metadata.country}}",
|
|
55
|
+
"type": "string"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
key: roundtrip-test-local
|
|
2
|
+
displayName: Roundtrip Test
|
|
3
|
+
description: Roundtrip validation test
|
|
4
|
+
type: openapi
|
|
5
|
+
enabled: true
|
|
6
|
+
authentication:
|
|
7
|
+
method: oauth2
|
|
8
|
+
variables:
|
|
9
|
+
baseUrl: https://api.example.com
|
|
10
|
+
tokenUrl: https://api.example.com/oauth/token
|
|
11
|
+
authorizationUrl: https://api.example.com/oauth/authorize
|
|
12
|
+
security:
|
|
13
|
+
clientId: kv://roundtrip-test/clientId
|
|
14
|
+
clientSecret: kv://roundtrip-test/clientSecret
|
|
15
|
+
configuration:
|
|
16
|
+
- name: KV_ROUNDTRIP_TEST_CLIENTID
|
|
17
|
+
value: roundtrip-test/clientId
|
|
18
|
+
location: keyvault
|
|
19
|
+
required: true
|
|
20
|
+
- name: KV_ROUNDTRIP_TEST_CLIENTSECRET
|
|
21
|
+
value: roundtrip-test/clientSecret
|
|
22
|
+
location: keyvault
|
|
23
|
+
required: true
|
|
24
|
+
dataSources:
|
|
25
|
+
- roundtrip-test-company
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Roundtrip Test
|
|
2
|
+
|
|
3
|
+
Roundtrip validation test
|
|
4
|
+
|
|
5
|
+
## System Information
|
|
6
|
+
|
|
7
|
+
- **System Key**: `roundtrip-test-local2`
|
|
8
|
+
- **System Type**: `openapi`
|
|
9
|
+
- **Datasources**: 1
|
|
10
|
+
|
|
11
|
+
## Files
|
|
12
|
+
|
|
13
|
+
- `application.yaml` – Application configuration with `app` and `externalIntegration` blocks
|
|
14
|
+
- `roundtrip-test-local2-system.yaml` – External system definition (authentication, OpenAPI/MCP, RBAC)
|
|
15
|
+
- `roundtrip-test-local2-datasource-company.yaml` – Datasource: Company
|
|
16
|
+
- `env.template` – Environment variables template (secrets, API keys)
|
|
17
|
+
- `roundtrip-test-local2-deploy.json` – Deployment manifest (generated by `aifabrix json roundtrip-test-local2`)
|
|
18
|
+
- `deploy.js` – Deploy script for the integration
|
|
19
|
+
- `wizard.yaml` – Wizard configuration (if created via wizard)
|
|
20
|
+
|
|
21
|
+
Optional: `rbac.yaml` – Roles and permissions merged into the system when present.
|
|
22
|
+
|
|
23
|
+
## Quick Start
|
|
24
|
+
|
|
25
|
+
Login to your controller
|
|
26
|
+
```bash
|
|
27
|
+
aifabrix auth config --set-controller <url> --set-environment dev
|
|
28
|
+
aifabrix login
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 1. Extend External System
|
|
32
|
+
|
|
33
|
+
Use the interactive wizard to extend your existing system:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
aifabrix wizard --app roundtrip-test-local2
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 2. Configure Authentication and Datasources
|
|
40
|
+
|
|
41
|
+
Edit files in `integration/roundtrip-test-local2/`:
|
|
42
|
+
|
|
43
|
+
- **Authentication**: `roundtrip-test-local2-system.yaml` (auth type, credentials placeholders)
|
|
44
|
+
- **Field mappings**: `roundtrip-test-local2-datasource-*-datasource.yaml` (dimensions, attributes, operations)
|
|
45
|
+
- **Credential and configuration**: `env.template` (security settings and configuration variables)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
### Secrets
|
|
49
|
+
|
|
50
|
+
Secrets are resolved from `.aifabrix` or key vault. Set them with:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
aifabrix secret set roundtrip-test-local2/apiKey <your value> # API Key
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
### 3. Validate Configuration
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
aifabrix validate roundtrip-test-local2
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 4. Repair Deployment Manifest
|
|
64
|
+
|
|
65
|
+
**Run repair regularly.** It keeps naming conventions, filenames, and the deployment manifest aligned with AI Fabrix platform best practices. Use it after editing datasources, env.template, or system config—and run it often to catch drift early.
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
aifabrix repair roundtrip-test-local2
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Options:
|
|
72
|
+
--auth <method> Set authentication method (oauth2, aad, apikey, basic, queryParam, oidc, hmac, none); updates system file and env.template
|
|
73
|
+
--dry-run Report changes only; do not write
|
|
74
|
+
--rbac Ensure RBAC permissions per datasource and add default Admin/Reader roles if none exist
|
|
75
|
+
--expose Set exposed.attributes on each datasource to all fieldMappings.attributes keys
|
|
76
|
+
--sync Add default sync section to datasources that lack it
|
|
77
|
+
--test Generate testPayload.payloadTemplate and testPayload.expectedResult from attributes
|
|
78
|
+
|
|
79
|
+
### 5. Upload to dataplane
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
aifabrix upload roundtrip-test-local2
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Testing
|
|
86
|
+
|
|
87
|
+
### Unit Tests (Local Validation, No API)
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
aifabrix test roundtrip-test-local2
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Integration Tests (Via Dataplane)
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
aifabrix test-integration roundtrip-test-local2
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### End-to-end Tests (Via Dataplane)
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
aifabrix test-e2e roundtrip-test-local2
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Options:
|
|
106
|
+
-e, --env <env> Environment: dev, tst, or pro (builder: dev/tst for container)
|
|
107
|
+
-v, --verbose Show detailed step output and poll progress
|
|
108
|
+
--debug Include debug output and write log to integration/roundtrip-test-local2/logs/
|
|
109
|
+
--no-async Use sync mode (no polling); single POST per datasource
|
|
110
|
+
|
|
111
|
+
### E2E tests per datasource
|
|
112
|
+
|
|
113
|
+
To run a full E2E test for a single datasource (config, credential, sync, data, CIP), use `aifabrix datasource test-e2e` with the datasource key and app:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# Company
|
|
117
|
+
aifabrix datasource test-e2e roundtrip-test-local2-company --app roundtrip-test-local2
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Options:
|
|
122
|
+
-a, --app roundtrip-test-local2 App key (default: resolve from cwd if inside integration/roundtrip-test-local2/)
|
|
123
|
+
-e, --env <env> Environment: dev, tst, or pro
|
|
124
|
+
-v, --verbose Show detailed step output and poll progress
|
|
125
|
+
--debug Include debug output and write log to integration/roundtrip-test-local2/logs/
|
|
126
|
+
--test-crud Enable CRUD lifecycle test (body testCrud: true)
|
|
127
|
+
--record-id <id> Record ID for test (body recordId)
|
|
128
|
+
--no-cleanup Disable cleanup after test (body cleanup: false)
|
|
129
|
+
--primary-key-value <value|@path> Primary key value or path to JSON file (e.g. @pk.json) for body primaryKeyValue
|
|
130
|
+
--no-async Use sync mode (no polling); single POST, no asyncRun
|
|
131
|
+
|
|
132
|
+
## Deployment
|
|
133
|
+
|
|
134
|
+
Deploy via miso-controller pipeline (same as regular apps). Auth and controller come from `aifabrix login` and `aifabrix auth config`:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
aifabrix deploy roundtrip-test-local2
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Troubleshooting
|
|
141
|
+
|
|
142
|
+
- **Validation errors**: Run `aifabrix validate roundtrip-test-local2` to see schema and manifest errors.
|
|
143
|
+
- **Deployment / auth**: Run `aifabrix auth config --set-controller <url> --set-environment <env>` and `aifabrix login` before `aifabrix deploy`.
|
|
144
|
+
- **File not found**: Run commands from the project root (where `package.json` and `integration/` live).
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
app:
|
|
2
|
+
key: roundtrip-test-local2
|
|
3
|
+
displayName: Roundtrip Test
|
|
4
|
+
description: Roundtrip validation test
|
|
5
|
+
type: external
|
|
6
|
+
externalIntegration:
|
|
7
|
+
schemaBasePath: ./
|
|
8
|
+
systems:
|
|
9
|
+
- roundtrip-test-local2-system.yaml
|
|
10
|
+
dataSources:
|
|
11
|
+
- roundtrip-test-local2-datasource-company.yaml
|
|
12
|
+
autopublish: true
|
|
13
|
+
version: 1.0.0
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Environment variables for external system integration
|
|
2
|
+
# Use kv:// (or aifabrix secret set) for sensitive values; plain values for non-sensitive configuration.
|
|
3
|
+
#
|
|
4
|
+
|
|
5
|
+
# Authentication
|
|
6
|
+
# Type: oauth2
|
|
7
|
+
KV_ROUNDTRIP_TEST_LOCAL2_CLIENTID=kv://roundtrip-test-local2/clientId
|
|
8
|
+
KV_ROUNDTRIP_TEST_LOCAL2_CLIENTSECRET=kv://roundtrip-test-local2/clientSecret
|
|
9
|
+
# Non-secure (e.g. URLs): baseUrl, tokenUrl, authorizationUrl
|
|
10
|
+
|
|
11
|
+
# Configuration
|
|
12
|
+
# KV_ROUNDTRIP_TEST_CLIENTID
|
|
13
|
+
KV_ROUNDTRIP_TEST_CLIENTID=kv://roundtrip-test-local2/clientId
|
|
14
|
+
# KV_ROUNDTRIP_TEST_CLIENTSECRET
|
|
15
|
+
KV_ROUNDTRIP_TEST_CLIENTSECRET=kv://roundtrip-test-local2/clientSecret
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
key: roundtrip-test-local2-company
|
|
2
|
+
displayName: Company
|
|
3
|
+
systemKey: roundtrip-test-local2
|
|
4
|
+
entityType: recordStorage
|
|
5
|
+
resourceType: record
|
|
6
|
+
primaryKey:
|
|
7
|
+
- id
|
|
8
|
+
labelKey:
|
|
9
|
+
- id
|
|
10
|
+
metadataSchema:
|
|
11
|
+
type: object
|
|
12
|
+
required:
|
|
13
|
+
- id
|
|
14
|
+
- externalId
|
|
15
|
+
properties:
|
|
16
|
+
id:
|
|
17
|
+
type: string
|
|
18
|
+
index: true
|
|
19
|
+
externalId:
|
|
20
|
+
type: string
|
|
21
|
+
index: true
|
|
22
|
+
fieldMappings:
|
|
23
|
+
attributes:
|
|
24
|
+
id:
|
|
25
|
+
expression: '{{raw.id}}'
|
|
26
|
+
externalId:
|
|
27
|
+
expression: '{{raw.externalId}}'
|
|
28
|
+
exposed:
|
|
29
|
+
schema:
|
|
30
|
+
id: metadata.id
|
|
31
|
+
externalId: metadata.externalId
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"system": {
|
|
3
|
+
"key": "roundtrip-test-local2",
|
|
4
|
+
"displayName": "Roundtrip Test",
|
|
5
|
+
"description": "Roundtrip validation test",
|
|
6
|
+
"type": "openapi",
|
|
7
|
+
"enabled": true,
|
|
8
|
+
"authentication": {
|
|
9
|
+
"method": "oauth2",
|
|
10
|
+
"variables": {
|
|
11
|
+
"baseUrl": "https://api.example.com",
|
|
12
|
+
"tokenUrl": "https://api.example.com/oauth/token",
|
|
13
|
+
"authorizationUrl": "https://api.example.com/oauth/authorize"
|
|
14
|
+
},
|
|
15
|
+
"security": {
|
|
16
|
+
"clientId": "kv://roundtrip-test-local2/clientId",
|
|
17
|
+
"clientSecret": "kv://roundtrip-test-local2/clientSecret"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"configuration": [
|
|
21
|
+
{
|
|
22
|
+
"name": "KV_ROUNDTRIP_TEST_CLIENTID",
|
|
23
|
+
"value": "roundtrip-test-local2/clientId",
|
|
24
|
+
"location": "keyvault",
|
|
25
|
+
"required": true
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "KV_ROUNDTRIP_TEST_CLIENTSECRET",
|
|
29
|
+
"value": "roundtrip-test-local2/clientSecret",
|
|
30
|
+
"location": "keyvault",
|
|
31
|
+
"required": true
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"dataSources": [
|
|
35
|
+
"roundtrip-test-local2-company"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"dataSources": [
|
|
39
|
+
{
|
|
40
|
+
"key": "roundtrip-test-local2-company",
|
|
41
|
+
"displayName": "Company",
|
|
42
|
+
"systemKey": "roundtrip-test-local2",
|
|
43
|
+
"entityType": "recordStorage",
|
|
44
|
+
"resourceType": "record",
|
|
45
|
+
"primaryKey": [
|
|
46
|
+
"id"
|
|
47
|
+
],
|
|
48
|
+
"labelKey": [
|
|
49
|
+
"id"
|
|
50
|
+
],
|
|
51
|
+
"metadataSchema": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"required": [
|
|
54
|
+
"id",
|
|
55
|
+
"externalId"
|
|
56
|
+
],
|
|
57
|
+
"properties": {
|
|
58
|
+
"id": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"index": true
|
|
61
|
+
},
|
|
62
|
+
"externalId": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"index": true
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"fieldMappings": {
|
|
69
|
+
"attributes": {
|
|
70
|
+
"id": {
|
|
71
|
+
"expression": "{{raw.id}}"
|
|
72
|
+
},
|
|
73
|
+
"externalId": {
|
|
74
|
+
"expression": "{{raw.externalId}}"
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"exposed": {
|
|
79
|
+
"schema": {
|
|
80
|
+
"id": "metadata.id",
|
|
81
|
+
"externalId": "metadata.externalId"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
key: roundtrip-test-local2
|
|
2
|
+
displayName: Roundtrip Test
|
|
3
|
+
description: Roundtrip validation test
|
|
4
|
+
type: openapi
|
|
5
|
+
enabled: true
|
|
6
|
+
authentication:
|
|
7
|
+
method: oauth2
|
|
8
|
+
variables:
|
|
9
|
+
baseUrl: https://api.example.com
|
|
10
|
+
tokenUrl: https://api.example.com/oauth/token
|
|
11
|
+
authorizationUrl: https://api.example.com/oauth/authorize
|
|
12
|
+
security:
|
|
13
|
+
clientId: kv://roundtrip-test-local2/clientId
|
|
14
|
+
clientSecret: kv://roundtrip-test-local2/clientSecret
|
|
15
|
+
configuration:
|
|
16
|
+
- name: KV_ROUNDTRIP_TEST_CLIENTID
|
|
17
|
+
value: roundtrip-test-local2/clientId
|
|
18
|
+
location: keyvault
|
|
19
|
+
required: true
|
|
20
|
+
- name: KV_ROUNDTRIP_TEST_CLIENTSECRET
|
|
21
|
+
value: roundtrip-test-local2/clientSecret
|
|
22
|
+
location: keyvault
|
|
23
|
+
required: true
|
|
24
|
+
dataSources:
|
|
25
|
+
- roundtrip-test-local2-company
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration tests that do not build images or talk to Docker.
|
|
3
|
+
* Use: npm run test:integration:fixtures
|
|
4
|
+
*
|
|
5
|
+
* Full Docker lifecycle tests: npm run test:integration (includes steps/ + workflow).
|
|
6
|
+
*
|
|
7
|
+
* @fileoverview Fixture-only integration Jest config
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const { sharedTransform } = require('./jest.projects');
|
|
11
|
+
|
|
12
|
+
module.exports = {
|
|
13
|
+
displayName: 'integration-fixtures',
|
|
14
|
+
testEnvironment: 'node',
|
|
15
|
+
transform: sharedTransform,
|
|
16
|
+
testMatch: ['**/tests/integration/hubspot/**/*.test.js'],
|
|
17
|
+
testPathIgnorePatterns: ['/node_modules/', '\\\\node_modules\\\\'],
|
|
18
|
+
maxWorkers: 1,
|
|
19
|
+
setupFiles: ['<rootDir>/tests/capture-real-fs.js'],
|
|
20
|
+
setupFilesAfterEnv: ['<rootDir>/tests/setup.js'],
|
|
21
|
+
testTimeout: 60000
|
|
22
|
+
};
|