@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
|
@@ -0,0 +1,732 @@
|
|
|
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
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var AccessService_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.AccessService = void 0;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
19
|
+
const typeorm_2 = require("typeorm");
|
|
20
|
+
const key_storage_service_1 = require("./key-storage.service");
|
|
21
|
+
const ssh_key_generator_service_1 = require("./ssh-key-generator.service");
|
|
22
|
+
const credentials_entity_1 = require("../../management/entities/credentials.entity");
|
|
23
|
+
const credential_purpose_enum_1 = require("../enums/credential-purpose.enum");
|
|
24
|
+
const bearerToken_service_1 = require("./bearerToken.service");
|
|
25
|
+
const provider_credentials_repository_1 = require("../repositories/provider-credentials.repository");
|
|
26
|
+
const jwt_1 = require("@nestjs/jwt");
|
|
27
|
+
const api_token_repository_1 = require("../repositories/api-token.repository");
|
|
28
|
+
const api_token_mapper_1 = require("../mapper/api-token.mapper");
|
|
29
|
+
const ssh_key_mapper_1 = require("../mapper/ssh-key.mapper");
|
|
30
|
+
const ssh_provider_factory_1 = require("../providers/ssh-provider.factory");
|
|
31
|
+
const provider_factory_1 = require("../../providers/services/provider.factory");
|
|
32
|
+
const label_service_1 = require("../../common/services/label.service");
|
|
33
|
+
const cluster_entity_1 = require("../../infrastructure/clusters/entities/cluster.entity");
|
|
34
|
+
let AccessService = AccessService_1 = class AccessService {
|
|
35
|
+
constructor(repository, keyStorage, keyGenerator, bearerTokenService, providerCredentialsRepository, apiTokenRepository, jwtService, sshProviderFactory, providerFactory, labelService, clusterRepository) {
|
|
36
|
+
this.repository = repository;
|
|
37
|
+
this.keyStorage = keyStorage;
|
|
38
|
+
this.keyGenerator = keyGenerator;
|
|
39
|
+
this.bearerTokenService = bearerTokenService;
|
|
40
|
+
this.providerCredentialsRepository = providerCredentialsRepository;
|
|
41
|
+
this.apiTokenRepository = apiTokenRepository;
|
|
42
|
+
this.jwtService = jwtService;
|
|
43
|
+
this.sshProviderFactory = sshProviderFactory;
|
|
44
|
+
this.providerFactory = providerFactory;
|
|
45
|
+
this.labelService = labelService;
|
|
46
|
+
this.clusterRepository = clusterRepository;
|
|
47
|
+
this.logger = new common_1.Logger(AccessService_1.name);
|
|
48
|
+
}
|
|
49
|
+
async addSSHKey(input) {
|
|
50
|
+
const keyPair = await this.keyGenerator.generateKeyPair(input.type);
|
|
51
|
+
const existing = await this.repository.findKeyByFingerprint(keyPair.fingerprint);
|
|
52
|
+
if (existing) {
|
|
53
|
+
throw new common_1.BadRequestException('SSH key already exists');
|
|
54
|
+
}
|
|
55
|
+
const keyId = Date.now().toString();
|
|
56
|
+
const keyPath = await this.keyStorage.storePrivateKey(input.userName, keyId, keyPair.privateKey);
|
|
57
|
+
// Create SSH key in local database
|
|
58
|
+
const createdKey = await this.repository.createKey(input, {
|
|
59
|
+
...keyPair,
|
|
60
|
+
privateKey: keyPath,
|
|
61
|
+
}, input.tags);
|
|
62
|
+
// Sync with specified providers or all configured providers
|
|
63
|
+
const syncErrors = await this.syncSSHKeyToAllProviders(createdKey, input.providers);
|
|
64
|
+
// Reload to pick up persisted providerKeyMappings
|
|
65
|
+
const savedKey = await this.repository.findKeyById(createdKey.id);
|
|
66
|
+
const dto = ssh_key_mapper_1.SSHKeyMapper.toDto(savedKey);
|
|
67
|
+
if (Object.keys(syncErrors).length > 0) {
|
|
68
|
+
dto.syncErrors = syncErrors;
|
|
69
|
+
}
|
|
70
|
+
return dto;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Create an SSH key from pre-generated key pair
|
|
74
|
+
* Used for temporary bootstrap keys during cluster creation
|
|
75
|
+
*/
|
|
76
|
+
async createSSHKey(input) {
|
|
77
|
+
const existing = await this.repository.findKeyByFingerprint(input.fingerprint);
|
|
78
|
+
if (existing) {
|
|
79
|
+
throw new common_1.BadRequestException('SSH key already exists');
|
|
80
|
+
}
|
|
81
|
+
const keyId = Date.now().toString();
|
|
82
|
+
const keyPath = await this.keyStorage.storePrivateKey('system', // System user for bootstrap keys
|
|
83
|
+
keyId, input.private_key);
|
|
84
|
+
// Create SSH key in local database
|
|
85
|
+
const createdKey = await this.repository.createKey({
|
|
86
|
+
name: input.name,
|
|
87
|
+
userName: 'system',
|
|
88
|
+
type: input.type || 'ed25519',
|
|
89
|
+
}, {
|
|
90
|
+
publicKey: input.public_key,
|
|
91
|
+
privateKey: keyPath,
|
|
92
|
+
fingerprint: input.fingerprint,
|
|
93
|
+
}, input.tags || input.metadata || {}, input.autoGenerated || false);
|
|
94
|
+
// Skip provider sync for temporary keys
|
|
95
|
+
if (!input.temporary) {
|
|
96
|
+
await this.syncSSHKeyToAllProviders(createdKey);
|
|
97
|
+
}
|
|
98
|
+
return createdKey;
|
|
99
|
+
}
|
|
100
|
+
async removeSSHKey(userId, keyId, removeFromProviders = true, provider) {
|
|
101
|
+
const isUuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(keyId);
|
|
102
|
+
if (!isUuid) {
|
|
103
|
+
// keyId is a provider key ID (e.g. Hetzner numeric ID)
|
|
104
|
+
const key = await this.repository.findKeyByProviderKeyId(keyId);
|
|
105
|
+
if (key) {
|
|
106
|
+
if (removeFromProviders) {
|
|
107
|
+
await this.removeSSHKeyFromAllProviders(key);
|
|
108
|
+
}
|
|
109
|
+
await this.keyStorage.deleteKey(key.keyPath);
|
|
110
|
+
await this.repository.deleteKey(key.id);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
// Key exists only on provider — delete directly
|
|
114
|
+
if (!provider) {
|
|
115
|
+
throw new common_1.BadRequestException('Key not found in database. Provide ?provider= to delete it directly from the cloud provider.');
|
|
116
|
+
}
|
|
117
|
+
await this.removeSSHKeyFromProvider(provider, keyId);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const key = await this.repository.findKeyById(keyId);
|
|
121
|
+
if (!key) {
|
|
122
|
+
throw new common_1.NotFoundException('SSH key not found');
|
|
123
|
+
}
|
|
124
|
+
if (removeFromProviders) {
|
|
125
|
+
await this.removeSSHKeyFromAllProviders(key);
|
|
126
|
+
}
|
|
127
|
+
await this.keyStorage.deleteKey(key.keyPath);
|
|
128
|
+
await this.repository.deleteKey(keyId);
|
|
129
|
+
}
|
|
130
|
+
async getPrivateKey(userId, keyId) {
|
|
131
|
+
const key = await this.repository.findKeyById(keyId);
|
|
132
|
+
if (!key) {
|
|
133
|
+
throw new common_1.NotFoundException('SSH key not found');
|
|
134
|
+
}
|
|
135
|
+
return this.keyStorage.retrievePrivateKey(key.keyPath);
|
|
136
|
+
}
|
|
137
|
+
// Bearer Tokens methods (unchanged)
|
|
138
|
+
async generateBearerToken(provider, dto) {
|
|
139
|
+
const token = await this.bearerTokenService.generateToken(provider, dto);
|
|
140
|
+
const password = this.keyStorage.encryptKeyToString(dto.password);
|
|
141
|
+
const client_id = this.keyStorage.encryptKeyToString(dto.client_id);
|
|
142
|
+
const client_secret = this.keyStorage.encryptKeyToString(dto.client_secret);
|
|
143
|
+
const decodedRefresh = this.jwtService.decode(token.refresh_token);
|
|
144
|
+
this.providerCredentialsRepository.saveCredentials(provider, dto.username, password, client_id, client_secret, token.access_token, token.refresh_token, token.expires_in, decodedRefresh?.exp);
|
|
145
|
+
return token;
|
|
146
|
+
}
|
|
147
|
+
async getActiveBearerToken(provider) {
|
|
148
|
+
const providerCredentials = await this.providerCredentialsRepository.findByProvider(provider);
|
|
149
|
+
// If no active credentials found, return not found
|
|
150
|
+
if (!providerCredentials || providerCredentials.length === 0) {
|
|
151
|
+
throw new common_1.NotFoundException('No active credentials found');
|
|
152
|
+
}
|
|
153
|
+
// If multiple active credentials found, return the first one
|
|
154
|
+
const credentials = providerCredentials[0];
|
|
155
|
+
// Check if token is expired, if not return it, otherwise check if refresh token is available and not expired,
|
|
156
|
+
// if yes, refresh token and return new token, otherwise use credentials to generate new token
|
|
157
|
+
if (credentials.token_expires_at &&
|
|
158
|
+
credentials.token_expires_at > new Date()) {
|
|
159
|
+
return {
|
|
160
|
+
access_token: credentials.access_token,
|
|
161
|
+
refresh_token: credentials.refresh_token,
|
|
162
|
+
expires_in: Math.floor((credentials.token_expires_at.getTime() - Date.now()) / 1000),
|
|
163
|
+
token_type: 'Bearer',
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
else if (credentials.refresh_token &&
|
|
167
|
+
credentials.refresh_token_expires_at &&
|
|
168
|
+
credentials.refresh_token_expires_at > new Date()) {
|
|
169
|
+
const client_secret = this.keyStorage.decryptKeyFromString(credentials.client_secret);
|
|
170
|
+
const client_id = this.keyStorage.decryptKeyFromString(credentials.client_id);
|
|
171
|
+
const token = await this.refreshBearerToken(provider, {
|
|
172
|
+
provider: provider,
|
|
173
|
+
client_id: client_id,
|
|
174
|
+
client_secret: client_secret,
|
|
175
|
+
refresh_token: credentials.refresh_token,
|
|
176
|
+
});
|
|
177
|
+
return token;
|
|
178
|
+
}
|
|
179
|
+
const password = this.keyStorage.decryptKeyFromString(credentials.password);
|
|
180
|
+
const client_id = this.keyStorage.decryptKeyFromString(credentials.client_id);
|
|
181
|
+
const client_secret = this.keyStorage.decryptKeyFromString(credentials.client_secret);
|
|
182
|
+
return await this.generateBearerToken(provider, {
|
|
183
|
+
provider: provider,
|
|
184
|
+
client_id: client_id,
|
|
185
|
+
client_secret: client_secret,
|
|
186
|
+
username: credentials.username,
|
|
187
|
+
password: password,
|
|
188
|
+
save_credentials: true,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
async refreshBearerToken(provider, dto) {
|
|
192
|
+
try {
|
|
193
|
+
return await this.bearerTokenService.refreshToken(provider, dto);
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
if (error.status === 400 &&
|
|
197
|
+
error.data?.error === 'invalid_grant' &&
|
|
198
|
+
error.data?.error_description?.includes('Token is not active')) {
|
|
199
|
+
throw new common_1.UnauthorizedException('Your refresh token is no longer active. Please log in again.');
|
|
200
|
+
}
|
|
201
|
+
// Handle other invalid_grant errors
|
|
202
|
+
if (error.status === 400 && error.data?.error === 'invalid_grant') {
|
|
203
|
+
throw new common_1.UnauthorizedException(`Authentication failed: ${error.data?.error_description || 'Invalid token'}. Please log in again.`);
|
|
204
|
+
}
|
|
205
|
+
// Handle generic 400 errors
|
|
206
|
+
if (error.status === 400) {
|
|
207
|
+
throw new common_1.BadRequestException(`Failed to refresh token: ${error.data?.error_description || error.message || 'Bad request'}`);
|
|
208
|
+
}
|
|
209
|
+
// For all other errors, propagate them
|
|
210
|
+
throw error;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
async listBearerTokens() {
|
|
214
|
+
return await this.providerCredentialsRepository.findAll();
|
|
215
|
+
}
|
|
216
|
+
async removeBearerToken(id) {
|
|
217
|
+
return await this.providerCredentialsRepository.deleteTokenAndCredentials(id);
|
|
218
|
+
}
|
|
219
|
+
// API Tokens methods (updated to use mapper)
|
|
220
|
+
/**
|
|
221
|
+
* Retrieves all active API tokens
|
|
222
|
+
* @returns List of API tokens as DTOs
|
|
223
|
+
*/
|
|
224
|
+
async listApiTokens() {
|
|
225
|
+
const tokens = await this.apiTokenRepository.findAll();
|
|
226
|
+
return api_token_mapper_1.ApiTokenMapper.toDtoList(tokens);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Creates a new API token
|
|
230
|
+
* @param createApiTokenDto Data for token creation
|
|
231
|
+
* @returns The created token as DTO
|
|
232
|
+
*/
|
|
233
|
+
async createApiToken(createApiTokenDto) {
|
|
234
|
+
const encryptedToken = this.keyStorage.encryptKeyToString(createApiTokenDto.token);
|
|
235
|
+
const newToken = await this.apiTokenRepository.createToken(createApiTokenDto.provider.toLowerCase(), createApiTokenDto.label, createApiTokenDto.notes, encryptedToken, {
|
|
236
|
+
credentialType: credentials_entity_1.CredentialType.API_KEY,
|
|
237
|
+
expiresAt: createApiTokenDto.expiresAt,
|
|
238
|
+
});
|
|
239
|
+
return api_token_mapper_1.ApiTokenMapper.toDto(newToken);
|
|
240
|
+
}
|
|
241
|
+
async createAccessKeyPair(dto) {
|
|
242
|
+
const encryptedSecretKey = this.keyStorage.encryptKeyToString(dto.secretKey);
|
|
243
|
+
const encryptedAccessKey = this.keyStorage.encryptKeyToString(dto.accessKey);
|
|
244
|
+
const newToken = await this.apiTokenRepository.createToken(dto.provider, dto.label, dto.notes ?? null, encryptedSecretKey, {
|
|
245
|
+
credentialType: credentials_entity_1.CredentialType.ACCESS_KEY_SECRET,
|
|
246
|
+
encryptedAccessKey,
|
|
247
|
+
expiresAt: dto.expiresAt,
|
|
248
|
+
});
|
|
249
|
+
return api_token_mapper_1.ApiTokenMapper.toDto(newToken);
|
|
250
|
+
}
|
|
251
|
+
async getActiveAccessKeyPair(provider, purpose = credential_purpose_enum_1.CredentialPurpose.COMPUTE) {
|
|
252
|
+
const tokens = await this.apiTokenRepository.findByProviderAndPurpose(provider, purpose);
|
|
253
|
+
const token = tokens?.find((t) => t.credential_type === credentials_entity_1.CredentialType.ACCESS_KEY_SECRET);
|
|
254
|
+
if (!token) {
|
|
255
|
+
throw new common_1.NotFoundException(`No active access key pair found for provider ${provider}`);
|
|
256
|
+
}
|
|
257
|
+
const secretKey = this.keyStorage.decryptKeyFromString(token.encrypted_token);
|
|
258
|
+
const accessKey = token.encrypted_access_key
|
|
259
|
+
? this.keyStorage.decryptKeyFromString(token.encrypted_access_key)
|
|
260
|
+
: '';
|
|
261
|
+
return { accessKey, secretKey };
|
|
262
|
+
}
|
|
263
|
+
async getActiveCredentialMetadata(provider, purpose = credential_purpose_enum_1.CredentialPurpose.COMPUTE) {
|
|
264
|
+
const tokens = await this.apiTokenRepository.findByProviderAndPurpose(provider, purpose);
|
|
265
|
+
if (!tokens || tokens.length === 0)
|
|
266
|
+
return null;
|
|
267
|
+
const token = tokens[0];
|
|
268
|
+
return {
|
|
269
|
+
id: token.id,
|
|
270
|
+
credentialType: token.credential_type,
|
|
271
|
+
expiresAt: token.expires_at ?? null,
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
async updateActiveCredentialExpiry(provider, expiresAt, purpose = credential_purpose_enum_1.CredentialPurpose.COMPUTE) {
|
|
275
|
+
const meta = await this.getActiveCredentialMetadata(provider, purpose);
|
|
276
|
+
if (!meta) {
|
|
277
|
+
throw new common_1.NotFoundException(`No active credential found for provider ${provider}`);
|
|
278
|
+
}
|
|
279
|
+
await this.apiTokenRepository.updateExpiry(meta.id, expiresAt);
|
|
280
|
+
}
|
|
281
|
+
async deleteActiveProviderCredentials(provider, purpose = credential_purpose_enum_1.CredentialPurpose.COMPUTE) {
|
|
282
|
+
const tokens = await this.apiTokenRepository.findByProviderAndPurpose(provider, purpose);
|
|
283
|
+
for (const token of tokens ?? []) {
|
|
284
|
+
await this.apiTokenRepository.deleteToken(token.id);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Retrieves and decrypts an API token
|
|
289
|
+
* @param id ID of the token to retrieve
|
|
290
|
+
* @returns The decrypted token value
|
|
291
|
+
*/
|
|
292
|
+
async getDecryptApiToken(id) {
|
|
293
|
+
try {
|
|
294
|
+
// Retrieve the encrypted token
|
|
295
|
+
const encryptedToken = await this.apiTokenRepository.getEncryptedToken(id);
|
|
296
|
+
// Decrypt the token before returning it
|
|
297
|
+
return this.keyStorage.decryptKeyFromString(encryptedToken);
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
throw new common_1.NotFoundException(`API token with ID ${id} not found`);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Retrieves information about an API token
|
|
305
|
+
* @param id ID of the token to retrieve
|
|
306
|
+
* @returns Token information as DTO
|
|
307
|
+
*/
|
|
308
|
+
async getApiToken(id) {
|
|
309
|
+
try {
|
|
310
|
+
const token = await this.apiTokenRepository.findById(id);
|
|
311
|
+
if (!token) {
|
|
312
|
+
throw new common_1.NotFoundException(`API token with ID ${id} not found`);
|
|
313
|
+
}
|
|
314
|
+
return api_token_mapper_1.ApiTokenMapper.toDto(token);
|
|
315
|
+
}
|
|
316
|
+
catch {
|
|
317
|
+
throw new common_1.NotFoundException(`API token with ID ${id} not found`);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
// get active api token by provider and decrypt it
|
|
321
|
+
async getActiveApiToken(provider, purpose = credential_purpose_enum_1.CredentialPurpose.COMPUTE) {
|
|
322
|
+
const tokens = await this.apiTokenRepository.findByProviderAndPurpose(provider, purpose);
|
|
323
|
+
if (!tokens || tokens.length === 0) {
|
|
324
|
+
throw new common_1.NotFoundException('No active API token found');
|
|
325
|
+
}
|
|
326
|
+
const token = tokens[0];
|
|
327
|
+
return await this.getDecryptApiToken(token.id);
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Deletes an API token
|
|
331
|
+
* @param id ID of the token to delete
|
|
332
|
+
* @returns Confirmation message
|
|
333
|
+
*/
|
|
334
|
+
async removeApiToken(id) {
|
|
335
|
+
try {
|
|
336
|
+
await this.apiTokenRepository.deleteToken(id);
|
|
337
|
+
return { success: true, message: 'API token removed successfully' };
|
|
338
|
+
}
|
|
339
|
+
catch {
|
|
340
|
+
throw new common_1.NotFoundException(`API token with ID ${id} not found`);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Retrieves all API tokens for a specific provider
|
|
345
|
+
* @param provider Provider of tokens to retrieve
|
|
346
|
+
* @returns List of API tokens as DTOs
|
|
347
|
+
*/
|
|
348
|
+
async getApiTokensByProvider(provider) {
|
|
349
|
+
const tokens = await this.apiTokenRepository.findByProvider(provider);
|
|
350
|
+
return api_token_mapper_1.ApiTokenMapper.toDtoList(tokens);
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Updates the last used timestamp of a token
|
|
354
|
+
* @param id ID of the token to update
|
|
355
|
+
*/
|
|
356
|
+
async updateApiTokenLastUsed(id) {
|
|
357
|
+
try {
|
|
358
|
+
await this.apiTokenRepository.updateLastUsed(id);
|
|
359
|
+
}
|
|
360
|
+
catch {
|
|
361
|
+
throw new common_1.NotFoundException(`API token with ID ${id} not found`);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
async listSSHKeys(provider, tagFilters) {
|
|
365
|
+
// Get SSH keys from local database with optional tag filters
|
|
366
|
+
const localKeys = await this.repository.findAllKeys(tagFilters);
|
|
367
|
+
const localKeysDto = ssh_key_mapper_1.SSHKeyMapper.toDtoList(localKeys);
|
|
368
|
+
// If no provider specified, return only local keys
|
|
369
|
+
if (!provider) {
|
|
370
|
+
return localKeysDto.map((key) => ({
|
|
371
|
+
...key,
|
|
372
|
+
source: 'local',
|
|
373
|
+
}));
|
|
374
|
+
}
|
|
375
|
+
// Get SSH keys from cloud provider
|
|
376
|
+
const providerKeys = await this.getSSHKeysFromProvider(provider);
|
|
377
|
+
// Combine and deduplicate keys
|
|
378
|
+
const combinedKeys = this.combineSSHKeys(localKeysDto, providerKeys, provider);
|
|
379
|
+
return combinedKeys;
|
|
380
|
+
}
|
|
381
|
+
async getSSHKeysFromProvider(provider) {
|
|
382
|
+
try {
|
|
383
|
+
const providerService = this.providerFactory.getProvider(provider);
|
|
384
|
+
// Check if provider supports SSH key listing
|
|
385
|
+
if (!providerService.listSSHKeys) {
|
|
386
|
+
this.logger.warn(`Provider ${provider} does not support SSH key listing`);
|
|
387
|
+
return [];
|
|
388
|
+
}
|
|
389
|
+
return await providerService.listSSHKeys();
|
|
390
|
+
}
|
|
391
|
+
catch (error) {
|
|
392
|
+
this.logger.error(`Failed to fetch SSH keys from ${provider}:`, error.message);
|
|
393
|
+
return [];
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
combineSSHKeys(localKeys, providerKeys, provider) {
|
|
397
|
+
const combinedKeys = [];
|
|
398
|
+
// Add local keys with source marker
|
|
399
|
+
localKeys.forEach((key) => {
|
|
400
|
+
combinedKeys.push({
|
|
401
|
+
...key,
|
|
402
|
+
source: 'local',
|
|
403
|
+
});
|
|
404
|
+
});
|
|
405
|
+
// Add provider keys with source marker and deduplication
|
|
406
|
+
providerKeys.forEach((providerKey) => {
|
|
407
|
+
// Check if this key already exists in local keys (by fingerprint)
|
|
408
|
+
const existsLocally = localKeys.some((localKey) => localKey.fingerprint === providerKey.fingerprint);
|
|
409
|
+
if (existsLocally) {
|
|
410
|
+
const localKeyIndex = combinedKeys.findIndex((key) => key.fingerprint === providerKey.fingerprint &&
|
|
411
|
+
key.source === 'local');
|
|
412
|
+
if (localKeyIndex !== -1) {
|
|
413
|
+
combinedKeys[localKeyIndex] = {
|
|
414
|
+
...combinedKeys[localKeyIndex],
|
|
415
|
+
availableOnProvider: provider,
|
|
416
|
+
providerKeyId: providerKey.id,
|
|
417
|
+
};
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
else {
|
|
421
|
+
combinedKeys.push({
|
|
422
|
+
...providerKey,
|
|
423
|
+
source: provider,
|
|
424
|
+
syncedFromProvider: true,
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
});
|
|
428
|
+
return combinedKeys;
|
|
429
|
+
}
|
|
430
|
+
async updateSSHKey(keyId, updateDto) {
|
|
431
|
+
// Check if key exists
|
|
432
|
+
const existingKey = await this.repository.findKeyById(keyId);
|
|
433
|
+
if (!existingKey) {
|
|
434
|
+
throw new common_1.NotFoundException(`SSH key with ID ${keyId} not found`);
|
|
435
|
+
}
|
|
436
|
+
// Prepare updates
|
|
437
|
+
const updates = {};
|
|
438
|
+
if (updateDto.tags !== undefined) {
|
|
439
|
+
// Complete replacement of tags
|
|
440
|
+
updates.tags = updateDto.tags;
|
|
441
|
+
}
|
|
442
|
+
if (updateDto.providerKeyMappings !== undefined) {
|
|
443
|
+
updates.providerKeyMappings = updateDto.providerKeyMappings;
|
|
444
|
+
}
|
|
445
|
+
// Unsync from specified providers if requested
|
|
446
|
+
if (updateDto.unsyncProviders && updateDto.unsyncProviders.length > 0) {
|
|
447
|
+
const unsyncErrors = await this.unsyncSSHKeyFromProviders(existingKey, updateDto.unsyncProviders);
|
|
448
|
+
const updated = await this.repository.findKeyById(keyId);
|
|
449
|
+
const dto = ssh_key_mapper_1.SSHKeyMapper.toDto(updated);
|
|
450
|
+
if (Object.keys(unsyncErrors).length > 0) {
|
|
451
|
+
dto.syncErrors = unsyncErrors;
|
|
452
|
+
}
|
|
453
|
+
return dto;
|
|
454
|
+
}
|
|
455
|
+
// Sync to specified providers if requested
|
|
456
|
+
if (updateDto.syncProviders && updateDto.syncProviders.length > 0) {
|
|
457
|
+
const syncErrors = await this.syncSSHKeyToAllProviders(existingKey, updateDto.syncProviders);
|
|
458
|
+
const synced = await this.repository.findKeyById(keyId);
|
|
459
|
+
const dto = ssh_key_mapper_1.SSHKeyMapper.toDto(synced);
|
|
460
|
+
if (Object.keys(syncErrors).length > 0) {
|
|
461
|
+
dto.syncErrors = syncErrors;
|
|
462
|
+
}
|
|
463
|
+
return dto;
|
|
464
|
+
}
|
|
465
|
+
// Update the key
|
|
466
|
+
const updatedKey = await this.repository.updateKey(keyId, updates);
|
|
467
|
+
if (!updatedKey) {
|
|
468
|
+
throw new common_1.NotFoundException(`Failed to update SSH key with ID ${keyId}`);
|
|
469
|
+
}
|
|
470
|
+
// Return mapped DTO
|
|
471
|
+
return ssh_key_mapper_1.SSHKeyMapper.toDto(updatedKey);
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* Sync SSH key to all configured providers (or a specific subset).
|
|
475
|
+
* Returns a map of provider → error message for any providers that failed.
|
|
476
|
+
* Providers that succeed are persisted in providerKeyMappings before returning.
|
|
477
|
+
*/
|
|
478
|
+
async syncSSHKeyToAllProviders(sshKey, targetProviders) {
|
|
479
|
+
const providers = targetProviders && targetProviders.length > 0
|
|
480
|
+
? targetProviders
|
|
481
|
+
: this.providerFactory.getSupportedProviders();
|
|
482
|
+
const providerKeyMappings = sshKey.providerKeyMappings || {};
|
|
483
|
+
const syncErrors = {};
|
|
484
|
+
for (const provider of providers) {
|
|
485
|
+
try {
|
|
486
|
+
const providerKeyId = await this.syncSSHKeyWithProvider(sshKey, provider);
|
|
487
|
+
if (providerKeyId) {
|
|
488
|
+
providerKeyMappings[provider] = providerKeyId;
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
catch (error) {
|
|
492
|
+
const detail = error?.response?.data
|
|
493
|
+
? JSON.stringify(error.response.data)
|
|
494
|
+
: error.message;
|
|
495
|
+
this.logger.warn(`Failed to sync SSH key ${sshKey.id} with ${provider}: ${error.message} — ${detail}`);
|
|
496
|
+
syncErrors[provider] = error.message;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
// Persist mappings for providers that succeeded
|
|
500
|
+
if (Object.keys(providerKeyMappings).length > 0) {
|
|
501
|
+
await this.repository.updateKey(sshKey.id, { providerKeyMappings });
|
|
502
|
+
}
|
|
503
|
+
return syncErrors;
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* Sync SSH key with a specific provider
|
|
507
|
+
*/
|
|
508
|
+
async syncSSHKeyWithProvider(sshKey, provider) {
|
|
509
|
+
try {
|
|
510
|
+
const providerService = this.providerFactory.getProvider(provider);
|
|
511
|
+
// Check if provider supports SSH key creation
|
|
512
|
+
if (!providerService.createSSHKey) {
|
|
513
|
+
this.logger.debug(`Provider ${provider} does not support SSH key creation`);
|
|
514
|
+
return null;
|
|
515
|
+
}
|
|
516
|
+
// Generate labels for the SSH key
|
|
517
|
+
const labels = this.labelService.toRecord(this.labelService.generateSSHKeyLabels({
|
|
518
|
+
sshKeyId: sshKey.id,
|
|
519
|
+
sshKeyName: sshKey.name,
|
|
520
|
+
}));
|
|
521
|
+
// Create SSH key on provider
|
|
522
|
+
const result = await providerService.createSSHKey(sshKey.name, sshKey.publicKey, labels);
|
|
523
|
+
this.logger.log(`SSH key ${sshKey.name} synced with ${provider}, ID: ${result.id}`);
|
|
524
|
+
return result.id;
|
|
525
|
+
}
|
|
526
|
+
catch (error) {
|
|
527
|
+
// If key already exists, try to find it by name/fingerprint
|
|
528
|
+
if (error.message?.includes('already exists')) {
|
|
529
|
+
this.logger.debug(`SSH key ${sshKey.name} may already exist on ${provider}, attempting to find it`);
|
|
530
|
+
// Try to list keys and find matching one
|
|
531
|
+
const providerService = this.providerFactory.getProvider(provider);
|
|
532
|
+
if (providerService.listSSHKeys) {
|
|
533
|
+
const keys = await providerService.listSSHKeys();
|
|
534
|
+
const matchingKey = keys.find((k) => k.fingerprint === sshKey.fingerprint || k.name === sshKey.name);
|
|
535
|
+
if (matchingKey) {
|
|
536
|
+
this.logger.log(`Found existing SSH key ${sshKey.name} on ${provider} with ID: ${matchingKey.id}`);
|
|
537
|
+
return matchingKey.id;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
throw error;
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Sync SSH key with a specific provider using custom labels
|
|
546
|
+
* Used for bootstrap keys that need cluster-specific labels
|
|
547
|
+
*/
|
|
548
|
+
async syncSSHKeyWithProviderAndLabels(sshKeyId, provider, customLabels) {
|
|
549
|
+
const sshKey = await this.repository.findKeyById(sshKeyId);
|
|
550
|
+
if (!sshKey) {
|
|
551
|
+
throw new common_1.NotFoundException(`SSH key with ID ${sshKeyId} not found`);
|
|
552
|
+
}
|
|
553
|
+
try {
|
|
554
|
+
const providerService = this.providerFactory.getProvider(provider);
|
|
555
|
+
// Check if provider supports SSH key creation
|
|
556
|
+
if (!providerService.createSSHKey) {
|
|
557
|
+
this.logger.debug(`Provider ${provider} does not support SSH key creation`);
|
|
558
|
+
return null;
|
|
559
|
+
}
|
|
560
|
+
// Merge default labels with custom labels
|
|
561
|
+
const defaultLabels = this.labelService.toRecord(this.labelService.generateSSHKeyLabels({
|
|
562
|
+
sshKeyId: sshKey.id,
|
|
563
|
+
sshKeyName: sshKey.name,
|
|
564
|
+
}));
|
|
565
|
+
const finalLabels = {
|
|
566
|
+
...defaultLabels,
|
|
567
|
+
...customLabels, // Custom labels override defaults
|
|
568
|
+
};
|
|
569
|
+
// Create SSH key on provider with merged labels
|
|
570
|
+
const result = await providerService.createSSHKey(sshKey.name, sshKey.publicKey, finalLabels);
|
|
571
|
+
this.logger.log(`SSH key ${sshKey.name} synced with ${provider} using custom labels, ID: ${result.id}`);
|
|
572
|
+
// Update providerKeyMappings
|
|
573
|
+
const providerKeyMappings = sshKey.providerKeyMappings || {};
|
|
574
|
+
providerKeyMappings[provider] = result.id;
|
|
575
|
+
await this.repository.updateKey(sshKeyId, { providerKeyMappings });
|
|
576
|
+
return result.id;
|
|
577
|
+
}
|
|
578
|
+
catch (error) {
|
|
579
|
+
this.logger.error(`Failed to sync SSH key ${sshKeyId} with ${provider}: ${error.message}`);
|
|
580
|
+
throw error;
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
/**
|
|
584
|
+
* Remove SSH key from specific providers without deleting it locally.
|
|
585
|
+
* Returns a map of provider → error message for any that failed.
|
|
586
|
+
*/
|
|
587
|
+
async unsyncSSHKeyFromProviders(sshKey, providers) {
|
|
588
|
+
const providerKeyMappings = {
|
|
589
|
+
...sshKey.providerKeyMappings,
|
|
590
|
+
};
|
|
591
|
+
const errors = {};
|
|
592
|
+
for (const provider of providers) {
|
|
593
|
+
const providerKeyId = providerKeyMappings[provider];
|
|
594
|
+
if (!providerKeyId) {
|
|
595
|
+
this.logger.debug(`SSH key ${sshKey.id} has no mapping for ${provider}, skipping`);
|
|
596
|
+
continue;
|
|
597
|
+
}
|
|
598
|
+
try {
|
|
599
|
+
await this.removeSSHKeyFromProvider(provider, providerKeyId);
|
|
600
|
+
delete providerKeyMappings[provider];
|
|
601
|
+
}
|
|
602
|
+
catch (error) {
|
|
603
|
+
this.logger.warn(`Failed to remove SSH key ${sshKey.id} from ${provider}: ${error.message}`);
|
|
604
|
+
errors[provider] = error.message;
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
await this.repository.updateKey(sshKey.id, { providerKeyMappings });
|
|
608
|
+
return errors;
|
|
609
|
+
}
|
|
610
|
+
/**
|
|
611
|
+
* Remove SSH key from all providers
|
|
612
|
+
*/
|
|
613
|
+
async removeSSHKeyFromAllProviders(sshKey) {
|
|
614
|
+
if (!sshKey.providerKeyMappings) {
|
|
615
|
+
return;
|
|
616
|
+
}
|
|
617
|
+
for (const [provider, providerKeyId] of Object.entries(sshKey.providerKeyMappings)) {
|
|
618
|
+
try {
|
|
619
|
+
await this.removeSSHKeyFromProvider(provider, providerKeyId);
|
|
620
|
+
}
|
|
621
|
+
catch (error) {
|
|
622
|
+
this.logger.warn(`Failed to remove SSH key from ${provider}: ${error.message}`);
|
|
623
|
+
// Continue with other providers
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
/**
|
|
628
|
+
* Remove SSH key from a specific provider
|
|
629
|
+
*/
|
|
630
|
+
async removeSSHKeyFromProvider(provider, providerKeyId) {
|
|
631
|
+
try {
|
|
632
|
+
const providerService = this.providerFactory.getProvider(provider);
|
|
633
|
+
if (!providerService.deleteSSHKey) {
|
|
634
|
+
this.logger.debug(`Provider ${provider} does not support SSH key deletion`);
|
|
635
|
+
return;
|
|
636
|
+
}
|
|
637
|
+
await providerService.deleteSSHKey(providerKeyId);
|
|
638
|
+
this.logger.log(`SSH key ${providerKeyId} removed from ${provider}`);
|
|
639
|
+
}
|
|
640
|
+
catch (error) {
|
|
641
|
+
this.logger.error(`Failed to remove SSH key ${providerKeyId} from ${provider}:`, error.message);
|
|
642
|
+
throw error;
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
/**
|
|
646
|
+
* Load SSH keys from the local DB and return them as SshKeyInfo[],
|
|
647
|
+
* including any already-cached provider key ID.
|
|
648
|
+
* After the provider resolves them, call saveSSHKeyProviderMappings() to persist.
|
|
649
|
+
*/
|
|
650
|
+
async getSSHKeysAsProviderInfo(sshKeyIds, provider) {
|
|
651
|
+
const entities = [];
|
|
652
|
+
const infos = [];
|
|
653
|
+
for (const id of sshKeyIds) {
|
|
654
|
+
const key = await this.repository.findKeyById(id);
|
|
655
|
+
if (!key) {
|
|
656
|
+
throw new common_1.NotFoundException(`SSH key with ID ${id} not found`);
|
|
657
|
+
}
|
|
658
|
+
entities.push(key);
|
|
659
|
+
infos.push({
|
|
660
|
+
fluiId: key.id,
|
|
661
|
+
name: key.name,
|
|
662
|
+
publicKey: key.publicKey,
|
|
663
|
+
fingerprint: key.fingerprint,
|
|
664
|
+
existingProviderId: key.providerKeyMappings?.[provider] ?? undefined,
|
|
665
|
+
});
|
|
666
|
+
}
|
|
667
|
+
return { infos, entities };
|
|
668
|
+
}
|
|
669
|
+
/**
|
|
670
|
+
* Persist resolved provider key IDs back to the local DB.
|
|
671
|
+
*/
|
|
672
|
+
async saveSSHKeyProviderMappings(entities, providerIds, provider) {
|
|
673
|
+
for (let i = 0; i < entities.length; i++) {
|
|
674
|
+
const key = entities[i];
|
|
675
|
+
const providerKeyId = providerIds[i];
|
|
676
|
+
if (!key.providerKeyMappings?.[provider]) {
|
|
677
|
+
const mappings = {
|
|
678
|
+
...key.providerKeyMappings,
|
|
679
|
+
[provider]: providerKeyId,
|
|
680
|
+
};
|
|
681
|
+
await this.repository.updateKey(key.id, {
|
|
682
|
+
providerKeyMappings: mappings,
|
|
683
|
+
});
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
/**
|
|
688
|
+
* Retrieve and decrypt the bootstrap private key for a cluster.
|
|
689
|
+
* First checks cluster.bootstrapKeyId, then falls back to searching
|
|
690
|
+
* by cluster-id/purpose/node-type tags (master node bootstrap key).
|
|
691
|
+
* Used as a fallback SSH auth method when the CA is not yet configured on the server.
|
|
692
|
+
*/
|
|
693
|
+
async getBootstrapPrivateKeyForCluster(clusterId) {
|
|
694
|
+
// First try: cluster-level bootstrapKeyId field
|
|
695
|
+
const cluster = await this.clusterRepository.findOneBy({ id: clusterId });
|
|
696
|
+
if (cluster?.bootstrapKeyId) {
|
|
697
|
+
const keyEntity = await this.repository.findKeyById(cluster.bootstrapKeyId);
|
|
698
|
+
if (keyEntity) {
|
|
699
|
+
return this.keyStorage.retrievePrivateKey(keyEntity.keyPath);
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
// Second try: find master node bootstrap key by tags
|
|
703
|
+
const keys = await this.repository.findAllKeys({
|
|
704
|
+
'cluster-id': clusterId,
|
|
705
|
+
purpose: 'bootstrap',
|
|
706
|
+
'node-type': 'master',
|
|
707
|
+
});
|
|
708
|
+
if (!keys.length) {
|
|
709
|
+
throw new common_1.NotFoundException(`No bootstrap key found for cluster ${clusterId}`);
|
|
710
|
+
}
|
|
711
|
+
// Use the most recently created one
|
|
712
|
+
const sortedKeys = [...keys].sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
|
|
713
|
+
const latest = sortedKeys[0];
|
|
714
|
+
return this.keyStorage.retrievePrivateKey(latest.keyPath);
|
|
715
|
+
}
|
|
716
|
+
};
|
|
717
|
+
exports.AccessService = AccessService;
|
|
718
|
+
exports.AccessService = AccessService = AccessService_1 = __decorate([
|
|
719
|
+
(0, common_1.Injectable)(),
|
|
720
|
+
__param(0, (0, common_1.Inject)('IAccessRepository')),
|
|
721
|
+
__param(10, (0, typeorm_1.InjectRepository)(cluster_entity_1.ClusterEntity)),
|
|
722
|
+
__metadata("design:paramtypes", [Object, key_storage_service_1.KeyStorageService,
|
|
723
|
+
ssh_key_generator_service_1.SSHKeyGeneratorService,
|
|
724
|
+
bearerToken_service_1.BearerTokenService,
|
|
725
|
+
provider_credentials_repository_1.ProviderCredentialsRepository,
|
|
726
|
+
api_token_repository_1.ApiTokenRepository,
|
|
727
|
+
jwt_1.JwtService,
|
|
728
|
+
ssh_provider_factory_1.SSHProviderFactory,
|
|
729
|
+
provider_factory_1.ProviderFactory,
|
|
730
|
+
label_service_1.LabelService,
|
|
731
|
+
typeorm_2.Repository])
|
|
732
|
+
], AccessService);
|