@swovohq/fuel 0.2.2-alpha.9 → 0.2.2-alpha.91
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 +173 -69
- package/dist/bin/fuel.js +77 -31
- package/dist/bin/fuel.js.map +1 -1
- package/dist/cleanup/finalize.d.ts.map +1 -1
- package/dist/cleanup/finalize.js +11 -3
- package/dist/cleanup/finalize.js.map +1 -1
- package/dist/commands/config-verify.d.ts.map +1 -1
- package/dist/commands/config-verify.js +14 -6
- package/dist/commands/config-verify.js.map +1 -1
- package/dist/commands/create-app.d.ts.map +1 -1
- package/dist/commands/create-app.js +41 -7
- package/dist/commands/create-app.js.map +1 -1
- package/dist/commands/infra-deploy.d.ts +15 -1
- package/dist/commands/infra-deploy.d.ts.map +1 -1
- package/dist/commands/infra-deploy.js +164 -18
- package/dist/commands/infra-deploy.js.map +1 -1
- package/dist/commands/infra-destroy.d.ts.map +1 -1
- package/dist/commands/infra-destroy.js +3 -3
- package/dist/commands/infra-destroy.js.map +1 -1
- package/dist/commands/infra-init.d.ts +91 -0
- package/dist/commands/infra-init.d.ts.map +1 -1
- package/dist/commands/infra-init.js +644 -113
- package/dist/commands/infra-init.js.map +1 -1
- package/dist/commands/infra-pull.d.ts +8 -0
- package/dist/commands/infra-pull.d.ts.map +1 -0
- package/dist/commands/infra-pull.js +81 -0
- package/dist/commands/infra-pull.js.map +1 -0
- package/dist/commands/list-modules.d.ts.map +1 -1
- package/dist/commands/list-modules.js +10 -3
- package/dist/commands/list-modules.js.map +1 -1
- package/dist/engines/convention.d.ts +2 -2
- package/dist/engines/convention.d.ts.map +1 -1
- package/dist/engines/convention.js +8 -6
- package/dist/engines/convention.js.map +1 -1
- package/dist/engines/dependencies.d.ts +2 -0
- package/dist/engines/dependencies.d.ts.map +1 -1
- package/dist/engines/dependencies.js.map +1 -1
- package/dist/engines/monorepo.d.ts.map +1 -1
- package/dist/engines/monorepo.js.map +1 -1
- package/dist/engines/template-source.d.ts.map +1 -1
- package/dist/engines/template-source.js +3 -1
- package/dist/engines/template-source.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/infra/azure-defaults.d.ts +49 -0
- package/dist/infra/azure-defaults.d.ts.map +1 -0
- package/dist/infra/azure-defaults.js +52 -0
- package/dist/infra/azure-defaults.js.map +1 -0
- package/dist/infra/azure-keyvault-client.d.ts +4 -0
- package/dist/infra/azure-keyvault-client.d.ts.map +1 -0
- package/dist/infra/azure-keyvault-client.js +57 -0
- package/dist/infra/azure-keyvault-client.js.map +1 -0
- package/dist/infra/azure-rbac.d.ts +11 -0
- package/dist/infra/azure-rbac.d.ts.map +1 -0
- package/dist/infra/azure-rbac.js +49 -0
- package/dist/infra/azure-rbac.js.map +1 -0
- package/dist/infra/azure-state-storage.d.ts +20 -0
- package/dist/infra/azure-state-storage.d.ts.map +1 -0
- package/dist/infra/azure-state-storage.js +229 -0
- package/dist/infra/azure-state-storage.js.map +1 -0
- package/dist/infra/config-loader.d.ts.map +1 -1
- package/dist/infra/config-loader.js.map +1 -1
- package/dist/infra/config-writer.js +1 -1
- package/dist/infra/credentials.d.ts +2 -2
- package/dist/infra/credentials.d.ts.map +1 -1
- package/dist/infra/credentials.js +8 -4
- package/dist/infra/credentials.js.map +1 -1
- package/dist/infra/dependency-checker.d.ts.map +1 -1
- package/dist/infra/dependency-checker.js.map +1 -1
- package/dist/infra/deployment-detect.d.ts +9 -0
- package/dist/infra/deployment-detect.d.ts.map +1 -0
- package/dist/infra/deployment-detect.js +53 -0
- package/dist/infra/deployment-detect.js.map +1 -0
- package/dist/infra/git-client.d.ts.map +1 -1
- package/dist/infra/git-client.js +6 -10
- package/dist/infra/git-client.js.map +1 -1
- package/dist/infra/github-client.d.ts +7 -0
- package/dist/infra/github-client.d.ts.map +1 -1
- package/dist/infra/github-client.js +47 -7
- package/dist/infra/github-client.js.map +1 -1
- package/dist/infra/github-secrets-client.d.ts.map +1 -1
- package/dist/infra/github-secrets-client.js +2 -2
- package/dist/infra/github-secrets-client.js.map +1 -1
- package/dist/infra/github-token-link.d.ts +4 -0
- package/dist/infra/github-token-link.d.ts.map +1 -0
- package/dist/infra/github-token-link.js +32 -0
- package/dist/infra/github-token-link.js.map +1 -0
- package/dist/infra/orchestrator.d.ts +4 -1
- package/dist/infra/orchestrator.d.ts.map +1 -1
- package/dist/infra/orchestrator.js +218 -63
- package/dist/infra/orchestrator.js.map +1 -1
- package/dist/infra/port-utils.d.ts.map +1 -1
- package/dist/infra/port-utils.js.map +1 -1
- package/dist/infra/preflight.d.ts.map +1 -1
- package/dist/infra/preflight.js +25 -11
- package/dist/infra/preflight.js.map +1 -1
- package/dist/infra/remote-secret.d.ts +14 -0
- package/dist/infra/remote-secret.d.ts.map +1 -0
- package/dist/infra/remote-secret.js +42 -0
- package/dist/infra/remote-secret.js.map +1 -0
- package/dist/infra/s3-state-bucket.d.ts.map +1 -1
- package/dist/infra/s3-state-bucket.js +8 -4
- package/dist/infra/s3-state-bucket.js.map +1 -1
- package/dist/infra/secrets-manager-client.d.ts.map +1 -1
- package/dist/infra/secrets-manager-client.js +8 -5
- package/dist/infra/secrets-manager-client.js.map +1 -1
- package/dist/infra/subprocess.js +1 -1
- package/dist/infra/template-engine.d.ts +14 -5
- package/dist/infra/template-engine.d.ts.map +1 -1
- package/dist/infra/template-engine.js +157 -39
- package/dist/infra/template-engine.js.map +1 -1
- package/dist/infra/tofu-runner.d.ts +4 -3
- package/dist/infra/tofu-runner.d.ts.map +1 -1
- package/dist/infra/tofu-runner.js +40 -34
- package/dist/infra/tofu-runner.js.map +1 -1
- package/dist/infra/types.d.ts +241 -17
- package/dist/infra/types.d.ts.map +1 -1
- package/dist/infra/types.js +419 -22
- package/dist/infra/types.js.map +1 -1
- package/dist/infra-templates/TODO-azure-prod.md +127 -0
- package/dist/infra-templates/modules/azure-container-app/main.tf +124 -0
- package/dist/infra-templates/modules/azure-container-app/outputs.tf +24 -0
- package/dist/infra-templates/modules/azure-container-app/variables.tf +80 -0
- package/dist/infra-templates/modules/azure-container-apps-environment/main.tf +18 -0
- package/dist/infra-templates/modules/azure-container-apps-environment/outputs.tf +14 -0
- package/dist/infra-templates/modules/azure-container-apps-environment/variables.tf +24 -0
- package/dist/infra-templates/modules/azure-container-registry/main.tf +10 -0
- package/dist/infra-templates/modules/azure-container-registry/outputs.tf +14 -0
- package/dist/infra-templates/modules/azure-container-registry/variables.tf +20 -0
- package/dist/infra-templates/modules/azure-front-door/main.tf +80 -0
- package/dist/infra-templates/modules/azure-front-door/outputs.tf +20 -0
- package/dist/infra-templates/modules/azure-front-door/variables.tf +26 -0
- package/dist/infra-templates/modules/azure-github-oidc/main.tf +48 -0
- package/dist/infra-templates/modules/azure-github-oidc/outputs.tf +9 -0
- package/dist/infra-templates/modules/azure-github-oidc/variables.tf +69 -0
- package/dist/infra-templates/modules/azure-key-vault/main.tf +21 -0
- package/dist/infra-templates/modules/azure-key-vault/outputs.tf +11 -0
- package/dist/infra-templates/modules/azure-key-vault/variables.tf +43 -0
- package/dist/infra-templates/modules/azure-monitor/main.tf +29 -0
- package/dist/infra-templates/modules/azure-monitor/outputs.tf +17 -0
- package/dist/infra-templates/modules/azure-monitor/variables.tf +32 -0
- package/dist/infra-templates/modules/azure-network/main.tf +134 -0
- package/dist/infra-templates/modules/azure-network/outputs.tf +44 -0
- package/dist/infra-templates/modules/azure-network/variables.tf +56 -0
- package/dist/infra-templates/modules/azure-postgresql-flexible/main.tf +34 -0
- package/dist/infra-templates/modules/azure-postgresql-flexible/outputs.tf +20 -0
- package/dist/infra-templates/modules/azure-postgresql-flexible/variables.tf +54 -0
- package/dist/infra-templates/modules/azure-redis-cache/main.tf +32 -0
- package/dist/infra-templates/modules/azure-redis-cache/outputs.tf +15 -0
- package/dist/infra-templates/modules/azure-redis-cache/variables.tf +30 -0
- package/dist/infra-templates/modules/azure-resource-group/main.tf +5 -0
- package/dist/infra-templates/modules/azure-resource-group/outputs.tf +11 -0
- package/dist/infra-templates/modules/azure-resource-group/variables.tf +16 -0
- package/dist/infra-templates/modules/azure-sql-database/main.tf +63 -0
- package/dist/infra-templates/modules/azure-sql-database/outputs.tf +20 -0
- package/dist/infra-templates/modules/azure-sql-database/variables.tf +78 -0
- package/dist/infra-templates/modules/azure-storage-account/main.tf +13 -0
- package/dist/infra-templates/modules/azure-storage-account/outputs.tf +16 -0
- package/dist/infra-templates/modules/azure-storage-account/variables.tf +38 -0
- package/dist/infra-templates/modules/cloud-watch/event-bridge.tf +15 -0
- package/dist/infra-templates/modules/cloud-watch/lambda.tf +84 -0
- package/dist/infra-templates/modules/cloud-watch/lambda_function.zip +0 -0
- package/dist/infra-templates/modules/cloud-watch/lambda_function_deploy.zip +0 -0
- package/dist/infra-templates/modules/cloud-watch/main.tf +156 -0
- package/dist/infra-templates/modules/cloud-watch/sns.tf +3 -0
- package/dist/infra-templates/modules/cloud-watch/variables.tf +38 -0
- package/dist/infra-templates/modules/ecs-core/alb.tf +126 -0
- package/dist/infra-templates/modules/ecs-core/cloudwatch.tf +48 -0
- package/dist/infra-templates/modules/ecs-core/iam.tf +95 -0
- package/dist/infra-templates/modules/ecs-core/main.tf +12 -0
- package/dist/infra-templates/modules/ecs-core/outputs.tf +44 -0
- package/dist/infra-templates/modules/ecs-core/secrets.tf +9 -0
- package/dist/infra-templates/modules/ecs-core/security_groups.tf +73 -0
- package/dist/infra-templates/modules/ecs-core/variables.tf +96 -0
- package/dist/infra-templates/modules/ecs-service/ecs_autoscaling.tf +51 -0
- package/dist/infra-templates/modules/ecs-service/ecs_service.tf +39 -0
- package/dist/infra-templates/modules/ecs-service/ecs_task_definition.tf +56 -0
- package/dist/infra-templates/modules/ecs-service/variables.tf +170 -0
- package/dist/infra-templates/modules/elastic-container-registry/main.tf +32 -0
- package/dist/infra-templates/modules/elastic-container-registry/outputs.tf +9 -0
- package/dist/infra-templates/modules/elastic-container-registry/variables.tf +25 -0
- package/dist/infra-templates/modules/github-oidc-role/main.tf +46 -0
- package/dist/infra-templates/modules/github-oidc-role/outputs.tf +4 -0
- package/dist/infra-templates/modules/github-oidc-role/variables.tf +11 -0
- package/dist/infra-templates/modules/guardduty/main.tf +8 -0
- package/dist/infra-templates/modules/iam/main.tf +205 -0
- package/dist/infra-templates/modules/iam/outputs.tf +3 -0
- package/dist/infra-templates/modules/iam/variables.tf +4 -0
- package/dist/infra-templates/modules/random-key/main.tf +11 -0
- package/dist/infra-templates/modules/random-key/outputs.tf +4 -0
- package/dist/infra-templates/modules/random-key/variables.tf +10 -0
- package/dist/infra-templates/modules/redis/main.tf +47 -0
- package/dist/infra-templates/modules/redis/outputs.tf +8 -0
- package/dist/infra-templates/modules/redis/variables.tf +20 -0
- package/dist/infra-templates/modules/relational-database-service/main.tf +44 -0
- package/dist/infra-templates/modules/relational-database-service/outputs.tf +13 -0
- package/dist/infra-templates/modules/relational-database-service/security-group.tf +15 -0
- package/dist/infra-templates/modules/relational-database-service/variables.tf +50 -0
- package/dist/infra-templates/modules/secret/main.tf +14 -0
- package/dist/infra-templates/modules/secret/outputs.tf +3 -0
- package/dist/infra-templates/modules/secret/variables.tf +8 -0
- package/dist/infra-templates/modules/simple-storage-service/main.tf +28 -0
- package/dist/infra-templates/modules/simple-storage-service/variables.tf +4 -0
- package/dist/infra-templates/modules/vpc/data.tf +2 -0
- package/dist/infra-templates/modules/vpc/main.tf +76 -0
- package/dist/infra-templates/modules/vpc/outputs.tf +23 -0
- package/dist/infra-templates/modules/vpc/variables.tf +5 -0
- package/dist/infra-templates/package.json +6 -0
- package/dist/infra-templates/templates/azure/MANUAL_DEPLOY.md +168 -0
- package/dist/infra-templates/templates/azure/backend.tf +8 -0
- package/dist/infra-templates/templates/azure/data.tf +21 -0
- package/dist/infra-templates/templates/azure/default.tfvars +0 -0
- package/dist/infra-templates/templates/azure/locals.tf +116 -0
- package/dist/infra-templates/templates/azure/main.tf +421 -0
- package/dist/infra-templates/templates/azure/outputs.tf +40 -0
- package/dist/infra-templates/templates/azure/providers.tf +65 -0
- package/dist/infra-templates/templates/azure/variables.tf +69 -0
- package/dist/infra-templates/templates/azure/workflows/build_and_deploy.yml +155 -0
- package/dist/infra-templates/templates/azure/workflows/tests.yml +63 -0
- package/dist/infra-templates/templates/ecs/README.md +235 -0
- package/dist/infra-templates/templates/ecs/backend.tf +7 -0
- package/dist/infra-templates/templates/ecs/data.tf +6 -0
- package/dist/infra-templates/templates/ecs/default.tfvars +1 -0
- package/dist/infra-templates/templates/ecs/locals.tf +97 -0
- package/dist/infra-templates/templates/ecs/main.tf +185 -0
- package/dist/infra-templates/templates/ecs/outputs.tf +42 -0
- package/dist/infra-templates/templates/ecs/providers.tf +21 -0
- package/dist/infra-templates/templates/ecs/variables.tf +105 -0
- package/dist/infra-templates/templates/ecs/workflows/build_and_deploy.yml +188 -0
- package/dist/infra-templates/templates/ecs/workflows/tests.yml +65 -0
- package/package.json +10 -2
- package/schema/fuel.schema.json +570 -91
package/README.md
CHANGED
|
@@ -39,15 +39,17 @@ fuel infra:deploy --config fuel.yml # Step 2: provision infrastructure
|
|
|
39
39
|
|
|
40
40
|
## Commands
|
|
41
41
|
|
|
42
|
-
| Command
|
|
43
|
-
|
|
44
|
-
| `fuel list:modules`
|
|
45
|
-
| `fuel config:verify <path>` | Validate `fuel.yml` and run preflight checks
|
|
46
|
-
| `fuel create:app <name>`
|
|
47
|
-
| `fuel infra:init`
|
|
48
|
-
| `fuel
|
|
49
|
-
| `fuel infra:
|
|
50
|
-
| `fuel
|
|
42
|
+
| Command | Description |
|
|
43
|
+
| --------------------------- | ---------------------------------------------------------------- |
|
|
44
|
+
| `fuel list:modules` | List available modules |
|
|
45
|
+
| `fuel config:verify <path>` | Validate `fuel.yml` and run preflight checks |
|
|
46
|
+
| `fuel create:app <name>` | Scaffold a new app from the monorepo template |
|
|
47
|
+
| `fuel infra:init` | Generate `fuel.yml` and `.fuel-credentials` interactively |
|
|
48
|
+
| `fuel auth:init` | Generate `.fuel-credentials` interactively (credentials only) |
|
|
49
|
+
| `fuel infra:deploy` | Run or resume infrastructure provisioning |
|
|
50
|
+
| `fuel infra:pull` | Pull `fuel.yml` from AWS Secrets Manager for an existing project |
|
|
51
|
+
| `fuel infra:destroy` | Tear down all provisioned cloud resources |
|
|
52
|
+
| `fuel migrate:init` | Generate and run database migrations |
|
|
51
53
|
|
|
52
54
|
## `create:app`
|
|
53
55
|
|
|
@@ -59,29 +61,29 @@ fuel create:app <name> [options]
|
|
|
59
61
|
|
|
60
62
|
**Options:**
|
|
61
63
|
|
|
62
|
-
| Flag
|
|
63
|
-
|
|
64
|
-
| `-m, --modules <list>`
|
|
65
|
-
| `-a, --all-modules`
|
|
66
|
-
| `-o, --output <path>`
|
|
67
|
-
| `-s, --source <path>`
|
|
68
|
-
| `-c, --config <path>`
|
|
69
|
-
| `--dry-run`
|
|
70
|
-
| `--skip-install`
|
|
71
|
-
| `--skip-build`
|
|
72
|
-
| `--skip-git`
|
|
73
|
-
| `--skip-migration-generation`
|
|
74
|
-
| `--keep-migrations`
|
|
75
|
-
| `--target-branch <branch>`
|
|
76
|
-
| `--force-push`
|
|
77
|
-
| `--destroy-on-failure`
|
|
78
|
-
| `--skip-branch-protection`
|
|
79
|
-
| `--github-token <token>`
|
|
80
|
-
| `--github-username <user>`
|
|
81
|
-
| `--github-organization <org>`
|
|
82
|
-
| `--aws-access-key-id <key>`
|
|
83
|
-
| `--aws-secret-access-key <secret>` | AWS secret access key
|
|
84
|
-
| `--aws-region <region>`
|
|
64
|
+
| Flag | Description |
|
|
65
|
+
| ---------------------------------- | --------------------------------------------------------------------------------------------------- |
|
|
66
|
+
| `-m, --modules <list>` | Comma-separated modules to include (e.g. `billing,documents`) |
|
|
67
|
+
| `-a, --all-modules` | Include all available modules. Cannot be combined with `-m`. |
|
|
68
|
+
| `-o, --output <path>` | Output directory (defaults to `./<name>`) |
|
|
69
|
+
| `-s, --source <path>` | Path to a local monorepo root |
|
|
70
|
+
| `-c, --config <path>` | Path to `fuel.yml` — triggers ECS provisioning |
|
|
71
|
+
| `--dry-run` | Preview without writing files |
|
|
72
|
+
| `--skip-install` | Skip `yarn install` (also skips migrations) |
|
|
73
|
+
| `--skip-build` | Skip `yarn build` (also skips migrations) |
|
|
74
|
+
| `--skip-git` | Skip `git init` and initial commit |
|
|
75
|
+
| `--skip-migration-generation` | Skip database migration generation |
|
|
76
|
+
| `--keep-migrations` | Keep existing migration files from the template and skip migration generation |
|
|
77
|
+
| `--target-branch <branch>` | Only push to this branch in the target repo (CI use) |
|
|
78
|
+
| `--force-push` | Force push to the target repo (for CI-managed repos) |
|
|
79
|
+
| `--destroy-on-failure` | Destroy provisioned infrastructure if OpenTofu apply fails (default: preserve) |
|
|
80
|
+
| `--skip-branch-protection` | Skip applying branch protection rules after pushing (useful in CI when protections are already set) |
|
|
81
|
+
| `--github-token <token>` | GitHub token |
|
|
82
|
+
| `--github-username <user>` | GitHub username |
|
|
83
|
+
| `--github-organization <org>` | GitHub organization |
|
|
84
|
+
| `--aws-access-key-id <key>` | AWS access key ID |
|
|
85
|
+
| `--aws-secret-access-key <secret>` | AWS secret access key |
|
|
86
|
+
| `--aws-region <region>` | AWS region |
|
|
85
87
|
|
|
86
88
|
**What it does:**
|
|
87
89
|
|
|
@@ -106,8 +108,8 @@ Validates `fuel.yml` syntax/schema and optionally runs preflight checks (OpenTof
|
|
|
106
108
|
fuel config:verify <path> [options]
|
|
107
109
|
```
|
|
108
110
|
|
|
109
|
-
| Flag
|
|
110
|
-
|
|
111
|
+
| Flag | Description |
|
|
112
|
+
| --------------- | ----------------------------------------------------- |
|
|
111
113
|
| `--config-only` | Only validate the config file. Skip preflight checks. |
|
|
112
114
|
|
|
113
115
|
**Examples:**
|
|
@@ -125,11 +127,21 @@ Interactively generates `fuel.yml` and `.fuel-credentials`.
|
|
|
125
127
|
fuel infra:init [options]
|
|
126
128
|
```
|
|
127
129
|
|
|
128
|
-
| Flag
|
|
129
|
-
|
|
130
|
-
| `-o, --output <path>` | Output path for `fuel.yml`
|
|
131
|
-
| `--template`
|
|
132
|
-
| `--credentials-only`
|
|
130
|
+
| Flag | Description |
|
|
131
|
+
| --------------------- | ------------------------------------------------------ |
|
|
132
|
+
| `-o, --output <path>` | Output path for `fuel.yml` |
|
|
133
|
+
| `--template` | Write a minimal template without prompts |
|
|
134
|
+
| `--credentials-only` | Only generate `.fuel-credentials`, skipping `fuel.yml` |
|
|
135
|
+
|
|
136
|
+
## `auth:init`
|
|
137
|
+
|
|
138
|
+
Generates `.fuel-credentials` interactively. Shorthand for `fuel infra:init --credentials-only`.
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
fuel auth:init
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Prompts for AWS and GitHub credentials, verifies them, and writes `.fuel-credentials` to the current directory. If a `.fuel-credentials` file already exists, the command verifies the existing credentials and asks whether to reuse or replace them. The file is automatically added to `.gitignore`.
|
|
133
145
|
|
|
134
146
|
## `infra:deploy`
|
|
135
147
|
|
|
@@ -139,21 +151,50 @@ Runs or resumes infrastructure provisioning on an existing project.
|
|
|
139
151
|
fuel infra:deploy [options]
|
|
140
152
|
```
|
|
141
153
|
|
|
142
|
-
| Flag
|
|
143
|
-
|
|
144
|
-
| `-p, --path <path>`
|
|
145
|
-
| `-c, --config <path>`
|
|
146
|
-
| `--regenerate`
|
|
147
|
-
| `--plan-only`
|
|
148
|
-
| `--tofu-only`
|
|
149
|
-
| `--destroy-on-failure`
|
|
150
|
-
| `--skip-branch-protection`
|
|
151
|
-
| `--github-token <token>`
|
|
152
|
-
| `--github-username <user>`
|
|
153
|
-
| `--github-organization <org>`
|
|
154
|
-
| `--aws-access-key-id <key>`
|
|
155
|
-
| `--aws-secret-access-key <secret>` | AWS secret access key
|
|
156
|
-
| `--aws-region <region>`
|
|
154
|
+
| Flag | Description |
|
|
155
|
+
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
|
|
156
|
+
| `-p, --path <path>` | Path to project root |
|
|
157
|
+
| `-c, --config <path>` | Path to `fuel.yml` — copies it to the project root and generates the `/infra` folder |
|
|
158
|
+
| `--regenerate` | Regenerate the `/infra` folder from templates |
|
|
159
|
+
| `--plan-only` | Run OpenTofu plan without creating resources |
|
|
160
|
+
| `--tofu-only` | Run only OpenTofu on an existing `/infra` folder (no config, no git push). Conflicts with `--config` and `--regenerate`. |
|
|
161
|
+
| `--destroy-on-failure` | Destroy provisioned resources if OpenTofu apply fails (default: preserve) |
|
|
162
|
+
| `--skip-branch-protection` | Skip applying branch protection rules after pushing (useful in CI when protections are already set) |
|
|
163
|
+
| `--github-token <token>` | GitHub token |
|
|
164
|
+
| `--github-username <user>` | GitHub username |
|
|
165
|
+
| `--github-organization <org>` | GitHub organization |
|
|
166
|
+
| `--aws-access-key-id <key>` | AWS access key ID |
|
|
167
|
+
| `--aws-secret-access-key <secret>` | AWS secret access key |
|
|
168
|
+
| `--aws-region <region>` | AWS region |
|
|
169
|
+
|
|
170
|
+
## `infra:pull`
|
|
171
|
+
|
|
172
|
+
Pulls `fuel.yml` from AWS Secrets Manager for an existing provisioned project.
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
fuel infra:pull [options]
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Useful when you want to make changes to a project that was provisioned without a local `fuel.yml`, or to recover the config after it was lost. Reads `project_name` from `infra/default.tfvars`, fetches the infrastructure configuration from AWS Secrets Manager, and writes `fuel.yml` locally.
|
|
179
|
+
|
|
180
|
+
| Flag | Description |
|
|
181
|
+
| ---------------------------------- | ------------------------------------------------------------- |
|
|
182
|
+
| `-p, --path <path>` | Path to project root (must contain `/infra` folder) |
|
|
183
|
+
| `-o, --output <dir>` | Directory to write `fuel.yml` into (defaults to project root) |
|
|
184
|
+
| `--github-token <token>` | GitHub token |
|
|
185
|
+
| `--github-username <user>` | GitHub username |
|
|
186
|
+
| `--github-organization <org>` | GitHub organization |
|
|
187
|
+
| `--aws-access-key-id <key>` | AWS access key ID |
|
|
188
|
+
| `--aws-secret-access-key <secret>` | AWS secret access key |
|
|
189
|
+
| `--aws-region <region>` | AWS region |
|
|
190
|
+
|
|
191
|
+
**Examples:**
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
fuel infra:pull # Pull fuel.yml into current directory
|
|
195
|
+
fuel infra:pull -p ./my-app # Pull into another project directory
|
|
196
|
+
fuel infra:pull -o ./configs # Write fuel.yml to ./configs/fuel.yml
|
|
197
|
+
```
|
|
157
198
|
|
|
158
199
|
## `infra:destroy`
|
|
159
200
|
|
|
@@ -163,15 +204,15 @@ Destroys all AWS infrastructure managed by OpenTofu.
|
|
|
163
204
|
fuel infra:destroy [options]
|
|
164
205
|
```
|
|
165
206
|
|
|
166
|
-
| Flag
|
|
167
|
-
|
|
168
|
-
| `-p, --path <path>`
|
|
169
|
-
| `--github-token <token>`
|
|
170
|
-
| `--github-username <user>`
|
|
171
|
-
| `--github-organization <org>`
|
|
172
|
-
| `--aws-access-key-id <key>`
|
|
207
|
+
| Flag | Description |
|
|
208
|
+
| ---------------------------------- | --------------------- |
|
|
209
|
+
| `-p, --path <path>` | Path to project root |
|
|
210
|
+
| `--github-token <token>` | GitHub token |
|
|
211
|
+
| `--github-username <user>` | GitHub username |
|
|
212
|
+
| `--github-organization <org>` | GitHub organization |
|
|
213
|
+
| `--aws-access-key-id <key>` | AWS access key ID |
|
|
173
214
|
| `--aws-secret-access-key <secret>` | AWS secret access key |
|
|
174
|
-
| `--aws-region <region>`
|
|
215
|
+
| `--aws-region <region>` | AWS region |
|
|
175
216
|
|
|
176
217
|
## `migrate:init`
|
|
177
218
|
|
|
@@ -181,10 +222,10 @@ Generates and runs database migrations for an existing project.
|
|
|
181
222
|
fuel migrate:init [options]
|
|
182
223
|
```
|
|
183
224
|
|
|
184
|
-
| Flag
|
|
185
|
-
|
|
186
|
-
| `-p, --path <path>` | Path to project root
|
|
187
|
-
| `--skip-commit`
|
|
225
|
+
| Flag | Description |
|
|
226
|
+
| ------------------- | ------------------------------------ |
|
|
227
|
+
| `-p, --path <path>` | Path to project root |
|
|
228
|
+
| `--skip-commit` | Skip the git commit after migrations |
|
|
188
229
|
|
|
189
230
|
## Configuration Schema
|
|
190
231
|
|
|
@@ -202,7 +243,7 @@ Infrastructure commands require AWS and GitHub credentials. Each key is resolved
|
|
|
202
243
|
|
|
203
244
|
Sources complement each other — e.g., AWS keys from env vars + `GITHUB_TOKEN` from `.fuel-credentials` = valid.
|
|
204
245
|
|
|
205
|
-
Run `fuel
|
|
246
|
+
Run `fuel auth:init` to generate `.fuel-credentials` interactively.
|
|
206
247
|
|
|
207
248
|
## Infrastructure Architecture
|
|
208
249
|
|
|
@@ -220,13 +261,76 @@ When using `--config fuel.yml`, the CLI provisions:
|
|
|
220
261
|
|
|
221
262
|
GitHub resources (repository, secrets, branch protections) are managed directly by the CLI via the GitHub API.
|
|
222
263
|
|
|
264
|
+
## Required AWS Permissions
|
|
265
|
+
|
|
266
|
+
The AWS credentials you provide (`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` / `AWS_REGION`) need permission for two distinct things: **(1)** a handful of calls the CLI itself makes directly, and **(2)** everything OpenTofu provisions via the Terraform modules in `packages/infra/modules/`.
|
|
267
|
+
|
|
268
|
+
> **Only long-lived IAM user access keys are supported today.** The CLI does not pass `AWS_SESSION_TOKEN`, so temporary/SSO-issued credentials (e.g. AWS IAM Identity Center) won't work yet.
|
|
269
|
+
|
|
270
|
+
### 1. Direct CLI calls
|
|
271
|
+
|
|
272
|
+
| Service | Actions | Why |
|
|
273
|
+
| --------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
|
274
|
+
| S3 | `CreateBucket`, `HeadBucket`, `PutBucketVersioning`, `GetObject`, `PutObject`, `DeleteObject`, `ListBucket` | Creates/reads the OpenTofu state bucket (`<name>-infrastructure-tf-<suffix>`) |
|
|
275
|
+
| Secrets Manager | `CreateSecret`, `PutSecretValue`, `GetSecretValue` | Writes/reads the `<name>-infrastructure-variables` secret, which OpenTofu itself reads back during `plan`/`apply` |
|
|
276
|
+
| STS | `GetCallerIdentity` | `fuel auth:init` / `infra:init` credential verification only |
|
|
277
|
+
| ACM | `DescribeCertificate` | Verifies the SSL certificate ARN you provide already exists and is `ISSUED` — the CLI never creates certificates |
|
|
278
|
+
|
|
279
|
+
### 2. Resources OpenTofu provisions
|
|
280
|
+
|
|
281
|
+
Created/updated/destroyed by `tofu apply` / `tofu destroy` using the same credentials. Four modules (`vpc`, `simple-storage-service`, `elastic-container-registry`, `relational-database-service`) wrap public `terraform-aws-modules/*` registry modules rather than declaring resources directly, so their exact action list can shift slightly across module version bumps — treat the table below as the accurate minimum, not a byte-exact enumeration.
|
|
282
|
+
|
|
283
|
+
| Service | Needed for | Key actions |
|
|
284
|
+
| --------------------------------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
285
|
+
| **IAM** | ECS task/execution roles, GitHub Actions OIDC role, VPC flow-logs role, ALB controller policy | `CreateRole`, `DeleteRole`, `GetRole`, `TagRole`, `PassRole`, `CreatePolicy`, `DeletePolicy`, `GetPolicy(Version)`, `CreatePolicyVersion`, `Attach/DetachRolePolicy`, `Put/Get/DeleteRolePolicy`, `Create/Delete/Get/TagOpenIDConnectProvider` |
|
|
286
|
+
| **EC2 / VPC** | Networking — VPC, subnets, route tables, IGW, NAT gateway, EIP, security groups | `Create/DeleteVpc`, `Describe*`, `Create/DeleteSubnet`, `Create/DeleteRouteTable`, `Create/DeleteRoute`, `Associate/DisassociateRouteTable`, `Create/Attach/Detach/DeleteInternetGateway`, `Create/DeleteNatGateway`, `Allocate/ReleaseAddress`, `Create/DeleteSecurityGroup`, `Authorize/RevokeSecurityGroup{Ingress,Egress}`, `CreateTags`, `DescribeAvailabilityZones` |
|
|
287
|
+
| **ECS** | Cluster, task definitions, services | `Create/DeleteCluster`, `DescribeClusters`, `Register/DeregisterTaskDefinition`, `Create/Update/DeleteService`, `DescribeServices`, `TagResource` |
|
|
288
|
+
| **Application Auto Scaling** | ECS service autoscaling | `RegisterScalableTarget`, `DeregisterScalableTarget`, `PutScalingPolicy`, `DeleteScalingPolicy`, `Describe*` |
|
|
289
|
+
| **Elastic Load Balancing** | ALB, target groups, listeners, rules | `Create/Delete/DescribeLoadBalancer`, `Create/Delete/Modify/DescribeTargetGroup`, `Register/DeregisterTargets`, `Create/Delete/Modify/DescribeListener`, `Create/Delete/Modify/DescribeRule`, `Add/RemoveTags` |
|
|
290
|
+
| **ECR** | Container registry | `Create/DeleteRepository`, `DescribeRepositories`, `PutLifecyclePolicy`, `TagResource` |
|
|
291
|
+
| **RDS** | PostgreSQL database (apps with `postgres: true`) | `Create/DeleteDBInstance`, `Describe/ModifyDBInstance`, `Create/DeleteDBSubnetGroup`, `Create/Delete/ModifyDBParameterGroup`, `AddTagsToResource` |
|
|
292
|
+
| **ElastiCache** | Redis (apps with `redis: true`) | `Create/DeleteCacheCluster`, `Describe/ModifyCacheCluster`, `Create/DeleteCacheSubnetGroup`, `Create/Delete/ModifyCacheParameterGroup`, `AddTagsToResource` |
|
|
293
|
+
| **S3** (app bucket) | Shared app storage bucket | `Create/DeleteBucket`, `PutBucketVersioning`, `PutBucketOwnershipControls`, `PutBucketCORS`, `PutBucketAcl`, `GetBucket*` |
|
|
294
|
+
| **Secrets Manager** (app secrets) | Per-app runtime secret | Same actions as above, plus `DescribeSecret`, `DeleteSecret`, `TagResource` |
|
|
295
|
+
| **CloudWatch** | Log groups, alarms | `Create/DeleteLogGroup`, `PutRetentionPolicy`, `Create/DeleteLogStream`, `PutLogEvents`, `PutMetricAlarm`, `DeleteAlarms`, `DescribeAlarms` |
|
|
296
|
+
| **EventBridge** | ECS deploy event → Slack notification | `PutRule`, `DeleteRule`, `PutTargets`, `RemoveTargets` |
|
|
297
|
+
| **SNS** | RDS alarm + deploy notifications | `CreateTopic`, `DeleteTopic`, `Subscribe`, `SetTopicAttributes` |
|
|
298
|
+
| **Lambda** | SNS → Slack forwarders | `Create/DeleteFunction`, `GetFunction`, `UpdateFunctionCode`, `UpdateFunctionConfiguration`, `Add/RemovePermission` |
|
|
299
|
+
| **GuardDuty** | Threat detection | `CreateDetector`, `DeleteDetector`, `GetDetector`, `ListDetectors`, `UpdateDetector` |
|
|
300
|
+
|
|
301
|
+
Two extra reads happen directly via the AWS CLI during `terraform plan` (not the Terraform AWS provider), to decide whether to import pre-existing resources instead of creating new ones: `iam:GetOpenIDConnectProvider` and `guardduty:ListDetectors`.
|
|
302
|
+
|
|
303
|
+
### What the provisioned roles themselves can do
|
|
304
|
+
|
|
305
|
+
Separate from what your deploying credentials need, Terraform also creates roles that _other_ principals assume — worth knowing since they define what CI/CD and your running containers can reach:
|
|
306
|
+
|
|
307
|
+
| Role | Assumed by | Granted permissions |
|
|
308
|
+
| ------------------------------ | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
|
|
309
|
+
| `<name>-github-actions-role` | GitHub Actions, via OIDC (restricted to `repo:<org>/*`) | AWS managed `AmazonECS_FullAccess` + `EC2InstanceProfileForImageBuilderECRContainerBuilds` |
|
|
310
|
+
| `<name>_ECS_TaskExecutionRole` | ECS tasks | AWS managed `SecretsManagerReadWrite` + `AmazonECSTaskExecutionRolePolicy` |
|
|
311
|
+
| `<name>-ecs-task-role` | ECS tasks (your running app containers) | Custom: ECR image pull, `ecs:ExecuteCommand`, SSM Session Manager (exec), CloudWatch Logs write |
|
|
312
|
+
|
|
313
|
+
### Known gaps in the current Terraform
|
|
314
|
+
|
|
315
|
+
Not CLI bugs, but worth knowing before granting broad access — these came up while auditing the modules for this doc:
|
|
316
|
+
|
|
317
|
+
- `cloud-watch`'s `lambda_execution_role` has no policy attached, so the SNS→Slack Lambdas likely can't write their own CloudWatch Logs as currently written.
|
|
318
|
+
- `vpc`'s `flow_logs_role` is defined but no `aws_flow_log` resource in the module actually references it — currently orphaned.
|
|
319
|
+
- `iam` module's broad ALB-controller policy (`ec2:Describe*`, `elasticloadbalancing:*`, `waf-regional:*`, `wafv2:*`, `shield:*`, `cognito-idp:DescribeUserPoolClient`) is created but never attached to any role in these templates.
|
|
320
|
+
|
|
321
|
+
### Quick start
|
|
322
|
+
|
|
323
|
+
For a fast setup, attaching these AWS managed policies to the deploying IAM user/role covers everything above: `AmazonS3FullAccess`, `SecretsManagerReadWrite`, `AmazonVPCFullAccess`, `AmazonECS_FullAccess`, `AmazonEC2ContainerRegistryFullAccess`, `AmazonRDSFullAccess`, `AmazonElastiCacheFullAccess`, `CloudWatchFullAccess`, `AmazonSNSFullAccess`, `AWSLambda_FullAccess`, `AmazonGuardDutyFullAccess`, `IAMFullAccess`.
|
|
324
|
+
|
|
325
|
+
For production use, scope `IAMFullAccess` down to the role/policy name patterns your `fuel.yml` `name` produces (`<name>-*`, `<name>_ECS_TaskExecutionRole`) instead of blanket IAM access — that's the highest-blast-radius permission in this list.
|
|
326
|
+
|
|
223
327
|
## Requirements
|
|
224
328
|
|
|
225
329
|
- Node.js >= 18
|
|
226
330
|
- Docker (for migration generation)
|
|
227
331
|
- [OpenTofu](https://opentofu.org/) >= 1.5 (for infrastructure provisioning)
|
|
228
|
-
- AWS credentials
|
|
229
|
-
- GitHub personal access token with `repo`
|
|
332
|
+
- AWS IAM user credentials — see [Required AWS Permissions](#required-aws-permissions)
|
|
333
|
+
- GitHub personal access token with the `repo` scope — `fuel auth:init` opens a token-creation link with this scope pre-selected, so there's nothing to look up manually
|
|
230
334
|
|
|
231
335
|
## License
|
|
232
336
|
|
package/dist/bin/fuel.js
CHANGED
|
@@ -42,19 +42,11 @@ const create_app_1 = require("../commands/create-app");
|
|
|
42
42
|
const infra_deploy_1 = require("../commands/infra-deploy");
|
|
43
43
|
const infra_destroy_1 = require("../commands/infra-destroy");
|
|
44
44
|
const infra_init_1 = require("../commands/infra-init");
|
|
45
|
+
const infra_pull_1 = require("../commands/infra-pull");
|
|
45
46
|
const list_modules_1 = require("../commands/list-modules");
|
|
46
47
|
const migrate_init_1 = require("../commands/migrate-init");
|
|
47
48
|
const packageJson = require(path.join(__dirname, '..', '..', 'package.json'));
|
|
48
49
|
const program = new commander_1.Command();
|
|
49
|
-
function addCredentialOptions(cmd) {
|
|
50
|
-
return cmd
|
|
51
|
-
.option('--github-token <token>', 'GitHub token. Falls back to .fuel-credentials or GITHUB_TOKEN env var.')
|
|
52
|
-
.option('--github-username <username>', 'GitHub username. Falls back to .fuel-credentials or GITHUB_USERNAME env var.')
|
|
53
|
-
.option('--github-organization <org>', 'GitHub organization. Falls back to .fuel-credentials or GITHUB_ORGANIZATION env var.')
|
|
54
|
-
.option('--aws-access-key-id <key>', 'AWS access key ID. Falls back to .fuel-credentials or AWS_ACCESS_KEY_ID env var.')
|
|
55
|
-
.option('--aws-secret-access-key <secret>', 'AWS secret access key. Falls back to .fuel-credentials or AWS_SECRET_ACCESS_KEY env var.')
|
|
56
|
-
.option('--aws-region <region>', 'AWS region. Falls back to .fuel-credentials or AWS_REGION env var.');
|
|
57
|
-
}
|
|
58
50
|
function buildOverrides(flags) {
|
|
59
51
|
const overrides = {};
|
|
60
52
|
if (flags.githubToken)
|
|
@@ -63,12 +55,6 @@ function buildOverrides(flags) {
|
|
|
63
55
|
overrides.GITHUB_USERNAME = flags.githubUsername;
|
|
64
56
|
if (flags.githubOrganization)
|
|
65
57
|
overrides.GITHUB_ORGANIZATION = flags.githubOrganization;
|
|
66
|
-
if (flags.awsAccessKeyId)
|
|
67
|
-
overrides.AWS_ACCESS_KEY_ID = flags.awsAccessKeyId;
|
|
68
|
-
if (flags.awsSecretAccessKey)
|
|
69
|
-
overrides.AWS_SECRET_ACCESS_KEY = flags.awsSecretAccessKey;
|
|
70
|
-
if (flags.awsRegion)
|
|
71
|
-
overrides.AWS_REGION = flags.awsRegion;
|
|
72
58
|
return Object.keys(overrides).length > 0 ? overrides : undefined;
|
|
73
59
|
}
|
|
74
60
|
program
|
|
@@ -87,7 +73,7 @@ Workflows:
|
|
|
87
73
|
|
|
88
74
|
3. Add infra to an existing project (created without -c):
|
|
89
75
|
fuel infra:init Step 1: generate fuel.yml + .fuel-credentials
|
|
90
|
-
fuel infra:deploy --config fuel.yml Step 2:
|
|
76
|
+
fuel infra:deploy --config fuel.yml Step 2: provision infrastructure
|
|
91
77
|
|
|
92
78
|
4. Resume / retry infra (after a failure in step 2 or 3):
|
|
93
79
|
fuel infra:deploy [--path <project>] Re-run infrastructure provisioning without re-scaffolding
|
|
@@ -99,12 +85,16 @@ Workflows:
|
|
|
99
85
|
fuel infra:destroy [--path <project>] Destroy all provisioned cloud resources
|
|
100
86
|
|
|
101
87
|
Credentials:
|
|
102
|
-
Infrastructure commands require AWS and GitHub credentials. They are
|
|
103
|
-
|
|
104
|
-
|
|
88
|
+
Infrastructure commands require cloud (AWS or Azure) and GitHub credentials. They are
|
|
89
|
+
resolved in order:
|
|
90
|
+
1. CLI flags (--github-token, --github-username, --github-organization) — GitHub only,
|
|
91
|
+
highest priority. Cloud credentials are never passed as CLI flags.
|
|
105
92
|
2. .fuel-credentials JSON file in the project root
|
|
106
93
|
3. .fuel-credentials JSON file in the current working directory
|
|
107
|
-
|
|
94
|
+
4. Environment variables: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION (or
|
|
95
|
+
AZURE_SUBSCRIPTION_ID, AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET),
|
|
96
|
+
GITHUB_TOKEN, GITHUB_USERNAME, GITHUB_ORGANIZATION
|
|
97
|
+
Run "fuel auth:init" to generate .fuel-credentials interactively.
|
|
108
98
|
|
|
109
99
|
Quick examples:
|
|
110
100
|
fuel list:modules List available modules
|
|
@@ -190,9 +180,6 @@ program
|
|
|
190
180
|
.option('--github-token <token>', 'GitHub token. Falls back to .fuel-credentials or GITHUB_TOKEN env var.')
|
|
191
181
|
.option('--github-username <username>', 'GitHub username. Falls back to .fuel-credentials or GITHUB_USERNAME env var.')
|
|
192
182
|
.option('--github-organization <org>', 'GitHub organization. Falls back to .fuel-credentials or GITHUB_ORGANIZATION env var.')
|
|
193
|
-
.option('--aws-access-key-id <key>', 'AWS access key ID. Falls back to .fuel-credentials or AWS_ACCESS_KEY_ID env var.')
|
|
194
|
-
.option('--aws-secret-access-key <secret>', 'AWS secret access key. Falls back to .fuel-credentials or AWS_SECRET_ACCESS_KEY env var.')
|
|
195
|
-
.option('--aws-region <region>', 'AWS region. Falls back to .fuel-credentials or AWS_REGION env var.')
|
|
196
183
|
.addHelpText('after', `
|
|
197
184
|
Scaffolding examples:
|
|
198
185
|
fuel create:app my-app Base app, no optional modules
|
|
@@ -281,6 +268,7 @@ program
|
|
|
281
268
|
' prompt for credentials or validate anything.')
|
|
282
269
|
.option('-o, --output <path>', 'Output path for fuel.yml. Defaults to ./fuel.yml in the current directory.')
|
|
283
270
|
.option('--template', 'Write a minimal fuel.yml template without prompts or credential validation.')
|
|
271
|
+
.option('--azure', 'With --template, write an Azure (Container Apps) template instead of the default AWS (ECS) one.')
|
|
284
272
|
.option('--credentials-only', 'Only generate .fuel-credentials (prompt for AWS + GitHub credentials, verify, and write). Skips fuel.yml generation.')
|
|
285
273
|
.addHelpText('after', `
|
|
286
274
|
Generated files:
|
|
@@ -310,6 +298,27 @@ Examples:
|
|
|
310
298
|
process.exit(1);
|
|
311
299
|
}
|
|
312
300
|
});
|
|
301
|
+
program
|
|
302
|
+
.command('auth:init')
|
|
303
|
+
.description('Generate .fuel-credentials interactively (AWS + GitHub credentials only).\n\n' +
|
|
304
|
+
' Prompts for AWS and GitHub credentials, verifies them against AWS STS and the\n' +
|
|
305
|
+
' GitHub API, and writes .fuel-credentials to the current directory. The file is\n' +
|
|
306
|
+
' automatically added to .gitignore — never commit it.\n\n' +
|
|
307
|
+
' If .fuel-credentials already exists, the command verifies the existing credentials\n' +
|
|
308
|
+
' and asks whether to reuse or replace them.')
|
|
309
|
+
.addHelpText('after', `
|
|
310
|
+
Examples:
|
|
311
|
+
fuel auth:init Generate or refresh .fuel-credentials`)
|
|
312
|
+
.action(async () => {
|
|
313
|
+
try {
|
|
314
|
+
await (0, infra_init_1.infraInit)({ credentialsOnly: true });
|
|
315
|
+
process.exit(0);
|
|
316
|
+
}
|
|
317
|
+
catch (error) {
|
|
318
|
+
console.error(`\n Error: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
319
|
+
process.exit(1);
|
|
320
|
+
}
|
|
321
|
+
});
|
|
313
322
|
program
|
|
314
323
|
.command('infra:deploy')
|
|
315
324
|
.description('Run or resume infrastructure provisioning on an already-generated project.\n\n' +
|
|
@@ -326,6 +335,7 @@ program
|
|
|
326
335
|
.option('-p, --path <path>', 'Path to the project root. Defaults to the current directory.')
|
|
327
336
|
.option('-c, --config <path>', 'Path to fuel.yml. Generates fuel.yml in the project and provisions infrastructure. Use this to add infra to a project created without -c.')
|
|
328
337
|
.option('--regenerate', 'Delete and regenerate the /infra folder from templates before deploying. Use this if you changed fuel.yml and need fresh OpenTofu files.')
|
|
338
|
+
.option('-s, --source <path>', 'Local monorepo checkout to read infra templates from when generating/regenerating /infra. Defaults to downloading the matching release (use --github-token for private repos).')
|
|
329
339
|
.option('--plan-only', 'Run OpenTofu plan instead of apply. Shows what would change without creating any resources.')
|
|
330
340
|
.option('--tofu-only', 'Run only OpenTofu init + apply on an existing /infra folder. Skips config validation, secret upload, GitHub repo creation, and code push. Reads all variables from default.tfvars. Conflicts with --config and --regenerate.')
|
|
331
341
|
.option('--destroy-on-failure', 'Destroy all provisioned resources if OpenTofu apply fails. Default: false (resources are preserved for re-run).')
|
|
@@ -333,12 +343,9 @@ program
|
|
|
333
343
|
.option('--github-token <token>', 'GitHub token. Falls back to .fuel-credentials or GITHUB_TOKEN env var.')
|
|
334
344
|
.option('--github-username <username>', 'GitHub username. Falls back to .fuel-credentials or GITHUB_USERNAME env var.')
|
|
335
345
|
.option('--github-organization <org>', 'GitHub organization. Falls back to .fuel-credentials or GITHUB_ORGANIZATION env var.')
|
|
336
|
-
.option('--aws-access-key-id <key>', 'AWS access key ID. Falls back to .fuel-credentials or AWS_ACCESS_KEY_ID env var.')
|
|
337
|
-
.option('--aws-secret-access-key <secret>', 'AWS secret access key. Falls back to .fuel-credentials or AWS_SECRET_ACCESS_KEY env var.')
|
|
338
|
-
.option('--aws-region <region>', 'AWS region. Falls back to .fuel-credentials or AWS_REGION env var.')
|
|
339
346
|
.addHelpText('after', `
|
|
340
347
|
Credential resolution (in order of priority):
|
|
341
|
-
1. CLI flags (--github-token, --
|
|
348
|
+
1. CLI flags (--github-token, --github-username, --github-organization)
|
|
342
349
|
2. .fuel-credentials file in the project root (--path)
|
|
343
350
|
3. .fuel-credentials file in the current working directory
|
|
344
351
|
4. Environment variables (AWS_ACCESS_KEY_ID, GITHUB_TOKEN, etc.)
|
|
@@ -368,11 +375,53 @@ To tear down provisioned resources:
|
|
|
368
375
|
path: opts.path,
|
|
369
376
|
config: opts.config,
|
|
370
377
|
regenerate: opts.regenerate,
|
|
378
|
+
source: opts.source,
|
|
371
379
|
planOnly: opts.planOnly,
|
|
372
380
|
tofuOnly: opts.tofuOnly,
|
|
373
381
|
destroyOnFailure: opts.destroyOnFailure,
|
|
374
382
|
skipBranchProtection: opts.skipBranchProtection,
|
|
375
|
-
credentialOverrides: buildOverrides(opts)
|
|
383
|
+
credentialOverrides: buildOverrides(opts)
|
|
384
|
+
});
|
|
385
|
+
process.exit(0);
|
|
386
|
+
}
|
|
387
|
+
catch (error) {
|
|
388
|
+
console.error(`\n Error: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
389
|
+
process.exit(1);
|
|
390
|
+
}
|
|
391
|
+
});
|
|
392
|
+
program
|
|
393
|
+
.command('infra:pull')
|
|
394
|
+
.description('Pull fuel.yml from AWS Secrets Manager for an existing provisioned project.\n\n' +
|
|
395
|
+
' Reads the project name from infra/default.tfvars, fetches the infrastructure\n' +
|
|
396
|
+
' configuration from AWS Secrets Manager, and writes fuel.yml locally. Use this\n' +
|
|
397
|
+
' when you want to make changes to a project that was provisioned without a local\n' +
|
|
398
|
+
' fuel.yml, or to recover the config after it was lost.')
|
|
399
|
+
.option('-p, --path <path>', 'Path to the project root (must contain an /infra folder). Defaults to the current directory.')
|
|
400
|
+
.option('-o, --output <dir>', 'Directory to write fuel.yml into. Defaults to the project root.')
|
|
401
|
+
.option('--github-token <token>', 'GitHub token. Falls back to .fuel-credentials or GITHUB_TOKEN env var.')
|
|
402
|
+
.option('--github-username <username>', 'GitHub username. Falls back to .fuel-credentials or GITHUB_USERNAME env var.')
|
|
403
|
+
.option('--github-organization <org>', 'GitHub organization. Falls back to .fuel-credentials or GITHUB_ORGANIZATION env var.')
|
|
404
|
+
.addHelpText('after', `
|
|
405
|
+
What this command does:
|
|
406
|
+
1. Reads project_name from infra/default.tfvars
|
|
407
|
+
2. Resolves credentials (flags → .fuel-credentials → env vars)
|
|
408
|
+
3. Fetches infrastructure config from AWS Secrets Manager
|
|
409
|
+
4. Writes fuel.yml to the project root (or --output directory)
|
|
410
|
+
|
|
411
|
+
Prerequisites:
|
|
412
|
+
- The project must contain an /infra folder with default.tfvars
|
|
413
|
+
- Credentials must be available via .fuel-credentials or env vars
|
|
414
|
+
|
|
415
|
+
Examples:
|
|
416
|
+
fuel infra:pull Pull fuel.yml into current directory
|
|
417
|
+
fuel infra:pull -p ./my-app Pull into another project directory
|
|
418
|
+
fuel infra:pull -o ./configs Write fuel.yml to ./configs/fuel.yml`)
|
|
419
|
+
.action(async (opts) => {
|
|
420
|
+
try {
|
|
421
|
+
await (0, infra_pull_1.infraPull)({
|
|
422
|
+
path: opts.path,
|
|
423
|
+
output: opts.output,
|
|
424
|
+
credentialOverrides: buildOverrides(opts)
|
|
376
425
|
});
|
|
377
426
|
process.exit(0);
|
|
378
427
|
}
|
|
@@ -435,9 +484,6 @@ program
|
|
|
435
484
|
.option('--github-token <token>', 'GitHub token. Falls back to .fuel-credentials or GITHUB_TOKEN env var.')
|
|
436
485
|
.option('--github-username <username>', 'GitHub username. Falls back to .fuel-credentials or GITHUB_USERNAME env var.')
|
|
437
486
|
.option('--github-organization <org>', 'GitHub organization. Falls back to .fuel-credentials or GITHUB_ORGANIZATION env var.')
|
|
438
|
-
.option('--aws-access-key-id <key>', 'AWS access key ID. Falls back to .fuel-credentials or AWS_ACCESS_KEY_ID env var.')
|
|
439
|
-
.option('--aws-secret-access-key <secret>', 'AWS secret access key. Falls back to .fuel-credentials or AWS_SECRET_ACCESS_KEY env var.')
|
|
440
|
-
.option('--aws-region <region>', 'AWS region. Falls back to .fuel-credentials or AWS_REGION env var.')
|
|
441
487
|
.addHelpText('after', `
|
|
442
488
|
What this command does:
|
|
443
489
|
1. Validates fuel.yml, OpenTofu version, and credentials
|
package/dist/bin/fuel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fuel.js","sourceRoot":"","sources":["../../src/bin/fuel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fuel.js","sourceRoot":"","sources":["../../src/bin/fuel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../../src/cleanup/finalize.ts"],"names":[],"mappings":"AAKA,2DAA2D;AAC3D,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAQ/C,
|
|
1
|
+
{"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../../src/cleanup/finalize.ts"],"names":[],"mappings":"AAKA,2DAA2D;AAC3D,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAQ/C,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,aAAa,MAAM,EACnB,gBAAgB,MAAM,EAAE,kBA+BzB,CAAA;AAED,eAAO,MAAM,aAAa,GAAU,aAAa,MAAM,EAAE,SAAS,MAAM,kBA2BvE,CAAA;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,iBAAiB,GAC5B,aAAa,MAAM,EACnB,UAAS,wBAA6B,SAuBvC,CAAA"}
|
package/dist/cleanup/finalize.js
CHANGED
|
@@ -55,7 +55,11 @@ const cleanPackageJsonDeps = async (projectRoot, removedModules) => {
|
|
|
55
55
|
for (const pkgPath of packageJsonFiles) {
|
|
56
56
|
const pkg = await fs.readJson(pkgPath);
|
|
57
57
|
let modified = false;
|
|
58
|
-
for (const depType of [
|
|
58
|
+
for (const depType of [
|
|
59
|
+
'dependencies',
|
|
60
|
+
'devDependencies',
|
|
61
|
+
'peerDependencies'
|
|
62
|
+
]) {
|
|
59
63
|
if (!pkg[depType])
|
|
60
64
|
continue;
|
|
61
65
|
for (const dep of depsToRemove) {
|
|
@@ -79,7 +83,11 @@ const renameProject = async (projectRoot, appName) => {
|
|
|
79
83
|
if (pkg.name) {
|
|
80
84
|
pkg.name = pkg.name.replace(/@fuel\//g, `${scope}/`);
|
|
81
85
|
}
|
|
82
|
-
for (const depType of [
|
|
86
|
+
for (const depType of [
|
|
87
|
+
'dependencies',
|
|
88
|
+
'devDependencies',
|
|
89
|
+
'peerDependencies'
|
|
90
|
+
]) {
|
|
83
91
|
if (!pkg[depType])
|
|
84
92
|
continue;
|
|
85
93
|
const renamed = {};
|
|
@@ -100,7 +108,7 @@ const initializeProject = (projectRoot, options = {}) => {
|
|
|
100
108
|
(0, child_process_1.execSync)('git add -A', { cwd: projectRoot, stdio: 'pipe' });
|
|
101
109
|
(0, child_process_1.execSync)('git commit -m "Initial commit from fuel create:app"', {
|
|
102
110
|
cwd: projectRoot,
|
|
103
|
-
stdio: 'pipe'
|
|
111
|
+
stdio: 'pipe'
|
|
104
112
|
});
|
|
105
113
|
}
|
|
106
114
|
if (!skipInstall) {
|