@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,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider-side volume export primitive.
|
|
3
|
+
*
|
|
4
|
+
* One operation — `createExport` — moves data out of a live PVC into a sink.
|
|
5
|
+
* Two sink kinds are supported:
|
|
6
|
+
*
|
|
7
|
+
* - `pvc-clone` : sink is a fresh PVC in the same cluster (snapshot use case)
|
|
8
|
+
* - `s3-archive` : sink is an object-store bucket (backup / DR use case)
|
|
9
|
+
*
|
|
10
|
+
* Both are realised today via the universal copy-pod pattern (a Job that
|
|
11
|
+
* mounts source + target and streams data). Provider implementations may
|
|
12
|
+
* specialize a sink in the future (e.g. native CSI VolumeSnapshot when we
|
|
13
|
+
* eventually move PVCs off `local-path` onto a real CSI driver) without
|
|
14
|
+
* changing this contract.
|
|
15
|
+
*
|
|
16
|
+
* The user-facing surfaces ("snapshots", "backups") are thin services on
|
|
17
|
+
* top of this primitive — see VolumeSnapshotsService and VolumeBackupsService
|
|
18
|
+
* in the applications module.
|
|
19
|
+
*/
|
|
20
|
+
export type ExportSinkKind = 'pvc-clone' | 's3-archive';
|
|
21
|
+
export interface VolumeExportCapabilities {
|
|
22
|
+
/**
|
|
23
|
+
* True when retaining many exports is cheap (incremental / dedup-friendly).
|
|
24
|
+
* Today both providers go through copy-pod, so `pvc-clone` retention is
|
|
25
|
+
* always full-volume billed. `s3-archive` via restic gets dedup for free.
|
|
26
|
+
*/
|
|
27
|
+
pvcCloneSupportsCheapRetention: boolean;
|
|
28
|
+
s3ArchiveSupportsCheapRetention: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Approximate price for retaining an export, in EUR per GB per month.
|
|
31
|
+
* For pvc-clone this is the volume rate; for s3-archive this is the
|
|
32
|
+
* bucket rate (provider- and class-dependent).
|
|
33
|
+
*/
|
|
34
|
+
pvcClonePricePerGbMonthEur: number | null;
|
|
35
|
+
s3ArchivePricePerGbMonthEur: number | null;
|
|
36
|
+
}
|
|
37
|
+
interface ExportInputBase {
|
|
38
|
+
/** Kubeconfig of the workload cluster where the source PVC lives. */
|
|
39
|
+
kubeconfig: string;
|
|
40
|
+
/** Namespace of the source PVC. */
|
|
41
|
+
namespace: string;
|
|
42
|
+
/** Source PVC name. */
|
|
43
|
+
sourcePvcName: string;
|
|
44
|
+
/** Logical export name (cluster-unique within the chosen sink space). */
|
|
45
|
+
exportName: string;
|
|
46
|
+
/**
|
|
47
|
+
* Labels applied to every Flui-managed resource the export materialises
|
|
48
|
+
* (the sink PVC, the copy Job, the S3 object metadata, …). Always
|
|
49
|
+
* populated by Flui with `flui.cloud/managed-by=flui-cloud`,
|
|
50
|
+
* `flui-app-id=<id>`, and a sink discriminator so the reaper can
|
|
51
|
+
* identify orphans.
|
|
52
|
+
*/
|
|
53
|
+
labels: Record<string, string>;
|
|
54
|
+
}
|
|
55
|
+
export interface PvcCloneExportInput extends ExportInputBase {
|
|
56
|
+
sink: 'pvc-clone';
|
|
57
|
+
/** Storage class for the destination PVC. Defaults to the source's. */
|
|
58
|
+
destStorageClass?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface S3ArchiveExportInput extends ExportInputBase {
|
|
61
|
+
sink: 's3-archive';
|
|
62
|
+
/** Destination bucket. Caller resolves credentials separately. */
|
|
63
|
+
bucket: string;
|
|
64
|
+
/** Object key prefix inside the bucket (e.g. `flui/<cluster>/<app>/<ts>/`). */
|
|
65
|
+
keyPrefix: string;
|
|
66
|
+
/** S3 endpoint URL (compatible with AWS, MinIO, R2, B2, …). */
|
|
67
|
+
endpoint: string;
|
|
68
|
+
/** Region. Empty string OK for non-AWS endpoints. */
|
|
69
|
+
region: string;
|
|
70
|
+
/** Access credentials. Read by the copy-pod via env vars only. */
|
|
71
|
+
accessKeyId: string;
|
|
72
|
+
secretAccessKey: string;
|
|
73
|
+
}
|
|
74
|
+
export type CreateExportInput = PvcCloneExportInput | S3ArchiveExportInput;
|
|
75
|
+
export interface ExportResult {
|
|
76
|
+
/** Stable identifier of the export resource. For pvc-clone: clone PVC name. For s3-archive: full s3 URI of the manifest object. */
|
|
77
|
+
exportId: string;
|
|
78
|
+
/** Sink kind, mirrors the input. */
|
|
79
|
+
sink: ExportSinkKind;
|
|
80
|
+
/** Namespace of the source PVC (and of the clone PVC for pvc-clone). */
|
|
81
|
+
namespace: string;
|
|
82
|
+
/** Source PVC declared size in GB (spec.resources.requests.storage). */
|
|
83
|
+
sourceSizeGb: number;
|
|
84
|
+
/**
|
|
85
|
+
* Actual bytes written by the copy-pod / uploaded to S3, measured live
|
|
86
|
+
* during the export run. Reflects real on-disk / on-bucket usage —
|
|
87
|
+
* typically much smaller than `sourceSizeGb * 1e9`.
|
|
88
|
+
*/
|
|
89
|
+
actualBytes?: number;
|
|
90
|
+
/** ISO 8601 timestamp. */
|
|
91
|
+
createdAt: string;
|
|
92
|
+
/** Provider-side ready state — true once the export can be restored from. */
|
|
93
|
+
ready: boolean;
|
|
94
|
+
}
|
|
95
|
+
export interface ListExportsInput {
|
|
96
|
+
kubeconfig: string;
|
|
97
|
+
/** Restrict to one sink kind. When omitted, all kinds are returned. */
|
|
98
|
+
sink?: ExportSinkKind;
|
|
99
|
+
namespace?: string;
|
|
100
|
+
/** Optional label selector (e.g. `flui-app-id=<id>`). */
|
|
101
|
+
labelSelector?: string;
|
|
102
|
+
}
|
|
103
|
+
export interface ExportSummary {
|
|
104
|
+
exportId: string;
|
|
105
|
+
sink: ExportSinkKind;
|
|
106
|
+
namespace: string;
|
|
107
|
+
sourcePvcName?: string;
|
|
108
|
+
appId?: string;
|
|
109
|
+
/** Source PVC declared size in GB (spec.resources.requests.storage). */
|
|
110
|
+
sizeGb?: number;
|
|
111
|
+
/** Actual on-disk / on-bucket bytes when known. */
|
|
112
|
+
actualBytes?: number;
|
|
113
|
+
createdAt: string;
|
|
114
|
+
ready: boolean;
|
|
115
|
+
labels: Record<string, string>;
|
|
116
|
+
}
|
|
117
|
+
export interface DeleteExportInput {
|
|
118
|
+
kubeconfig: string;
|
|
119
|
+
namespace: string;
|
|
120
|
+
exportId: string;
|
|
121
|
+
sink: ExportSinkKind;
|
|
122
|
+
ignoreNotFound?: boolean;
|
|
123
|
+
/**
|
|
124
|
+
* For s3-archive deletes: same S3 credentials needed to issue the
|
|
125
|
+
* DeleteObject calls. Caller resolves separately. Ignored for pvc-clone.
|
|
126
|
+
*/
|
|
127
|
+
s3?: {
|
|
128
|
+
bucket: string;
|
|
129
|
+
endpoint: string;
|
|
130
|
+
region: string;
|
|
131
|
+
accessKeyId: string;
|
|
132
|
+
secretAccessKey: string;
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export interface RestorePvcFromExportInput {
|
|
136
|
+
kubeconfig: string;
|
|
137
|
+
namespace: string;
|
|
138
|
+
exportId: string;
|
|
139
|
+
sink: ExportSinkKind;
|
|
140
|
+
/** Desired name of the new PVC. */
|
|
141
|
+
newPvcName: string;
|
|
142
|
+
/** Storage class for the new PVC. */
|
|
143
|
+
storageClassName: string;
|
|
144
|
+
/** Storage size for the new PVC (must be >= source size). */
|
|
145
|
+
sizeGb: number;
|
|
146
|
+
/** Optional node hint. */
|
|
147
|
+
preferredNode?: string;
|
|
148
|
+
/** Labels applied to the new PVC. */
|
|
149
|
+
labels: Record<string, string>;
|
|
150
|
+
/** Same shape as DeleteExportInput.s3, only required for sink=s3-archive. */
|
|
151
|
+
s3?: DeleteExportInput['s3'];
|
|
152
|
+
}
|
|
153
|
+
export interface IVolumeExport {
|
|
154
|
+
readonly capabilities: VolumeExportCapabilities;
|
|
155
|
+
createExport(input: CreateExportInput): Promise<ExportResult>;
|
|
156
|
+
listExports(input: ListExportsInput): Promise<ExportSummary[]>;
|
|
157
|
+
deleteExport(input: DeleteExportInput): Promise<void>;
|
|
158
|
+
restoreFromExport(input: RestorePvcFromExportInput): Promise<{
|
|
159
|
+
pvcName: string;
|
|
160
|
+
}>;
|
|
161
|
+
}
|
|
162
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Provider-side volume export primitive.
|
|
4
|
+
*
|
|
5
|
+
* One operation — `createExport` — moves data out of a live PVC into a sink.
|
|
6
|
+
* Two sink kinds are supported:
|
|
7
|
+
*
|
|
8
|
+
* - `pvc-clone` : sink is a fresh PVC in the same cluster (snapshot use case)
|
|
9
|
+
* - `s3-archive` : sink is an object-store bucket (backup / DR use case)
|
|
10
|
+
*
|
|
11
|
+
* Both are realised today via the universal copy-pod pattern (a Job that
|
|
12
|
+
* mounts source + target and streams data). Provider implementations may
|
|
13
|
+
* specialize a sink in the future (e.g. native CSI VolumeSnapshot when we
|
|
14
|
+
* eventually move PVCs off `local-path` onto a real CSI driver) without
|
|
15
|
+
* changing this contract.
|
|
16
|
+
*
|
|
17
|
+
* The user-facing surfaces ("snapshots", "backups") are thin services on
|
|
18
|
+
* top of this primitive — see VolumeSnapshotsService and VolumeBackupsService
|
|
19
|
+
* in the applications module.
|
|
20
|
+
*/
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider-side volume operations: snapshot creation, listing, deletion, and
|
|
3
|
+
* restore-to-new-PVC. Abstracts over the asymmetry between providers that
|
|
4
|
+
* support native CSI VolumeSnapshot (Scaleway, OVH, IONOS) and those that
|
|
5
|
+
* don't (Hetzner — see csi-driver issue #88, no snapshot/clone support).
|
|
6
|
+
*
|
|
7
|
+
* The user-facing terminology is uniform ("snapshot"), but on providers
|
|
8
|
+
* without native support the implementation may degrade to a labeled PVC
|
|
9
|
+
* clone via the copy-pod pattern (a Job that mounts source + dest PVC and
|
|
10
|
+
* tars data across).
|
|
11
|
+
*
|
|
12
|
+
* The capabilities object lets higher-level services (CLI, cost estimator,
|
|
13
|
+
* migration orchestrator) decide which operations to expose and how much
|
|
14
|
+
* they will cost.
|
|
15
|
+
*/
|
|
16
|
+
export interface VolumeOperationsCapabilities {
|
|
17
|
+
/**
|
|
18
|
+
* True when the storage backend supports cheap retention of snapshots as a
|
|
19
|
+
* separate object (e.g. Scaleway Block Storage Snapshots at ~€0.032/GB-mo).
|
|
20
|
+
* False on providers where a "snapshot" is a full PVC clone billed at the
|
|
21
|
+
* full volume rate (e.g. Hetzner). When false, snapshot CLI commands
|
|
22
|
+
* should warn the user about the per-snapshot cost and the orchestrator
|
|
23
|
+
* should prefer one-shot migration over keeping snapshots around.
|
|
24
|
+
*/
|
|
25
|
+
supportsSnapshotRetention: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* True when the CSI driver implements the standard
|
|
28
|
+
* `snapshot.storage.k8s.io/v1` VolumeSnapshot API. False on Hetzner.
|
|
29
|
+
* Drives the migration strategy selection: CSI snapshot vs copy-pod.
|
|
30
|
+
*/
|
|
31
|
+
supportsCsiSnapshot: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* True when the only viable migration strategy is the universal copy-pod
|
|
34
|
+
* fallback (a Job that copies bytes between PVCs). Mutually exclusive
|
|
35
|
+
* with supportsCsiSnapshot in the current design.
|
|
36
|
+
*/
|
|
37
|
+
requiresCopyPodFallback: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Approximate price for retaining a snapshot, in EUR per GB per month.
|
|
40
|
+
* Null when retention is not supported (snapshot price equals volume
|
|
41
|
+
* price in that case — surfaced separately by the cost estimator).
|
|
42
|
+
*/
|
|
43
|
+
snapshotCostPerGbMonthEur: number | null;
|
|
44
|
+
}
|
|
45
|
+
export interface CreateSnapshotInput {
|
|
46
|
+
/** Kubeconfig of the workload cluster where the source PVC lives. */
|
|
47
|
+
kubeconfig: string;
|
|
48
|
+
/** Namespace of the source PVC. */
|
|
49
|
+
namespace: string;
|
|
50
|
+
/** Source PVC name (the live volume to be snapshotted). */
|
|
51
|
+
sourcePvcName: string;
|
|
52
|
+
/** Desired snapshot resource name (cluster-unique within namespace). */
|
|
53
|
+
snapshotName: string;
|
|
54
|
+
/**
|
|
55
|
+
* Labels applied to the snapshot resource. Always populated by Flui with
|
|
56
|
+
* `flui.cloud/managed-by=flui-cloud`, `flui-app-id=<id>`,
|
|
57
|
+
* `flui.cloud/created-by=<job-id>` so the reaper can identify orphans.
|
|
58
|
+
*/
|
|
59
|
+
labels: Record<string, string>;
|
|
60
|
+
}
|
|
61
|
+
export interface SnapshotResult {
|
|
62
|
+
/**
|
|
63
|
+
* Unique identifier of the created snapshot resource. On providers with
|
|
64
|
+
* CSI snapshot this is the VolumeSnapshot name; on copy-pod fallback it
|
|
65
|
+
* is the cloned PVC name.
|
|
66
|
+
*/
|
|
67
|
+
snapshotId: string;
|
|
68
|
+
/** Provider implementation discriminant: 'csi-snapshot' | 'pvc-clone'. */
|
|
69
|
+
kind: SnapshotKind;
|
|
70
|
+
/** Namespace where the snapshot resource lives. */
|
|
71
|
+
namespace: string;
|
|
72
|
+
/** Size of the source PVC in GB at snapshot time. Used for cost reporting. */
|
|
73
|
+
sourceSizeGb: number;
|
|
74
|
+
/** Snapshot creation timestamp (ISO 8601). */
|
|
75
|
+
createdAt: string;
|
|
76
|
+
/** Provider-side ready state — true once the snapshot can be used to provision a new PVC. */
|
|
77
|
+
ready: boolean;
|
|
78
|
+
}
|
|
79
|
+
export type SnapshotKind = 'csi-snapshot' | 'pvc-clone';
|
|
80
|
+
export interface ListSnapshotsInput {
|
|
81
|
+
kubeconfig: string;
|
|
82
|
+
/** Optional namespace filter. When omitted, lists across all namespaces. */
|
|
83
|
+
namespace?: string;
|
|
84
|
+
/**
|
|
85
|
+
* Optional label selector to narrow the list (e.g. `flui-app-id=<id>` for
|
|
86
|
+
* per-app listing).
|
|
87
|
+
*/
|
|
88
|
+
labelSelector?: string;
|
|
89
|
+
}
|
|
90
|
+
export interface SnapshotSummary {
|
|
91
|
+
snapshotId: string;
|
|
92
|
+
kind: SnapshotKind;
|
|
93
|
+
namespace: string;
|
|
94
|
+
/** Source PVC name, when known from labels or annotations. */
|
|
95
|
+
sourcePvcName?: string;
|
|
96
|
+
/** flui-app-id label value, when present. */
|
|
97
|
+
appId?: string;
|
|
98
|
+
/** Size of the snapshot data in GB (best-effort; for csi-snapshot this is the restoreSize). */
|
|
99
|
+
sizeGb?: number;
|
|
100
|
+
/** Snapshot creation timestamp (ISO 8601). */
|
|
101
|
+
createdAt: string;
|
|
102
|
+
/** Whether the snapshot is currently usable to provision a new PVC. */
|
|
103
|
+
ready: boolean;
|
|
104
|
+
/** All labels on the snapshot resource. */
|
|
105
|
+
labels: Record<string, string>;
|
|
106
|
+
}
|
|
107
|
+
export interface CreatePvcFromSnapshotInput {
|
|
108
|
+
kubeconfig: string;
|
|
109
|
+
namespace: string;
|
|
110
|
+
/** Source snapshot to restore from. */
|
|
111
|
+
snapshotId: string;
|
|
112
|
+
/** Desired name of the new PVC. */
|
|
113
|
+
newPvcName: string;
|
|
114
|
+
/** Storage class for the new PVC. */
|
|
115
|
+
storageClassName: string;
|
|
116
|
+
/** Storage size for the new PVC (must be >= source snapshot size). */
|
|
117
|
+
sizeGb: number;
|
|
118
|
+
/**
|
|
119
|
+
* Optional node hint. The orchestrator typically wants the new PVC to
|
|
120
|
+
* bind to a specific node (the migration target). The implementation may
|
|
121
|
+
* use this hint via WaitForFirstConsumer + a same-node placeholder pod.
|
|
122
|
+
*/
|
|
123
|
+
preferredNode?: string;
|
|
124
|
+
/**
|
|
125
|
+
* Labels applied to the new PVC. Same convention as snapshot labels.
|
|
126
|
+
*/
|
|
127
|
+
labels: Record<string, string>;
|
|
128
|
+
}
|
|
129
|
+
export interface DeleteSnapshotInput {
|
|
130
|
+
kubeconfig: string;
|
|
131
|
+
namespace: string;
|
|
132
|
+
snapshotId: string;
|
|
133
|
+
/** When true, ignore "not found" and return success. */
|
|
134
|
+
ignoreNotFound?: boolean;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Provider-side volume operations contract. Each cloud provider that hosts
|
|
138
|
+
* Flui workload clusters provides an implementation. The orchestrator
|
|
139
|
+
* consumes this interface only — it does not branch on provider type.
|
|
140
|
+
*/
|
|
141
|
+
export interface IVolumeOperations {
|
|
142
|
+
readonly capabilities: VolumeOperationsCapabilities;
|
|
143
|
+
createSnapshot(input: CreateSnapshotInput): Promise<SnapshotResult>;
|
|
144
|
+
deleteSnapshot(input: DeleteSnapshotInput): Promise<void>;
|
|
145
|
+
listSnapshots(input: ListSnapshotsInput): Promise<SnapshotSummary[]>;
|
|
146
|
+
createPvcFromSnapshot(input: CreatePvcFromSnapshotInput): Promise<{
|
|
147
|
+
pvcName: string;
|
|
148
|
+
}>;
|
|
149
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Provider-side volume operations: snapshot creation, listing, deletion, and
|
|
4
|
+
* restore-to-new-PVC. Abstracts over the asymmetry between providers that
|
|
5
|
+
* support native CSI VolumeSnapshot (Scaleway, OVH, IONOS) and those that
|
|
6
|
+
* don't (Hetzner — see csi-driver issue #88, no snapshot/clone support).
|
|
7
|
+
*
|
|
8
|
+
* The user-facing terminology is uniform ("snapshot"), but on providers
|
|
9
|
+
* without native support the implementation may degrade to a labeled PVC
|
|
10
|
+
* clone via the copy-pod pattern (a Job that mounts source + dest PVC and
|
|
11
|
+
* tars data across).
|
|
12
|
+
*
|
|
13
|
+
* The capabilities object lets higher-level services (CLI, cost estimator,
|
|
14
|
+
* migration orchestrator) decide which operations to expose and how much
|
|
15
|
+
* they will cost.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NodeSizeDto } from '../dto/node-size.dto';
|
|
2
|
+
import { ListServerTypes200ResponseServerTypesInner } from '../../../modules/providers/implementations/hetzner/generated';
|
|
3
|
+
export declare class NodeSizeMapper {
|
|
4
|
+
/**
|
|
5
|
+
* Maps Hetzner ServerType to NodeSizeDto
|
|
6
|
+
*/
|
|
7
|
+
mapHetznerServerTypeToDto(serverType: ListServerTypes200ResponseServerTypesInner): NodeSizeDto;
|
|
8
|
+
/**
|
|
9
|
+
* Maps Hetzner price data to NodeSizePriceDto
|
|
10
|
+
*/
|
|
11
|
+
private mapPrice;
|
|
12
|
+
/**
|
|
13
|
+
* Maps Hetzner location data to NodeSizeLocationDto
|
|
14
|
+
*/
|
|
15
|
+
private mapLocation;
|
|
16
|
+
/**
|
|
17
|
+
* Maps multiple Hetzner ServerTypes to DTOs
|
|
18
|
+
*/
|
|
19
|
+
mapHetznerServerTypesToDtos(serverTypes: ListServerTypes200ResponseServerTypesInner[]): NodeSizeDto[];
|
|
20
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.NodeSizeMapper = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let NodeSizeMapper = class NodeSizeMapper {
|
|
12
|
+
/**
|
|
13
|
+
* Maps Hetzner ServerType to NodeSizeDto
|
|
14
|
+
*/
|
|
15
|
+
mapHetznerServerTypeToDto(serverType) {
|
|
16
|
+
return {
|
|
17
|
+
id: serverType.id.toString(),
|
|
18
|
+
name: serverType.name,
|
|
19
|
+
description: serverType.description,
|
|
20
|
+
cores: serverType.cores,
|
|
21
|
+
memory: serverType.memory,
|
|
22
|
+
disk: serverType.disk,
|
|
23
|
+
storageType: serverType.storage_type,
|
|
24
|
+
cpuType: serverType.cpu_type,
|
|
25
|
+
architecture: serverType.architecture,
|
|
26
|
+
deprecated: serverType.deprecated,
|
|
27
|
+
bareMetal: false,
|
|
28
|
+
managedFirewall: true,
|
|
29
|
+
supportsHourlyBilling: true,
|
|
30
|
+
prices: serverType.prices.map((price) => this.mapPrice(price)),
|
|
31
|
+
locations: serverType.locations?.map((loc) => this.mapLocation(loc)) || [],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Maps Hetzner price data to NodeSizePriceDto
|
|
36
|
+
*/
|
|
37
|
+
mapPrice(price) {
|
|
38
|
+
return {
|
|
39
|
+
location: price.location,
|
|
40
|
+
priceHourly: {
|
|
41
|
+
net: price.price_hourly.net,
|
|
42
|
+
gross: price.price_hourly.gross,
|
|
43
|
+
},
|
|
44
|
+
priceMonthly: {
|
|
45
|
+
net: price.price_monthly.net,
|
|
46
|
+
gross: price.price_monthly.gross,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Maps Hetzner location data to NodeSizeLocationDto
|
|
52
|
+
*/
|
|
53
|
+
mapLocation(location) {
|
|
54
|
+
return {
|
|
55
|
+
id: location.id,
|
|
56
|
+
name: location.name,
|
|
57
|
+
deprecation: location.deprecation
|
|
58
|
+
? {
|
|
59
|
+
unavailable_after: location.deprecation.unavailable_after,
|
|
60
|
+
announced: location.deprecation.announced,
|
|
61
|
+
}
|
|
62
|
+
: null,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Maps multiple Hetzner ServerTypes to DTOs
|
|
67
|
+
*/
|
|
68
|
+
mapHetznerServerTypesToDtos(serverTypes) {
|
|
69
|
+
return serverTypes.map((st) => this.mapHetznerServerTypeToDto(st));
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
exports.NodeSizeMapper = NodeSizeMapper;
|
|
73
|
+
exports.NodeSizeMapper = NodeSizeMapper = __decorate([
|
|
74
|
+
(0, common_1.Injectable)()
|
|
75
|
+
], NodeSizeMapper);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PricingDto } from '../dto/pricing.dto';
|
|
2
|
+
import { CloudProvider } from '../enums/cloud-provider.enum';
|
|
3
|
+
import { GetPricing200ResponsePricing } from '../../../modules/providers/implementations/hetzner/generated';
|
|
4
|
+
export declare class PricingMapper {
|
|
5
|
+
/**
|
|
6
|
+
* Maps Hetzner pricing data to PricingDto
|
|
7
|
+
* Optionally filters by region and nodeSize
|
|
8
|
+
*/
|
|
9
|
+
mapHetznerPricingToDto(pricing: GetPricing200ResponsePricing, provider: CloudProvider, regionFilter?: string, nodeSizeFilter?: string): PricingDto;
|
|
10
|
+
/**
|
|
11
|
+
* Maps a single server type pricing
|
|
12
|
+
*/
|
|
13
|
+
private mapServerTypePricing;
|
|
14
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.PricingMapper = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let PricingMapper = class PricingMapper {
|
|
12
|
+
/**
|
|
13
|
+
* Maps Hetzner pricing data to PricingDto
|
|
14
|
+
* Optionally filters by region and nodeSize
|
|
15
|
+
*/
|
|
16
|
+
mapHetznerPricingToDto(pricing, provider, regionFilter, nodeSizeFilter) {
|
|
17
|
+
let serverTypes = pricing.server_types;
|
|
18
|
+
// Filter by nodeSize (server type name)
|
|
19
|
+
if (nodeSizeFilter) {
|
|
20
|
+
serverTypes = serverTypes.filter((st) => st.name.toLowerCase() === nodeSizeFilter.toLowerCase());
|
|
21
|
+
}
|
|
22
|
+
// Map server types and optionally filter prices by region
|
|
23
|
+
const mappedServerTypes = serverTypes.map((st) => this.mapServerTypePricing(st, regionFilter));
|
|
24
|
+
return {
|
|
25
|
+
provider: provider.toLowerCase(),
|
|
26
|
+
currency: pricing.currency,
|
|
27
|
+
vatRate: pricing.vat_rate,
|
|
28
|
+
serverTypes: mappedServerTypes,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Maps a single server type pricing
|
|
33
|
+
*/
|
|
34
|
+
mapServerTypePricing(serverType, regionFilter) {
|
|
35
|
+
let prices = serverType.prices;
|
|
36
|
+
// Filter by region/location
|
|
37
|
+
if (regionFilter) {
|
|
38
|
+
prices = prices.filter((p) => p.location.toLowerCase() === regionFilter.toLowerCase());
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
id: serverType.id.toString(),
|
|
42
|
+
name: serverType.name,
|
|
43
|
+
prices: prices.map((price) => ({
|
|
44
|
+
location: price.location,
|
|
45
|
+
priceHourly: {
|
|
46
|
+
net: price.price_hourly.net,
|
|
47
|
+
gross: price.price_hourly.gross,
|
|
48
|
+
},
|
|
49
|
+
priceMonthly: {
|
|
50
|
+
net: price.price_monthly.net,
|
|
51
|
+
gross: price.price_monthly.gross,
|
|
52
|
+
},
|
|
53
|
+
})),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
exports.PricingMapper = PricingMapper;
|
|
58
|
+
exports.PricingMapper = PricingMapper = __decorate([
|
|
59
|
+
(0, common_1.Injectable)()
|
|
60
|
+
], PricingMapper);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared provider core module — contains only components with no storage dependencies.
|
|
3
|
+
* Used by both ProvidersModule (API) and CliProvidersModule (CLI).
|
|
4
|
+
*
|
|
5
|
+
* @Global() makes NodeSizeMapper, PricingMapper, LabelService (via CommonModule),
|
|
6
|
+
* CacheService, and ConfigService available to all provider implementation modules
|
|
7
|
+
* (HetznerProviderModule, ContaboProviderModule, etc.) without explicit imports.
|
|
8
|
+
*
|
|
9
|
+
* Does NOT include cloud provider services (Hetzner, Contabo) because they depend
|
|
10
|
+
* on ICredentialProvider which differs between API (DB) and CLI (file).
|
|
11
|
+
*/
|
|
12
|
+
export declare class ProviderCoreModule {
|
|
13
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ProviderCoreModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const config_1 = require("@nestjs/config");
|
|
12
|
+
const common_module_1 = require("../common/common.module");
|
|
13
|
+
const certificate_provider_factory_1 = require("./core/factories/certificate-provider.factory");
|
|
14
|
+
const tokens_1 = require("./core/tokens");
|
|
15
|
+
const certificate_provider_enum_1 = require("./enums/certificate-provider.enum");
|
|
16
|
+
const node_size_mapper_1 = require("./mappers/node-size.mapper");
|
|
17
|
+
const pricing_mapper_1 = require("./mappers/pricing.mapper");
|
|
18
|
+
const acme_certificate_service_1 = require("./services/acme-certificate.service");
|
|
19
|
+
/**
|
|
20
|
+
* Shared provider core module — contains only components with no storage dependencies.
|
|
21
|
+
* Used by both ProvidersModule (API) and CliProvidersModule (CLI).
|
|
22
|
+
*
|
|
23
|
+
* @Global() makes NodeSizeMapper, PricingMapper, LabelService (via CommonModule),
|
|
24
|
+
* CacheService, and ConfigService available to all provider implementation modules
|
|
25
|
+
* (HetznerProviderModule, ContaboProviderModule, etc.) without explicit imports.
|
|
26
|
+
*
|
|
27
|
+
* Does NOT include cloud provider services (Hetzner, Contabo) because they depend
|
|
28
|
+
* on ICredentialProvider which differs between API (DB) and CLI (file).
|
|
29
|
+
*/
|
|
30
|
+
let ProviderCoreModule = class ProviderCoreModule {
|
|
31
|
+
};
|
|
32
|
+
exports.ProviderCoreModule = ProviderCoreModule;
|
|
33
|
+
exports.ProviderCoreModule = ProviderCoreModule = __decorate([
|
|
34
|
+
(0, common_1.Global)(),
|
|
35
|
+
(0, common_1.Module)({
|
|
36
|
+
imports: [config_1.ConfigModule, common_module_1.CommonModule],
|
|
37
|
+
providers: [
|
|
38
|
+
node_size_mapper_1.NodeSizeMapper,
|
|
39
|
+
pricing_mapper_1.PricingMapper,
|
|
40
|
+
acme_certificate_service_1.AcmeCertificateService,
|
|
41
|
+
{
|
|
42
|
+
provide: tokens_1.CERTIFICATE_PROVIDER_REGISTRY,
|
|
43
|
+
useFactory: (service) => [
|
|
44
|
+
{ provider: certificate_provider_enum_1.CertificateProvider.LETS_ENCRYPT, service },
|
|
45
|
+
{ provider: certificate_provider_enum_1.CertificateProvider.LETS_ENCRYPT_STAGING, service },
|
|
46
|
+
],
|
|
47
|
+
inject: [acme_certificate_service_1.AcmeCertificateService],
|
|
48
|
+
},
|
|
49
|
+
certificate_provider_factory_1.CertificateProviderFactory,
|
|
50
|
+
],
|
|
51
|
+
exports: [
|
|
52
|
+
common_module_1.CommonModule,
|
|
53
|
+
node_size_mapper_1.NodeSizeMapper,
|
|
54
|
+
pricing_mapper_1.PricingMapper,
|
|
55
|
+
acme_certificate_service_1.AcmeCertificateService,
|
|
56
|
+
certificate_provider_factory_1.CertificateProviderFactory,
|
|
57
|
+
],
|
|
58
|
+
})
|
|
59
|
+
], ProviderCoreModule);
|