@factiii/stack 0.1.2
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/README.md +420 -0
- package/bin/factiii +229 -0
- package/dist/cli/check-config.d.ts +9 -0
- package/dist/cli/check-config.d.ts.map +1 -0
- package/dist/cli/check-config.js +19 -0
- package/dist/cli/check-config.js.map +1 -0
- package/dist/cli/deploy-secrets.d.ts +16 -0
- package/dist/cli/deploy-secrets.d.ts.map +1 -0
- package/dist/cli/deploy-secrets.js +227 -0
- package/dist/cli/deploy-secrets.js.map +1 -0
- package/dist/cli/deploy.d.ts +30 -0
- package/dist/cli/deploy.d.ts.map +1 -0
- package/dist/cli/deploy.js +306 -0
- package/dist/cli/deploy.js.map +1 -0
- package/dist/cli/deployer.d.ts +13 -0
- package/dist/cli/deployer.d.ts.map +1 -0
- package/dist/cli/deployer.js +21 -0
- package/dist/cli/deployer.js.map +1 -0
- package/dist/cli/dev-sync.d.ts +30 -0
- package/dist/cli/dev-sync.d.ts.map +1 -0
- package/dist/cli/dev-sync.js +500 -0
- package/dist/cli/dev-sync.js.map +1 -0
- package/dist/cli/execute-plugin-command.d.ts +25 -0
- package/dist/cli/execute-plugin-command.d.ts.map +1 -0
- package/dist/cli/execute-plugin-command.js +237 -0
- package/dist/cli/execute-plugin-command.js.map +1 -0
- package/dist/cli/fix.d.ts +22 -0
- package/dist/cli/fix.d.ts.map +1 -0
- package/dist/cli/fix.js +267 -0
- package/dist/cli/fix.js.map +1 -0
- package/dist/cli/index.d.ts +17 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +31 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init.d.ts +9 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +190 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/plugin-commands.d.ts +22 -0
- package/dist/cli/plugin-commands.d.ts.map +1 -0
- package/dist/cli/plugin-commands.js +121 -0
- package/dist/cli/plugin-commands.js.map +1 -0
- package/dist/cli/scan.d.ts +66 -0
- package/dist/cli/scan.d.ts.map +1 -0
- package/dist/cli/scan.js +511 -0
- package/dist/cli/scan.js.map +1 -0
- package/dist/cli/secrets.d.ts +19 -0
- package/dist/cli/secrets.d.ts.map +1 -0
- package/dist/cli/secrets.js +318 -0
- package/dist/cli/secrets.js.map +1 -0
- package/dist/cli/undeploy.d.ts +9 -0
- package/dist/cli/undeploy.d.ts.map +1 -0
- package/dist/cli/undeploy.js +95 -0
- package/dist/cli/undeploy.js.map +1 -0
- package/dist/cli/upgrade.d.ts +9 -0
- package/dist/cli/upgrade.d.ts.map +1 -0
- package/dist/cli/upgrade.js +24 -0
- package/dist/cli/upgrade.js.map +1 -0
- package/dist/cli/validate.d.ts +9 -0
- package/dist/cli/validate.d.ts.map +1 -0
- package/dist/cli/validate.js +20 -0
- package/dist/cli/validate.js.map +1 -0
- package/dist/generators/generate-factiii-auto.d.ts +31 -0
- package/dist/generators/generate-factiii-auto.d.ts.map +1 -0
- package/dist/generators/generate-factiii-auto.js +251 -0
- package/dist/generators/generate-factiii-auto.js.map +1 -0
- package/dist/generators/generate-factiii-yml.d.ts +23 -0
- package/dist/generators/generate-factiii-yml.d.ts.map +1 -0
- package/dist/generators/generate-factiii-yml.js +228 -0
- package/dist/generators/generate-factiii-yml.js.map +1 -0
- package/dist/generators/index.d.ts +8 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +14 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +90 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/addons/server-mode/index.d.ts +57 -0
- package/dist/plugins/addons/server-mode/index.d.ts.map +1 -0
- package/dist/plugins/addons/server-mode/index.js +136 -0
- package/dist/plugins/addons/server-mode/index.js.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/mac.d.ts +17 -0
- package/dist/plugins/addons/server-mode/scanfix/mac.d.ts.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/mac.js +461 -0
- package/dist/plugins/addons/server-mode/scanfix/mac.js.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/ubuntu.d.ts +12 -0
- package/dist/plugins/addons/server-mode/scanfix/ubuntu.d.ts.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/ubuntu.js +246 -0
- package/dist/plugins/addons/server-mode/scanfix/ubuntu.js.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/windows.d.ts +14 -0
- package/dist/plugins/addons/server-mode/scanfix/windows.d.ts.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/windows.js +113 -0
- package/dist/plugins/addons/server-mode/scanfix/windows.js.map +1 -0
- package/dist/plugins/approved.json +13 -0
- package/dist/plugins/frameworks/prisma-trpc/index.d.ts +65 -0
- package/dist/plugins/frameworks/prisma-trpc/index.d.ts.map +1 -0
- package/dist/plugins/frameworks/prisma-trpc/index.js +668 -0
- package/dist/plugins/frameworks/prisma-trpc/index.js.map +1 -0
- package/dist/plugins/index.d.ts +101 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +411 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/interfaces/addon.d.ts +43 -0
- package/dist/plugins/interfaces/addon.d.ts.map +1 -0
- package/dist/plugins/interfaces/addon.js +53 -0
- package/dist/plugins/interfaces/addon.js.map +1 -0
- package/dist/plugins/interfaces/framework.d.ts +43 -0
- package/dist/plugins/interfaces/framework.d.ts.map +1 -0
- package/dist/plugins/interfaces/framework.js +53 -0
- package/dist/plugins/interfaces/framework.js.map +1 -0
- package/dist/plugins/interfaces/index.d.ts +10 -0
- package/dist/plugins/interfaces/index.d.ts.map +1 -0
- package/dist/plugins/interfaces/index.js +17 -0
- package/dist/plugins/interfaces/index.js.map +1 -0
- package/dist/plugins/interfaces/pipeline.d.ts +78 -0
- package/dist/plugins/interfaces/pipeline.d.ts.map +1 -0
- package/dist/plugins/interfaces/pipeline.js +82 -0
- package/dist/plugins/interfaces/pipeline.js.map +1 -0
- package/dist/plugins/interfaces/server.d.ts +65 -0
- package/dist/plugins/interfaces/server.d.ts.map +1 -0
- package/dist/plugins/interfaces/server.js +72 -0
- package/dist/plugins/interfaces/server.js.map +1 -0
- package/dist/plugins/pipelines/aws/configs/ec2.d.ts +9 -0
- package/dist/plugins/pipelines/aws/configs/ec2.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/configs/ec2.js +34 -0
- package/dist/plugins/pipelines/aws/configs/ec2.js.map +1 -0
- package/dist/plugins/pipelines/aws/configs/free-tier.d.ts +13 -0
- package/dist/plugins/pipelines/aws/configs/free-tier.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/configs/free-tier.js +86 -0
- package/dist/plugins/pipelines/aws/configs/free-tier.js.map +1 -0
- package/dist/plugins/pipelines/aws/configs/index.d.ts +14 -0
- package/dist/plugins/pipelines/aws/configs/index.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/configs/index.js +21 -0
- package/dist/plugins/pipelines/aws/configs/index.js.map +1 -0
- package/dist/plugins/pipelines/aws/configs/types.d.ts +36 -0
- package/dist/plugins/pipelines/aws/configs/types.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/configs/types.js +9 -0
- package/dist/plugins/pipelines/aws/configs/types.js.map +1 -0
- package/dist/plugins/pipelines/aws/dev.d.ts +10 -0
- package/dist/plugins/pipelines/aws/dev.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/dev.js +70 -0
- package/dist/plugins/pipelines/aws/dev.js.map +1 -0
- package/dist/plugins/pipelines/aws/index.d.ts +118 -0
- package/dist/plugins/pipelines/aws/index.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/index.js +346 -0
- package/dist/plugins/pipelines/aws/index.js.map +1 -0
- package/dist/plugins/pipelines/aws/prod.d.ts +19 -0
- package/dist/plugins/pipelines/aws/prod.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/prod.js +362 -0
- package/dist/plugins/pipelines/aws/prod.js.map +1 -0
- package/dist/plugins/pipelines/aws/scanfix/aws-cli.d.ts +7 -0
- package/dist/plugins/pipelines/aws/scanfix/aws-cli.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/scanfix/aws-cli.js +31 -0
- package/dist/plugins/pipelines/aws/scanfix/aws-cli.js.map +1 -0
- package/dist/plugins/pipelines/aws/scanfix/config.d.ts +7 -0
- package/dist/plugins/pipelines/aws/scanfix/config.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/scanfix/config.js +134 -0
- package/dist/plugins/pipelines/aws/scanfix/config.js.map +1 -0
- package/dist/plugins/pipelines/factiii/github-secrets-store.d.ts +65 -0
- package/dist/plugins/pipelines/factiii/github-secrets-store.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/github-secrets-store.js +221 -0
- package/dist/plugins/pipelines/factiii/github-secrets-store.js.map +1 -0
- package/dist/plugins/pipelines/factiii/index.d.ts +195 -0
- package/dist/plugins/pipelines/factiii/index.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/index.js +862 -0
- package/dist/plugins/pipelines/factiii/index.js.map +1 -0
- package/dist/plugins/pipelines/factiii/prod.d.ts +17 -0
- package/dist/plugins/pipelines/factiii/prod.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/prod.js +282 -0
- package/dist/plugins/pipelines/factiii/prod.js.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/config.d.ts +7 -0
- package/dist/plugins/pipelines/factiii/scanfix/config.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/config.js +80 -0
- package/dist/plugins/pipelines/factiii/scanfix/config.js.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/github-cli.d.ts +7 -0
- package/dist/plugins/pipelines/factiii/scanfix/github-cli.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/github-cli.js +43 -0
- package/dist/plugins/pipelines/factiii/scanfix/github-cli.js.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/secrets.d.ts +7 -0
- package/dist/plugins/pipelines/factiii/scanfix/secrets.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/secrets.js +237 -0
- package/dist/plugins/pipelines/factiii/scanfix/secrets.js.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/workflows.d.ts +7 -0
- package/dist/plugins/pipelines/factiii/scanfix/workflows.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/workflows.js +169 -0
- package/dist/plugins/pipelines/factiii/scanfix/workflows.js.map +1 -0
- package/dist/plugins/pipelines/factiii/staging.d.ts +25 -0
- package/dist/plugins/pipelines/factiii/staging.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/staging.js +223 -0
- package/dist/plugins/pipelines/factiii/staging.js.map +1 -0
- package/dist/plugins/pipelines/factiii/utils/detection.d.ts +36 -0
- package/dist/plugins/pipelines/factiii/utils/detection.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/utils/detection.js +140 -0
- package/dist/plugins/pipelines/factiii/utils/detection.js.map +1 -0
- package/dist/plugins/pipelines/factiii/utils/workflows.d.ts +16 -0
- package/dist/plugins/pipelines/factiii/utils/workflows.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/utils/workflows.js +129 -0
- package/dist/plugins/pipelines/factiii/utils/workflows.js.map +1 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-cicd-prod.yml +112 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-cicd-staging.yml +112 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-command.yml +130 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-deploy.yml +198 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-dev-sync.yml +179 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-fix.yml +176 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-scan.yml +176 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-undeploy.yml +95 -0
- package/dist/plugins/servers/amazon-linux/index.d.ts +93 -0
- package/dist/plugins/servers/amazon-linux/index.d.ts.map +1 -0
- package/dist/plugins/servers/amazon-linux/index.js +217 -0
- package/dist/plugins/servers/amazon-linux/index.js.map +1 -0
- package/dist/plugins/servers/mac/dev.d.ts +10 -0
- package/dist/plugins/servers/mac/dev.d.ts.map +1 -0
- package/dist/plugins/servers/mac/dev.js +71 -0
- package/dist/plugins/servers/mac/dev.js.map +1 -0
- package/dist/plugins/servers/mac/index.d.ts +101 -0
- package/dist/plugins/servers/mac/index.d.ts.map +1 -0
- package/dist/plugins/servers/mac/index.js +257 -0
- package/dist/plugins/servers/mac/index.js.map +1 -0
- package/dist/plugins/servers/mac/scanfix/config.d.ts +7 -0
- package/dist/plugins/servers/mac/scanfix/config.d.ts.map +1 -0
- package/dist/plugins/servers/mac/scanfix/config.js +168 -0
- package/dist/plugins/servers/mac/scanfix/config.js.map +1 -0
- package/dist/plugins/servers/mac/scanfix/containers.d.ts +7 -0
- package/dist/plugins/servers/mac/scanfix/containers.d.ts.map +1 -0
- package/dist/plugins/servers/mac/scanfix/containers.js +167 -0
- package/dist/plugins/servers/mac/scanfix/containers.js.map +1 -0
- package/dist/plugins/servers/mac/scanfix/system.d.ts +7 -0
- package/dist/plugins/servers/mac/scanfix/system.d.ts.map +1 -0
- package/dist/plugins/servers/mac/scanfix/system.js +144 -0
- package/dist/plugins/servers/mac/scanfix/system.js.map +1 -0
- package/dist/plugins/servers/mac/staging.d.ts +21 -0
- package/dist/plugins/servers/mac/staging.d.ts.map +1 -0
- package/dist/plugins/servers/mac/staging.js +708 -0
- package/dist/plugins/servers/mac/staging.js.map +1 -0
- package/dist/plugins/servers/ubuntu/index.d.ts +93 -0
- package/dist/plugins/servers/ubuntu/index.d.ts.map +1 -0
- package/dist/plugins/servers/ubuntu/index.js +224 -0
- package/dist/plugins/servers/ubuntu/index.js.map +1 -0
- package/dist/plugins/servers/windows/index.d.ts +90 -0
- package/dist/plugins/servers/windows/index.d.ts.map +1 -0
- package/dist/plugins/servers/windows/index.js +205 -0
- package/dist/plugins/servers/windows/index.js.map +1 -0
- package/dist/scanfix/commands/index.d.ts +27 -0
- package/dist/scanfix/commands/index.d.ts.map +1 -0
- package/dist/scanfix/commands/index.js +97 -0
- package/dist/scanfix/commands/index.js.map +1 -0
- package/dist/scanfix/commands/mac.d.ts +11 -0
- package/dist/scanfix/commands/mac.d.ts.map +1 -0
- package/dist/scanfix/commands/mac.js +31 -0
- package/dist/scanfix/commands/mac.js.map +1 -0
- package/dist/scanfix/commands/ubuntu.d.ts +11 -0
- package/dist/scanfix/commands/ubuntu.d.ts.map +1 -0
- package/dist/scanfix/commands/ubuntu.js +30 -0
- package/dist/scanfix/commands/ubuntu.js.map +1 -0
- package/dist/scanfix/fixes/certbot.d.ts +25 -0
- package/dist/scanfix/fixes/certbot.d.ts.map +1 -0
- package/dist/scanfix/fixes/certbot.js +136 -0
- package/dist/scanfix/fixes/certbot.js.map +1 -0
- package/dist/scanfix/fixes/docker.d.ts +29 -0
- package/dist/scanfix/fixes/docker.d.ts.map +1 -0
- package/dist/scanfix/fixes/docker.js +149 -0
- package/dist/scanfix/fixes/docker.js.map +1 -0
- package/dist/scanfix/fixes/git.d.ts +20 -0
- package/dist/scanfix/fixes/git.d.ts.map +1 -0
- package/dist/scanfix/fixes/git.js +71 -0
- package/dist/scanfix/fixes/git.js.map +1 -0
- package/dist/scanfix/fixes/index.d.ts +11 -0
- package/dist/scanfix/fixes/index.d.ts.map +1 -0
- package/dist/scanfix/fixes/index.js +27 -0
- package/dist/scanfix/fixes/index.js.map +1 -0
- package/dist/scanfix/fixes/node.d.ts +20 -0
- package/dist/scanfix/fixes/node.d.ts.map +1 -0
- package/dist/scanfix/fixes/node.js +71 -0
- package/dist/scanfix/fixes/node.js.map +1 -0
- package/dist/scanfix/fixes/pnpm.d.ts +20 -0
- package/dist/scanfix/fixes/pnpm.d.ts.map +1 -0
- package/dist/scanfix/fixes/pnpm.js +122 -0
- package/dist/scanfix/fixes/pnpm.js.map +1 -0
- package/dist/scanfix/index.d.ts +23 -0
- package/dist/scanfix/index.d.ts.map +1 -0
- package/dist/scanfix/index.js +44 -0
- package/dist/scanfix/index.js.map +1 -0
- package/dist/scanfix/platform.d.ts +20 -0
- package/dist/scanfix/platform.d.ts.map +1 -0
- package/dist/scanfix/platform.js +48 -0
- package/dist/scanfix/platform.js.map +1 -0
- package/dist/scanfix/ssl-cert-helper.d.ts +27 -0
- package/dist/scanfix/ssl-cert-helper.d.ts.map +1 -0
- package/dist/scanfix/ssl-cert-helper.js +117 -0
- package/dist/scanfix/ssl-cert-helper.js.map +1 -0
- package/dist/scanfix/types.d.ts +27 -0
- package/dist/scanfix/types.d.ts.map +1 -0
- package/dist/scanfix/types.js +8 -0
- package/dist/scanfix/types.js.map +1 -0
- package/dist/scripts/check-existing-secrets.d.ts +6 -0
- package/dist/scripts/check-existing-secrets.d.ts.map +1 -0
- package/dist/scripts/check-existing-secrets.js +86 -0
- package/dist/scripts/check-existing-secrets.js.map +1 -0
- package/dist/scripts/generate-all.d.ts +40 -0
- package/dist/scripts/generate-all.d.ts.map +1 -0
- package/dist/scripts/generate-all.js +373 -0
- package/dist/scripts/generate-all.js.map +1 -0
- package/dist/scripts/get-repo-name.d.ts +6 -0
- package/dist/scripts/get-repo-name.d.ts.map +1 -0
- package/dist/scripts/get-repo-name.js +54 -0
- package/dist/scripts/get-repo-name.js.map +1 -0
- package/dist/scripts/index.d.ts +7 -0
- package/dist/scripts/index.d.ts.map +1 -0
- package/dist/scripts/index.js +14 -0
- package/dist/scripts/index.js.map +1 -0
- package/dist/scripts/validate-env-files.d.ts +6 -0
- package/dist/scripts/validate-env-files.d.ts.map +1 -0
- package/dist/scripts/validate-env-files.js +126 -0
- package/dist/scripts/validate-env-files.js.map +1 -0
- package/dist/scripts/validate-example-values.d.ts +8 -0
- package/dist/scripts/validate-example-values.d.ts.map +1 -0
- package/dist/scripts/validate-example-values.js +88 -0
- package/dist/scripts/validate-example-values.js.map +1 -0
- package/dist/scripts/validate-factiii-yml.d.ts +6 -0
- package/dist/scripts/validate-factiii-yml.d.ts.map +1 -0
- package/dist/scripts/validate-factiii-yml.js +71 -0
- package/dist/scripts/validate-factiii-yml.js.map +1 -0
- package/dist/types/cli.d.ts +138 -0
- package/dist/types/cli.d.ts.map +1 -0
- package/dist/types/cli.js +8 -0
- package/dist/types/cli.js.map +1 -0
- package/dist/types/config.d.ts +113 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +8 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +25 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/plugin.d.ts +352 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +8 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/utils/ansible-vault-secrets.d.ts +95 -0
- package/dist/utils/ansible-vault-secrets.d.ts.map +1 -0
- package/dist/utils/ansible-vault-secrets.js +406 -0
- package/dist/utils/ansible-vault-secrets.js.map +1 -0
- package/dist/utils/config-helpers.d.ts +72 -0
- package/dist/utils/config-helpers.d.ts.map +1 -0
- package/dist/utils/config-helpers.js +171 -0
- package/dist/utils/config-helpers.js.map +1 -0
- package/dist/utils/config-schema.d.ts +17 -0
- package/dist/utils/config-schema.d.ts.map +1 -0
- package/dist/utils/config-schema.js +100 -0
- package/dist/utils/config-schema.js.map +1 -0
- package/dist/utils/config-validator.d.ts +29 -0
- package/dist/utils/config-validator.d.ts.map +1 -0
- package/dist/utils/config-validator.js +146 -0
- package/dist/utils/config-validator.js.map +1 -0
- package/dist/utils/deployment-report.d.ts +100 -0
- package/dist/utils/deployment-report.d.ts.map +1 -0
- package/dist/utils/deployment-report.js +225 -0
- package/dist/utils/deployment-report.js.map +1 -0
- package/dist/utils/dns-validator.d.ts +19 -0
- package/dist/utils/dns-validator.d.ts.map +1 -0
- package/dist/utils/dns-validator.js +94 -0
- package/dist/utils/dns-validator.js.map +1 -0
- package/dist/utils/env-validator.d.ts +108 -0
- package/dist/utils/env-validator.d.ts.map +1 -0
- package/dist/utils/env-validator.js +342 -0
- package/dist/utils/env-validator.js.map +1 -0
- package/dist/utils/github-workflow-monitor.d.ts +49 -0
- package/dist/utils/github-workflow-monitor.d.ts.map +1 -0
- package/dist/utils/github-workflow-monitor.js +145 -0
- package/dist/utils/github-workflow-monitor.js.map +1 -0
- package/dist/utils/index.d.ts +18 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +48 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/secret-prompts.d.ts +67 -0
- package/dist/utils/secret-prompts.d.ts.map +1 -0
- package/dist/utils/secret-prompts.js +369 -0
- package/dist/utils/secret-prompts.js.map +1 -0
- package/dist/utils/server-check.d.ts +43 -0
- package/dist/utils/server-check.d.ts.map +1 -0
- package/dist/utils/server-check.js +397 -0
- package/dist/utils/server-check.js.map +1 -0
- package/dist/utils/ssh-deploy.d.ts +70 -0
- package/dist/utils/ssh-deploy.d.ts.map +1 -0
- package/dist/utils/ssh-deploy.js +268 -0
- package/dist/utils/ssh-deploy.js.map +1 -0
- package/dist/utils/ssh-helper.d.ts +40 -0
- package/dist/utils/ssh-helper.d.ts.map +1 -0
- package/dist/utils/ssh-helper.js +221 -0
- package/dist/utils/ssh-helper.js.map +1 -0
- package/dist/utils/template-generator.d.ts +42 -0
- package/dist/utils/template-generator.d.ts.map +1 -0
- package/dist/utils/template-generator.js +223 -0
- package/dist/utils/template-generator.js.map +1 -0
- package/dist/utils/version-check.d.ts +69 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +211 -0
- package/dist/utils/version-check.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-secrets.d.ts","sourceRoot":"","sources":["../../src/cli/deploy-secrets.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAqHD;;GAEG;AACH,wBAAsB,aAAa,CAC/B,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,EACvC,OAAO,GAAE,oBAAyB,GACnC,OAAO,CAAC,mBAAmB,CAAC,CA2F9B;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.deploySecrets = deploySecrets;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
43
|
+
const ansible_vault_secrets_js_1 = require("../utils/ansible-vault-secrets.js");
|
|
44
|
+
const ssh_deploy_js_1 = require("../utils/ssh-deploy.js");
|
|
45
|
+
const config_helpers_js_1 = require("../utils/config-helpers.js");
|
|
46
|
+
/**
|
|
47
|
+
* Load configuration from factiii.yml
|
|
48
|
+
*/
|
|
49
|
+
function loadConfig(rootDir) {
|
|
50
|
+
const configPath = path.join(rootDir, 'factiii.yml');
|
|
51
|
+
if (!fs.existsSync(configPath)) {
|
|
52
|
+
throw new Error('factiii.yml not found. Run: npx factiii init');
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
return js_yaml_1.default.load(fs.readFileSync(configPath, 'utf8')) ?? {};
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
throw new Error(`Error parsing factiii.yml: ${e instanceof Error ? e.message : String(e)}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get stage type from environment name
|
|
63
|
+
*/
|
|
64
|
+
function getStageType(envName) {
|
|
65
|
+
if (envName.startsWith('staging'))
|
|
66
|
+
return 'staging';
|
|
67
|
+
if (envName.startsWith('prod'))
|
|
68
|
+
return 'prod';
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Deploy secrets to a single environment
|
|
73
|
+
*/
|
|
74
|
+
async function deployToEnvironment(stage, envConfig, config, store, options) {
|
|
75
|
+
console.log(`\nDeploying secrets to ${stage}...`);
|
|
76
|
+
// Get SSH key
|
|
77
|
+
const sshKey = await store.getSSHKey(stage);
|
|
78
|
+
if (!sshKey) {
|
|
79
|
+
return {
|
|
80
|
+
success: false,
|
|
81
|
+
error: `No SSH key found for ${stage}. Run: npx factiii secrets set ${stage.toUpperCase()}_SSH`
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
// Get environment secrets
|
|
85
|
+
const envSecrets = await store.getEnvironmentSecrets(stage);
|
|
86
|
+
if (Object.keys(envSecrets).length === 0) {
|
|
87
|
+
console.log(` [!] No environment secrets found for ${stage}`);
|
|
88
|
+
console.log(` Add secrets with: npx factiii secrets set-env <NAME> --${stage}`);
|
|
89
|
+
return {
|
|
90
|
+
success: true,
|
|
91
|
+
message: `No secrets to deploy for ${stage}`,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
console.log(` Found ${Object.keys(envSecrets).length} environment variables`);
|
|
95
|
+
for (const key of Object.keys(envSecrets)) {
|
|
96
|
+
console.log(` - ${key}`);
|
|
97
|
+
}
|
|
98
|
+
if (options.dryRun) {
|
|
99
|
+
console.log(` [DRY RUN] Would deploy to ${envConfig.domain}`);
|
|
100
|
+
return {
|
|
101
|
+
success: true,
|
|
102
|
+
message: `Dry run complete for ${stage}`,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// Create SSH deploy instance
|
|
106
|
+
const sshDeploy = new ssh_deploy_js_1.SSHDeploy({
|
|
107
|
+
host: envConfig.domain,
|
|
108
|
+
user: envConfig.ssh_user ?? 'ubuntu',
|
|
109
|
+
privateKey: sshKey,
|
|
110
|
+
repoName: config.name,
|
|
111
|
+
});
|
|
112
|
+
// Test connection
|
|
113
|
+
console.log(` Connecting to ${envConfig.domain}...`);
|
|
114
|
+
const connected = await sshDeploy.testConnection();
|
|
115
|
+
if (!connected) {
|
|
116
|
+
return {
|
|
117
|
+
success: false,
|
|
118
|
+
error: `Failed to connect to ${envConfig.domain}. Check SSH key and server availability.`,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
console.log(` Connected`);
|
|
122
|
+
// Write env file
|
|
123
|
+
console.log(` Writing .env.${stage}...`);
|
|
124
|
+
const result = await sshDeploy.writeEnvFile(stage, envSecrets);
|
|
125
|
+
if (!result.success) {
|
|
126
|
+
return result;
|
|
127
|
+
}
|
|
128
|
+
console.log(` ${result.message}`);
|
|
129
|
+
// Restart container if requested
|
|
130
|
+
if (options.restart) {
|
|
131
|
+
const containerName = `${config.name}-${stage}`;
|
|
132
|
+
console.log(` Restarting container ${containerName}...`);
|
|
133
|
+
const restartResult = await sshDeploy.restartContainer(containerName);
|
|
134
|
+
if (restartResult.success) {
|
|
135
|
+
console.log(` Container restarted`);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
console.log(` [!] Container restart failed: ${restartResult.error}`);
|
|
139
|
+
// Don't fail the whole operation for restart errors
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
success: true,
|
|
144
|
+
message: `Deployed ${Object.keys(envSecrets).length} secrets to ${stage}`,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Deploy secrets to staging and/or production servers
|
|
149
|
+
*/
|
|
150
|
+
async function deploySecrets(environment, options = {}) {
|
|
151
|
+
const rootDir = options.rootDir ?? process.cwd();
|
|
152
|
+
console.log('FACTIII DEPLOY SECRETS');
|
|
153
|
+
// Load configuration
|
|
154
|
+
let config;
|
|
155
|
+
try {
|
|
156
|
+
config = loadConfig(rootDir);
|
|
157
|
+
}
|
|
158
|
+
catch (e) {
|
|
159
|
+
console.log(`\n[ERROR] ${e instanceof Error ? e.message : String(e)}`);
|
|
160
|
+
return { success: false, error: String(e) };
|
|
161
|
+
}
|
|
162
|
+
// Check Ansible Vault configuration
|
|
163
|
+
if (!config.ansible?.vault_path) {
|
|
164
|
+
const error = 'ansible.vault_path not configured in factiii.yml';
|
|
165
|
+
console.log(`\n[ERROR] ${error}`);
|
|
166
|
+
console.log('Add to factiii.yml:');
|
|
167
|
+
console.log(' ansible:');
|
|
168
|
+
console.log(' vault_path: group_vars/all/vault.yml');
|
|
169
|
+
console.log(' vault_password_file: ~/.vault_pass');
|
|
170
|
+
return { success: false, error };
|
|
171
|
+
}
|
|
172
|
+
// Create vault store
|
|
173
|
+
const store = new ansible_vault_secrets_js_1.AnsibleVaultSecrets({
|
|
174
|
+
vault_path: config.ansible.vault_path,
|
|
175
|
+
vault_password_file: config.ansible.vault_password_file,
|
|
176
|
+
rootDir,
|
|
177
|
+
});
|
|
178
|
+
// Get environments
|
|
179
|
+
const environments = (0, config_helpers_js_1.extractEnvironments)(config);
|
|
180
|
+
const results = [];
|
|
181
|
+
// Determine which stages to deploy
|
|
182
|
+
const stagesToDeploy = environment === 'all' ? ['staging', 'prod'] : [environment];
|
|
183
|
+
for (const stage of stagesToDeploy) {
|
|
184
|
+
// Find environment config for this stage
|
|
185
|
+
const envName = Object.keys(environments).find(name => getStageType(name) === stage);
|
|
186
|
+
if (!envName) {
|
|
187
|
+
console.log(`\n[!] No ${stage} environment configured in factiii.yml`);
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
const envConfig = environments[envName];
|
|
191
|
+
if (!envConfig?.domain) {
|
|
192
|
+
console.log(`\n[!] ${stage} environment missing domain configuration`);
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
const result = await deployToEnvironment(stage, envConfig, config, store, options);
|
|
196
|
+
results.push({ env: stage, result });
|
|
197
|
+
if (!result.success) {
|
|
198
|
+
console.log(`\n[ERROR] Failed to deploy to ${stage}: ${result.error}`);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
// Summary
|
|
202
|
+
console.log('\nDEPLOYMENT SUMMARY');
|
|
203
|
+
const successful = results.filter(r => r.result.success);
|
|
204
|
+
const failed = results.filter(r => !r.result.success);
|
|
205
|
+
for (const { env, result } of results) {
|
|
206
|
+
const status = result.success ? '[OK]' : '[FAILED]';
|
|
207
|
+
console.log(` ${status} ${env}: ${result.message || result.error}`);
|
|
208
|
+
}
|
|
209
|
+
if (failed.length > 0) {
|
|
210
|
+
return {
|
|
211
|
+
success: false,
|
|
212
|
+
error: `${failed.length} deployment(s) failed`,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
if (successful.length === 0) {
|
|
216
|
+
return {
|
|
217
|
+
success: true,
|
|
218
|
+
message: 'No environments to deploy',
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
success: true,
|
|
223
|
+
message: `Successfully deployed to ${successful.map(s => s.env).join(', ')}`,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
exports.default = deploySecrets;
|
|
227
|
+
//# sourceMappingURL=deploy-secrets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-secrets.js","sourceRoot":"","sources":["../../src/cli/deploy-secrets.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0IA,sCA8FC;AAxOD,uCAAyB;AACzB,2CAA6B;AAC7B,sDAA2B;AAC3B,gFAAwE;AACxE,0DAAmD;AAEnD,kEAAiE;AAcjE;;GAEG;AACH,SAAS,UAAU,CAAC,OAAe;IAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC;QACD,OAAQ,iBAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAmB,IAAK,EAAoB,CAAC;IACtG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,OAAe;IACjC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAC9B,KAAyB,EACzB,SAA4B,EAC5B,MAAqB,EACrB,KAA0B,EAC1B,OAA6B;IAE7B,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,KAAK,CAAC,CAAC;IAElD,cAAc;IACd,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,wBAAwB,KAAK,kCAAkC,KAAK,CAAC,WAAW,EAAE,MAAM;SAClG,CAAC;IACN,CAAC;IAED,0BAA0B;IAC1B,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,gEAAgE,KAAK,EAAE,CAAC,CAAC;QACrF,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,4BAA4B,KAAK,EAAE;SAC/C,CAAC;IACN,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,wBAAwB,CAAC,CAAC;IAC/E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,+BAA+B,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,wBAAwB,KAAK,EAAE;SAC3C,CAAC;IACN,CAAC;IAED,6BAA6B;IAC7B,MAAM,SAAS,GAAG,IAAI,yBAAS,CAAC;QAC5B,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,IAAI,EAAE,SAAS,CAAC,QAAQ,IAAI,QAAQ;QACpC,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,MAAM,CAAC,IAAI;KACxB,CAAC,CAAC;IAEH,kBAAkB;IAClB,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;IACnD,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,wBAAwB,SAAS,CAAC,MAAM,0CAA0C;SAC5F,CAAC;IACN,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAE3B,iBAAiB;IACjB,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,KAAK,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnC,iCAAiC;IACjC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,aAAa,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,0BAA0B,aAAa,KAAK,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACtE,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,mCAAmC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;YACtE,oDAAoD;QACxD,CAAC;IACL,CAAC;IAED,OAAO;QACH,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,YAAY,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,eAAe,KAAK,EAAE;KAC5E,CAAC;AACN,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CAC/B,WAAuC,EACvC,UAAgC,EAAE;IAElC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEjD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEtC,qBAAqB;IACrB,IAAI,MAAqB,CAAC;IAC1B,IAAI,CAAC;QACD,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,kDAAkD,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,qBAAqB;IACrB,MAAM,KAAK,GAAG,IAAI,8CAAmB,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;QACrC,mBAAmB,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB;QACvD,OAAO;KACV,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,YAAY,GAAG,IAAA,uCAAmB,EAAC,MAAM,CAAC,CAAC;IACjD,MAAM,OAAO,GAAmD,EAAE,CAAC;IAEnE,mCAAmC;IACnC,MAAM,cAAc,GAChB,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAEhE,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACjC,yCAAyC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;QACrF,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,wCAAwC,CAAC,CAAC;YACvE,SAAS;QACb,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,2CAA2C,CAAC,CAAC;YACvE,SAAS;QACb,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3E,CAAC;IACL,CAAC;IAED,UAAU;IACV,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAEpC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEtD,KAAK,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,uBAAuB;SACjD,CAAC;IACN,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,2BAA2B;SACvC,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,4BAA4B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KAC/E,CAAC;AACN,CAAC;AAED,kBAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deploy Command
|
|
3
|
+
*
|
|
4
|
+
* Deploys to specified environment by delegating to the pipeline plugin.
|
|
5
|
+
* The pipeline plugin decides how to reach the stage (local vs workflow trigger).
|
|
6
|
+
*
|
|
7
|
+
* ============================================================
|
|
8
|
+
* STAGE EXECUTION PATTERN
|
|
9
|
+
* ============================================================
|
|
10
|
+
* See scan.ts for full documentation of how stages work.
|
|
11
|
+
*
|
|
12
|
+
* Key points:
|
|
13
|
+
* - This file asks pipeline plugin canReach(stage) for each stage
|
|
14
|
+
* - Pipeline decides if stage runs locally or via workflow
|
|
15
|
+
* - When running on server, pipeline workflow specifies --staging/--prod
|
|
16
|
+
* ============================================================
|
|
17
|
+
*/
|
|
18
|
+
import type { DeployOptions, DeployResult } from '../types/index.js';
|
|
19
|
+
/**
|
|
20
|
+
* Deploy to a specified environment
|
|
21
|
+
*
|
|
22
|
+
* This command delegates to the pipeline plugin, which decides how to reach
|
|
23
|
+
* the target stage based on canReach():
|
|
24
|
+
* - 'local': Execute deployment directly
|
|
25
|
+
* - 'workflow': Trigger a workflow (e.g., GitHub Actions)
|
|
26
|
+
* - Not reachable: Return error with reason
|
|
27
|
+
*/
|
|
28
|
+
export declare function deploy(environment: string, options?: DeployOptions): Promise<DeployResult>;
|
|
29
|
+
export default deploy;
|
|
30
|
+
//# sourceMappingURL=deploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/cli/deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,OAAO,KAAK,EAAiB,aAAa,EAAE,YAAY,EAAS,MAAM,mBAAmB,CAAC;AAkG3F;;;;;;;;GAQG;AACH,wBAAsB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAmLpG;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Deploy Command
|
|
4
|
+
*
|
|
5
|
+
* Deploys to specified environment by delegating to the pipeline plugin.
|
|
6
|
+
* The pipeline plugin decides how to reach the stage (local vs workflow trigger).
|
|
7
|
+
*
|
|
8
|
+
* ============================================================
|
|
9
|
+
* STAGE EXECUTION PATTERN
|
|
10
|
+
* ============================================================
|
|
11
|
+
* See scan.ts for full documentation of how stages work.
|
|
12
|
+
*
|
|
13
|
+
* Key points:
|
|
14
|
+
* - This file asks pipeline plugin canReach(stage) for each stage
|
|
15
|
+
* - Pipeline decides if stage runs locally or via workflow
|
|
16
|
+
* - When running on server, pipeline workflow specifies --staging/--prod
|
|
17
|
+
* ============================================================
|
|
18
|
+
*/
|
|
19
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k;
|
|
21
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
22
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
23
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(o, k2, desc);
|
|
26
|
+
}) : (function(o, m, k, k2) {
|
|
27
|
+
if (k2 === undefined) k2 = k;
|
|
28
|
+
o[k2] = m[k];
|
|
29
|
+
}));
|
|
30
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
31
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
32
|
+
}) : function(o, v) {
|
|
33
|
+
o["default"] = v;
|
|
34
|
+
});
|
|
35
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
36
|
+
var ownKeys = function(o) {
|
|
37
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
38
|
+
var ar = [];
|
|
39
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
40
|
+
return ar;
|
|
41
|
+
};
|
|
42
|
+
return ownKeys(o);
|
|
43
|
+
};
|
|
44
|
+
return function (mod) {
|
|
45
|
+
if (mod && mod.__esModule) return mod;
|
|
46
|
+
var result = {};
|
|
47
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
48
|
+
__setModuleDefault(result, mod);
|
|
49
|
+
return result;
|
|
50
|
+
};
|
|
51
|
+
})();
|
|
52
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
53
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
54
|
+
};
|
|
55
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
|
+
exports.deploy = deploy;
|
|
57
|
+
const fs = __importStar(require("fs"));
|
|
58
|
+
const path = __importStar(require("path"));
|
|
59
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
60
|
+
const scan_js_1 = require("./scan.js");
|
|
61
|
+
const deploy_secrets_js_1 = require("./deploy-secrets.js");
|
|
62
|
+
const index_js_1 = require("../plugins/index.js");
|
|
63
|
+
const config_helpers_js_1 = require("../utils/config-helpers.js");
|
|
64
|
+
/**
|
|
65
|
+
* Load config from factiii.yml
|
|
66
|
+
*/
|
|
67
|
+
function loadConfig(rootDir) {
|
|
68
|
+
const configPath = path.join(rootDir, 'factiii.yml');
|
|
69
|
+
if (!fs.existsSync(configPath)) {
|
|
70
|
+
return {};
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
return js_yaml_1.default.load(fs.readFileSync(configPath, 'utf8')) ?? {};
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
const errorMessage = e instanceof Error ? e.message : String(e);
|
|
77
|
+
console.error(`[!] Error parsing factiii.yml: ${errorMessage}`);
|
|
78
|
+
return {};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Run a basic HTTP health check against the deployed domain
|
|
83
|
+
*/
|
|
84
|
+
async function runHealthCheck(domain) {
|
|
85
|
+
console.log('\nRunning health check...');
|
|
86
|
+
const url = 'https://' + domain;
|
|
87
|
+
try {
|
|
88
|
+
const https = await Promise.resolve().then(() => __importStar(require('https')));
|
|
89
|
+
await new Promise((resolve) => {
|
|
90
|
+
const req = https.get(url, { timeout: 10000 }, (res) => {
|
|
91
|
+
if (res.statusCode && res.statusCode < 500) {
|
|
92
|
+
console.log(' [OK] ' + url + ' responded with status ' + res.statusCode);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
console.log(' [!] ' + url + ' returned status ' + res.statusCode);
|
|
96
|
+
}
|
|
97
|
+
res.resume(); // consume response data
|
|
98
|
+
resolve();
|
|
99
|
+
});
|
|
100
|
+
req.on('error', (e) => {
|
|
101
|
+
console.log(' [!] Could not reach ' + url + ': ' + e.message);
|
|
102
|
+
console.log(' Note: DNS or SSL may still be propagating');
|
|
103
|
+
resolve();
|
|
104
|
+
});
|
|
105
|
+
req.on('timeout', () => {
|
|
106
|
+
req.destroy();
|
|
107
|
+
console.log(' [!] Health check timed out for ' + url);
|
|
108
|
+
console.log(' Note: DNS or SSL may still be propagating');
|
|
109
|
+
resolve();
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
console.log(' [!] Health check skipped');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Print rollback/recovery instructions after a deployment failure
|
|
119
|
+
*/
|
|
120
|
+
function printRollbackInstructions(stage, environment, config) {
|
|
121
|
+
const environments = (0, config_helpers_js_1.extractEnvironments)(config);
|
|
122
|
+
const envConfig = environments[environment];
|
|
123
|
+
const domain = envConfig?.domain ?? '<server>';
|
|
124
|
+
const user = envConfig?.ssh_user ?? 'root';
|
|
125
|
+
console.log('\nRECOVERY OPTIONS:\n');
|
|
126
|
+
console.log(' 1. View logs on server:');
|
|
127
|
+
console.log(' ssh -i ~/.ssh/' + stage + '_deploy_key ' + user + '@' + domain + ' "docker logs --tail 50 \\$(docker ps -lq)"');
|
|
128
|
+
console.log('\n 2. Rollback to previous commit:');
|
|
129
|
+
console.log(' git log --oneline -5 # find working commit');
|
|
130
|
+
console.log(' npx factiii deploy --' + stage + ' --commit <hash>');
|
|
131
|
+
console.log('\n 3. Manual server access:');
|
|
132
|
+
console.log(' ssh -i ~/.ssh/' + stage + '_deploy_key ' + user + '@' + domain);
|
|
133
|
+
console.log('\n 4. Full reset:');
|
|
134
|
+
console.log(' npx factiii undeploy --' + stage);
|
|
135
|
+
console.log(' npx factiii deploy --' + stage + '\n');
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Deploy to a specified environment
|
|
139
|
+
*
|
|
140
|
+
* This command delegates to the pipeline plugin, which decides how to reach
|
|
141
|
+
* the target stage based on canReach():
|
|
142
|
+
* - 'local': Execute deployment directly
|
|
143
|
+
* - 'workflow': Trigger a workflow (e.g., GitHub Actions)
|
|
144
|
+
* - Not reachable: Return error with reason
|
|
145
|
+
*/
|
|
146
|
+
async function deploy(environment, options = {}) {
|
|
147
|
+
const rootDir = options.rootDir ?? process.cwd();
|
|
148
|
+
const config = loadConfig(rootDir);
|
|
149
|
+
console.log('FACTIII DEPLOY\n');
|
|
150
|
+
// ============================================================
|
|
151
|
+
// CRITICAL: Environment Validation
|
|
152
|
+
// ============================================================
|
|
153
|
+
// Why this exists: Supports multiple environments per stage
|
|
154
|
+
// What breaks if changed: Invalid environments could be deployed
|
|
155
|
+
// Dependencies: extractEnvironments, getStageFromEnvironment
|
|
156
|
+
// ============================================================
|
|
157
|
+
// Map environment name to stage (staging2 -> staging, prod2 -> prod, etc.)
|
|
158
|
+
// Do this FIRST because 'dev' and 'secrets' don't require environment configs
|
|
159
|
+
let stage;
|
|
160
|
+
try {
|
|
161
|
+
stage = (0, config_helpers_js_1.getStageFromEnvironment)(environment);
|
|
162
|
+
}
|
|
163
|
+
catch (e) {
|
|
164
|
+
const errorMessage = e instanceof Error ? e.message : String(e);
|
|
165
|
+
console.log(`[ERROR] ${errorMessage}`);
|
|
166
|
+
return { success: false, error: errorMessage };
|
|
167
|
+
}
|
|
168
|
+
// Special stages (dev, secrets) don't require environment configuration
|
|
169
|
+
// They run locally and don't need server configs
|
|
170
|
+
if (stage !== 'dev' && stage !== 'secrets') {
|
|
171
|
+
// Validate environment exists in config (only for staging/prod)
|
|
172
|
+
const environments = (0, config_helpers_js_1.extractEnvironments)(config);
|
|
173
|
+
if (!environments[environment]) {
|
|
174
|
+
const available = Object.keys(environments).join(', ');
|
|
175
|
+
console.log(`[ERROR] Environment '${environment}' not found in config.`);
|
|
176
|
+
console.log(` Available environments: ${available || 'none'}`);
|
|
177
|
+
return {
|
|
178
|
+
success: false,
|
|
179
|
+
error: `Environment '${environment}' not found. Available: ${available}`,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
console.log(`Environment: ${environment} (${stage} stage)\n`);
|
|
184
|
+
// Deploy secrets if --secrets flag is passed
|
|
185
|
+
if (options.deploySecrets && (stage === 'staging' || stage === 'prod')) {
|
|
186
|
+
console.log('Stage 0: Deploying secrets...\n');
|
|
187
|
+
const secretsResult = await (0, deploy_secrets_js_1.deploySecrets)(stage, { rootDir });
|
|
188
|
+
if (!secretsResult.success) {
|
|
189
|
+
console.log('[ERROR] Secrets deployment failed: ' + (secretsResult.error ?? 'Unknown error'));
|
|
190
|
+
return { success: false, error: 'Secrets deployment failed: ' + (secretsResult.error ?? 'Unknown error') };
|
|
191
|
+
}
|
|
192
|
+
console.log('[OK] Secrets deployed\n');
|
|
193
|
+
}
|
|
194
|
+
console.log('Stage 1: Running pre-deploy checks...\n');
|
|
195
|
+
// First run scan to check for blocking issues
|
|
196
|
+
// Only scan the target stage - don't let prod issues block a staging deploy
|
|
197
|
+
// Clear stage flags from options so they don't override the stages array
|
|
198
|
+
// (e.g., --secrets sets options.secrets=true which scan interprets as "scan secrets stage only")
|
|
199
|
+
const scanOptions = { ...options, silent: true, stages: [stage] };
|
|
200
|
+
delete scanOptions.dev;
|
|
201
|
+
delete scanOptions.secrets;
|
|
202
|
+
delete scanOptions.staging;
|
|
203
|
+
delete scanOptions.prod;
|
|
204
|
+
delete scanOptions.deploySecrets;
|
|
205
|
+
const problems = await (0, scan_js_1.scan)(scanOptions);
|
|
206
|
+
// Only block on CRITICAL issues - warnings/info will be auto-fixed during deployment
|
|
207
|
+
const criticalProblems = Object.values(problems)
|
|
208
|
+
.flat()
|
|
209
|
+
.filter(fix => fix && fix.severity === 'critical');
|
|
210
|
+
if (criticalProblems.length > 0) {
|
|
211
|
+
console.log('[ERROR] Critical issues found that must be fixed before deployment:\n');
|
|
212
|
+
// Group by stage for clearer output
|
|
213
|
+
const problemsByStage = {
|
|
214
|
+
dev: [],
|
|
215
|
+
secrets: [],
|
|
216
|
+
staging: [],
|
|
217
|
+
prod: [],
|
|
218
|
+
};
|
|
219
|
+
for (const problem of criticalProblems) {
|
|
220
|
+
const stage = problem?.stage;
|
|
221
|
+
if (stage && stage in problemsByStage) {
|
|
222
|
+
const stageArray = problemsByStage[stage];
|
|
223
|
+
if (stageArray) {
|
|
224
|
+
stageArray.push(problem);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// Display each stage's critical problems
|
|
229
|
+
for (const [stageName, stageProblems] of Object.entries(problemsByStage)) {
|
|
230
|
+
if (stageProblems.length === 0)
|
|
231
|
+
continue;
|
|
232
|
+
console.log(`${stageName.toUpperCase()}:`);
|
|
233
|
+
for (const problem of stageProblems) {
|
|
234
|
+
console.log(` [ERROR] ${problem.description}`);
|
|
235
|
+
if (problem.manualFix) {
|
|
236
|
+
console.log(` Hint: ${problem.manualFix}`);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
console.log('');
|
|
240
|
+
}
|
|
241
|
+
console.log('Please fix the issues above and try again.\n');
|
|
242
|
+
return { success: false, error: 'Critical pre-deploy checks failed' };
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
console.log('[OK] All pre-deploy checks passed!\n');
|
|
246
|
+
}
|
|
247
|
+
// Dry run: show deployment plan without executing
|
|
248
|
+
if (options.dryRun) {
|
|
249
|
+
console.log('[DRY RUN] Deployment plan:\n');
|
|
250
|
+
console.log(' Environment: ' + environment);
|
|
251
|
+
console.log(' Stage: ' + stage);
|
|
252
|
+
if (stage !== 'dev' && stage !== 'secrets') {
|
|
253
|
+
const environments = (0, config_helpers_js_1.extractEnvironments)(config);
|
|
254
|
+
const envConfig = environments[environment];
|
|
255
|
+
if (envConfig) {
|
|
256
|
+
console.log(' Domain: ' + (envConfig.domain ?? 'N/A'));
|
|
257
|
+
console.log(' Server: ' + (envConfig.server ?? 'N/A'));
|
|
258
|
+
console.log(' SSH User: ' + (envConfig.ssh_user ?? 'root'));
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
console.log('\n[DRY RUN] All pre-deploy checks passed. Run without --dry-run to execute:\n');
|
|
262
|
+
console.log(' npx factiii deploy --' + stage + '\n');
|
|
263
|
+
return { success: true, message: 'Dry run completed' };
|
|
264
|
+
}
|
|
265
|
+
console.log(`DEPLOYING ${environment.toUpperCase()}\n`);
|
|
266
|
+
// Load plugins and find pipeline plugin
|
|
267
|
+
const plugins = await (0, index_js_1.loadRelevantPlugins)(rootDir, config);
|
|
268
|
+
const PipelineClass = plugins.find((p) => p.category === 'pipeline');
|
|
269
|
+
if (!PipelineClass) {
|
|
270
|
+
return { success: false, error: 'No pipeline plugin found' };
|
|
271
|
+
}
|
|
272
|
+
try {
|
|
273
|
+
// Delegate to pipeline plugin - IT decides how to reach the stage
|
|
274
|
+
const pipeline = new PipelineClass(config);
|
|
275
|
+
// Note: Pass the stage (staging, prod) not the environment name (staging2, prod2)
|
|
276
|
+
// The pipeline plugin handles routing based on stage
|
|
277
|
+
const result = await pipeline.deployStage(stage, { ...options, rootDir, environment });
|
|
278
|
+
if (result.success) {
|
|
279
|
+
console.log(`\n[OK] Deployment to ${environment} complete!`);
|
|
280
|
+
if (result.message) {
|
|
281
|
+
console.log(` ${result.message}`);
|
|
282
|
+
}
|
|
283
|
+
// Post-deploy health check for staging/prod
|
|
284
|
+
if (stage === 'staging' || stage === 'prod') {
|
|
285
|
+
const environments = (0, config_helpers_js_1.extractEnvironments)(config);
|
|
286
|
+
const envConfig = environments[environment];
|
|
287
|
+
if (envConfig?.domain) {
|
|
288
|
+
await runHealthCheck(envConfig.domain);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
console.log(`\n[ERROR] Deployment failed: ${result.error}`);
|
|
294
|
+
printRollbackInstructions(stage, environment, config);
|
|
295
|
+
}
|
|
296
|
+
return result;
|
|
297
|
+
}
|
|
298
|
+
catch (e) {
|
|
299
|
+
const errorMessage = e instanceof Error ? e.message : String(e);
|
|
300
|
+
console.log(`\n[ERROR] Deployment error: ${errorMessage}`);
|
|
301
|
+
printRollbackInstructions(stage, environment, config);
|
|
302
|
+
return { success: false, error: errorMessage };
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
exports.default = deploy;
|
|
306
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/cli/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deployer Module
|
|
3
|
+
*
|
|
4
|
+
* Handles the actual deployment logic
|
|
5
|
+
*/
|
|
6
|
+
import type { FactiiiConfig, DeployOptions, DeployResult } from '../types/index.js';
|
|
7
|
+
export declare class Deployer {
|
|
8
|
+
private _config;
|
|
9
|
+
constructor(config: FactiiiConfig);
|
|
10
|
+
deployToEnvironment(environment: string, options?: DeployOptions): Promise<DeployResult>;
|
|
11
|
+
}
|
|
12
|
+
export default Deployer;
|
|
13
|
+
//# sourceMappingURL=deployer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../src/cli/deployer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpF,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAAgB;gBAEnB,MAAM,EAAE,aAAa;IAI3B,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC;CAGzB;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Deployer Module
|
|
4
|
+
*
|
|
5
|
+
* Handles the actual deployment logic
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.Deployer = void 0;
|
|
9
|
+
const deploy_js_1 = require("./deploy.js");
|
|
10
|
+
class Deployer {
|
|
11
|
+
_config;
|
|
12
|
+
constructor(config) {
|
|
13
|
+
this._config = config;
|
|
14
|
+
}
|
|
15
|
+
async deployToEnvironment(environment, options = {}) {
|
|
16
|
+
return (0, deploy_js_1.deploy)(environment, options);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.Deployer = Deployer;
|
|
20
|
+
exports.default = Deployer;
|
|
21
|
+
//# sourceMappingURL=deployer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployer.js","sourceRoot":"","sources":["../../src/cli/deployer.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2CAAqC;AAGrC,MAAa,QAAQ;IACX,OAAO,CAAgB;IAE/B,YAAY,MAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,WAAmB,EACnB,UAAyB,EAAE;QAE3B,OAAO,IAAA,kBAAM,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;CACF;AAbD,4BAaC;AAED,kBAAe,QAAQ,CAAC"}
|