@swovohq/fuel 0.2.0-alpha.8 → 0.2.0

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.
Files changed (73) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +71 -19
  3. package/dist/bin/fuel.js +134 -44
  4. package/dist/bin/fuel.js.map +1 -1
  5. package/dist/commands/config-verify.d.ts +4 -0
  6. package/dist/commands/config-verify.d.ts.map +1 -0
  7. package/dist/commands/config-verify.js +66 -0
  8. package/dist/commands/config-verify.js.map +1 -0
  9. package/dist/commands/create-app.d.ts +6 -1
  10. package/dist/commands/create-app.d.ts.map +1 -1
  11. package/dist/commands/create-app.js +66 -45
  12. package/dist/commands/create-app.js.map +1 -1
  13. package/dist/commands/infra-deploy.d.ts +5 -0
  14. package/dist/commands/infra-deploy.d.ts.map +1 -1
  15. package/dist/commands/infra-deploy.js +59 -15
  16. package/dist/commands/infra-deploy.js.map +1 -1
  17. package/dist/commands/infra-destroy.d.ts +2 -0
  18. package/dist/commands/infra-destroy.d.ts.map +1 -1
  19. package/dist/commands/infra-destroy.js +4 -6
  20. package/dist/commands/infra-destroy.js.map +1 -1
  21. package/dist/commands/infra-init.d.ts +1 -0
  22. package/dist/commands/infra-init.d.ts.map +1 -1
  23. package/dist/commands/infra-init.js +99 -14
  24. package/dist/commands/infra-init.js.map +1 -1
  25. package/dist/commands/migrate-init.d.ts.map +1 -1
  26. package/dist/commands/migrate-init.js +28 -12
  27. package/dist/commands/migrate-init.js.map +1 -1
  28. package/dist/engines/template-source.d.ts.map +1 -1
  29. package/dist/engines/template-source.js +14 -1
  30. package/dist/engines/template-source.js.map +1 -1
  31. package/dist/infra/config-loader.d.ts.map +1 -1
  32. package/dist/infra/config-loader.js +10 -2
  33. package/dist/infra/config-loader.js.map +1 -1
  34. package/dist/infra/config-writer.d.ts +2 -7
  35. package/dist/infra/config-writer.d.ts.map +1 -1
  36. package/dist/infra/config-writer.js +5 -11
  37. package/dist/infra/config-writer.js.map +1 -1
  38. package/dist/infra/credentials.d.ts +10 -2
  39. package/dist/infra/credentials.d.ts.map +1 -1
  40. package/dist/infra/credentials.js +44 -25
  41. package/dist/infra/credentials.js.map +1 -1
  42. package/dist/infra/git-client.d.ts +1 -1
  43. package/dist/infra/git-client.d.ts.map +1 -1
  44. package/dist/infra/git-client.js +8 -4
  45. package/dist/infra/git-client.js.map +1 -1
  46. package/dist/infra/orchestrator.d.ts +4 -1
  47. package/dist/infra/orchestrator.d.ts.map +1 -1
  48. package/dist/infra/orchestrator.js +38 -29
  49. package/dist/infra/orchestrator.js.map +1 -1
  50. package/dist/infra/port-utils.d.ts +4 -0
  51. package/dist/infra/port-utils.d.ts.map +1 -0
  52. package/dist/infra/port-utils.js +77 -0
  53. package/dist/infra/port-utils.js.map +1 -0
  54. package/dist/infra/preflight.d.ts +1 -1
  55. package/dist/infra/preflight.d.ts.map +1 -1
  56. package/dist/infra/preflight.js +4 -4
  57. package/dist/infra/preflight.js.map +1 -1
  58. package/dist/infra/s3-state-bucket.d.ts +1 -1
  59. package/dist/infra/s3-state-bucket.d.ts.map +1 -1
  60. package/dist/infra/s3-state-bucket.js +21 -26
  61. package/dist/infra/s3-state-bucket.js.map +1 -1
  62. package/dist/infra/secrets-manager-client.d.ts.map +1 -1
  63. package/dist/infra/secrets-manager-client.js +35 -1
  64. package/dist/infra/secrets-manager-client.js.map +1 -1
  65. package/dist/infra/template-engine.d.ts.map +1 -1
  66. package/dist/infra/template-engine.js +11 -25
  67. package/dist/infra/template-engine.js.map +1 -1
  68. package/dist/infra/tofu-runner.d.ts +1 -2
  69. package/dist/infra/tofu-runner.d.ts.map +1 -1
  70. package/dist/infra/tofu-runner.js +5 -5
  71. package/dist/infra/tofu-runner.js.map +1 -1
  72. package/package.json +10 -6
  73. package/schema/fuel.schema.json +158 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Swovo HQ
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -26,15 +26,15 @@ fuel create:app my-app -m billing,documents
26
26
  ### Full ECS provisioning (scaffold + cloud infra)
27
27
 
28
28
  ```bash
29
- fuel infra:init # Step 1: generate config.json + .fuel-credentials
30
- fuel create:app my-app -d ecs -c config.json # Step 2: scaffold + provision infrastructure
29
+ fuel infra:init # Step 1: generate fuel.yml + .fuel-credentials
30
+ fuel create:app my-app -c fuel.yml # Step 2: scaffold + provision infrastructure
31
31
  ```
32
32
 
33
33
  ### Add infra to an existing project
34
34
 
35
35
  ```bash
36
- fuel infra:init # Step 1: generate config.json + .fuel-credentials
37
- fuel infra:deploy --config config.json # Step 2: provision infrastructure
36
+ fuel infra:init # Step 1: generate fuel.yml + .fuel-credentials
37
+ fuel infra:deploy --config fuel.yml # Step 2: provision infrastructure
38
38
  ```
39
39
 
40
40
  ## Commands
@@ -42,8 +42,9 @@ fuel infra:deploy --config config.json # Step 2: provision infrastruct
42
42
  | Command | Description |
43
43
  |---|---|
44
44
  | `fuel list:modules` | List available modules |
45
+ | `fuel config:verify <path>` | Validate `fuel.yml` and run preflight checks |
45
46
  | `fuel create:app <name>` | Scaffold a new app from the monorepo template |
46
- | `fuel infra:init` | Generate `config.json` and `.fuel-credentials` interactively |
47
+ | `fuel infra:init` | Generate `fuel.yml` and `.fuel-credentials` interactively |
47
48
  | `fuel infra:deploy` | Run or resume infrastructure provisioning |
48
49
  | `fuel infra:destroy` | Tear down all provisioned cloud resources |
49
50
  | `fuel migrate:init` | Generate and run database migrations |
@@ -63,14 +64,23 @@ fuel create:app <name> [options]
63
64
  | `-m, --modules <list>` | Comma-separated modules to include (e.g. `billing,documents`) |
64
65
  | `-o, --output <path>` | Output directory (defaults to `./<name>`) |
65
66
  | `-s, --source <path>` | Path to a local monorepo root |
66
- | `-d, --deployment <type>` | Deployment target (`ecs`) |
67
- | `-c, --config <path>` | Path to `config.json` for ECS provisioning |
67
+ | `-c, --config <path>` | Path to `fuel.yml` — triggers ECS provisioning |
68
68
  | `--dry-run` | Preview without writing files |
69
69
  | `--skip-install` | Skip `yarn install` (also skips migrations) |
70
70
  | `--skip-build` | Skip `yarn build` (also skips migrations) |
71
71
  | `--skip-git` | Skip `git init` and initial commit |
72
72
  | `--skip-migration-generation` | Skip database migration generation |
73
- | `--github-token <token>` | GitHub token for private repo template downloads |
73
+ | `--keep-migrations` | Keep existing migration files from the template and skip migration generation |
74
+ | `--target-branch <branch>` | Only push to this branch in the target repo (CI use) |
75
+ | `--force-push` | Force push to the target repo (for CI-managed repos) |
76
+ | `--destroy-on-failure` | Destroy provisioned infrastructure if OpenTofu apply fails (default: preserve) |
77
+ | `--skip-branch-protection` | Skip applying branch protection rules after pushing (useful in CI when protections are already set) |
78
+ | `--github-token <token>` | GitHub token |
79
+ | `--github-username <user>` | GitHub username |
80
+ | `--github-organization <org>` | GitHub organization |
81
+ | `--aws-access-key-id <key>` | AWS access key ID |
82
+ | `--aws-secret-access-key <secret>` | AWS secret access key |
83
+ | `--aws-region <region>` | AWS region |
74
84
 
75
85
  **What it does:**
76
86
 
@@ -79,7 +89,7 @@ fuel create:app <name> [options]
79
89
  3. Starts Docker, generates and runs database migrations
80
90
  4. Creates an initial git commit
81
91
 
82
- With `--deployment ecs`, it additionally:
92
+ With `--config fuel.yml`, it additionally:
83
93
 
84
94
  5. Creates a GitHub repository
85
95
  6. Provisions AWS infrastructure (ECR, OIDC, VPC, RDS, ECS)
@@ -87,9 +97,28 @@ With `--deployment ecs`, it additionally:
87
97
  8. Pushes code to trigger the first deployment
88
98
  9. Applies branch protection rules
89
99
 
100
+ ## `config:verify`
101
+
102
+ Validates `fuel.yml` syntax/schema and optionally runs preflight checks (OpenTofu, credentials). Failures are reported as warnings — the command never exits with an error.
103
+
104
+ ```bash
105
+ fuel config:verify <path> [options]
106
+ ```
107
+
108
+ | Flag | Description |
109
+ |---|---|
110
+ | `--config-only` | Only validate the config file. Skip preflight checks. |
111
+
112
+ **Examples:**
113
+
114
+ ```bash
115
+ fuel config:verify fuel.yml # Validate config + preflight checks
116
+ fuel config:verify fuel.yml --config-only # Validate config only
117
+ ```
118
+
90
119
  ## `infra:init`
91
120
 
92
- Interactively generates `config.json` and `.fuel-credentials`.
121
+ Interactively generates `fuel.yml` and `.fuel-credentials`.
93
122
 
94
123
  ```bash
95
124
  fuel infra:init [options]
@@ -97,7 +126,7 @@ fuel infra:init [options]
97
126
 
98
127
  | Flag | Description |
99
128
  |---|---|
100
- | `-o, --output <path>` | Output path for `config.json` |
129
+ | `-o, --output <path>` | Output path for `fuel.yml` |
101
130
  | `--template` | Write a minimal template without prompts |
102
131
 
103
132
  ## `infra:deploy`
@@ -111,9 +140,18 @@ fuel infra:deploy [options]
111
140
  | Flag | Description |
112
141
  |---|---|
113
142
  | `-p, --path <path>` | Path to project root |
114
- | `-c, --config <path>` | Path to `config.json` (generates `fuel.config.json`) |
143
+ | `-c, --config <path>` | Path to `fuel.yml` (generates `fuel.yml`) |
115
144
  | `--regenerate` | Regenerate the `/infra` folder from templates |
116
145
  | `--plan-only` | Run OpenTofu plan without creating resources |
146
+ | `--infra-only` | Run only OpenTofu on an existing `/infra` folder (no config, no git push) |
147
+ | `--destroy-on-failure` | Destroy provisioned resources if OpenTofu apply fails (default: preserve) |
148
+ | `--skip-branch-protection` | Skip applying branch protection rules after pushing (useful in CI when protections are already set) |
149
+ | `--github-token <token>` | GitHub token |
150
+ | `--github-username <user>` | GitHub username |
151
+ | `--github-organization <org>` | GitHub organization |
152
+ | `--aws-access-key-id <key>` | AWS access key ID |
153
+ | `--aws-secret-access-key <secret>` | AWS secret access key |
154
+ | `--aws-region <region>` | AWS region |
117
155
 
118
156
  ## `infra:destroy`
119
157
 
@@ -126,6 +164,12 @@ fuel infra:destroy [options]
126
164
  | Flag | Description |
127
165
  |---|---|
128
166
  | `-p, --path <path>` | Path to project root |
167
+ | `--github-token <token>` | GitHub token |
168
+ | `--github-username <user>` | GitHub username |
169
+ | `--github-organization <org>` | GitHub organization |
170
+ | `--aws-access-key-id <key>` | AWS access key ID |
171
+ | `--aws-secret-access-key <secret>` | AWS secret access key |
172
+ | `--aws-region <region>` | AWS region |
129
173
 
130
174
  ## `migrate:init`
131
175
 
@@ -140,19 +184,27 @@ fuel migrate:init [options]
140
184
  | `-p, --path <path>` | Path to project root |
141
185
  | `--skip-commit` | Skip the git commit after migrations |
142
186
 
187
+ ## Configuration Schema
188
+
189
+ `fuel.yml` includes a JSON Schema reference for editor autocompletion. When using VS Code with the [YAML extension](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml), you get autocomplete, validation, and inline documentation automatically.
190
+
191
+ The schema is bundled at `node_modules/@swovohq/fuel/schema/fuel.schema.json`.
192
+
143
193
  ## Credentials
144
194
 
145
- Infrastructure commands require AWS and GitHub credentials, resolved in this order:
195
+ Infrastructure commands require AWS and GitHub credentials. Each key is resolved independently in this order (sources are merged):
196
+
197
+ 1. **CLI flags** (e.g., `--github-token`) — highest priority
198
+ 2. **`.fuel-credentials`** JSON file (project root, then CWD fallback)
199
+ 3. **Environment variables**: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_REGION`, `GITHUB_TOKEN`, `GITHUB_USERNAME`, `GITHUB_ORGANIZATION`
146
200
 
147
- 1. **Environment variables**: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_REGION`, `GITHUB_TOKEN`, `GITHUB_USERNAME`, `GITHUB_ORGANIZATION`
148
- 2. **`.fuel-credentials`** file in the project root
149
- 3. **`.fuel-credentials`** file in the current working directory
201
+ Sources complement each other — e.g., AWS keys from env vars + `GITHUB_TOKEN` from `.fuel-credentials` = valid.
150
202
 
151
- Run `fuel infra:init` to generate `.fuel-credentials` interactively.
203
+ Run `fuel infra:init --credentials-only` to generate `.fuel-credentials` interactively.
152
204
 
153
205
  ## Infrastructure Architecture
154
206
 
155
- When using `--deployment ecs`, the CLI provisions:
207
+ When using `--config fuel.yml`, the CLI provisions:
156
208
 
157
209
  - **ECR** - Container registry for app images
158
210
  - **ECS** (Fargate) - Container orchestration with ALB
@@ -176,4 +228,4 @@ GitHub resources (repository, secrets, branch protections) are managed directly
176
228
 
177
229
  ## License
178
230
 
179
- Proprietary - Swovo HQ
231
+ MIT - see [LICENSE](./LICENSE)
package/dist/bin/fuel.js CHANGED
@@ -37,6 +37,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
37
37
  const commander_1 = require("commander");
38
38
  const fs = __importStar(require("fs-extra"));
39
39
  const path = __importStar(require("path"));
40
+ const config_verify_1 = require("../commands/config-verify");
40
41
  const create_app_1 = require("../commands/create-app");
41
42
  const infra_deploy_1 = require("../commands/infra-deploy");
42
43
  const infra_destroy_1 = require("../commands/infra-destroy");
@@ -45,6 +46,31 @@ const list_modules_1 = require("../commands/list-modules");
45
46
  const migrate_init_1 = require("../commands/migrate-init");
46
47
  const packageJson = require(path.join(__dirname, '..', '..', 'package.json'));
47
48
  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
+ function buildOverrides(flags) {
59
+ const overrides = {};
60
+ if (flags.githubToken)
61
+ overrides.GITHUB_TOKEN = flags.githubToken;
62
+ if (flags.githubUsername)
63
+ overrides.GITHUB_USERNAME = flags.githubUsername;
64
+ if (flags.githubOrganization)
65
+ 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
+ return Object.keys(overrides).length > 0 ? overrides : undefined;
73
+ }
48
74
  program
49
75
  .name('fuel')
50
76
  .description('Fuel CLI – scaffold apps from the fuel monorepo and provision cloud infrastructure.')
@@ -56,12 +82,12 @@ Workflows:
56
82
  fuel create:app <name> [-m modules]
57
83
 
58
84
  2. Full ECS provisioning (scaffold + cloud infra):
59
- fuel infra:init Step 1: generate config.json + .fuel-credentials
60
- fuel create:app <name> -d ecs -c config.json Step 2: scaffold code and provision infrastructure
85
+ fuel infra:init Step 1: generate fuel.yml + .fuel-credentials
86
+ fuel create:app <name> -c fuel.yml Step 2: scaffold code and provision infrastructure
61
87
 
62
- 3. Add infra to an existing project (created without -d ecs):
63
- fuel infra:init Step 1: generate config.json + .fuel-credentials
64
- fuel infra:deploy --config config.json Step 2: generate fuel.config.json + provision infrastructure
88
+ 3. Add infra to an existing project (created without -c):
89
+ fuel infra:init Step 1: generate fuel.yml + .fuel-credentials
90
+ fuel infra:deploy --config fuel.yml Step 2: generate fuel.yml + provision infrastructure
65
91
 
66
92
  4. Resume / retry infra (after a failure in step 2 or 3):
67
93
  fuel infra:deploy [--path <project>] Re-run infrastructure provisioning without re-scaffolding
@@ -85,9 +111,9 @@ Quick examples:
85
111
  fuel create:app my-app Scaffold base app
86
112
  fuel create:app my-app -m billing,documents Scaffold with modules
87
113
  fuel infra:init Interactive infra config setup
88
- fuel create:app my-app -d ecs -c config.json Full ECS provisioning
114
+ fuel create:app my-app -c fuel.yml Full ECS provisioning
89
115
  fuel infra:deploy Resume failed infra provisioning
90
- fuel infra:deploy --config config.json Add infra to existing project
116
+ fuel infra:deploy --config fuel.yml Add infra to existing project
91
117
  fuel infra:deploy --path ./my-app --regenerate Regenerate /infra and re-deploy
92
118
  fuel migrate:init Re-run migration generation
93
119
  fuel infra:destroy Tear down all infrastructure`);
@@ -110,6 +136,28 @@ Examples:
110
136
  process.exit(1);
111
137
  }
112
138
  });
139
+ program
140
+ .command('config:verify <configPath>')
141
+ .description('Validate a fuel.yml config file and optionally run preflight checks.\n\n' +
142
+ ' By default, validates the config syntax/schema AND runs preflight checks\n' +
143
+ ' (OpenTofu version, credentials). Preflight failures are reported as\n' +
144
+ ' warnings — the command never exits with an error.\n\n' +
145
+ ' Use --config-only to skip preflight checks and only validate the file.')
146
+ .option('--config-only', 'Only validate the config file syntax and schema. Skip preflight checks (OpenTofu, credentials).')
147
+ .addHelpText('after', `
148
+ Examples:
149
+ fuel config:verify fuel.yml Validate config + run preflight checks
150
+ fuel config:verify fuel.yml --config-only Validate config syntax/schema only`)
151
+ .action(async (configPath, opts) => {
152
+ try {
153
+ await (0, config_verify_1.configVerify)(configPath, opts);
154
+ process.exit(0);
155
+ }
156
+ catch (error) {
157
+ console.error(`\n Error: ${error instanceof Error ? error.message : String(error)}\n`);
158
+ process.exit(1);
159
+ }
160
+ });
113
161
  program
114
162
  .command('create:app [appName]')
115
163
  .description('Create a new app from the fuel monorepo.\n\n' +
@@ -118,12 +166,12 @@ program
118
166
  ' Copies the monorepo template, removes unselected modules, installs\n' +
119
167
  ' dependencies, builds, starts Docker, generates database migrations,\n' +
120
168
  ' and creates an initial git commit.\n\n' +
121
- ' ECS mode (-d ecs):\n' +
169
+ ' ECS mode (-c fuel.yml):\n' +
122
170
  ' Performs all scaffolding steps above, then provisions cloud infrastructure:\n' +
123
- ' writes fuel.config.json, generates /infra (OpenTofu) and .github/workflows/,\n' +
171
+ ' writes fuel.yml, generates /infra (OpenTofu) and .github/workflows/,\n' +
124
172
  ' creates a GitHub repo, provisions all AWS infrastructure via OpenTofu,\n' +
125
173
  ' configures GitHub Actions secrets, pushes code, and applies branch protections.\n' +
126
- ' Requires --config. Run "fuel infra:init" first to generate config.json.')
174
+ ' Run "fuel infra:init" first to generate fuel.yml.')
127
175
  .option('-m, --modules <list>', 'Comma-separated modules to include (e.g. billing,documents). Omit for base only.', '')
128
176
  .option('-a, --all-modules', 'Include all available modules. Cannot be combined with -m.')
129
177
  .option('-o, --output <path>', 'Output directory. Defaults to ./<appName> in the current directory.')
@@ -133,9 +181,18 @@ program
133
181
  .option('--skip-git', 'Skip git init and the initial commit.')
134
182
  .option('--skip-build', 'Skip yarn build. Also implicitly skips migration generation (requires build).')
135
183
  .option('--skip-migration-generation', 'Skip database migration generation and execution. Docker will not be started.')
136
- .option('-d, --deployment <type>', 'Deployment target. Only "ecs" is supported. Cannot be combined with --skip-install, --skip-build, or --skip-migration-generation.')
137
- .option('-c, --config <path>', 'Path to config.json for ECS provisioning (required when -d ecs is set). Generate one with "fuel infra:init".')
138
- .option('--github-token <token>', 'GitHub token for downloading template assets from private repositories. Falls back to GITHUB_TOKEN env var.')
184
+ .option('--keep-migrations', 'Keep existing migration files from the template and skip migration generation. Docker will not be started.')
185
+ .option('-c, --config <path>', 'Path to fuel.yml for ECS provisioning. When provided, infrastructure is provisioned after scaffolding. Generate one with "fuel infra:init". Cannot be combined with --skip-install, --skip-build, or --skip-migration-generation (unless --keep-migrations is also set).')
186
+ .option('--target-branch <branch>', 'Only push to this branch in the target repo. Useful in CI to deploy a specific environment.')
187
+ .option('--force-push', 'Force push to the target repo. Use when each run scaffolds a fresh project and the target repo already has commits.')
188
+ .option('--destroy-on-failure', 'Destroy provisioned infrastructure if OpenTofu apply fails. Default: false (resources are preserved for re-run).')
189
+ .option('--skip-branch-protection', 'Skip applying branch protection rules after pushing.')
190
+ .option('--github-token <token>', 'GitHub token. Falls back to .fuel-credentials or GITHUB_TOKEN env var.')
191
+ .option('--github-username <username>', 'GitHub username. Falls back to .fuel-credentials or GITHUB_USERNAME env var.')
192
+ .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.')
139
196
  .addHelpText('after', `
140
197
  Scaffolding examples:
141
198
  fuel create:app my-app Base app, no optional modules
@@ -146,8 +203,8 @@ Scaffolding examples:
146
203
  fuel create:app my-app --skip-install --skip-git Scaffold only, no install/git/migrations
147
204
 
148
205
  ECS provisioning (full workflow):
149
- fuel infra:init Step 1: generate config.json + .fuel-credentials
150
- fuel create:app my-app -d ecs -c config.json Step 2: scaffold + provision cloud infrastructure
206
+ fuel infra:init Step 1: generate fuel.yml + .fuel-credentials
207
+ fuel create:app my-app -c fuel.yml Step 2: scaffold + provision cloud infrastructure
151
208
 
152
209
  Recovery commands:
153
210
  cd my-app && fuel infra:deploy Resume failed infra provisioning
@@ -164,7 +221,11 @@ Recovery commands:
164
221
  throw new Error('Missing app name. Provide it as a positional argument or use --config to read it from a config file.');
165
222
  }
166
223
  const configPath = path.resolve(opts.config);
167
- const raw = await fs.readJson(configPath);
224
+ const content = await fs.readFile(configPath, 'utf-8');
225
+ const YAML = require('yaml');
226
+ const raw = configPath.endsWith('.json')
227
+ ? JSON.parse(content)
228
+ : YAML.parse(content);
168
229
  if (!raw.name || typeof raw.name !== 'string') {
169
230
  throw new Error(`Config file "${opts.config}" does not contain a valid "name" field.`);
170
231
  }
@@ -190,10 +251,16 @@ Recovery commands:
190
251
  skipGit: opts.skipGit,
191
252
  skipBuild: opts.skipBuild,
192
253
  skipMigrationGeneration: opts.skipMigrationGeneration,
193
- deployment: opts.deployment,
254
+ keepMigrations: opts.keepMigrations,
255
+ targetBranch: opts.targetBranch,
256
+ forcePush: opts.forcePush,
257
+ destroyOnFailure: opts.destroyOnFailure,
258
+ skipBranchProtection: opts.skipBranchProtection,
194
259
  config: opts.config,
195
- githubToken: opts.githubToken
260
+ githubToken: opts.githubToken,
261
+ credentialOverrides: buildOverrides(opts)
196
262
  });
263
+ process.exit(0);
197
264
  }
198
265
  catch (error) {
199
266
  console.error(`\n Error: ${error instanceof Error ? error.message : String(error)}\n`);
@@ -202,39 +269,41 @@ Recovery commands:
202
269
  });
203
270
  program
204
271
  .command('infra:init')
205
- .description('Generate config.json and .fuel-credentials for ECS infrastructure provisioning.\n\n' +
272
+ .description('Generate fuel.yml and .fuel-credentials for ECS infrastructure provisioning.\n\n' +
206
273
  ' Interactive mode (default):\n' +
207
274
  ' Prompts for AWS credentials, GitHub token, app configuration (API/Web,\n' +
208
275
  ' PostgreSQL, Redis, CPU/memory), environments (dev/staging/production),\n' +
209
276
  ' domains, and environment variables. Validates credentials against AWS\n' +
210
- ' and GitHub APIs. Writes config.json and .fuel-credentials (auto-added\n' +
277
+ ' and GitHub APIs. Writes fuel.yml and .fuel-credentials (auto-added\n' +
211
278
  ' to .gitignore).\n\n' +
212
279
  ' Template mode (--template):\n' +
213
- ' Writes a minimal config.json template for manual editing. Does not\n' +
280
+ ' Writes a minimal fuel.yml template for manual editing. Does not\n' +
214
281
  ' prompt for credentials or validate anything.')
215
- .option('-o, --output <path>', 'Output path for config.json. Defaults to ./config.json in the current directory.')
216
- .option('--template', 'Write a minimal config.json template without prompts or credential validation.')
282
+ .option('-o, --output <path>', 'Output path for fuel.yml. Defaults to ./fuel.yml in the current directory.')
283
+ .option('--template', 'Write a minimal fuel.yml template without prompts or credential validation.')
284
+ .option('--credentials-only', 'Only generate .fuel-credentials (prompt for AWS + GitHub credentials, verify, and write). Skips fuel.yml generation.')
217
285
  .addHelpText('after', `
218
286
  Generated files:
219
- config.json Infrastructure configuration (apps, environments, domains, resources)
287
+ fuel.yml Infrastructure configuration (apps, environments, domains, resources)
220
288
  .fuel-credentials AWS + GitHub credentials (auto-added to .gitignore, never commit this file)
221
289
 
222
290
  Workflows using this command:
223
291
  New project (scaffold + infra in one step):
224
- 1. fuel infra:init Generate config.json + .fuel-credentials
225
- 2. fuel create:app <name> -d ecs -c config.json Scaffold + provision infrastructure
292
+ 1. fuel infra:init Generate fuel.yml + .fuel-credentials
293
+ 2. fuel create:app <name> -c fuel.yml Scaffold + provision infrastructure
226
294
 
227
295
  Existing project (add infra later):
228
- 1. fuel infra:init Generate config.json + .fuel-credentials
229
- 2. fuel infra:deploy -c config.json Generate fuel.config.json + provision infrastructure
296
+ 1. fuel infra:init Generate fuel.yml + .fuel-credentials
297
+ 2. fuel infra:deploy -c fuel.yml Generate fuel.yml + provision infrastructure
230
298
 
231
299
  Examples:
232
300
  fuel infra:init Interactive setup
233
301
  fuel infra:init --template Write base template (no prompts, no credentials)
234
- fuel infra:init -o ./infra/config.json Write config.json to a custom path`)
302
+ fuel infra:init -o ./infra/fuel.yml Write fuel.yml to a custom path`)
235
303
  .action(async (opts) => {
236
304
  try {
237
305
  await (0, infra_init_1.infraInit)(opts);
306
+ process.exit(0);
238
307
  }
239
308
  catch (error) {
240
309
  console.error(`\n Error: ${error instanceof Error ? error.message : String(error)}\n`);
@@ -244,30 +313,39 @@ Examples:
244
313
  program
245
314
  .command('infra:deploy')
246
315
  .description('Run or resume infrastructure provisioning on an already-generated project.\n\n' +
247
- ' Use this command after "fuel create:app -d ecs" fails during the infrastructure\n' +
316
+ ' Use this command after "fuel create:app -c fuel.yml" fails during the infrastructure\n' +
248
317
  ' phase (e.g. missing AWS credentials, network timeout, OpenTofu errors).\n' +
249
318
  ' It re-runs only the infrastructure steps without re-scaffolding the project.\n\n' +
250
319
  ' You can also use this to add infrastructure to a project that was originally\n' +
251
- ' created without -d ecs, by passing --config <path> to generate fuel.config.json.\n\n' +
320
+ ' created without -c, by passing --config <path> to generate fuel.yml.\n\n' +
252
321
  ' Prerequisites:\n' +
253
- ' - The project must contain a fuel.config.json, or --config must be provided\n' +
322
+ ' - The project must contain a fuel.yml, or --config must be provided\n' +
254
323
  ' - Credentials must be available via env vars or .fuel-credentials file\n\n' +
255
324
  ' On failure, partial cloud resources are preserved (no rollback), so you\n' +
256
325
  ' can fix the issue and re-run this command as many times as needed.')
257
326
  .option('-p, --path <path>', 'Path to the project root. Defaults to the current directory.')
258
- .option('-c, --config <path>', 'Path to config.json. Generates fuel.config.json in the project and provisions infrastructure. Use this to add infra to a project created without -d ecs.')
259
- .option('--regenerate', 'Delete and regenerate the /infra folder from templates before deploying. Use this if you changed config.json and need fresh OpenTofu files.')
327
+ .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
+ .option('--regenerate', 'Delete and regenerate the /infra folder from templates before deploying. Use this if you changed fuel.yml and need fresh OpenTofu files.')
260
329
  .option('--plan-only', 'Run OpenTofu plan instead of apply. Shows what would change without creating any resources.')
330
+ .option('--infra-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.')
331
+ .option('--destroy-on-failure', 'Destroy all provisioned resources if OpenTofu apply fails. Default: false (resources are preserved for re-run).')
332
+ .option('--skip-branch-protection', 'Skip applying branch protection rules after pushing. Useful in CI when protections are already set.')
333
+ .option('--github-token <token>', 'GitHub token. Falls back to .fuel-credentials or GITHUB_TOKEN env var.')
334
+ .option('--github-username <username>', 'GitHub username. Falls back to .fuel-credentials or GITHUB_USERNAME env var.')
335
+ .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.')
261
339
  .addHelpText('after', `
262
340
  Credential resolution (in order of priority):
263
- 1. Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION,
264
- GITHUB_TOKEN, GITHUB_USERNAME, GITHUB_ORGANIZATION)
341
+ 1. CLI flags (--github-token, --aws-access-key-id, etc.)
265
342
  2. .fuel-credentials file in the project root (--path)
266
343
  3. .fuel-credentials file in the current working directory
344
+ 4. Environment variables (AWS_ACCESS_KEY_ID, GITHUB_TOKEN, etc.)
267
345
 
268
346
  What this command does:
269
- 1. If --config is provided, writes fuel.config.json to the project root
270
- 2. Validates fuel.config.json, OpenTofu version, and credentials
347
+ 1. If --config is provided, writes fuel.yml to the project root
348
+ 2. Validates fuel.yml, OpenTofu version, and credentials
271
349
  3. Generates the /infra folder if missing (or if --regenerate / --config is passed)
272
350
  4. Creates the S3 state bucket if it does not exist (with a unique suffix)
273
351
  5. Writes infrastructure secrets to AWS Secrets Manager
@@ -277,8 +355,8 @@ What this command does:
277
355
  Examples:
278
356
  cd my-app && fuel infra:deploy Resume from inside the project
279
357
  fuel infra:deploy -p ./my-app Resume from outside the project
280
- fuel infra:deploy -c config.json Add infra to an existing project
281
- fuel infra:deploy -c config.json --plan-only Preview what infra would be created
358
+ fuel infra:deploy -c fuel.yml Add infra to an existing project
359
+ fuel infra:deploy -c fuel.yml --plan-only Preview what infra would be created
282
360
  fuel infra:deploy --regenerate Regenerate /infra folder, then deploy
283
361
  fuel infra:deploy --plan-only Preview changes without deploying
284
362
 
@@ -286,7 +364,11 @@ To tear down provisioned resources:
286
364
  fuel infra:destroy Destroy all infrastructure`)
287
365
  .action(async (opts) => {
288
366
  try {
289
- await (0, infra_deploy_1.infraDeploy)(opts);
367
+ await (0, infra_deploy_1.infraDeploy)({
368
+ ...opts,
369
+ credentialOverrides: buildOverrides(opts)
370
+ });
371
+ process.exit(0);
290
372
  }
291
373
  catch (error) {
292
374
  console.error(`\n Error: ${error instanceof Error ? error.message : String(error)}\n`);
@@ -325,6 +407,7 @@ Examples:
325
407
  .action(async (opts) => {
326
408
  try {
327
409
  await (0, migrate_init_1.migrateInit)(opts);
410
+ process.exit(0);
328
411
  }
329
412
  catch (error) {
330
413
  console.error(`\n Error: ${error instanceof Error ? error.message : String(error)}\n`);
@@ -337,12 +420,18 @@ program
337
420
  ' Runs "tofu destroy" against the /infra folder, tearing down all AWS and\n' +
338
421
  ' GitHub resources managed by OpenTofu (ECR, ECS, RDS, ALB, GitHub repo, etc.).\n\n' +
339
422
  ' Prerequisites:\n' +
340
- ' - The project must contain fuel.config.json and an /infra folder\n' +
423
+ ' - The project must contain fuel.yml and an /infra folder\n' +
341
424
  ' - Credentials must be available via env vars or .fuel-credentials file')
342
425
  .option('-p, --path <path>', 'Path to the project root. Defaults to the current directory.')
426
+ .option('--github-token <token>', 'GitHub token. Falls back to .fuel-credentials or GITHUB_TOKEN env var.')
427
+ .option('--github-username <username>', 'GitHub username. Falls back to .fuel-credentials or GITHUB_USERNAME env var.')
428
+ .option('--github-organization <org>', 'GitHub organization. Falls back to .fuel-credentials or GITHUB_ORGANIZATION env var.')
429
+ .option('--aws-access-key-id <key>', 'AWS access key ID. Falls back to .fuel-credentials or AWS_ACCESS_KEY_ID env var.')
430
+ .option('--aws-secret-access-key <secret>', 'AWS secret access key. Falls back to .fuel-credentials or AWS_SECRET_ACCESS_KEY env var.')
431
+ .option('--aws-region <region>', 'AWS region. Falls back to .fuel-credentials or AWS_REGION env var.')
343
432
  .addHelpText('after', `
344
433
  What this command does:
345
- 1. Validates fuel.config.json, OpenTofu version, and credentials
434
+ 1. Validates fuel.yml, OpenTofu version, and credentials
346
435
  2. Runs "tofu init" to initialize the backend
347
436
  3. Runs "tofu destroy -auto-approve" to tear down all resources
348
437
 
@@ -354,7 +443,8 @@ To re-provision after destroying:
354
443
  fuel infra:deploy Re-create all infrastructure`)
355
444
  .action(async (opts) => {
356
445
  try {
357
- await (0, infra_destroy_1.infraDestroy)(opts);
446
+ await (0, infra_destroy_1.infraDestroy)({ ...opts, credentialOverrides: buildOverrides(opts) });
447
+ process.exit(0);
358
448
  }
359
449
  catch (error) {
360
450
  console.error(`\n Error: ${error instanceof Error ? error.message : String(error)}\n`);
@@ -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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"}
@@ -0,0 +1,4 @@
1
+ export declare function configVerify(configPath: string, opts: {
2
+ configOnly?: boolean;
3
+ }): Promise<void>;
4
+ //# sourceMappingURL=config-verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-verify.d.ts","sourceRoot":"","sources":["../../src/commands/config-verify.ts"],"names":[],"mappings":"AAaA,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAoDf"}