@flui-cloud/cli 0.0.1
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/LICENSE +661 -0
- package/README.md +124 -0
- package/bin/run +17 -0
- package/lib/cli/src/background/cluster-worker.d.ts +11 -0
- package/lib/cli/src/background/cluster-worker.js +90 -0
- package/lib/cli/src/cli-providers.module.d.ts +2 -0
- package/lib/cli/src/cli-providers.module.js +118 -0
- package/lib/cli/src/cli.module.d.ts +13 -0
- package/lib/cli/src/cli.module.js +80 -0
- package/lib/cli/src/commands/_diag-oidc.d.ts +6 -0
- package/lib/cli/src/commands/_diag-oidc.js +132 -0
- package/lib/cli/src/commands/app/backup/create.d.ts +20 -0
- package/lib/cli/src/commands/app/backup/create.js +128 -0
- package/lib/cli/src/commands/app/backup/delete.d.ts +19 -0
- package/lib/cli/src/commands/app/backup/delete.js +95 -0
- package/lib/cli/src/commands/app/build.d.ts +17 -0
- package/lib/cli/src/commands/app/build.js +133 -0
- package/lib/cli/src/commands/app/builds.d.ts +14 -0
- package/lib/cli/src/commands/app/builds.js +82 -0
- package/lib/cli/src/commands/app/crash.d.ts +16 -0
- package/lib/cli/src/commands/app/crash.js +106 -0
- package/lib/cli/src/commands/app/crashes.d.ts +15 -0
- package/lib/cli/src/commands/app/crashes.js +99 -0
- package/lib/cli/src/commands/app/delete.d.ts +16 -0
- package/lib/cli/src/commands/app/delete.js +149 -0
- package/lib/cli/src/commands/app/image/delete.d.ts +18 -0
- package/lib/cli/src/commands/app/image/delete.js +72 -0
- package/lib/cli/src/commands/app/init.d.ts +40 -0
- package/lib/cli/src/commands/app/init.js +436 -0
- package/lib/cli/src/commands/app/list.d.ts +11 -0
- package/lib/cli/src/commands/app/list.js +84 -0
- package/lib/cli/src/commands/app/logs.d.ts +18 -0
- package/lib/cli/src/commands/app/logs.js +121 -0
- package/lib/cli/src/commands/app/metrics.d.ts +17 -0
- package/lib/cli/src/commands/app/metrics.js +100 -0
- package/lib/cli/src/commands/app/redeploy.d.ts +14 -0
- package/lib/cli/src/commands/app/redeploy.js +60 -0
- package/lib/cli/src/commands/app/releases.d.ts +15 -0
- package/lib/cli/src/commands/app/releases.js +117 -0
- package/lib/cli/src/commands/app/restart.d.ts +12 -0
- package/lib/cli/src/commands/app/restart.js +44 -0
- package/lib/cli/src/commands/app/scale.d.ts +13 -0
- package/lib/cli/src/commands/app/scale.js +58 -0
- package/lib/cli/src/commands/app/snapshot/create.d.ts +14 -0
- package/lib/cli/src/commands/app/snapshot/create.js +85 -0
- package/lib/cli/src/commands/app/snapshot/delete.d.ts +14 -0
- package/lib/cli/src/commands/app/snapshot/delete.js +63 -0
- package/lib/cli/src/commands/app/snapshot/list.d.ts +11 -0
- package/lib/cli/src/commands/app/snapshot/list.js +82 -0
- package/lib/cli/src/commands/app/snapshot/restore.d.ts +15 -0
- package/lib/cli/src/commands/app/snapshot/restore.js +74 -0
- package/lib/cli/src/commands/app/snapshot/swap.d.ts +15 -0
- package/lib/cli/src/commands/app/snapshot/swap.js +68 -0
- package/lib/cli/src/commands/app/start.d.ts +12 -0
- package/lib/cli/src/commands/app/start.js +45 -0
- package/lib/cli/src/commands/app/status.d.ts +15 -0
- package/lib/cli/src/commands/app/status.js +108 -0
- package/lib/cli/src/commands/app/stop.d.ts +12 -0
- package/lib/cli/src/commands/app/stop.js +45 -0
- package/lib/cli/src/commands/app/versions.d.ts +14 -0
- package/lib/cli/src/commands/app/versions.js +80 -0
- package/lib/cli/src/commands/auth/generate-api-key.d.ts +12 -0
- package/lib/cli/src/commands/auth/generate-api-key.js +90 -0
- package/lib/cli/src/commands/auth/login.d.ts +11 -0
- package/lib/cli/src/commands/auth/login.js +296 -0
- package/lib/cli/src/commands/auth/reset-password.d.ts +15 -0
- package/lib/cli/src/commands/auth/reset-password.js +253 -0
- package/lib/cli/src/commands/backup/destination/create.d.ts +22 -0
- package/lib/cli/src/commands/backup/destination/create.js +102 -0
- package/lib/cli/src/commands/backup/destination/delete.d.ts +11 -0
- package/lib/cli/src/commands/backup/destination/delete.js +46 -0
- package/lib/cli/src/commands/backup/destination/list.d.ts +9 -0
- package/lib/cli/src/commands/backup/destination/list.js +42 -0
- package/lib/cli/src/commands/backup/destination/show.d.ts +11 -0
- package/lib/cli/src/commands/backup/destination/show.js +45 -0
- package/lib/cli/src/commands/backup/destination/test.d.ts +8 -0
- package/lib/cli/src/commands/backup/destination/test.js +39 -0
- package/lib/cli/src/commands/backup/job/list.d.ts +9 -0
- package/lib/cli/src/commands/backup/job/list.js +38 -0
- package/lib/cli/src/commands/backup/job/run.d.ts +8 -0
- package/lib/cli/src/commands/backup/job/run.js +32 -0
- package/lib/cli/src/commands/backup/job/show.d.ts +11 -0
- package/lib/cli/src/commands/backup/job/show.js +38 -0
- package/lib/cli/src/commands/backup/policy/create.d.ts +21 -0
- package/lib/cli/src/commands/backup/policy/create.js +97 -0
- package/lib/cli/src/commands/backup/policy/delete.d.ts +11 -0
- package/lib/cli/src/commands/backup/policy/delete.js +42 -0
- package/lib/cli/src/commands/backup/policy/list.d.ts +9 -0
- package/lib/cli/src/commands/backup/policy/list.js +40 -0
- package/lib/cli/src/commands/backup/policy/show.d.ts +11 -0
- package/lib/cli/src/commands/backup/policy/show.js +45 -0
- package/lib/cli/src/commands/backup/restore/create.d.ts +14 -0
- package/lib/cli/src/commands/backup/restore/create.js +68 -0
- package/lib/cli/src/commands/backup/restore/list.d.ts +8 -0
- package/lib/cli/src/commands/backup/restore/list.js +33 -0
- package/lib/cli/src/commands/backup/restore/preview.d.ts +9 -0
- package/lib/cli/src/commands/backup/restore/preview.js +29 -0
- package/lib/cli/src/commands/backup/restore/show.d.ts +11 -0
- package/lib/cli/src/commands/backup/restore/show.js +40 -0
- package/lib/cli/src/commands/catalog/validate.d.ts +14 -0
- package/lib/cli/src/commands/catalog/validate.js +155 -0
- package/lib/cli/src/commands/cluster/destroy.d.ts +15 -0
- package/lib/cli/src/commands/cluster/destroy.js +137 -0
- package/lib/cli/src/commands/config/get.d.ts +9 -0
- package/lib/cli/src/commands/config/get.js +47 -0
- package/lib/cli/src/commands/config/list.d.ts +15 -0
- package/lib/cli/src/commands/config/list.js +109 -0
- package/lib/cli/src/commands/config/remove.d.ts +12 -0
- package/lib/cli/src/commands/config/remove.js +92 -0
- package/lib/cli/src/commands/config/set.d.ts +15 -0
- package/lib/cli/src/commands/config/set.js +152 -0
- package/lib/cli/src/commands/config/show.d.ts +6 -0
- package/lib/cli/src/commands/config/show.js +15 -0
- package/lib/cli/src/commands/context/create.d.ts +12 -0
- package/lib/cli/src/commands/context/create.js +46 -0
- package/lib/cli/src/commands/context/delete.d.ts +12 -0
- package/lib/cli/src/commands/context/delete.js +53 -0
- package/lib/cli/src/commands/context/list.d.ts +6 -0
- package/lib/cli/src/commands/context/list.js +29 -0
- package/lib/cli/src/commands/context/show.d.ts +6 -0
- package/lib/cli/src/commands/context/show.js +12 -0
- package/lib/cli/src/commands/context/use.d.ts +9 -0
- package/lib/cli/src/commands/context/use.js +30 -0
- package/lib/cli/src/commands/deploy.d.ts +49 -0
- package/lib/cli/src/commands/deploy.js +542 -0
- package/lib/cli/src/commands/dev/creds.d.ts +19 -0
- package/lib/cli/src/commands/dev/creds.js +290 -0
- package/lib/cli/src/commands/dev/tunnel.d.ts +15 -0
- package/lib/cli/src/commands/dev/tunnel.js +268 -0
- package/lib/cli/src/commands/dns/cleanup.d.ts +11 -0
- package/lib/cli/src/commands/dns/cleanup.js +93 -0
- package/lib/cli/src/commands/env/capacity.d.ts +12 -0
- package/lib/cli/src/commands/env/capacity.js +177 -0
- package/lib/cli/src/commands/env/create.d.ts +21 -0
- package/lib/cli/src/commands/env/create.js +721 -0
- package/lib/cli/src/commands/env/credentials.d.ts +21 -0
- package/lib/cli/src/commands/env/credentials.js +435 -0
- package/lib/cli/src/commands/env/destroy.d.ts +9 -0
- package/lib/cli/src/commands/env/destroy.js +145 -0
- package/lib/cli/src/commands/env/diag-ca.d.ts +14 -0
- package/lib/cli/src/commands/env/diag-ca.js +192 -0
- package/lib/cli/src/commands/env/export-config.d.ts +39 -0
- package/lib/cli/src/commands/env/export-config.js +386 -0
- package/lib/cli/src/commands/env/force-ready.d.ts +10 -0
- package/lib/cli/src/commands/env/force-ready.js +222 -0
- package/lib/cli/src/commands/env/inspect.d.ts +12 -0
- package/lib/cli/src/commands/env/inspect.js +192 -0
- package/lib/cli/src/commands/env/kubectl.d.ts +9 -0
- package/lib/cli/src/commands/env/kubectl.js +33 -0
- package/lib/cli/src/commands/env/logs.d.ts +12 -0
- package/lib/cli/src/commands/env/logs.js +136 -0
- package/lib/cli/src/commands/env/orphan-volumes.d.ts +11 -0
- package/lib/cli/src/commands/env/orphan-volumes.js +153 -0
- package/lib/cli/src/commands/env/refresh-kubeconfig.d.ts +6 -0
- package/lib/cli/src/commands/env/refresh-kubeconfig.js +66 -0
- package/lib/cli/src/commands/env/repair-ssh-ca.d.ts +11 -0
- package/lib/cli/src/commands/env/repair-ssh-ca.js +137 -0
- package/lib/cli/src/commands/env/restart.d.ts +10 -0
- package/lib/cli/src/commands/env/restart.js +187 -0
- package/lib/cli/src/commands/env/scale-master.d.ts +11 -0
- package/lib/cli/src/commands/env/scale-master.js +160 -0
- package/lib/cli/src/commands/env/scale-node.d.ts +14 -0
- package/lib/cli/src/commands/env/scale-node.js +139 -0
- package/lib/cli/src/commands/env/status.d.ts +10 -0
- package/lib/cli/src/commands/env/status.js +182 -0
- package/lib/cli/src/commands/env/stop.d.ts +6 -0
- package/lib/cli/src/commands/env/stop.js +147 -0
- package/lib/cli/src/commands/env/storage-expand.d.ts +10 -0
- package/lib/cli/src/commands/env/storage-expand.js +124 -0
- package/lib/cli/src/commands/env/storage.d.ts +8 -0
- package/lib/cli/src/commands/env/storage.js +92 -0
- package/lib/cli/src/commands/env/sync.d.ts +17 -0
- package/lib/cli/src/commands/env/sync.js +225 -0
- package/lib/cli/src/commands/env/uncordon.d.ts +9 -0
- package/lib/cli/src/commands/env/uncordon.js +73 -0
- package/lib/cli/src/commands/env/update-firewall.d.ts +9 -0
- package/lib/cli/src/commands/env/update-firewall.js +185 -0
- package/lib/cli/src/commands/integration/connect.d.ts +13 -0
- package/lib/cli/src/commands/integration/connect.js +161 -0
- package/lib/cli/src/commands/integration/ghcr-pat/revoke.d.ts +9 -0
- package/lib/cli/src/commands/integration/ghcr-pat/revoke.js +61 -0
- package/lib/cli/src/commands/integration/ghcr-pat/set.d.ts +12 -0
- package/lib/cli/src/commands/integration/ghcr-pat/set.js +141 -0
- package/lib/cli/src/commands/integration/ghcr-pat/status.d.ts +6 -0
- package/lib/cli/src/commands/integration/ghcr-pat/status.js +69 -0
- package/lib/cli/src/commands/integration/installations.d.ts +6 -0
- package/lib/cli/src/commands/integration/installations.js +45 -0
- package/lib/cli/src/commands/integration/list.d.ts +8 -0
- package/lib/cli/src/commands/integration/list.js +67 -0
- package/lib/cli/src/commands/integration/remove-installation.d.ts +12 -0
- package/lib/cli/src/commands/integration/remove-installation.js +71 -0
- package/lib/cli/src/commands/integration/setup-github-app.d.ts +10 -0
- package/lib/cli/src/commands/integration/setup-github-app.js +162 -0
- package/lib/cli/src/commands/node/add.d.ts +11 -0
- package/lib/cli/src/commands/node/add.js +103 -0
- package/lib/cli/src/commands/node/list.d.ts +11 -0
- package/lib/cli/src/commands/node/list.js +83 -0
- package/lib/cli/src/commands/node/remove.d.ts +16 -0
- package/lib/cli/src/commands/node/remove.js +161 -0
- package/lib/cli/src/commands/reconcile.d.ts +19 -0
- package/lib/cli/src/commands/reconcile.js +171 -0
- package/lib/cli/src/commands/repo/connect.d.ts +12 -0
- package/lib/cli/src/commands/repo/connect.js +133 -0
- package/lib/cli/src/commands/repo/disconnect.d.ts +12 -0
- package/lib/cli/src/commands/repo/disconnect.js +73 -0
- package/lib/cli/src/commands/repo/list.d.ts +9 -0
- package/lib/cli/src/commands/repo/list.js +66 -0
- package/lib/cli/src/commands/server-types/list.d.ts +12 -0
- package/lib/cli/src/commands/server-types/list.js +205 -0
- package/lib/cli/src/commands/ssh.d.ts +9 -0
- package/lib/cli/src/commands/ssh.js +94 -0
- package/lib/cli/src/commands/standalone/install.d.ts +27 -0
- package/lib/cli/src/commands/standalone/install.js +330 -0
- package/lib/cli/src/commands/template/use.d.ts +16 -0
- package/lib/cli/src/commands/template/use.js +111 -0
- package/lib/cli/src/commands/update.d.ts +6 -0
- package/lib/cli/src/commands/update.js +87 -0
- package/lib/cli/src/config/bootstrap.config.d.ts +37 -0
- package/lib/cli/src/config/bootstrap.config.js +33 -0
- package/lib/cli/src/config/defaults.d.ts +46 -0
- package/lib/cli/src/config/defaults.js +79 -0
- package/lib/cli/src/config/key-router.d.ts +22 -0
- package/lib/cli/src/config/key-router.js +45 -0
- package/lib/cli/src/config/preferences-echo.d.ts +9 -0
- package/lib/cli/src/config/preferences-echo.js +61 -0
- package/lib/cli/src/config/preferences-resolver.d.ts +43 -0
- package/lib/cli/src/config/preferences-resolver.js +100 -0
- package/lib/cli/src/config/preferences-schema.d.ts +32 -0
- package/lib/cli/src/config/preferences-schema.js +53 -0
- package/lib/cli/src/hooks/command_not_found.d.ts +3 -0
- package/lib/cli/src/hooks/command_not_found.js +44 -0
- package/lib/cli/src/lib/api-client.d.ts +58 -0
- package/lib/cli/src/lib/api-client.js +162 -0
- package/lib/cli/src/lib/backup-client.d.ts +131 -0
- package/lib/cli/src/lib/backup-client.js +78 -0
- package/lib/cli/src/lib/browser-callback.d.ts +3 -0
- package/lib/cli/src/lib/browser-callback.js +83 -0
- package/lib/cli/src/lib/byos-precheck.d.ts +29 -0
- package/lib/cli/src/lib/byos-precheck.js +162 -0
- package/lib/cli/src/lib/ca-utils.d.ts +13 -0
- package/lib/cli/src/lib/ca-utils.js +72 -0
- package/lib/cli/src/lib/cli-credential-provider.service.d.ts +31 -0
- package/lib/cli/src/lib/cli-credential-provider.service.js +86 -0
- package/lib/cli/src/lib/config-storage.d.ts +128 -0
- package/lib/cli/src/lib/config-storage.js +349 -0
- package/lib/cli/src/lib/config.d.ts +23 -0
- package/lib/cli/src/lib/config.js +113 -0
- package/lib/cli/src/lib/context-banner.d.ts +12 -0
- package/lib/cli/src/lib/context-banner.js +25 -0
- package/lib/cli/src/lib/format-bytes.d.ts +1 -0
- package/lib/cli/src/lib/format-bytes.js +18 -0
- package/lib/cli/src/lib/framework-detector.d.ts +12 -0
- package/lib/cli/src/lib/framework-detector.js +216 -0
- package/lib/cli/src/lib/framework-postchecks.d.ts +11 -0
- package/lib/cli/src/lib/framework-postchecks.js +152 -0
- package/lib/cli/src/lib/nest-app.d.ts +17 -0
- package/lib/cli/src/lib/nest-app.js +69 -0
- package/lib/cli/src/lib/nip-base-domain.util.d.ts +8 -0
- package/lib/cli/src/lib/nip-base-domain.util.js +17 -0
- package/lib/cli/src/lib/profile-manager.d.ts +56 -0
- package/lib/cli/src/lib/profile-manager.js +207 -0
- package/lib/cli/src/lib/prompts.d.ts +67 -0
- package/lib/cli/src/lib/prompts.js +475 -0
- package/lib/cli/src/lib/provider-credential-schemas.d.ts +29 -0
- package/lib/cli/src/lib/provider-credential-schemas.js +48 -0
- package/lib/cli/src/lib/repositories/cli-cluster.repository.d.ts +56 -0
- package/lib/cli/src/lib/repositories/cli-cluster.repository.js +216 -0
- package/lib/cli/src/lib/repositories/cli-firewall.repository.d.ts +13 -0
- package/lib/cli/src/lib/repositories/cli-firewall.repository.js +147 -0
- package/lib/cli/src/lib/repositories/cli-node.repository.d.ts +26 -0
- package/lib/cli/src/lib/repositories/cli-node.repository.js +164 -0
- package/lib/cli/src/lib/repositories/cli-operation.repository.d.ts +57 -0
- package/lib/cli/src/lib/repositories/cli-operation.repository.js +226 -0
- package/lib/cli/src/lib/repositories/cli-vnet.repository.d.ts +22 -0
- package/lib/cli/src/lib/repositories/cli-vnet.repository.js +175 -0
- package/lib/cli/src/lib/repositories/index.d.ts +5 -0
- package/lib/cli/src/lib/repositories/index.js +21 -0
- package/lib/cli/src/lib/resolve-cluster.d.ts +16 -0
- package/lib/cli/src/lib/resolve-cluster.js +34 -0
- package/lib/cli/src/lib/scaleway-validator.d.ts +5 -0
- package/lib/cli/src/lib/scaleway-validator.js +87 -0
- package/lib/cli/src/lib/server-utils.d.ts +8 -0
- package/lib/cli/src/lib/server-utils.js +19 -0
- package/lib/cli/src/lib/services/cli-app.service.d.ts +294 -0
- package/lib/cli/src/lib/services/cli-app.service.js +162 -0
- package/lib/cli/src/lib/services/cli-node.service.d.ts +43 -0
- package/lib/cli/src/lib/services/cli-node.service.js +34 -0
- package/lib/cli/src/lib/services/provider-sync.service.d.ts +90 -0
- package/lib/cli/src/lib/services/provider-sync.service.js +178 -0
- package/lib/cli/src/lib/services/reconciliation.service.d.ts +40 -0
- package/lib/cli/src/lib/services/reconciliation.service.js +119 -0
- package/lib/cli/src/lib/services/vnet-provisioning.service.d.ts +37 -0
- package/lib/cli/src/lib/services/vnet-provisioning.service.js +164 -0
- package/lib/cli/src/lib/ssh-key.d.ts +23 -0
- package/lib/cli/src/lib/ssh-key.js +126 -0
- package/lib/cli/src/lib/template-fetcher.d.ts +25 -0
- package/lib/cli/src/lib/template-fetcher.js +48 -0
- package/lib/cli/src/lib/templates/firewall-rules.d.ts +8 -0
- package/lib/cli/src/lib/templates/firewall-rules.js +17 -0
- package/lib/cli/src/lib/typeorm-shim.d.ts +12 -0
- package/lib/cli/src/lib/typeorm-shim.js +17 -0
- package/lib/cli/src/lib/utils/env-file.d.ts +2 -0
- package/lib/cli/src/lib/utils/env-file.js +40 -0
- package/lib/cli/src/lib/utils/ip-detection.d.ts +27 -0
- package/lib/cli/src/lib/utils/ip-detection.js +144 -0
- package/lib/cli/src/modules/cli-infrastructure.module.d.ts +14 -0
- package/lib/cli/src/modules/cli-infrastructure.module.js +249 -0
- package/lib/cli/src/services/cli-ca.service.d.ts +62 -0
- package/lib/cli/src/services/cli-ca.service.js +281 -0
- package/lib/cli/src/services/cli-cluster-creator.service.d.ts +78 -0
- package/lib/cli/src/services/cli-cluster-creator.service.js +655 -0
- package/lib/cli/src/services/cli-clusters.service.d.ts +74 -0
- package/lib/cli/src/services/cli-clusters.service.js +762 -0
- package/lib/cli/src/services/cli-endpoint-resolver.service.d.ts +33 -0
- package/lib/cli/src/services/cli-endpoint-resolver.service.js +195 -0
- package/lib/cli/src/services/cli-k3s-script.service.d.ts +114 -0
- package/lib/cli/src/services/cli-k3s-script.service.js +288 -0
- package/lib/cli/src/services/cli-logger.service.d.ts +56 -0
- package/lib/cli/src/services/cli-logger.service.js +188 -0
- package/lib/cli/src/services/cli-observability-cluster.service.d.ts +128 -0
- package/lib/cli/src/services/cli-observability-cluster.service.js +525 -0
- package/lib/cli/src/services/cli-ssh.service.d.ts +90 -0
- package/lib/cli/src/services/cli-ssh.service.js +457 -0
- package/lib/cli/src/services/server-type-cache.service.d.ts +34 -0
- package/lib/cli/src/services/server-type-cache.service.js +156 -0
- package/lib/cli/src/services/server-type-validator.service.d.ts +80 -0
- package/lib/cli/src/services/server-type-validator.service.js +366 -0
- package/lib/cli/src/types/index.d.ts +41 -0
- package/lib/cli/src/types/index.js +2 -0
- package/lib/src/common/utils/project-root.util.d.ts +22 -0
- package/lib/src/common/utils/project-root.util.js +78 -0
- package/lib/src/modules/access/access.controller.d.ts +30 -0
- package/lib/src/modules/access/access.controller.js +336 -0
- package/lib/src/modules/access/access.module.d.ts +2 -0
- package/lib/src/modules/access/access.module.js +92 -0
- package/lib/src/modules/access/controllers/ca.controller.d.ts +22 -0
- package/lib/src/modules/access/controllers/ca.controller.js +242 -0
- package/lib/src/modules/access/dto/api-token.dto.d.ts +11 -0
- package/lib/src/modules/access/dto/api-token.dto.js +74 -0
- package/lib/src/modules/access/dto/bearer-token.dto.d.ts +7 -0
- package/lib/src/modules/access/dto/bearer-token.dto.js +36 -0
- package/lib/src/modules/access/dto/ca-public-key.dto.d.ts +7 -0
- package/lib/src/modules/access/dto/ca-public-key.dto.js +52 -0
- package/lib/src/modules/access/dto/create-api-token.dto.d.ts +7 -0
- package/lib/src/modules/access/dto/create-api-token.dto.js +64 -0
- package/lib/src/modules/access/dto/create-bearer-token.dto.d.ts +9 -0
- package/lib/src/modules/access/dto/create-bearer-token.dto.js +58 -0
- package/lib/src/modules/access/dto/create-ssh-key.dto.d.ts +7 -0
- package/lib/src/modules/access/dto/create-ssh-key.dto.js +61 -0
- package/lib/src/modules/access/dto/refresh-token.dto.d.ts +7 -0
- package/lib/src/modules/access/dto/refresh-token.dto.js +46 -0
- package/lib/src/modules/access/dto/register-ca.dto.d.ts +16 -0
- package/lib/src/modules/access/dto/register-ca.dto.js +111 -0
- package/lib/src/modules/access/dto/ssh-key.dto.d.ts +20 -0
- package/lib/src/modules/access/dto/ssh-key.dto.js +124 -0
- package/lib/src/modules/access/dto/update-ssh-key.dto.d.ts +7 -0
- package/lib/src/modules/access/dto/update-ssh-key.dto.js +73 -0
- package/lib/src/modules/access/entities/api-token.entity.d.ts +30 -0
- package/lib/src/modules/access/entities/api-token.entity.js +87 -0
- package/lib/src/modules/access/entities/ca-keypair.entity.d.ts +13 -0
- package/lib/src/modules/access/entities/ca-keypair.entity.js +63 -0
- package/lib/src/modules/access/entities/credentials.entity.d.ts +18 -0
- package/lib/src/modules/access/entities/credentials.entity.js +87 -0
- package/lib/src/modules/access/entities/ssh-key.entity.d.ts +15 -0
- package/lib/src/modules/access/entities/ssh-key.entity.js +81 -0
- package/lib/src/modules/access/enums/credential-purpose.enum.d.ts +4 -0
- package/lib/src/modules/access/enums/credential-purpose.enum.js +8 -0
- package/lib/src/modules/access/interfaces/access.repository.d.ts +11 -0
- package/lib/src/modules/access/interfaces/access.repository.js +2 -0
- package/lib/src/modules/access/interfaces/ssh-key.interface.d.ts +26 -0
- package/lib/src/modules/access/interfaces/ssh-key.interface.js +2 -0
- package/lib/src/modules/access/mapper/api-token.mapper.d.ts +6 -0
- package/lib/src/modules/access/mapper/api-token.mapper.js +21 -0
- package/lib/src/modules/access/mapper/ssh-key.mapper.d.ts +6 -0
- package/lib/src/modules/access/mapper/ssh-key.mapper.js +25 -0
- package/lib/src/modules/access/providers/contabo-ssh-provider.service.d.ts +13 -0
- package/lib/src/modules/access/providers/contabo-ssh-provider.service.js +40 -0
- package/lib/src/modules/access/providers/hetzner-ssh-provider.service.d.ts +17 -0
- package/lib/src/modules/access/providers/hetzner-ssh-provider.service.js +95 -0
- package/lib/src/modules/access/providers/interfaces/ssh-provider.interface.d.ts +8 -0
- package/lib/src/modules/access/providers/interfaces/ssh-provider.interface.js +3 -0
- package/lib/src/modules/access/providers/ssh-provider.factory.d.ts +13 -0
- package/lib/src/modules/access/providers/ssh-provider.factory.js +44 -0
- package/lib/src/modules/access/repositories/api-token.repository.d.ts +24 -0
- package/lib/src/modules/access/repositories/api-token.repository.js +99 -0
- package/lib/src/modules/access/repositories/default-access.repository.d.ts +16 -0
- package/lib/src/modules/access/repositories/default-access.repository.js +121 -0
- package/lib/src/modules/access/repositories/provider-credentials.repository.d.ts +17 -0
- package/lib/src/modules/access/repositories/provider-credentials.repository.js +106 -0
- package/lib/src/modules/access/services/access.service.d.ts +180 -0
- package/lib/src/modules/access/services/access.service.js +732 -0
- package/lib/src/modules/access/services/bearerToken.service.d.ts +15 -0
- package/lib/src/modules/access/services/bearerToken.service.js +107 -0
- package/lib/src/modules/access/services/ca-manager.service.d.ts +48 -0
- package/lib/src/modules/access/services/ca-manager.service.js +293 -0
- package/lib/src/modules/access/services/certificate-signer.service.d.ts +36 -0
- package/lib/src/modules/access/services/certificate-signer.service.js +155 -0
- package/lib/src/modules/access/services/key-storage.service.d.ts +17 -0
- package/lib/src/modules/access/services/key-storage.service.js +133 -0
- package/lib/src/modules/access/services/ssh-key-generator.service.d.ts +6 -0
- package/lib/src/modules/access/services/ssh-key-generator.service.js +51 -0
- package/lib/src/modules/app-builds/entities/app-build.entity.d.ts +38 -0
- package/lib/src/modules/app-builds/entities/app-build.entity.js +168 -0
- package/lib/src/modules/app-builds/enums/app-build-status.enum.d.ts +10 -0
- package/lib/src/modules/app-builds/enums/app-build-status.enum.js +14 -0
- package/lib/src/modules/app-builds/enums/build-provider.enum.d.ts +6 -0
- package/lib/src/modules/app-builds/enums/build-provider.enum.js +10 -0
- package/lib/src/modules/app-builds/services/build-job.service.d.ts +178 -0
- package/lib/src/modules/app-builds/services/build-job.service.js +1057 -0
- package/lib/src/modules/applications/entities/app-resource.entity.d.ts +24 -0
- package/lib/src/modules/applications/entities/app-resource.entity.js +117 -0
- package/lib/src/modules/applications/entities/app-revision.entity.d.ts +29 -0
- package/lib/src/modules/applications/entities/app-revision.entity.js +133 -0
- package/lib/src/modules/applications/entities/application.entity.d.ts +121 -0
- package/lib/src/modules/applications/entities/application.entity.js +279 -0
- package/lib/src/modules/applications/enums/app-event-type.enum.d.ts +24 -0
- package/lib/src/modules/applications/enums/app-event-type.enum.js +28 -0
- package/lib/src/modules/applications/enums/application-category.enum.d.ts +4 -0
- package/lib/src/modules/applications/enums/application-category.enum.js +8 -0
- package/lib/src/modules/applications/enums/application-exposure.enum.d.ts +4 -0
- package/lib/src/modules/applications/enums/application-exposure.enum.js +8 -0
- package/lib/src/modules/applications/enums/application-kind.enum.d.ts +6 -0
- package/lib/src/modules/applications/enums/application-kind.enum.js +10 -0
- package/lib/src/modules/applications/enums/application-resource-kind.enum.d.ts +17 -0
- package/lib/src/modules/applications/enums/application-resource-kind.enum.js +21 -0
- package/lib/src/modules/applications/enums/application-resource-status.enum.d.ts +8 -0
- package/lib/src/modules/applications/enums/application-resource-status.enum.js +12 -0
- package/lib/src/modules/applications/enums/application-source-type.enum.d.ts +6 -0
- package/lib/src/modules/applications/enums/application-source-type.enum.js +10 -0
- package/lib/src/modules/applications/enums/application-status.enum.d.ts +20 -0
- package/lib/src/modules/applications/enums/application-status.enum.js +24 -0
- package/lib/src/modules/applications/interfaces/source-config.interface.d.ts +132 -0
- package/lib/src/modules/applications/interfaces/source-config.interface.js +2 -0
- package/lib/src/modules/auth/decorators/admin.decorator.d.ts +2 -0
- package/lib/src/modules/auth/decorators/admin.decorator.js +7 -0
- package/lib/src/modules/auth/entities/user.entity.d.ts +19 -0
- package/lib/src/modules/auth/entities/user.entity.js +78 -0
- package/lib/src/modules/auth/guards/admin.guard.d.ts +7 -0
- package/lib/src/modules/auth/guards/admin.guard.js +50 -0
- package/lib/src/modules/auth/interfaces/authenticated-user.interface.d.ts +12 -0
- package/lib/src/modules/auth/interfaces/authenticated-user.interface.js +2 -0
- package/lib/src/modules/common/cache/cache.service.d.ts +77 -0
- package/lib/src/modules/common/cache/cache.service.js +232 -0
- package/lib/src/modules/common/cache/cache.tokens.d.ts +1 -0
- package/lib/src/modules/common/cache/cache.tokens.js +4 -0
- package/lib/src/modules/common/cache/enums/cache-category.enum.d.ts +33 -0
- package/lib/src/modules/common/cache/enums/cache-category.enum.js +42 -0
- package/lib/src/modules/common/common.module.d.ts +2 -0
- package/lib/src/modules/common/common.module.js +20 -0
- package/lib/src/modules/common/dto/async-operation-response.dto.d.ts +19 -0
- package/lib/src/modules/common/dto/async-operation-response.dto.js +65 -0
- package/lib/src/modules/common/dto/index.d.ts +1 -0
- package/lib/src/modules/common/dto/index.js +17 -0
- package/lib/src/modules/common/services/label.service.d.ts +70 -0
- package/lib/src/modules/common/services/label.service.js +128 -0
- package/lib/src/modules/dns/entities/app-endpoint.entity.d.ts +57 -0
- package/lib/src/modules/dns/entities/app-endpoint.entity.js +205 -0
- package/lib/src/modules/dns/entities/cluster-dns-zone.entity.d.ts +21 -0
- package/lib/src/modules/dns/entities/cluster-dns-zone.entity.js +88 -0
- package/lib/src/modules/dns/entities/dns-zone.entity.d.ts +12 -0
- package/lib/src/modules/dns/entities/dns-zone.entity.js +53 -0
- package/lib/src/modules/dns/entities/san-certificate.entity.d.ts +29 -0
- package/lib/src/modules/dns/entities/san-certificate.entity.js +132 -0
- package/lib/src/modules/dns/entities/wildcard-certificate.entity.d.ts +26 -0
- package/lib/src/modules/dns/entities/wildcard-certificate.entity.js +111 -0
- package/lib/src/modules/dns/enums/cert-challenge.enum.d.ts +4 -0
- package/lib/src/modules/dns/enums/cert-challenge.enum.js +8 -0
- package/lib/src/modules/dns/enums/endpoint-type.enum.d.ts +4 -0
- package/lib/src/modules/dns/enums/endpoint-type.enum.js +8 -0
- package/lib/src/modules/dns/enums/hostname-mode.enum.d.ts +4 -0
- package/lib/src/modules/dns/enums/hostname-mode.enum.js +8 -0
- package/lib/src/modules/dns/services/cluster-dns-cleanup.service.d.ts +12 -0
- package/lib/src/modules/dns/services/cluster-dns-cleanup.service.js +79 -0
- package/lib/src/modules/dns/utils/nip-hostname.util.d.ts +12 -0
- package/lib/src/modules/dns/utils/nip-hostname.util.js +27 -0
- package/lib/src/modules/dns/utils/nip-token.util.d.ts +2 -0
- package/lib/src/modules/dns/utils/nip-token.util.js +94 -0
- package/lib/src/modules/frameworks/framework-core/enums/build-stage.enum.d.ts +21 -0
- package/lib/src/modules/frameworks/framework-core/enums/build-stage.enum.js +29 -0
- package/lib/src/modules/frameworks/framework-core/enums/deploy-strategy.enum.d.ts +22 -0
- package/lib/src/modules/frameworks/framework-core/enums/deploy-strategy.enum.js +26 -0
- package/lib/src/modules/frameworks/framework-core/enums/framework-type.enum.d.ts +32 -0
- package/lib/src/modules/frameworks/framework-core/enums/framework-type.enum.js +47 -0
- package/lib/src/modules/grafana/services/grafana-config.service.d.ts +43 -0
- package/lib/src/modules/grafana/services/grafana-config.service.js +177 -0
- package/lib/src/modules/grafana/services/grafana-datasource.service.d.ts +70 -0
- package/lib/src/modules/grafana/services/grafana-datasource.service.js +333 -0
- package/lib/src/modules/infrastructure/clusters/clusters.service.d.ts +126 -0
- package/lib/src/modules/infrastructure/clusters/clusters.service.js +265 -0
- package/lib/src/modules/infrastructure/clusters/constants/storage-conventions.d.ts +60 -0
- package/lib/src/modules/infrastructure/clusters/constants/storage-conventions.js +64 -0
- package/lib/src/modules/infrastructure/clusters/dto/build-resources.dto.d.ts +19 -0
- package/lib/src/modules/infrastructure/clusters/dto/build-resources.dto.js +69 -0
- package/lib/src/modules/infrastructure/clusters/dto/cluster-capacity-plan.dto.d.ts +36 -0
- package/lib/src/modules/infrastructure/clusters/dto/cluster-capacity-plan.dto.js +149 -0
- package/lib/src/modules/infrastructure/clusters/dto/cluster-power-management.dto.d.ts +51 -0
- package/lib/src/modules/infrastructure/clusters/dto/cluster-power-management.dto.js +222 -0
- package/lib/src/modules/infrastructure/clusters/dto/cluster-response.dto.d.ts +42 -0
- package/lib/src/modules/infrastructure/clusters/dto/cluster-response.dto.js +238 -0
- package/lib/src/modules/infrastructure/clusters/dto/cluster-storage.dto.d.ts +35 -0
- package/lib/src/modules/infrastructure/clusters/dto/cluster-storage.dto.js +122 -0
- package/lib/src/modules/infrastructure/clusters/dto/create-cluster.dto.d.ts +43 -0
- package/lib/src/modules/infrastructure/clusters/dto/create-cluster.dto.js +334 -0
- package/lib/src/modules/infrastructure/clusters/dto/register-cluster.dto.d.ts +30 -0
- package/lib/src/modules/infrastructure/clusters/dto/register-cluster.dto.js +190 -0
- package/lib/src/modules/infrastructure/clusters/dto/resource-availability.dto.d.ts +15 -0
- package/lib/src/modules/infrastructure/clusters/dto/resource-availability.dto.js +91 -0
- package/lib/src/modules/infrastructure/clusters/entities/cluster-node.entity.d.ts +28 -0
- package/lib/src/modules/infrastructure/clusters/entities/cluster-node.entity.js +104 -0
- package/lib/src/modules/infrastructure/clusters/entities/cluster.entity.d.ts +64 -0
- package/lib/src/modules/infrastructure/clusters/entities/cluster.entity.js +199 -0
- package/lib/src/modules/infrastructure/clusters/entities/node-billable-interval.entity.d.ts +17 -0
- package/lib/src/modules/infrastructure/clusters/entities/node-billable-interval.entity.js +86 -0
- package/lib/src/modules/infrastructure/clusters/entities/volume-billable-interval.entity.d.ts +18 -0
- package/lib/src/modules/infrastructure/clusters/entities/volume-billable-interval.entity.js +79 -0
- package/lib/src/modules/infrastructure/clusters/services/billing-intervals.service.d.ts +48 -0
- package/lib/src/modules/infrastructure/clusters/services/billing-intervals.service.js +159 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-capacity.service.d.ts +23 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-capacity.service.js +198 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-creation.service.d.ts +25 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-creation.service.js +192 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-deletion.service.d.ts +36 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-deletion.service.js +159 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-firewall-integration.service.d.ts +25 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-firewall-integration.service.js +90 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-mapper.service.d.ts +15 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-mapper.service.js +63 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-node-scaling.service.d.ts +78 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-node-scaling.service.js +644 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-operations.service.d.ts +37 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-operations.service.js +244 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-power-management.service.d.ts +68 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-power-management.service.js +716 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-storage.service.d.ts +15 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-storage.service.js +179 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-validation.service.d.ts +29 -0
- package/lib/src/modules/infrastructure/clusters/services/cluster-validation.service.js +100 -0
- package/lib/src/modules/infrastructure/firewalls/dto/cluster-firewall.dto.d.ts +62 -0
- package/lib/src/modules/infrastructure/firewalls/dto/cluster-firewall.dto.js +252 -0
- package/lib/src/modules/infrastructure/firewalls/entities/cluster-firewall.entity.d.ts +20 -0
- package/lib/src/modules/infrastructure/firewalls/entities/cluster-firewall.entity.js +83 -0
- package/lib/src/modules/infrastructure/firewalls/services/firewall-desired-state.service.d.ts +73 -0
- package/lib/src/modules/infrastructure/firewalls/services/firewall-desired-state.service.js +329 -0
- package/lib/src/modules/infrastructure/firewalls/services/firewall-reconciliation.service.d.ts +43 -0
- package/lib/src/modules/infrastructure/firewalls/services/firewall-reconciliation.service.js +212 -0
- package/lib/src/modules/infrastructure/firewalls/templates/firewall-rules.template.d.ts +54 -0
- package/lib/src/modules/infrastructure/firewalls/templates/firewall-rules.template.js +167 -0
- package/lib/src/modules/infrastructure/operations/helpers/operation-steps.helper.d.ts +34 -0
- package/lib/src/modules/infrastructure/operations/helpers/operation-steps.helper.js +401 -0
- package/lib/src/modules/infrastructure/servers/dto/create-server.dto.d.ts +40 -0
- package/lib/src/modules/infrastructure/servers/dto/create-server.dto.js +157 -0
- package/lib/src/modules/infrastructure/servers/dto/delete-server.dto.d.ts +17 -0
- package/lib/src/modules/infrastructure/servers/dto/delete-server.dto.js +85 -0
- package/lib/src/modules/infrastructure/servers/dto/server-response.dto.d.ts +29 -0
- package/lib/src/modules/infrastructure/servers/dto/server-response.dto.js +147 -0
- package/lib/src/modules/infrastructure/servers/entities/infrastructure-operations.entity.d.ts +266 -0
- package/lib/src/modules/infrastructure/servers/entities/infrastructure-operations.entity.js +348 -0
- package/lib/src/modules/infrastructure/shared/enums/reconciliation-status.enum.d.ts +7 -0
- package/lib/src/modules/infrastructure/shared/enums/reconciliation-status.enum.js +11 -0
- package/lib/src/modules/infrastructure/shared/services/kubernetes.service.d.ts +304 -0
- package/lib/src/modules/infrastructure/shared/services/kubernetes.service.js +1164 -0
- package/lib/src/modules/infrastructure/shared/services/label.service.d.ts +97 -0
- package/lib/src/modules/infrastructure/shared/services/label.service.js +189 -0
- package/lib/src/modules/infrastructure/shared/shared-infrastructure.module.d.ts +2 -0
- package/lib/src/modules/infrastructure/shared/shared-infrastructure.module.js +24 -0
- package/lib/src/modules/infrastructure/vnets/entities/vnet-route.entity.d.ts +10 -0
- package/lib/src/modules/infrastructure/vnets/entities/vnet-route.entity.js +51 -0
- package/lib/src/modules/infrastructure/vnets/entities/vnet-subnet.entity.d.ts +20 -0
- package/lib/src/modules/infrastructure/vnets/entities/vnet-subnet.entity.js +77 -0
- package/lib/src/modules/infrastructure/vnets/entities/vnet.entity.d.ts +28 -0
- package/lib/src/modules/infrastructure/vnets/entities/vnet.entity.js +88 -0
- package/lib/src/modules/instances/entities/instance-status.enum.d.ts +12 -0
- package/lib/src/modules/instances/entities/instance-status.enum.js +16 -0
- package/lib/src/modules/instances/entities/instance-type.enum.d.ts +6 -0
- package/lib/src/modules/instances/entities/instance-type.enum.js +10 -0
- package/lib/src/modules/instances/entities/instance.entity.d.ts +41 -0
- package/lib/src/modules/instances/entities/instance.entity.js +126 -0
- package/lib/src/modules/management/dto/configure-provider.dto.d.ts +8 -0
- package/lib/src/modules/management/dto/configure-provider.dto.js +51 -0
- package/lib/src/modules/management/dto/credentials.dto.d.ts +15 -0
- package/lib/src/modules/management/dto/credentials.dto.js +114 -0
- package/lib/src/modules/management/dto/health-status.dto.d.ts +12 -0
- package/lib/src/modules/management/dto/health-status.dto.js +40 -0
- package/lib/src/modules/management/dto/node-size-option.dto.d.ts +37 -0
- package/lib/src/modules/management/dto/node-size-option.dto.js +178 -0
- package/lib/src/modules/management/dto/pricing-query.dto.d.ts +5 -0
- package/lib/src/modules/management/dto/pricing-query.dto.js +36 -0
- package/lib/src/modules/management/dto/pricing-response.dto.d.ts +21 -0
- package/lib/src/modules/management/dto/pricing-response.dto.js +80 -0
- package/lib/src/modules/management/dto/provider-configuration.dto.d.ts +23 -0
- package/lib/src/modules/management/dto/provider-configuration.dto.js +72 -0
- package/lib/src/modules/management/dto/provider-filters.dto.d.ts +7 -0
- package/lib/src/modules/management/dto/provider-filters.dto.js +45 -0
- package/lib/src/modules/management/dto/validation-result.dto.d.ts +16 -0
- package/lib/src/modules/management/dto/validation-result.dto.js +35 -0
- package/lib/src/modules/management/entities/credentials.entity.d.ts +21 -0
- package/lib/src/modules/management/entities/credentials.entity.js +10 -0
- package/lib/src/modules/management/entities/provider-capabilities.entity.d.ts +85 -0
- package/lib/src/modules/management/entities/provider-capabilities.entity.js +2 -0
- package/lib/src/modules/management/entities/provider-configuration.entity.d.ts +14 -0
- package/lib/src/modules/management/entities/provider-configuration.entity.js +65 -0
- package/lib/src/modules/management/entities/provider-definition.entity.d.ts +19 -0
- package/lib/src/modules/management/entities/provider-definition.entity.js +2 -0
- package/lib/src/modules/management/entities/provider-region.entity.d.ts +11 -0
- package/lib/src/modules/management/entities/provider-region.entity.js +2 -0
- package/lib/src/modules/management/entities/provider-status.enum.d.ts +8 -0
- package/lib/src/modules/management/entities/provider-status.enum.js +12 -0
- package/lib/src/modules/management/interfaces/provider-configuration.repository.interface.d.ts +17 -0
- package/lib/src/modules/management/interfaces/provider-configuration.repository.interface.js +2 -0
- package/lib/src/modules/management/repositories/provider-configuration.repository.d.ts +21 -0
- package/lib/src/modules/management/repositories/provider-configuration.repository.js +89 -0
- package/lib/src/modules/management/services/configuration-mode.service.d.ts +20 -0
- package/lib/src/modules/management/services/configuration-mode.service.js +54 -0
- package/lib/src/modules/management/services/management.service.d.ts +72 -0
- package/lib/src/modules/management/services/management.service.js +546 -0
- package/lib/src/modules/management/services/provider-definitions.service.d.ts +26 -0
- package/lib/src/modules/management/services/provider-definitions.service.js +133 -0
- package/lib/src/modules/providers/controllers/provider-firewalls.controller.d.ts +28 -0
- package/lib/src/modules/providers/controllers/provider-firewalls.controller.js +277 -0
- package/lib/src/modules/providers/core/factories/capabilities-provider.factory.d.ts +10 -0
- package/lib/src/modules/providers/core/factories/capabilities-provider.factory.js +39 -0
- package/lib/src/modules/providers/core/factories/certificate-provider.factory.d.ts +11 -0
- package/lib/src/modules/providers/core/factories/certificate-provider.factory.js +58 -0
- package/lib/src/modules/providers/core/factories/dns-provider.factory.d.ts +12 -0
- package/lib/src/modules/providers/core/factories/dns-provider.factory.js +65 -0
- package/lib/src/modules/providers/core/factories/firewall-provider.factory.d.ts +12 -0
- package/lib/src/modules/providers/core/factories/firewall-provider.factory.js +61 -0
- package/lib/src/modules/providers/core/factories/provider.factory.d.ts +9 -0
- package/lib/src/modules/providers/core/factories/provider.factory.js +47 -0
- package/lib/src/modules/providers/core/factories/vm-backup-provider.factory.d.ts +12 -0
- package/lib/src/modules/providers/core/factories/vm-backup-provider.factory.js +56 -0
- package/lib/src/modules/providers/core/factories/volume-export.factory.d.ts +12 -0
- package/lib/src/modules/providers/core/factories/volume-export.factory.js +56 -0
- package/lib/src/modules/providers/core/interfaces/certificate-provider.interface.d.ts +1 -0
- package/lib/src/modules/providers/core/interfaces/certificate-provider.interface.js +17 -0
- package/lib/src/modules/providers/core/interfaces/cloud-provider.interface.d.ts +1 -0
- package/lib/src/modules/providers/core/interfaces/cloud-provider.interface.js +17 -0
- package/lib/src/modules/providers/core/interfaces/dns-provider.interface.d.ts +1 -0
- package/lib/src/modules/providers/core/interfaces/dns-provider.interface.js +17 -0
- package/lib/src/modules/providers/core/interfaces/firewall-provider.interface.d.ts +1 -0
- package/lib/src/modules/providers/core/interfaces/firewall-provider.interface.js +17 -0
- package/lib/src/modules/providers/core/interfaces/provider-bootstrap-seeder.interface.d.ts +54 -0
- package/lib/src/modules/providers/core/interfaces/provider-bootstrap-seeder.interface.js +2 -0
- package/lib/src/modules/providers/core/tokens.d.ts +59 -0
- package/lib/src/modules/providers/core/tokens.js +19 -0
- package/lib/src/modules/providers/data/region-coordinates.d.ts +6 -0
- package/lib/src/modules/providers/data/region-coordinates.js +25 -0
- package/lib/src/modules/providers/dto/firewall.dto.d.ts +30 -0
- package/lib/src/modules/providers/dto/firewall.dto.js +105 -0
- package/lib/src/modules/providers/dto/node-size.dto.d.ts +46 -0
- package/lib/src/modules/providers/dto/node-size.dto.js +22 -0
- package/lib/src/modules/providers/dto/pricing.dto.d.ts +24 -0
- package/lib/src/modules/providers/dto/pricing.dto.js +19 -0
- package/lib/src/modules/providers/dto/provider-firewall-response.dto.d.ts +28 -0
- package/lib/src/modules/providers/dto/provider-firewall-response.dto.js +134 -0
- package/lib/src/modules/providers/enums/certificate-provider.enum.d.ts +4 -0
- package/lib/src/modules/providers/enums/certificate-provider.enum.js +8 -0
- package/lib/src/modules/providers/enums/cloud-provider.enum.d.ts +5 -0
- package/lib/src/modules/providers/enums/cloud-provider.enum.js +9 -0
- package/lib/src/modules/providers/enums/dns-provider.enum.d.ts +5 -0
- package/lib/src/modules/providers/enums/dns-provider.enum.js +9 -0
- package/lib/src/modules/providers/implementations/contabo/contabo-capabilities.service.d.ts +19 -0
- package/lib/src/modules/providers/implementations/contabo/contabo-capabilities.service.js +254 -0
- package/lib/src/modules/providers/implementations/contabo/contabo-provider.module.d.ts +10 -0
- package/lib/src/modules/providers/implementations/contabo/contabo-provider.module.js +72 -0
- package/lib/src/modules/providers/implementations/contabo/generated/api.d.ts +13374 -0
- package/lib/src/modules/providers/implementations/contabo/generated/api.js +11341 -0
- package/lib/src/modules/providers/implementations/contabo/generated/base.d.ts +66 -0
- package/lib/src/modules/providers/implementations/contabo/generated/base.js +66 -0
- package/lib/src/modules/providers/implementations/contabo/generated/common.d.ts +65 -0
- package/lib/src/modules/providers/implementations/contabo/generated/common.js +152 -0
- package/lib/src/modules/providers/implementations/contabo/generated/configuration.d.ts +91 -0
- package/lib/src/modules/providers/implementations/contabo/generated/configuration.js +50 -0
- package/lib/src/modules/providers/implementations/contabo/generated/index.d.ts +13 -0
- package/lib/src/modules/providers/implementations/contabo/generated/index.js +31 -0
- package/lib/src/modules/providers/implementations/hetzner/generated/api.d.ts +18419 -0
- package/lib/src/modules/providers/implementations/hetzner/generated/api.js +19133 -0
- package/lib/src/modules/providers/implementations/hetzner/generated/base.d.ts +66 -0
- package/lib/src/modules/providers/implementations/hetzner/generated/base.js +66 -0
- package/lib/src/modules/providers/implementations/hetzner/generated/common.d.ts +65 -0
- package/lib/src/modules/providers/implementations/hetzner/generated/common.js +152 -0
- package/lib/src/modules/providers/implementations/hetzner/generated/configuration.d.ts +91 -0
- package/lib/src/modules/providers/implementations/hetzner/generated/configuration.js +50 -0
- package/lib/src/modules/providers/implementations/hetzner/generated/index.d.ts +13 -0
- package/lib/src/modules/providers/implementations/hetzner/generated/index.js +31 -0
- package/lib/src/modules/providers/implementations/hetzner/hetzner-bootstrap-seeder.service.d.ts +19 -0
- package/lib/src/modules/providers/implementations/hetzner/hetzner-bootstrap-seeder.service.js +68 -0
- package/lib/src/modules/providers/implementations/hetzner/hetzner-capabilities.service.d.ts +29 -0
- package/lib/src/modules/providers/implementations/hetzner/hetzner-capabilities.service.js +392 -0
- package/lib/src/modules/providers/implementations/hetzner/hetzner-provider.module.d.ts +2 -0
- package/lib/src/modules/providers/implementations/hetzner/hetzner-provider.module.js +81 -0
- package/lib/src/modules/providers/implementations/hetzner/hetzner-volume-operations.service.d.ts +31 -0
- package/lib/src/modules/providers/implementations/hetzner/hetzner-volume-operations.service.js +312 -0
- package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage-connection.controller.d.ts +18 -0
- package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage-connection.controller.js +67 -0
- package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage-connection.service.d.ts +24 -0
- package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage-connection.service.js +107 -0
- package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage.backend.d.ts +7 -0
- package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage.backend.js +35 -0
- package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage.module.d.ts +8 -0
- package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage.module.js +60 -0
- package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage.provisioner.d.ts +22 -0
- package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage.provisioner.js +100 -0
- package/lib/src/modules/providers/implementations/hetzner/vm-backup/hetzner-vm-backup.service.d.ts +20 -0
- package/lib/src/modules/providers/implementations/hetzner/vm-backup/hetzner-vm-backup.service.js +118 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/api.d.ts +4227 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/api.js +3362 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/base.d.ts +66 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/base.js +66 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/common.d.ts +65 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/common.js +152 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/configuration.d.ts +91 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/configuration.js +50 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/index.d.ts +13 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/index.js +31 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/domain/api.d.ts +2486 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/domain/api.js +2424 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/domain/base.d.ts +66 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/domain/base.js +66 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/domain/common.d.ts +65 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/domain/common.js +152 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/domain/configuration.d.ts +91 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/domain/configuration.js +50 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/domain/index.d.ts +13 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/domain/index.js +31 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/iam/api.d.ts +6425 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/iam/api.js +6925 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/iam/base.d.ts +66 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/iam/base.js +66 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/iam/common.d.ts +65 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/iam/common.js +152 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/iam/configuration.d.ts +91 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/iam/configuration.js +50 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/iam/index.d.ts +13 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/iam/index.js +31 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/instances/api.d.ts +11187 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/instances/api.js +9264 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/instances/base.d.ts +66 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/instances/base.js +66 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/instances/common.d.ts +65 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/instances/common.js +152 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/instances/configuration.d.ts +91 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/instances/configuration.js +50 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/instances/index.d.ts +13 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/instances/index.js +31 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/private-network/api.d.ts +492 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/private-network/api.js +531 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/private-network/base.d.ts +66 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/private-network/base.js +66 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/private-network/common.d.ts +65 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/private-network/common.js +152 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/private-network/configuration.d.ts +91 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/private-network/configuration.js +50 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/private-network/index.d.ts +13 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/private-network/index.js +31 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/vpc/api.d.ts +2305 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/vpc/api.js +2443 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/vpc/base.d.ts +66 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/vpc/base.js +66 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/vpc/common.d.ts +65 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/vpc/common.js +152 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/vpc/configuration.d.ts +91 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/vpc/configuration.js +50 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/vpc/index.d.ts +13 -0
- package/lib/src/modules/providers/implementations/scaleway/generated/vpc/index.js +31 -0
- package/lib/src/modules/providers/implementations/scaleway/object-storage/scaleway-object-storage.backend.d.ts +8 -0
- package/lib/src/modules/providers/implementations/scaleway/object-storage/scaleway-object-storage.backend.js +49 -0
- package/lib/src/modules/providers/implementations/scaleway/object-storage/scaleway-object-storage.module.d.ts +9 -0
- package/lib/src/modules/providers/implementations/scaleway/object-storage/scaleway-object-storage.module.js +56 -0
- package/lib/src/modules/providers/implementations/scaleway/object-storage/scaleway-object-storage.provisioner.d.ts +27 -0
- package/lib/src/modules/providers/implementations/scaleway/object-storage/scaleway-object-storage.provisioner.js +120 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-baremetal.adapter.d.ts +22 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-baremetal.adapter.js +140 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-bootstrap-seeder.service.d.ts +12 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-bootstrap-seeder.service.js +65 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-capabilities.service.d.ts +23 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-capabilities.service.js +319 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-dns.service.d.ts +24 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-dns.service.js +189 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-firewall.service.d.ts +43 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-firewall.service.js +455 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-iam.adapter.d.ts +32 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-iam.adapter.js +108 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-instances.adapter.d.ts +66 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-instances.adapter.js +289 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-provider.module.d.ts +17 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-provider.module.js +122 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-provider.service.d.ts +100 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-provider.service.js +1395 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-volume-operations.service.d.ts +24 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-volume-operations.service.js +199 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-vpc.adapter.d.ts +30 -0
- package/lib/src/modules/providers/implementations/scaleway/scaleway-vpc.adapter.js +180 -0
- package/lib/src/modules/providers/index.d.ts +17 -0
- package/lib/src/modules/providers/index.js +39 -0
- package/lib/src/modules/providers/interfaces/certificate-provider.interface.d.ts +38 -0
- package/lib/src/modules/providers/interfaces/certificate-provider.interface.js +11 -0
- package/lib/src/modules/providers/interfaces/cloud-provider.interface.d.ts +215 -0
- package/lib/src/modules/providers/interfaces/cloud-provider.interface.js +2 -0
- package/lib/src/modules/providers/interfaces/credential-provider.interface.d.ts +23 -0
- package/lib/src/modules/providers/interfaces/credential-provider.interface.js +2 -0
- package/lib/src/modules/providers/interfaces/dns-provider.interface.d.ts +55 -0
- package/lib/src/modules/providers/interfaces/dns-provider.interface.js +12 -0
- package/lib/src/modules/providers/interfaces/firewall-provider.interface.d.ts +47 -0
- package/lib/src/modules/providers/interfaces/firewall-provider.interface.js +2 -0
- package/lib/src/modules/providers/interfaces/network-provider.interface.d.ts +124 -0
- package/lib/src/modules/providers/interfaces/network-provider.interface.js +2 -0
- package/lib/src/modules/providers/interfaces/provider-capabilities.interface.d.ts +87 -0
- package/lib/src/modules/providers/interfaces/provider-capabilities.interface.js +2 -0
- package/lib/src/modules/providers/interfaces/vm-backup-provider.interface.d.ts +39 -0
- package/lib/src/modules/providers/interfaces/vm-backup-provider.interface.js +8 -0
- package/lib/src/modules/providers/interfaces/volume-export.interface.d.ts +162 -0
- package/lib/src/modules/providers/interfaces/volume-export.interface.js +21 -0
- package/lib/src/modules/providers/interfaces/volume-operations.interface.d.ts +149 -0
- package/lib/src/modules/providers/interfaces/volume-operations.interface.js +17 -0
- package/lib/src/modules/providers/mappers/node-size.mapper.d.ts +20 -0
- package/lib/src/modules/providers/mappers/node-size.mapper.js +75 -0
- package/lib/src/modules/providers/mappers/pricing.mapper.d.ts +14 -0
- package/lib/src/modules/providers/mappers/pricing.mapper.js +60 -0
- package/lib/src/modules/providers/provider-core.module.d.ts +13 -0
- package/lib/src/modules/providers/provider-core.module.js +59 -0
- package/lib/src/modules/providers/providers.module.d.ts +2 -0
- package/lib/src/modules/providers/providers.module.js +188 -0
- package/lib/src/modules/providers/services/acme-certificate.service.d.ts +38 -0
- package/lib/src/modules/providers/services/acme-certificate.service.js +144 -0
- package/lib/src/modules/providers/services/contabo-firewall.service.d.ts +11 -0
- package/lib/src/modules/providers/services/contabo-firewall.service.js +40 -0
- package/lib/src/modules/providers/services/contabo-provider.service.d.ts +48 -0
- package/lib/src/modules/providers/services/contabo-provider.service.js +194 -0
- package/lib/src/modules/providers/services/credential-provider.service.d.ts +17 -0
- package/lib/src/modules/providers/services/credential-provider.service.js +78 -0
- package/lib/src/modules/providers/services/dns-provider.factory.d.ts +5 -0
- package/lib/src/modules/providers/services/dns-provider.factory.js +9 -0
- package/lib/src/modules/providers/services/firewall-provider.factory.d.ts +5 -0
- package/lib/src/modules/providers/services/firewall-provider.factory.js +9 -0
- package/lib/src/modules/providers/services/hetzner-dns.service.d.ts +71 -0
- package/lib/src/modules/providers/services/hetzner-dns.service.js +565 -0
- package/lib/src/modules/providers/services/hetzner-firewall.service.d.ts +48 -0
- package/lib/src/modules/providers/services/hetzner-firewall.service.js +472 -0
- package/lib/src/modules/providers/services/hetzner-network.service.d.ts +84 -0
- package/lib/src/modules/providers/services/hetzner-network.service.js +408 -0
- package/lib/src/modules/providers/services/hetzner-provider.service.d.ts +213 -0
- package/lib/src/modules/providers/services/hetzner-provider.service.js +1159 -0
- package/lib/src/modules/providers/services/provider.factory.d.ts +5 -0
- package/lib/src/modules/providers/services/provider.factory.js +9 -0
- package/lib/src/modules/providers/services/volume-export.service.d.ts +50 -0
- package/lib/src/modules/providers/services/volume-export.service.js +650 -0
- package/lib/src/modules/shared/encryption/encryption.module.d.ts +2 -0
- package/lib/src/modules/shared/encryption/encryption.module.js +22 -0
- package/lib/src/modules/shared/encryption/services/encryption.service.d.ts +47 -0
- package/lib/src/modules/shared/encryption/services/encryption.service.js +199 -0
- package/lib/src/modules/storage/enums/storage-backend-provider.enum.d.ts +19 -0
- package/lib/src/modules/storage/enums/storage-backend-provider.enum.js +23 -0
- package/lib/src/modules/storage/factories/object-storage-provisioner.factory.d.ts +11 -0
- package/lib/src/modules/storage/factories/object-storage-provisioner.factory.js +48 -0
- package/lib/src/modules/storage/factories/storage-backend.factory.d.ts +12 -0
- package/lib/src/modules/storage/factories/storage-backend.factory.js +51 -0
- package/lib/src/modules/storage/implementations/generic-s3.backend.d.ts +23 -0
- package/lib/src/modules/storage/implementations/generic-s3.backend.js +172 -0
- package/lib/src/modules/storage/interfaces/backup-storage-backend.interface.d.ts +48 -0
- package/lib/src/modules/storage/interfaces/backup-storage-backend.interface.js +2 -0
- package/lib/src/modules/storage/interfaces/object-storage-provisioner.interface.d.ts +55 -0
- package/lib/src/modules/storage/interfaces/object-storage-provisioner.interface.js +9 -0
- package/lib/src/modules/storage/storage.module.d.ts +2 -0
- package/lib/src/modules/storage/storage.module.js +21 -0
- package/lib/src/modules/storage/tokens/object-storage-provisioner-registry.token.d.ts +12 -0
- package/lib/src/modules/storage/tokens/object-storage-provisioner-registry.token.js +8 -0
- package/lib/src/modules/storage/tokens/storage-backend-registry.token.d.ts +12 -0
- package/lib/src/modules/storage/tokens/storage-backend-registry.token.js +8 -0
- package/lib/src/modules/terminal/services/native-ssh-connection.service.d.ts +48 -0
- package/lib/src/modules/terminal/services/native-ssh-connection.service.js +282 -0
- package/oclif.manifest.json +5243 -0
- package/package.json +125 -0
package/README.md
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# @flui-cloud/cli
|
|
2
|
+
|
|
3
|
+
Command-line interface for [Flui](https://flui.cloud) — the open
|
|
4
|
+
platform layer on top of your cloud provider. Create clusters, deploy
|
|
5
|
+
applications from a `flui.yaml` manifest, switch between installations,
|
|
6
|
+
and operate the lifecycle end to end from one binary.
|
|
7
|
+
|
|
8
|
+
Full reference: **[docs.flui.cloud/cli](https://docs.flui.cloud/cli/)**.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm install -g @flui-cloud/cli # or: pnpm add -g, yarn global add
|
|
14
|
+
flui --version
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
To upgrade later, run `flui update` — it self-replaces the global
|
|
18
|
+
install with the latest published version.
|
|
19
|
+
|
|
20
|
+
## Quickstart
|
|
21
|
+
|
|
22
|
+
Flui is a modern, multi-cloud platform layer that turns plain cloud
|
|
23
|
+
servers into a full application platform — you keep ownership of the
|
|
24
|
+
infrastructure, no vendor lock-in. Create your installation in one
|
|
25
|
+
interactive command — it asks for an admin email and a credential for
|
|
26
|
+
one of the supported cloud providers (Hetzner and Scaleway today;
|
|
27
|
+
more providers and bring-your-own-server installs on the roadmap),
|
|
28
|
+
then in a few minutes returns an environment ready to host
|
|
29
|
+
applications: cluster, ingress, TLS, identity, observability,
|
|
30
|
+
dashboard — already wired in.
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
flui env create
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The command streams the install logs until the platform is reachable,
|
|
37
|
+
then prints the dashboard, API and OIDC URLs. The full walkthrough
|
|
38
|
+
lives at [Getting started](https://docs.flui.cloud/cli/getting-started/).
|
|
39
|
+
|
|
40
|
+
## What you can do next
|
|
41
|
+
|
|
42
|
+
Once the cluster is up, plenty works without any extra integration —
|
|
43
|
+
day-to-day operating the installation, inspecting resources, and
|
|
44
|
+
deploying pre-built apps:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
flui auth login # OIDC against the freshly created installation
|
|
48
|
+
|
|
49
|
+
flui env status # control-cluster health, nodes, capacity
|
|
50
|
+
flui env credentials --test # print + probe the dashboard / API / OIDC / Grafana URLs
|
|
51
|
+
|
|
52
|
+
flui app list # all apps on the installation
|
|
53
|
+
flui app status <name> # rollout state, replicas, image
|
|
54
|
+
flui app logs <name> --tail 200 # recent logs
|
|
55
|
+
flui app metrics <name> # CPU / memory / network
|
|
56
|
+
|
|
57
|
+
flui deploy # deploy a flui.yaml from the current directory
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
For source-built apps (`kind: Application`, built from a GitHub repo)
|
|
61
|
+
you also need to install the Flui GitHub App and save a GHCR PAT first
|
|
62
|
+
— see [Integrations](https://docs.flui.cloud/cli/integrations/).
|
|
63
|
+
Pre-built CatalogApps (`kind: CatalogApp`) skip all of that and deploy
|
|
64
|
+
straight from `flui deploy` against any public image registry. The
|
|
65
|
+
manifest reference is on [Deploy](https://docs.flui.cloud/cli/deploy/).
|
|
66
|
+
|
|
67
|
+
## Topics
|
|
68
|
+
|
|
69
|
+
Commands are grouped into topics; each verb has its own `--help`.
|
|
70
|
+
|
|
71
|
+
| Topic | What it does |
|
|
72
|
+
| --- | --- |
|
|
73
|
+
| `env` | Lifecycle of the **control cluster** — create, inspect, scale, destroy. |
|
|
74
|
+
| `cluster` / `node` | Workload-cluster destroy and worker-node add/remove/list. |
|
|
75
|
+
| `app` | Inspect, scale, restart, snapshot, redeploy, and delete applications; read logs, metrics, and crash reports. |
|
|
76
|
+
| `deploy` / `catalog` | Deploy from a `flui.yaml` manifest; validate the manifest offline. |
|
|
77
|
+
| `integration` / `repo` | Connect the Flui GitHub App, save a GHCR PAT, and import repositories — prerequisites for the first source-built deploy. |
|
|
78
|
+
| `template` | Create a new repository from a Flui framework template. |
|
|
79
|
+
| `backup` | Manage backup destinations, policies, jobs, and restores. |
|
|
80
|
+
| `auth` | OIDC login and long-lived M2M API keys. |
|
|
81
|
+
| `context` / `config` | Profiles (isolated installations) and layered configuration. |
|
|
82
|
+
| `server-types` / `ssh` | List provider server sizes; SSH into a node. |
|
|
83
|
+
| `dev` | Helpers for Flui contributors (export secrets, SSH tunnel). |
|
|
84
|
+
| `dns` / `reconcile` / `update` | Maintenance utilities. |
|
|
85
|
+
|
|
86
|
+
Per-topic reference pages: see [docs.flui.cloud/cli](https://docs.flui.cloud/cli/).
|
|
87
|
+
|
|
88
|
+
## Common conventions
|
|
89
|
+
|
|
90
|
+
A handful of flags recur across the CLI:
|
|
91
|
+
|
|
92
|
+
- `-c, --cluster <name|id>` — target cluster explicitly. Auto-detected
|
|
93
|
+
when only one is present.
|
|
94
|
+
- `-o, --output <format>` — `json` is always available for scripting;
|
|
95
|
+
the human format is `text` or `table` depending on the command.
|
|
96
|
+
- `--no-wait` / `--detach` — return as soon as the job is queued.
|
|
97
|
+
- `-f, --force` / `-y, --yes` — skip confirmation on destructive
|
|
98
|
+
operations.
|
|
99
|
+
- `--dry-run` — print what *would* happen on a subset of mutating
|
|
100
|
+
commands.
|
|
101
|
+
|
|
102
|
+
Commands that talk to the API print a short context banner before
|
|
103
|
+
running (active profile + API URL).
|
|
104
|
+
|
|
105
|
+
## Profiles on disk
|
|
106
|
+
|
|
107
|
+
The CLI keeps each installation's state under
|
|
108
|
+
`~/.flui/profiles/<name>/`. A profile holds the API token, the
|
|
109
|
+
encrypted credentials needed to talk to the provider, the SSH CA used
|
|
110
|
+
for cluster nodes, and the local inventory the profile knows about.
|
|
111
|
+
The path can be moved with the `FLUI_DIR` environment variable.
|
|
112
|
+
|
|
113
|
+
Switching between installations: `flui context use <name>`.
|
|
114
|
+
|
|
115
|
+
## Links
|
|
116
|
+
|
|
117
|
+
- **Documentation:** [docs.flui.cloud](https://docs.flui.cloud)
|
|
118
|
+
- **Project site:** [flui.cloud](https://flui.cloud)
|
|
119
|
+
- **Source / issues:** [github.com/flui-cloud/core](https://github.com/flui-cloud/core)
|
|
120
|
+
- **Manifest spec:** [`@flui-cloud/spec`](https://www.npmjs.com/package/@flui-cloud/spec) ([repo](https://github.com/flui-cloud/flui-spec))
|
|
121
|
+
|
|
122
|
+
## License
|
|
123
|
+
|
|
124
|
+
AGPL-3.0-or-later. See [`LICENSE`](./LICENSE).
|
package/bin/run
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// Load environment variables FIRST, before any modules
|
|
4
|
+
const dotenv = require('dotenv');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const os = require('os');
|
|
7
|
+
|
|
8
|
+
// Load .env from CLI data directory and project root
|
|
9
|
+
dotenv.config({ path: path.join(os.homedir(), '.flui', '.env') });
|
|
10
|
+
dotenv.config({ path: path.join(process.cwd(), '.env') });
|
|
11
|
+
|
|
12
|
+
// Initialize module-alias to resolve 'src/*' paths at runtime.
|
|
13
|
+
// Point it at the CLI package root so `flui` works from any CWD
|
|
14
|
+
// (when invoked via `pnpm link --global`, CWD is wherever the user is).
|
|
15
|
+
require('module-alias')(path.join(__dirname, '..'));
|
|
16
|
+
|
|
17
|
+
require('@oclif/core').run().then(require('@oclif/core').flush).catch(require('@oclif/core').Errors.handle)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Background Worker for Cluster Operations
|
|
4
|
+
*
|
|
5
|
+
* This script runs as a detached background process to execute
|
|
6
|
+
* long-running cluster operations asynchronously.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* node cluster-worker.js create-cluster '{"clusterId":"...","operationId":"..."}'
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Background Worker for Cluster Operations
|
|
5
|
+
*
|
|
6
|
+
* This script runs as a detached background process to execute
|
|
7
|
+
* long-running cluster operations asynchronously.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* node cluster-worker.js create-cluster '{"clusterId":"...","operationId":"..."}'
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
const core_1 = require("@nestjs/core");
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const cli_module_1 = require("../cli.module");
|
|
16
|
+
const cli_cluster_creator_service_1 = require("../services/cli-cluster-creator.service");
|
|
17
|
+
const cli_cluster_repository_1 = require("../lib/repositories/cli-cluster.repository");
|
|
18
|
+
const cli_operation_repository_1 = require("../lib/repositories/cli-operation.repository");
|
|
19
|
+
const cli_logger_service_1 = require("../services/cli-logger.service");
|
|
20
|
+
const logger = new common_1.Logger('ClusterWorker');
|
|
21
|
+
async function main() {
|
|
22
|
+
const args = process.argv.slice(2);
|
|
23
|
+
if (args.length < 2) {
|
|
24
|
+
console.error('Usage: cluster-worker <jobType> <jobDataJson>');
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
const jobType = args[0];
|
|
28
|
+
const jobDataJson = args[1];
|
|
29
|
+
logger.log(`Starting background worker: ${jobType}`);
|
|
30
|
+
// Bootstrap NestJS application context
|
|
31
|
+
const app = await core_1.NestFactory.createApplicationContext(cli_module_1.CliModule, {
|
|
32
|
+
logger: ['error', 'warn', 'log'],
|
|
33
|
+
});
|
|
34
|
+
try {
|
|
35
|
+
const jobData = JSON.parse(jobDataJson);
|
|
36
|
+
if (jobType === 'create-cluster') {
|
|
37
|
+
await handleCreateCluster(app, jobData);
|
|
38
|
+
}
|
|
39
|
+
else if (jobType === 'delete-cluster') {
|
|
40
|
+
await handleDeleteCluster(app, jobData);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
throw new Error(`Unknown job type: ${jobType}`);
|
|
44
|
+
}
|
|
45
|
+
logger.log(`Background worker completed successfully: ${jobType}`);
|
|
46
|
+
process.exit(0);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
logger.error(`Background worker failed: ${error.message}`, error.stack);
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
await app.close();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async function handleCreateCluster(app, jobData) {
|
|
57
|
+
const { clusterId, operationId } = jobData;
|
|
58
|
+
logger.log(`Creating cluster ${clusterId} (operation ${operationId})`);
|
|
59
|
+
const clusterRepo = app.get(cli_cluster_repository_1.CliClusterRepository);
|
|
60
|
+
const operationRepo = app.get(cli_operation_repository_1.CliOperationRepository);
|
|
61
|
+
const creatorService = app.get(cli_cluster_creator_service_1.CliClusterCreatorService);
|
|
62
|
+
const loggerService = app.get(cli_logger_service_1.CliLoggerService);
|
|
63
|
+
// Load cluster and operation from file storage
|
|
64
|
+
const cluster = await clusterRepo.findOne({ where: { id: clusterId } });
|
|
65
|
+
const operation = await operationRepo.findOne({ where: { id: operationId } });
|
|
66
|
+
if (!cluster) {
|
|
67
|
+
throw new Error(`Cluster ${clusterId} not found`);
|
|
68
|
+
}
|
|
69
|
+
if (!operation) {
|
|
70
|
+
throw new Error(`Operation ${operationId} not found`);
|
|
71
|
+
}
|
|
72
|
+
loggerService.writeLog(operationId, `Background worker started for cluster ${cluster.name}`, 'INFO');
|
|
73
|
+
try {
|
|
74
|
+
// Execute cluster creation synchronously (within this background process)
|
|
75
|
+
await creatorService.createClusterSync(cluster, operation);
|
|
76
|
+
loggerService.writeLog(operationId, `Cluster ${cluster.name} created successfully`, 'INFO');
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
loggerService.writeLog(operationId, `Cluster creation failed: ${error.message}`, 'ERROR');
|
|
80
|
+
throw error;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async function handleDeleteCluster(app, jobData) {
|
|
84
|
+
const { clusterId } = jobData;
|
|
85
|
+
logger.log(`Deleting cluster ${clusterId}`);
|
|
86
|
+
// TODO: Implement background cluster deletion if needed
|
|
87
|
+
throw new Error('Background cluster deletion not yet implemented');
|
|
88
|
+
}
|
|
89
|
+
// Run main function
|
|
90
|
+
main();
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.CliProvidersModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const cli_credential_provider_service_1 = require("./lib/cli-credential-provider.service");
|
|
12
|
+
const ip_detection_1 = require("./lib/utils/ip-detection");
|
|
13
|
+
const cli_firewall_repository_1 = require("./lib/repositories/cli-firewall.repository");
|
|
14
|
+
const cli_vnet_repository_1 = require("./lib/repositories/cli-vnet.repository");
|
|
15
|
+
const vnet_provisioning_service_1 = require("./lib/services/vnet-provisioning.service");
|
|
16
|
+
const api_client_1 = require("./lib/api-client");
|
|
17
|
+
const config_storage_1 = require("./lib/config-storage");
|
|
18
|
+
const provider_core_module_1 = require("../../src/modules/providers/provider-core.module");
|
|
19
|
+
const common_module_1 = require("../../src/modules/common/common.module");
|
|
20
|
+
const hetzner_provider_module_1 = require("../../src/modules/providers/implementations/hetzner/hetzner-provider.module");
|
|
21
|
+
const scaleway_provider_module_1 = require("../../src/modules/providers/implementations/scaleway/scaleway-provider.module");
|
|
22
|
+
const provider_factory_1 = require("../../src/modules/providers/core/factories/provider.factory");
|
|
23
|
+
const firewall_provider_factory_1 = require("../../src/modules/providers/core/factories/firewall-provider.factory");
|
|
24
|
+
const dns_provider_factory_1 = require("../../src/modules/providers/core/factories/dns-provider.factory");
|
|
25
|
+
const cloud_provider_enum_1 = require("../../src/modules/providers/enums/cloud-provider.enum");
|
|
26
|
+
const dns_provider_enum_1 = require("../../src/modules/providers/enums/dns-provider.enum");
|
|
27
|
+
const hetzner_provider_service_1 = require("../../src/modules/providers/services/hetzner-provider.service");
|
|
28
|
+
const hetzner_firewall_service_1 = require("../../src/modules/providers/services/hetzner-firewall.service");
|
|
29
|
+
const hetzner_dns_service_1 = require("../../src/modules/providers/services/hetzner-dns.service");
|
|
30
|
+
const scaleway_provider_service_1 = require("../../src/modules/providers/implementations/scaleway/scaleway-provider.service");
|
|
31
|
+
const scaleway_firewall_service_1 = require("../../src/modules/providers/implementations/scaleway/scaleway-firewall.service");
|
|
32
|
+
const scaleway_dns_service_1 = require("../../src/modules/providers/implementations/scaleway/scaleway-dns.service");
|
|
33
|
+
const hetzner_bootstrap_seeder_service_1 = require("../../src/modules/providers/implementations/hetzner/hetzner-bootstrap-seeder.service");
|
|
34
|
+
const scaleway_bootstrap_seeder_service_1 = require("../../src/modules/providers/implementations/scaleway/scaleway-bootstrap-seeder.service");
|
|
35
|
+
const tokens_1 = require("../../src/modules/providers/core/tokens");
|
|
36
|
+
let CliProvidersModule = class CliProvidersModule {
|
|
37
|
+
};
|
|
38
|
+
exports.CliProvidersModule = CliProvidersModule;
|
|
39
|
+
exports.CliProvidersModule = CliProvidersModule = __decorate([
|
|
40
|
+
(0, common_1.Global)(),
|
|
41
|
+
(0, common_1.Module)({
|
|
42
|
+
imports: [
|
|
43
|
+
provider_core_module_1.ProviderCoreModule,
|
|
44
|
+
common_module_1.CommonModule,
|
|
45
|
+
hetzner_provider_module_1.HetznerProviderModule,
|
|
46
|
+
scaleway_provider_module_1.ScalewayProviderModule,
|
|
47
|
+
],
|
|
48
|
+
providers: [
|
|
49
|
+
cli_credential_provider_service_1.CliCredentialProviderService,
|
|
50
|
+
{
|
|
51
|
+
provide: 'ICredentialProvider',
|
|
52
|
+
useExisting: cli_credential_provider_service_1.CliCredentialProviderService,
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
provide: provider_factory_1.ProviderFactory,
|
|
56
|
+
useFactory: (hetzner, scaleway) => new provider_factory_1.ProviderFactory([
|
|
57
|
+
{ provider: cloud_provider_enum_1.CloudProvider.HETZNER, service: hetzner },
|
|
58
|
+
{ provider: cloud_provider_enum_1.CloudProvider.SCALEWAY, service: scaleway },
|
|
59
|
+
]),
|
|
60
|
+
inject: [hetzner_provider_service_1.HetznerProviderService, scaleway_provider_service_1.ScalewayProviderService],
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
provide: firewall_provider_factory_1.FirewallProviderFactory,
|
|
64
|
+
useFactory: (hetzner, scaleway) => new firewall_provider_factory_1.FirewallProviderFactory([
|
|
65
|
+
{ provider: cloud_provider_enum_1.CloudProvider.HETZNER, service: hetzner },
|
|
66
|
+
{ provider: cloud_provider_enum_1.CloudProvider.SCALEWAY, service: scaleway },
|
|
67
|
+
]),
|
|
68
|
+
inject: [hetzner_firewall_service_1.HetznerFirewallService, scaleway_firewall_service_1.ScalewayFirewallService],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
provide: dns_provider_factory_1.DnsProviderFactory,
|
|
72
|
+
useFactory: (hetzner, scaleway) => new dns_provider_factory_1.DnsProviderFactory([
|
|
73
|
+
{ provider: dns_provider_enum_1.DnsProvider.HETZNER, service: hetzner },
|
|
74
|
+
{ provider: dns_provider_enum_1.DnsProvider.SCALEWAY, service: scaleway },
|
|
75
|
+
]),
|
|
76
|
+
inject: [hetzner_dns_service_1.HetznerDnsService, scaleway_dns_service_1.ScalewayDnsService],
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
provide: tokens_1.PROVIDER_BOOTSTRAP_SEEDER_REGISTRY,
|
|
80
|
+
useFactory: (hetzner, scaleway) => [
|
|
81
|
+
{ provider: cloud_provider_enum_1.CloudProvider.HETZNER, service: hetzner },
|
|
82
|
+
{ provider: cloud_provider_enum_1.CloudProvider.SCALEWAY, service: scaleway },
|
|
83
|
+
],
|
|
84
|
+
inject: [hetzner_bootstrap_seeder_service_1.HetznerBootstrapSeeder, scaleway_bootstrap_seeder_service_1.ScalewayBootstrapSeeder],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
provide: api_client_1.ApiClient,
|
|
88
|
+
useFactory: () => {
|
|
89
|
+
const configStorage = new config_storage_1.ConfigStorage();
|
|
90
|
+
return new api_client_1.ApiClient({
|
|
91
|
+
baseUrl: configStorage.getApiUrl() ?? '',
|
|
92
|
+
apiKey: configStorage.getApiKey(),
|
|
93
|
+
});
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
ip_detection_1.IpDetectionService,
|
|
97
|
+
cli_firewall_repository_1.CliFirewallRepository,
|
|
98
|
+
cli_vnet_repository_1.CliVnetRepository,
|
|
99
|
+
vnet_provisioning_service_1.VnetProvisioningService,
|
|
100
|
+
],
|
|
101
|
+
exports: [
|
|
102
|
+
provider_core_module_1.ProviderCoreModule,
|
|
103
|
+
cli_credential_provider_service_1.CliCredentialProviderService,
|
|
104
|
+
'ICredentialProvider',
|
|
105
|
+
hetzner_provider_module_1.HetznerProviderModule,
|
|
106
|
+
scaleway_provider_module_1.ScalewayProviderModule,
|
|
107
|
+
provider_factory_1.ProviderFactory,
|
|
108
|
+
firewall_provider_factory_1.FirewallProviderFactory,
|
|
109
|
+
dns_provider_factory_1.DnsProviderFactory,
|
|
110
|
+
tokens_1.PROVIDER_BOOTSTRAP_SEEDER_REGISTRY,
|
|
111
|
+
api_client_1.ApiClient,
|
|
112
|
+
ip_detection_1.IpDetectionService,
|
|
113
|
+
cli_firewall_repository_1.CliFirewallRepository,
|
|
114
|
+
cli_vnet_repository_1.CliVnetRepository,
|
|
115
|
+
vnet_provisioning_service_1.VnetProvisioningService,
|
|
116
|
+
],
|
|
117
|
+
})
|
|
118
|
+
], CliProvidersModule);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Module - Standalone Infrastructure Management
|
|
3
|
+
*
|
|
4
|
+
* This module provides CLI commands without requiring external services:
|
|
5
|
+
* - NO PostgreSQL database required
|
|
6
|
+
* - NO Redis queue required
|
|
7
|
+
* - File-based persistence in ~/.flui/
|
|
8
|
+
* - Uses CliInfrastructureModule for cluster management
|
|
9
|
+
* - config:* commands use file-based storage in ~/.flui/config.json
|
|
10
|
+
* - env:* commands use file-based cluster/operation tracking
|
|
11
|
+
*/
|
|
12
|
+
export declare class CliModule {
|
|
13
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.CliModule = void 0;
|
|
43
|
+
const common_1 = require("@nestjs/common");
|
|
44
|
+
const config_1 = require("@nestjs/config");
|
|
45
|
+
const cli_providers_module_1 = require("./cli-providers.module");
|
|
46
|
+
const common_module_1 = require("../../src/modules/common/common.module");
|
|
47
|
+
const cli_infrastructure_module_1 = require("./modules/cli-infrastructure.module");
|
|
48
|
+
const path = __importStar(require("node:path"));
|
|
49
|
+
const os = __importStar(require("node:os"));
|
|
50
|
+
const CLI_DATA_DIR = path.join(os.homedir(), '.flui');
|
|
51
|
+
/**
|
|
52
|
+
* CLI Module - Standalone Infrastructure Management
|
|
53
|
+
*
|
|
54
|
+
* This module provides CLI commands without requiring external services:
|
|
55
|
+
* - NO PostgreSQL database required
|
|
56
|
+
* - NO Redis queue required
|
|
57
|
+
* - File-based persistence in ~/.flui/
|
|
58
|
+
* - Uses CliInfrastructureModule for cluster management
|
|
59
|
+
* - config:* commands use file-based storage in ~/.flui/config.json
|
|
60
|
+
* - env:* commands use file-based cluster/operation tracking
|
|
61
|
+
*/
|
|
62
|
+
let CliModule = class CliModule {
|
|
63
|
+
};
|
|
64
|
+
exports.CliModule = CliModule;
|
|
65
|
+
exports.CliModule = CliModule = __decorate([
|
|
66
|
+
(0, common_1.Module)({
|
|
67
|
+
imports: [
|
|
68
|
+
config_1.ConfigModule.forRoot({
|
|
69
|
+
isGlobal: true,
|
|
70
|
+
envFilePath: [
|
|
71
|
+
path.join(CLI_DATA_DIR, '.env'),
|
|
72
|
+
path.join(process.cwd(), '.env'),
|
|
73
|
+
],
|
|
74
|
+
}),
|
|
75
|
+
cli_providers_module_1.CliProvidersModule,
|
|
76
|
+
common_module_1.CommonModule,
|
|
77
|
+
cli_infrastructure_module_1.CliInfrastructureModule,
|
|
78
|
+
],
|
|
79
|
+
})
|
|
80
|
+
], CliModule);
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const core_1 = require("@oclif/core");
|
|
37
|
+
const nest_app_1 = require("../lib/nest-app");
|
|
38
|
+
const cli_ssh_service_1 = require("../services/cli-ssh.service");
|
|
39
|
+
const cli_observability_cluster_service_1 = require("../services/cli-observability-cluster.service");
|
|
40
|
+
class DiagOidc extends core_1.Command {
|
|
41
|
+
async run() {
|
|
42
|
+
const app = await (0, nest_app_1.getNestApp)();
|
|
43
|
+
try {
|
|
44
|
+
const ssh = app.get(cli_ssh_service_1.CliSshService);
|
|
45
|
+
const obs = app.get(cli_observability_cluster_service_1.CliObservabilityClusterService);
|
|
46
|
+
const cluster = await obs.getObservabilityCluster();
|
|
47
|
+
if (!cluster?.masterIpAddress) {
|
|
48
|
+
this.error('No cluster / master IP');
|
|
49
|
+
}
|
|
50
|
+
const ip = cluster.masterIpAddress;
|
|
51
|
+
this.log('# Master IP: ' + ip);
|
|
52
|
+
this.log('# nipHostnameToken: ' + JSON.stringify(cluster.nipHostnameToken));
|
|
53
|
+
const opRepo = app.get((await Promise.resolve().then(() => __importStar(require('../lib/repositories/cli-operation.repository')))).CliOperationRepository);
|
|
54
|
+
const ops = await opRepo.find({ where: { resourceId: cluster.id } });
|
|
55
|
+
this.log('# Operations on cluster:');
|
|
56
|
+
for (const op of ops) {
|
|
57
|
+
this.log(` ${op.id} type=${op.operationType} status=${op.status} step=${op.currentStepIndex}/${op.totalSteps} createdAt=${op.createdAt}`);
|
|
58
|
+
if (op.status === 'FAILED' || op.status === 'IN_PROGRESS' || op.status === 'PENDING') {
|
|
59
|
+
this.log(' metadata=' + JSON.stringify(op.metadata).slice(0, 600));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
this.log('# Local cluster status: ' + cluster.status);
|
|
63
|
+
const cmds = [
|
|
64
|
+
['ACME solver ingresses (k8s Ingress)', "kubectl -n flui-system get ingress 2>&1; echo ---; kubectl -n flui-system get ingress -o yaml 2>&1 | grep -E 'host:|path:|name:|number:|className' | head -40"],
|
|
65
|
+
['Traefik routers on :web', "TPOD=$(kubectl -n kube-system get pod -l app.kubernetes.io/name=traefik -o jsonpath='{.items[0].metadata.name}'); kubectl -n kube-system exec $TPOD -- wget -qO- http://localhost:9000/api/http/routers 2>/dev/null | head -c 4000; echo"],
|
|
66
|
+
['Traefik routers via host curl', "TIP=$(kubectl -n kube-system get pod -l app.kubernetes.io/name=traefik -o jsonpath='{.items[0].status.podIP}'); echo TIP=$TIP; curl -s --connect-timeout 5 http://$TIP:9000/api/http/routers > /tmp/routers.json 2>&1; head -c 200 /tmp/routers.json; echo; echo ---PARSE---; python3 -c 'import json; rs=json.load(open(\"/tmp/routers.json\")); [print(r.get(\"name\",\"?\"),\"|rule=\",r.get(\"rule\",\"\")[:80],\"|eps=\",r.get(\"entryPoints\",[]),\"|stat=\",r.get(\"status\",\"\"),\"|tls=\",bool(r.get(\"tls\")),\"|err=\",str(r.get(\"error\",\"\"))[:120]) for r in rs]' 2>&1 | head -40"],
|
|
67
|
+
['IngressClass + Traefik k8s ingress provider', "kubectl get ingressclass -o wide 2>&1; echo ---traefik-args; kubectl -n kube-system get pod -l app.kubernetes.io/name=traefik -o jsonpath='{.items[0].spec.containers[0].args}' 2>&1 | tr ',' '\\n' | grep -iE 'kubernetesingress|kubernetescrd|providers' | head -20"],
|
|
68
|
+
['Sleep 8 then retest :80 (Traefik reload)', "sleep 8; for h in app api auth; do echo --- $h; curl -sk --connect-timeout 5 -o /dev/null -w 'HTTP %{http_code}\\n' --resolve $h.royal-gecko-72.162.55.56.10.nip.io:80:162.55.56.10 http://$h.royal-gecko-72.162.55.56.10.nip.io/ ; done"],
|
|
69
|
+
['PATCH: drop tls + add web entrypoint to zitadel', "for ir in flui-api flui-web zitadel; do kubectl -n flui-system patch ingressroute $ir --type=json -p '[{\"op\":\"remove\",\"path\":\"/spec/tls\"}]' 2>&1 | head -1; done; kubectl -n flui-system patch ingressroute zitadel --type=json -p '[{\"op\":\"replace\",\"path\":\"/spec/entryPoints\",\"value\":[\"web\",\"websecure\"]}]'; sleep 5; echo ---test---; for h in app api auth; do curl -sk --connect-timeout 5 -o /dev/null -w \"$h=HTTP %{http_code}\\n\" --resolve $h.royal-gecko-72.162.55.56.10.nip.io:80:162.55.56.10 http://$h.royal-gecko-72.162.55.56.10.nip.io/; done"],
|
|
70
|
+
['Test ACME path before retry', "TOKEN=$(kubectl -n flui-system get challenge -o jsonpath='{.items[0].spec.token}'); HOST=$(kubectl -n flui-system get challenge -o jsonpath='{.items[0].spec.dnsName}'); echo TOKEN=${TOKEN:0:20}... HOST=$HOST; curl -sk --connect-timeout 5 -o /tmp/c -w 'HTTP %{http_code}\\n' --resolve $HOST:80:162.55.56.10 http://$HOST/.well-known/acme-challenge/$TOKEN; echo body_first50=$(head -c 50 /tmp/c)"],
|
|
71
|
+
['Force cert-manager retry (delete Order)', "kubectl -n flui-system delete order --all 2>&1; kubectl -n flui-system delete certificaterequest --all 2>&1; sleep 6; kubectl -n flui-system get challenge,order,certificaterequest 2>&1 | head"],
|
|
72
|
+
['PATCH: cert-manager hostAliases -> Traefik ClusterIP', "TIP=$(kubectl -n kube-system get svc traefik -o jsonpath='{.spec.clusterIP}'); echo TIP=$TIP; kubectl -n cert-manager patch deploy cert-manager --type=json -p '[{\"op\":\"add\",\"path\":\"/spec/template/spec/hostAliases\",\"value\":[{\"ip\":\"'$TIP'\",\"hostnames\":[\"app.royal-gecko-72.162.55.56.10.nip.io\",\"api.royal-gecko-72.162.55.56.10.nip.io\",\"auth.royal-gecko-72.162.55.56.10.nip.io\"]}]}]' 2>&1; kubectl -n cert-manager rollout status deploy/cert-manager --timeout=60s 2>&1 | tail -3"],
|
|
73
|
+
['Order invalid reason + restart cycle', "kubectl -n flui-system get order -o yaml 2>&1 | grep -A2 -E 'state:|reason:|message:' | head -40; echo ---deleting all + restart cert-manager---; kubectl -n flui-system delete order,certificaterequest,challenge --all 2>&1; kubectl -n flui-system delete certificate flui-system-tls 2>&1"],
|
|
74
|
+
['Recreate Certificate', "cat <<'YAML' | kubectl apply -f -\napiVersion: cert-manager.io/v1\nkind: Certificate\nmetadata:\n name: flui-system-tls\n namespace: flui-system\n labels:\n app.kubernetes.io/managed-by: flui-cloud\nspec:\n secretName: flui-system-tls\n issuerRef:\n name: letsencrypt-production\n kind: ClusterIssuer\n dnsNames:\n - auth.royal-gecko-72.162.55.56.10.nip.io\n - api.royal-gecko-72.162.55.56.10.nip.io\n - app.royal-gecko-72.162.55.56.10.nip.io\nYAML\nsleep 10; kubectl -n flui-system get challenge,order 2>&1 | head"],
|
|
75
|
+
['Wait 25s then check', "sleep 25; kubectl -n flui-system get certificate,secret/flui-system-tls,challenge 2>&1"],
|
|
76
|
+
['Cert challenges + Certificate after fix', "kubectl -n flui-system get certificate flui-system-tls -o jsonpath='{.status.conditions[*].message}' 2>&1; echo; kubectl -n flui-system get challenge -o wide 2>&1 | head"],
|
|
77
|
+
['external curl :80 to ACME path', "for h in app api auth; do echo --- $h; curl -sk --connect-timeout 6 -o /dev/null -w 'HTTP %{http_code} loc=%{redirect_url}\\n' --resolve $h.royal-gecko-72.162.55.56.10.nip.io:80:162.55.56.10 http://$h.royal-gecko-72.162.55.56.10.nip.io/.well-known/acme-challenge/test 2>&1; done"],
|
|
78
|
+
['external curl :80 root', "for h in app api auth; do echo --- $h; curl -sk --connect-timeout 6 -o /dev/null -w 'HTTP %{http_code} loc=%{redirect_url}\\n' --resolve $h.royal-gecko-72.162.55.56.10.nip.io:80:162.55.56.10 http://$h.royal-gecko-72.162.55.56.10.nip.io/ 2>&1; done"],
|
|
79
|
+
['ACME solver ingresses', "kubectl -n flui-system get ingress 2>&1; echo ---; kubectl -n flui-system get ingress -o yaml 2>&1 | grep -E 'host:|path:|backend:|service:|name:|number:|class:' | head -50"],
|
|
80
|
+
['HTTP-01 self-check from cm pod', "CMP=$(kubectl -n cert-manager get pod -l app=cert-manager -o jsonpath='{.items[0].metadata.name}'); echo CMP=$CMP; for h in app api auth; do echo --- $h; kubectl -n cert-manager exec $CMP -- wget --spider --timeout=8 -S http://${h}.royal-gecko-72.162.55.56.10.nip.io/ 2>&1 | tail -10; done"],
|
|
81
|
+
['HTTP-01 self-check via local nginx-style', "CHALLENGE=$(kubectl -n flui-system get challenge -o jsonpath='{.items[0].spec.token}'); echo TOKEN=$CHALLENGE; CMP=$(kubectl -n cert-manager get pod -l app=cert-manager -o jsonpath='{.items[0].metadata.name}'); kubectl -n cert-manager exec $CMP -- wget -qO- --timeout=8 http://app.royal-gecko-72.162.55.56.10.nip.io/.well-known/acme-challenge/$CHALLENGE 2>&1 | head -5; echo ---; kubectl -n cert-manager exec $CMP -- wget -S --timeout=8 -O /dev/null http://162.55.56.10/.well-known/acme-challenge/$CHALLENGE 2>&1 | tail -8"],
|
|
82
|
+
['cert-manager Certificate', "kubectl -n flui-system get certificate -o wide 2>&1; echo ---; kubectl -n flui-system describe certificate 2>&1 | tail -50"],
|
|
83
|
+
['cert-manager Order/Challenge', "kubectl -n flui-system get order,challenge -o wide 2>&1; echo ---; kubectl -n flui-system describe challenge 2>&1 | tail -50"],
|
|
84
|
+
['cert-manager logs', "kubectl -n cert-manager logs -l app=cert-manager --tail=80 2>&1 | grep -iE 'error|fail|warn|royal-gecko' | tail -30"],
|
|
85
|
+
['ClusterIssuer', "kubectl get clusterissuer 2>&1"],
|
|
86
|
+
['placeholder',
|
|
87
|
+
'noop'],
|
|
88
|
+
['Traefik pod / svc', "kubectl -n kube-system get pods -l app.kubernetes.io/name=traefik -o wide 2>&1; echo; kubectl -n kube-system get svc traefik 2>&1"],
|
|
89
|
+
['Traefik logs (last 80, errors)', "kubectl -n kube-system logs -l app.kubernetes.io/name=traefik --tail=200 2>&1 | grep -iE 'error|fail|warn' | tail -40"],
|
|
90
|
+
['IngressRoutes flui-system', "kubectl -n flui-system get ingressroute -o wide 2>&1"],
|
|
91
|
+
['flui-system pods', "kubectl -n flui-system get pods 2>&1"],
|
|
92
|
+
['flui-system services', "kubectl -n flui-system get svc 2>&1"],
|
|
93
|
+
['flui-system-tls secret', "kubectl -n flui-system get secret flui-system-tls -o yaml 2>&1 | grep -E 'tls.crt|tls.key|name:' | head -10; echo ---; kubectl -n flui-system get secret flui-system-tls -o jsonpath='{.data.tls\\.crt}' 2>/dev/null | base64 -d | openssl x509 -noout -subject -issuer -dates 2>&1 | head"],
|
|
94
|
+
['IngressRoute for app/api/auth detail', "for n in 09-flui-api 10-flui-web 11-zitadel; do echo '=== '$n; kubectl -n flui-system get ingressroute -o yaml | grep -E 'host\\(|Host\\(|tls:|secretName' | head -20; done; kubectl -n flui-system get ingressroute -o yaml | grep -E 'match:|host:' | head -30"],
|
|
95
|
+
['curl from inside cluster (Traefik svc IP)', "TIP=$(kubectl -n kube-system get svc traefik -o jsonpath='{.spec.clusterIP}'); echo TIP=$TIP; for h in app.royal-gecko-72.162.55.56.10.nip.io api.royal-gecko-72.162.55.56.10.nip.io auth.royal-gecko-72.162.55.56.10.nip.io; do echo --- $h ---; curl -sk --connect-timeout 5 -o /dev/null -w 'HTTP %{http_code}\\n' -H \"Host: $h\" https://$TIP/; done"],
|
|
96
|
+
];
|
|
97
|
+
const _allCmds = [
|
|
98
|
+
['OIDC_AUDIENCE in flui-secrets', "kubectl -n flui-system get secret flui-secrets -o jsonpath='{.data.OIDC_AUDIENCE}' | base64 -d; echo"],
|
|
99
|
+
['OIDC_ISSUER in flui-api-config', "kubectl -n flui-system get cm flui-api-config -o jsonpath='{.data.OIDC_ISSUER}'; echo"],
|
|
100
|
+
['OIDC_CLI_CLIENT_ID in flui-api-config', "kubectl -n flui-system get cm flui-api-config -o jsonpath='{.data.OIDC_CLI_CLIENT_ID}'; echo"],
|
|
101
|
+
['oidcClientId in flui-web-config', "kubectl -n flui-system get cm flui-web-config -o jsonpath='{.data.config\\.json}'; echo"],
|
|
102
|
+
['flui-api OIDC log lines', "kubectl -n flui-system logs deploy/flui-api --tail=400 2>/dev/null | grep -iE 'oidc|bootstrap|zitadel' | tail -40 || echo '(no matches)'"],
|
|
103
|
+
['/var/log/flui-oidc-bootstrap.log tail', "test -f /var/log/flui-oidc-bootstrap.log && tail -80 /var/log/flui-oidc-bootstrap.log || echo '(file missing)'"],
|
|
104
|
+
['Zitadel pod status', "kubectl -n flui-system get pods 2>&1 | grep -i zitadel"],
|
|
105
|
+
['Zitadel ExternalDomain', "for cm in $(kubectl -n flui-system get cm -o name | grep -i zitadel); do echo --- $cm ---; kubectl -n flui-system get $cm -o yaml | grep -iE 'external|domain' | head -10; done"],
|
|
106
|
+
['flui-api pod -> Zitadel via tokenized Host', "POD=$(kubectl -n flui-system get pod -l app=flui-api -o jsonpath='{.items[0].metadata.name}'); ZDOM=$(kubectl -n flui-system get cm flui-api-config -o jsonpath='{.data.OIDC_ISSUER}' | sed 's|https://||'); PAT=$(kubectl -n flui-system get secret flui-secrets -o jsonpath='{.data.ZITADEL_SERVICE_ACCOUNT_PAT}' | base64 -d); echo POD=$POD; echo ZDOM_used=$ZDOM; kubectl -n flui-system exec $POD -c flui-api -- sh -c \"curl -s -o /tmp/o -w 'HTTP %{http_code}\\n' -H 'Host: $ZDOM' -H 'Authorization: Bearer $PAT' http://zitadel.flui-system.svc.cluster.local:8080/auth/v1/users/me; head -c 200 /tmp/o; echo; echo --no-host--; curl -s -o /tmp/o -w 'HTTP %{http_code}\\n' -H 'Authorization: Bearer $PAT' http://zitadel.flui-system.svc.cluster.local:8080/auth/v1/users/me; head -c 250 /tmp/o; echo\" 2>&1"],
|
|
107
|
+
['axios from flui-api pod: capital Host vs lowercase host', "POD=$(kubectl -n flui-system get pod -l app=flui-api -o jsonpath='{.items[0].metadata.name}'); ZDOM=$(kubectl -n flui-system get cm flui-api-config -o jsonpath='{.data.OIDC_ISSUER}' | sed 's|https://||'); PAT=$(kubectl -n flui-system get secret flui-secrets -o jsonpath='{.data.ZITADEL_SERVICE_ACCOUNT_PAT}' | base64 -d); kubectl -n flui-system exec $POD -c flui-api -- node -e \"const a=require('axios');(async()=>{for (const k of ['Host','host']){try{const r=await a.get('http://zitadel.flui-system.svc.cluster.local:8080/auth/v1/users/me',{headers:{[k]:'$ZDOM',Authorization:'Bearer $PAT'},validateStatus:()=>true});console.log(k+'=>HTTP '+r.status+' '+JSON.stringify(r.data).slice(0,100));}catch(e){console.log(k+'=>ERR '+e.message)}}})();\" 2>&1"],
|
|
108
|
+
['find postgres pod', "kubectl -n flui-system get pods -o wide | grep -iE 'postgres|sql' | head"],
|
|
109
|
+
['flui-api DB env', "POD=$(kubectl -n flui-system get pod -l app=flui-api -o jsonpath='{.items[0].metadata.name}'); kubectl -n flui-system exec $POD -c flui-api -- sh -c 'echo DB_USERNAME=$DB_USERNAME; echo DB_NAME=$DB_NAME; echo DB_HOST=$DB_HOST'"],
|
|
110
|
+
['cluster row (in-cluster DB)', "kubectl -n flui-system exec postgres-0 -- psql -U fluicloud -d fluicloud -tAc 'SELECT id, name, \"masterIpAddress\", \"nipHostnameToken\", \"clusterType\" FROM infrastructure_clusters;' 2>&1 | head"],
|
|
111
|
+
['flui-api PAT in env vs in PVC', "POD=$(kubectl -n flui-system get pod -l app=flui-api -o jsonpath='{.items[0].metadata.name}'); kubectl -n flui-system exec $POD -c flui-api -- sh -c 'echo ENV_PAT_LEN=${#ZITADEL_SERVICE_ACCOUNT_PAT}; echo ENV_PAT_HEAD=${ZITADEL_SERVICE_ACCOUNT_PAT:0:8}'; SECRET_PAT=$(kubectl -n flui-system get secret flui-secrets -o jsonpath='{.data.ZITADEL_SERVICE_ACCOUNT_PAT}' | base64 -d); echo SECRET_PAT_LEN=${#SECRET_PAT}; echo SECRET_PAT_HEAD=${SECRET_PAT:0:8}; PVC_PAT=$(kubectl -n flui-system exec deploy/zitadel -- cat /pvc/flui-api-system.pat 2>/dev/null || echo none); echo PVC_PAT_LEN=${#PVC_PAT}; echo PVC_PAT_HEAD=${PVC_PAT:0:8}"],
|
|
112
|
+
['Zitadel /auth/v1/users/me (what verifyPat hits)', "PAT=$(kubectl -n flui-system get secret flui-secrets -o jsonpath='{.data.ZITADEL_SERVICE_ACCOUNT_PAT}' | base64 -d); ZDOM=$(kubectl -n flui-system get cm flui-api-config -o jsonpath='{.data.OIDC_ISSUER}' | sed 's|https://||'); echo via_internal_dns:; curl -s -o /tmp/out -w 'HTTP %{http_code}\\n' -H \"Host: $ZDOM\" -H \"Authorization: Bearer $PAT\" http://zitadel.flui-system.svc.cluster.local:8080/auth/v1/users/me; head -c 300 /tmp/out; echo; echo via_clusterip:; ZSVC=$(kubectl -n flui-system get svc zitadel -o jsonpath='{.spec.clusterIP}'):8080; curl -s -o /tmp/out -w 'HTTP %{http_code}\\n' -H \"Host: $ZDOM\" -H \"Authorization: Bearer $PAT\" http://$ZSVC/auth/v1/users/me; head -c 300 /tmp/out; echo"],
|
|
113
|
+
];
|
|
114
|
+
for (const [label, cmd] of cmds) {
|
|
115
|
+
this.log('\n=== ' + label + ' ===');
|
|
116
|
+
try {
|
|
117
|
+
const out = await ssh.sshExec(ip, cmd);
|
|
118
|
+
this.log(out.trim());
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
this.log('ERR: ' + (e?.message ?? String(e)));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
finally {
|
|
126
|
+
await (0, nest_app_1.closeNestApp)();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
DiagOidc.description = 'Internal diag: OIDC bootstrap state';
|
|
131
|
+
DiagOidc.hidden = true;
|
|
132
|
+
exports.default = DiagOidc;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class AppBackupCreate extends Command {
|
|
3
|
+
static readonly description: string;
|
|
4
|
+
static readonly examples: string[];
|
|
5
|
+
static readonly args: {
|
|
6
|
+
name: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static readonly flags: {
|
|
9
|
+
cluster: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
volume: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
description: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
bucket: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
endpoint: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
|
+
region: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
|
+
'access-key': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
|
+
'secret-key': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
|
+
'key-prefix': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
18
|
+
};
|
|
19
|
+
run(): Promise<void>;
|
|
20
|
+
}
|