@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
package/lib/cli/setup-auth.js
CHANGED
|
@@ -14,9 +14,22 @@ const { handleLogout } = require('../commands/logout');
|
|
|
14
14
|
const { handleAuthStatus } = require('../commands/auth-status');
|
|
15
15
|
const { handleAuthConfig } = require('../commands/auth-config');
|
|
16
16
|
|
|
17
|
+
const LOGIN_HELP_AFTER = `
|
|
18
|
+
Examples:
|
|
19
|
+
$ aifabrix login
|
|
20
|
+
$ aifabrix login -m credentials -a myapp -e dev
|
|
21
|
+
`;
|
|
22
|
+
|
|
23
|
+
const AUTH_HELP_AFTER = `
|
|
24
|
+
Without options: show auth status (same as: aifabrix auth status).
|
|
25
|
+
With --set-controller or --set-environment: write defaults to config.yaml.
|
|
26
|
+
Subcommand: auth status [--validate] for CI/scripts.
|
|
27
|
+
`;
|
|
28
|
+
|
|
17
29
|
function setupLoginCommand(program) {
|
|
18
30
|
program.command('login')
|
|
19
|
-
.description('
|
|
31
|
+
.description('Sign in to Miso Controller (device or credentials flow)')
|
|
32
|
+
.addHelpText('after', LOGIN_HELP_AFTER)
|
|
20
33
|
.option('-c, --controller <url>', 'Controller URL (default: from config or developer ID, e.g. http://localhost:3000)')
|
|
21
34
|
.option('-m, --method <method>', 'Authentication method (device|credentials)', 'device')
|
|
22
35
|
.option('-a, --app <app>', 'Application name (required for credentials method, reads from secrets.local.yaml)')
|
|
@@ -29,7 +42,7 @@ function setupLoginCommand(program) {
|
|
|
29
42
|
try {
|
|
30
43
|
await handleLogin(options);
|
|
31
44
|
} catch (error) {
|
|
32
|
-
logger.error(chalk.red('\n
|
|
45
|
+
logger.error(chalk.red('\n✖ Login failed:'), error.message);
|
|
33
46
|
process.exit(1);
|
|
34
47
|
}
|
|
35
48
|
});
|
|
@@ -37,7 +50,7 @@ function setupLoginCommand(program) {
|
|
|
37
50
|
|
|
38
51
|
function setupLogoutCommand(program) {
|
|
39
52
|
program.command('logout')
|
|
40
|
-
.description('Clear
|
|
53
|
+
.description('Clear stored tokens (optional filter by controller/env/app)')
|
|
41
54
|
.option('-c, --controller <url>', 'Clear device tokens for specific controller')
|
|
42
55
|
.option('-e, --environment <env>', 'Clear client tokens for specific environment')
|
|
43
56
|
.option('-a, --app <app>', 'Clear client tokens for specific app (requires --environment)')
|
|
@@ -60,23 +73,32 @@ function setupAuthSubcommands(program) {
|
|
|
60
73
|
process.exit(1);
|
|
61
74
|
}
|
|
62
75
|
};
|
|
63
|
-
const auth = program.command('auth')
|
|
64
|
-
|
|
65
|
-
.
|
|
66
|
-
.option('--
|
|
67
|
-
.
|
|
68
|
-
auth.command('config')
|
|
69
|
-
.description('Configure authentication settings (controller, environment)')
|
|
70
|
-
.option('--set-controller <url>', 'Set default controller URL')
|
|
71
|
-
.option('--set-environment <env>', 'Set default environment')
|
|
76
|
+
const auth = program.command('auth')
|
|
77
|
+
.description('Show auth status or set default controller/environment')
|
|
78
|
+
.addHelpText('after', AUTH_HELP_AFTER)
|
|
79
|
+
.option('--set-controller <url>', 'Set default controller URL in config')
|
|
80
|
+
.option('--set-environment <env>', 'Set default environment in config')
|
|
72
81
|
.action(async(options) => {
|
|
73
82
|
try {
|
|
74
|
-
|
|
83
|
+
const setController = options.setController || options['set-controller'];
|
|
84
|
+
const setEnvironment = options.setEnvironment || options['set-environment'];
|
|
85
|
+
if (setController || setEnvironment) {
|
|
86
|
+
await handleAuthConfig({
|
|
87
|
+
setController,
|
|
88
|
+
setEnvironment
|
|
89
|
+
});
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
await handleAuthStatus(options);
|
|
75
93
|
} catch (error) {
|
|
76
|
-
handleCommandError(error, 'auth
|
|
94
|
+
handleCommandError(error, 'auth');
|
|
77
95
|
process.exit(1);
|
|
78
96
|
}
|
|
79
97
|
});
|
|
98
|
+
auth.command('status')
|
|
99
|
+
.description('Show tokens/session for current controller and environment')
|
|
100
|
+
.option('--validate', 'Exit with code 1 when not authenticated (for scripted use, e.g. manual test setup)')
|
|
101
|
+
.action(authStatusHandler);
|
|
80
102
|
}
|
|
81
103
|
|
|
82
104
|
/**
|
|
@@ -15,10 +15,22 @@ const { runCredentialEnv } = require('../commands/credential-env');
|
|
|
15
15
|
const { runCredentialPush } = require('../commands/credential-push');
|
|
16
16
|
const { runDeploymentList } = require('../commands/deployment-list');
|
|
17
17
|
|
|
18
|
+
const CREDENTIAL_HELP_AFTER = `
|
|
19
|
+
Subcommands:
|
|
20
|
+
env <systemKey> Prompt for KV_* values → integration/<key>/.env
|
|
21
|
+
push <systemKey> Upload secrets from .env to Dataplane
|
|
22
|
+
list List credentials (pagination: --page-size)
|
|
23
|
+
`;
|
|
24
|
+
|
|
25
|
+
const DEPLOYMENT_HELP_AFTER = `
|
|
26
|
+
Subcommand:
|
|
27
|
+
list Recent deployments for the current environment
|
|
28
|
+
`;
|
|
29
|
+
|
|
18
30
|
function setupCredentialEnvAndPush(credential) {
|
|
19
31
|
credential
|
|
20
|
-
.command('env <
|
|
21
|
-
.description('
|
|
32
|
+
.command('env <systemKey>')
|
|
33
|
+
.description('Interactive KV_* prompts → integration/<key>/.env')
|
|
22
34
|
.action(async(systemKey, _options) => {
|
|
23
35
|
try {
|
|
24
36
|
await runCredentialEnv(systemKey);
|
|
@@ -29,8 +41,8 @@ function setupCredentialEnvAndPush(credential) {
|
|
|
29
41
|
}
|
|
30
42
|
});
|
|
31
43
|
credential
|
|
32
|
-
.command('push <
|
|
33
|
-
.description('Push
|
|
44
|
+
.command('push <systemKey>')
|
|
45
|
+
.description('Push KV_* secrets from .env to Dataplane')
|
|
34
46
|
.action(async(systemKey, _options) => {
|
|
35
47
|
try {
|
|
36
48
|
await runCredentialPush(systemKey);
|
|
@@ -49,11 +61,12 @@ function setupCredentialEnvAndPush(credential) {
|
|
|
49
61
|
function setupCredentialDeploymentCommands(program) {
|
|
50
62
|
const credential = program
|
|
51
63
|
.command('credential')
|
|
52
|
-
.description('
|
|
64
|
+
.description('Dataplane credentials: env, push, list')
|
|
65
|
+
.addHelpText('after', CREDENTIAL_HELP_AFTER);
|
|
53
66
|
setupCredentialEnvAndPush(credential);
|
|
54
67
|
credential
|
|
55
68
|
.command('list')
|
|
56
|
-
.description('
|
|
69
|
+
.description('List credentials from Dataplane')
|
|
57
70
|
.option('--active-only', 'List only active credentials')
|
|
58
71
|
.option('--page-size <n>', 'Items per page', '50')
|
|
59
72
|
.action(async(options) => {
|
|
@@ -72,11 +85,12 @@ function setupCredentialDeploymentCommands(program) {
|
|
|
72
85
|
|
|
73
86
|
const deployment = program
|
|
74
87
|
.command('deployment')
|
|
75
|
-
.description('
|
|
88
|
+
.description('Controller deployments (list)')
|
|
89
|
+
.addHelpText('after', DEPLOYMENT_HELP_AFTER);
|
|
76
90
|
|
|
77
91
|
deployment
|
|
78
92
|
.command('list')
|
|
79
|
-
.description('List
|
|
93
|
+
.description('List recent deployments for current environment')
|
|
80
94
|
.option('--controller <url>', 'Controller URL (default: from config)')
|
|
81
95
|
.option('--environment <env>', 'Environment key (default: from config)')
|
|
82
96
|
.option('--page-size <n>', 'Items per page', '50')
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dev subcommands: set-home, set-work, print-home, print-work, set-format.
|
|
3
|
+
*
|
|
4
|
+
* @fileoverview Path and format CLI registration for `aifabrix dev`
|
|
5
|
+
* @author AI Fabrix Team
|
|
6
|
+
* @version 2.0.0
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
'use strict';
|
|
10
|
+
const { formatSuccessLine } = require('../utils/cli-test-layout-chalk');
|
|
11
|
+
|
|
12
|
+
const chalk = require('chalk');
|
|
13
|
+
const config = require('../core/config');
|
|
14
|
+
const logger = require('../utils/logger');
|
|
15
|
+
const paths = require('../utils/paths');
|
|
16
|
+
const { registerAifabrixShellEnvFromConfig } = require('../utils/register-aifabrix-shell-env');
|
|
17
|
+
const { handleCommandError } = require('../utils/cli-utils');
|
|
18
|
+
|
|
19
|
+
async function runShellEnvRegistration() {
|
|
20
|
+
try {
|
|
21
|
+
await registerAifabrixShellEnvFromConfig(config.getConfig);
|
|
22
|
+
logger.log(
|
|
23
|
+
chalk.gray(' User/shell environment updated. Open a new terminal for AIFABRIX_HOME / AIFABRIX_WORK.')
|
|
24
|
+
);
|
|
25
|
+
} catch (regErr) {
|
|
26
|
+
throw new Error(`Config saved but environment registration failed: ${regErr.message}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function addSetHomeCommand(dev) {
|
|
31
|
+
dev
|
|
32
|
+
.command('set-home <path>')
|
|
33
|
+
.description('Set or clear aifabrix-home in config; register AIFABRIX_HOME for new shells unless --no-register-env')
|
|
34
|
+
.option('--no-register-env', 'Do not update Windows user env or POSIX shell profile hooks')
|
|
35
|
+
.action(async(homePath, cmdOpts) => {
|
|
36
|
+
try {
|
|
37
|
+
const trimmed = (homePath || '').trim();
|
|
38
|
+
await config.setAifabrixHomeOverride(trimmed);
|
|
39
|
+
logger.log(trimmed === '' ? formatSuccessLine('Home path cleared') : formatSuccessLine(`Home path set to ${trimmed}`));
|
|
40
|
+
if (cmdOpts?.registerEnv !== false) {
|
|
41
|
+
await runShellEnvRegistration();
|
|
42
|
+
}
|
|
43
|
+
} catch (error) {
|
|
44
|
+
handleCommandError(error, 'dev set-home');
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function addSetWorkCommand(dev) {
|
|
51
|
+
dev
|
|
52
|
+
.command('set-work <path>')
|
|
53
|
+
.description('Set or clear aifabrix-work (workspace root) in config; register AIFABRIX_WORK unless --no-register-env')
|
|
54
|
+
.option('--no-register-env', 'Do not update Windows user env or POSIX shell profile hooks')
|
|
55
|
+
.action(async(workPath, cmdOpts) => {
|
|
56
|
+
try {
|
|
57
|
+
const trimmed = (workPath || '').trim();
|
|
58
|
+
await config.setAifabrixWorkOverride(trimmed);
|
|
59
|
+
logger.log(trimmed === '' ? formatSuccessLine('Work path cleared') : formatSuccessLine(`Work path set to ${trimmed}`));
|
|
60
|
+
if (cmdOpts?.registerEnv !== false) {
|
|
61
|
+
await runShellEnvRegistration();
|
|
62
|
+
}
|
|
63
|
+
} catch (error) {
|
|
64
|
+
handleCommandError(error, 'dev set-work');
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function addPrintHomeWorkCommands(dev) {
|
|
71
|
+
dev
|
|
72
|
+
.command('print-home')
|
|
73
|
+
.description('Print resolved AIFABRIX_HOME path (stdout only; for scripts)')
|
|
74
|
+
.action(() => {
|
|
75
|
+
try {
|
|
76
|
+
process.stdout.write(`${paths.getAifabrixHome()}\n`);
|
|
77
|
+
} catch (error) {
|
|
78
|
+
handleCommandError(error, 'dev print-home');
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
dev
|
|
84
|
+
.command('print-work')
|
|
85
|
+
.description('Print resolved workspace path or empty line (stdout only; for scripts)')
|
|
86
|
+
.action(() => {
|
|
87
|
+
try {
|
|
88
|
+
const w = paths.getAifabrixWork();
|
|
89
|
+
process.stdout.write(w ? `${w}\n` : '\n');
|
|
90
|
+
} catch (error) {
|
|
91
|
+
handleCommandError(error, 'dev print-work');
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function addSetFormatCommand(dev, handleSetFormat) {
|
|
98
|
+
dev
|
|
99
|
+
.command('set-format <format>')
|
|
100
|
+
.description('Default json|yaml when --format is omitted (download/convert)')
|
|
101
|
+
.action(async(format) => {
|
|
102
|
+
try {
|
|
103
|
+
await handleSetFormat(format);
|
|
104
|
+
} catch (error) {
|
|
105
|
+
handleCommandError(error, 'dev set-format');
|
|
106
|
+
process.exit(1);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Register dev set-home, set-work, print-*, set-format.
|
|
113
|
+
* @param {import('commander').Command} dev - dev subcommand group
|
|
114
|
+
* @param {function(string): Promise<void>} handleSetFormat - handler that updates format and refreshes display
|
|
115
|
+
* @returns {void}
|
|
116
|
+
*/
|
|
117
|
+
function setupDevPathAndFormatCommands(dev, handleSetFormat) {
|
|
118
|
+
addSetHomeCommand(dev);
|
|
119
|
+
addSetWorkCommand(dev);
|
|
120
|
+
addPrintHomeWorkCommands(dev);
|
|
121
|
+
addSetFormatCommand(dev, handleSetFormat);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
module.exports = { setupDevPathAndFormatCommands };
|