@swovohq/fuel 0.2.0-alpha.9 → 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 (69) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +59 -13
  3. package/dist/bin/fuel.js +116 -28
  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 +62 -44
  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 +56 -14
  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 +89 -7
  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-writer.d.ts +2 -7
  32. package/dist/infra/config-writer.d.ts.map +1 -1
  33. package/dist/infra/config-writer.js +5 -11
  34. package/dist/infra/config-writer.js.map +1 -1
  35. package/dist/infra/credentials.d.ts +10 -2
  36. package/dist/infra/credentials.d.ts.map +1 -1
  37. package/dist/infra/credentials.js +44 -25
  38. package/dist/infra/credentials.js.map +1 -1
  39. package/dist/infra/git-client.d.ts +1 -1
  40. package/dist/infra/git-client.d.ts.map +1 -1
  41. package/dist/infra/git-client.js +5 -2
  42. package/dist/infra/git-client.js.map +1 -1
  43. package/dist/infra/orchestrator.d.ts +4 -1
  44. package/dist/infra/orchestrator.d.ts.map +1 -1
  45. package/dist/infra/orchestrator.js +38 -29
  46. package/dist/infra/orchestrator.js.map +1 -1
  47. package/dist/infra/port-utils.d.ts +4 -0
  48. package/dist/infra/port-utils.d.ts.map +1 -0
  49. package/dist/infra/port-utils.js +77 -0
  50. package/dist/infra/port-utils.js.map +1 -0
  51. package/dist/infra/preflight.d.ts +1 -1
  52. package/dist/infra/preflight.d.ts.map +1 -1
  53. package/dist/infra/preflight.js +2 -2
  54. package/dist/infra/preflight.js.map +1 -1
  55. package/dist/infra/s3-state-bucket.d.ts +1 -1
  56. package/dist/infra/s3-state-bucket.d.ts.map +1 -1
  57. package/dist/infra/s3-state-bucket.js +21 -26
  58. package/dist/infra/s3-state-bucket.js.map +1 -1
  59. package/dist/infra/secrets-manager-client.d.ts.map +1 -1
  60. package/dist/infra/secrets-manager-client.js +35 -1
  61. package/dist/infra/secrets-manager-client.js.map +1 -1
  62. package/dist/infra/template-engine.d.ts.map +1 -1
  63. package/dist/infra/template-engine.js +11 -25
  64. package/dist/infra/template-engine.js.map +1 -1
  65. package/dist/infra/tofu-runner.d.ts +1 -2
  66. package/dist/infra/tofu-runner.d.ts.map +1 -1
  67. package/dist/infra/tofu-runner.js +5 -5
  68. package/dist/infra/tofu-runner.js.map +1 -1
  69. package/package.json +8 -6
@@ -37,12 +37,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.runInfraOrchestrator = runInfraOrchestrator;
40
- const crypto = __importStar(require("crypto"));
41
- const fs = __importStar(require("fs"));
42
40
  const path = __importStar(require("path"));
43
41
  const chalk_1 = __importDefault(require("chalk"));
44
42
  const tofu_runner_1 = require("./tofu-runner");
45
43
  const secrets_manager_client_1 = require("./secrets-manager-client");
44
+ const config_writer_1 = require("./config-writer");
46
45
  const git_client_1 = require("./git-client");
47
46
  const github_client_1 = require("./github-client");
48
47
  const github_secrets_client_1 = require("./github-secrets-client");
@@ -66,7 +65,7 @@ async function runCompensation(infraDir, credentials, tofuVars) {
66
65
  }
67
66
  console.log(chalk_1.default.green('AWS resources cleaned up'));
68
67
  }
69
- function printOutputTable(albDns, ecrUrl, githubRepoUrl, dbUsername, dbPassword) {
68
+ function printOutputTable(albDns, ecrUrl, githubRepoUrl) {
70
69
  const divider = chalk_1.default.gray('─'.repeat(60));
71
70
  console.log('\n' + divider);
72
71
  console.log(chalk_1.default.bold(' Deployment Complete'));
@@ -74,8 +73,6 @@ function printOutputTable(albDns, ecrUrl, githubRepoUrl, dbUsername, dbPassword)
74
73
  console.log(` ${chalk_1.default.dim('ALB DNS')} ${albDns}`);
75
74
  console.log(` ${chalk_1.default.dim('ECR URL')} ${ecrUrl}`);
76
75
  console.log(` ${chalk_1.default.dim('GitHub Repo')} ${githubRepoUrl}`);
77
- console.log(` ${chalk_1.default.dim('DB Username')} ${dbUsername}`);
78
- console.log(` ${chalk_1.default.dim('DB Password')} ${dbPassword} ${chalk_1.default.yellow("Save these — they won't be shown again")}`);
79
76
  console.log(divider);
80
77
  console.log(chalk_1.default.cyan('\n Next steps:'));
81
78
  console.log(' Your code has been pushed. Your first deploy will start shortly.\n');
@@ -85,36 +82,39 @@ async function runInfraOrchestrator(targetRoot, _appName, config, credentials, o
85
82
  const repoName = `${config.name}-monorepo`;
86
83
  // Generate TofuVars
87
84
  const tofuVars = {
88
- db_password: crypto.randomBytes(32).toString('hex'),
89
85
  db_username: slugify(config.name),
90
86
  db_name: slugify(config.name),
91
87
  github_repo_name: repoName,
92
88
  };
93
89
  // Ensure S3 state bucket exists (before Tofu init)
94
90
  console.log(chalk_1.default.cyan('--- Ensuring state bucket exists ---'));
95
- const suffix = await (0, s3_state_bucket_1.loadOrCreateSuffix)(targetRoot);
91
+ const suffix = (0, s3_state_bucket_1.deriveSuffix)(config.name);
96
92
  const bucketName = (0, s3_state_bucket_1.buildStateBucketName)(config.name, suffix);
97
93
  await (0, s3_state_bucket_1.ensureStateBucket)(credentials, bucketName);
98
94
  // Write secret to AWS Secrets Manager (before Tofu — Tofu reads it via data.tf)
99
95
  const secretName = `${config.name}-infrastructure-variables`;
100
- const fuelConfigPath = path.join(targetRoot, 'fuel.config.json');
101
- const fuelConfigContents = JSON.parse(fs.readFileSync(fuelConfigPath, 'utf-8'));
96
+ const secretPayload = {
97
+ ...config,
98
+ seed: (0, config_writer_1.generateSeed)(),
99
+ aws_region: credentials.AWS_REGION,
100
+ github_org: credentials.GITHUB_ORGANIZATION,
101
+ };
102
102
  console.log(chalk_1.default.cyan('--- Writing infrastructure secret ---'));
103
- await (0, secrets_manager_client_1.putSecret)(credentials, secretName, fuelConfigContents);
103
+ await (0, secrets_manager_client_1.putSecret)(credentials, secretName, secretPayload);
104
104
  console.log(chalk_1.default.green('Secret written to AWS Secrets Manager'));
105
105
  // SIGINT compensation setup
106
106
  const state = { tofuStarted: false };
107
107
  const sigintHandler = async () => {
108
- if (options?.skipCompensation) {
109
- console.log(chalk_1.default.yellow('\nInterrupted — partial resources preserved.'));
110
- console.log(chalk_1.default.yellow('Re-run "fuel infra:deploy" to resume.\n'));
111
- }
112
- else {
108
+ if (options?.destroyOnFailure) {
113
109
  console.log(chalk_1.default.yellow('\nInterrupted — running compensation...'));
114
110
  if (state.tofuStarted) {
115
111
  await runCompensation(infraDir, credentials, tofuVars);
116
112
  }
117
113
  }
114
+ else {
115
+ console.log(chalk_1.default.yellow('\nInterrupted — partial resources preserved.'));
116
+ console.log(chalk_1.default.yellow('Re-run "fuel infra:deploy" to resume.\n'));
117
+ }
118
118
  process.exit(1);
119
119
  };
120
120
  process.once('SIGINT', sigintHandler);
@@ -163,38 +163,47 @@ async function runInfraOrchestrator(targetRoot, _appName, config, credentials, o
163
163
  if (committed) {
164
164
  console.log(chalk_1.default.green('Infrastructure files committed'));
165
165
  }
166
- const branches = [...new Set(config.apps.map(app => app.branch))];
166
+ const allBranches = [...new Set(config.apps.map(app => app.branch))];
167
+ const branches = options?.targetBranch
168
+ ? allBranches.filter(b => b === options.targetBranch)
169
+ : allBranches;
167
170
  try {
168
- await (0, git_client_1.pushToRemote)(targetRoot, credentials.GITHUB_TOKEN, branches);
171
+ await (0, git_client_1.pushToRemote)(targetRoot, credentials.GITHUB_TOKEN, branches, options?.forcePush);
169
172
  console.log(chalk_1.default.green(`Code pushed to: ${branches.join(', ')}`));
170
173
  }
171
174
  catch {
172
175
  console.log(chalk_1.default.yellow(`Warning: automatic push failed. Push manually: git push -u origin ${branches.join(' ')}`));
173
176
  }
174
177
  // Step 5: Branch protections
175
- console.log(chalk_1.default.cyan('--- Applying branch protections ---'));
176
- for (const branch of branches) {
177
- try {
178
- await (0, github_client_1.setBranchProtection)(credentials.GITHUB_TOKEN, credentials.GITHUB_ORGANIZATION, repoName, branch);
179
- console.log(chalk_1.default.green(`✓ Branch protection set for: ${branch}`));
180
- }
181
- catch {
182
- console.log(chalk_1.default.yellow(`Warning: could not set branch protection for ${branch}`));
178
+ if (!options?.skipBranchProtection) {
179
+ console.log(chalk_1.default.cyan('--- Applying branch protections ---'));
180
+ for (const branch of branches) {
181
+ try {
182
+ await (0, github_client_1.setBranchProtection)(credentials.GITHUB_TOKEN, credentials.GITHUB_ORGANIZATION, repoName, branch);
183
+ console.log(chalk_1.default.green(`✓ Branch protection set for: ${branch}`));
184
+ }
185
+ catch {
186
+ console.log(chalk_1.default.yellow(`Warning: could not set branch protection for ${branch}`));
187
+ }
183
188
  }
184
189
  }
190
+ else {
191
+ console.log(chalk_1.default.yellow('--- Skipping branch protections (--skip-branch-protection) ---'));
192
+ }
185
193
  // Print output table
186
194
  const albDns = result.outputs['alb_dns'].value;
187
195
  const ecrUrl = result.outputs['ecr_url'].value;
188
- printOutputTable(albDns, ecrUrl, githubRepoUrl, tofuVars.db_username, tofuVars.db_password);
196
+ printOutputTable(albDns, ecrUrl, githubRepoUrl);
189
197
  }
190
198
  catch (err) {
191
199
  if (err instanceof tofu_runner_1.TofuApplyError) {
192
- if (options?.skipCompensation) {
200
+ if (options?.destroyOnFailure) {
201
+ await runCompensation(infraDir, credentials, tofuVars);
202
+ }
203
+ else {
193
204
  console.log(chalk_1.default.yellow('\n Partial resources preserved. Fix the issue and re-run:'));
194
205
  console.log(chalk_1.default.yellow(' fuel infra:deploy\n'));
195
- process.exit(1);
196
206
  }
197
- await runCompensation(infraDir, credentials, tofuVars);
198
207
  process.exit(1);
199
208
  }
200
209
  throw err;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/infra/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/infra/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function isPortAvailable(port: number): Promise<boolean>;
2
+ export declare function findAvailablePort(preferredPort: number): Promise<number>;
3
+ export declare function patchDotEnvPort(envFilePath: string, key: string, port: number): Promise<void>;
4
+ //# sourceMappingURL=port-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"port-utils.d.ts","sourceRoot":"","sources":["../../src/infra/port-utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAS9D;AAED,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAc9E;AAED,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CASf"}
@@ -0,0 +1,77 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.isPortAvailable = isPortAvailable;
37
+ exports.findAvailablePort = findAvailablePort;
38
+ exports.patchDotEnvPort = patchDotEnvPort;
39
+ const net = __importStar(require("net"));
40
+ const fs = __importStar(require("fs-extra"));
41
+ function isPortAvailable(port) {
42
+ return new Promise((resolve) => {
43
+ const server = net.createServer();
44
+ server.once('error', () => resolve(false));
45
+ server.once('listening', () => {
46
+ server.close(() => resolve(true));
47
+ });
48
+ server.listen(port, '127.0.0.1');
49
+ });
50
+ }
51
+ async function findAvailablePort(preferredPort) {
52
+ if (await isPortAvailable(preferredPort)) {
53
+ return preferredPort;
54
+ }
55
+ return new Promise((resolve, reject) => {
56
+ const server = net.createServer();
57
+ server.once('error', reject);
58
+ server.once('listening', () => {
59
+ const addr = server.address();
60
+ const port = addr.port;
61
+ server.close(() => resolve(port));
62
+ });
63
+ server.listen(0, '127.0.0.1');
64
+ });
65
+ }
66
+ async function patchDotEnvPort(envFilePath, key, port) {
67
+ let content = await fs.readFile(envFilePath, 'utf-8');
68
+ const regex = new RegExp(`^${key}=.*$`, 'm');
69
+ if (regex.test(content)) {
70
+ content = content.replace(regex, `${key}=${port}`);
71
+ }
72
+ else {
73
+ content = content.trimEnd() + `\n${key}=${port}\n`;
74
+ }
75
+ await fs.writeFile(envFilePath, content, 'utf-8');
76
+ }
77
+ //# sourceMappingURL=port-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"port-utils.js","sourceRoot":"","sources":["../../src/infra/port-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,0CASC;AAED,8CAcC;AAED,0CAaC;AA3CD,yCAA0B;AAC1B,6CAA8B;AAE9B,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAA;QACjC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QAC1C,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QACnC,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,aAAqB;IAC3D,IAAI,MAAM,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;QACzC,OAAO,aAAa,CAAA;IACtB,CAAC;IACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAA;QACjC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC5B,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAqB,CAAA;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACtB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QACnC,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,WAAmB,EACnB,GAAW,EACX,IAAY;IAEZ,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACrD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5C,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAA;IACpD,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,IAAI,IAAI,IAAI,CAAA;IACpD,CAAC;IACD,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AACnD,CAAC"}
@@ -5,5 +5,5 @@ export interface PreflightResult {
5
5
  credentials: Credentials;
6
6
  tofuVersion: string;
7
7
  }
8
- export declare function runPreflight(configPath: string): Promise<PreflightResult>;
8
+ export declare function runPreflight(configPath: string, credentialOverrides?: Partial<Record<import('./types').CredentialKey, string>>): Promise<PreflightResult>;
9
9
  //# sourceMappingURL=preflight.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/infra/preflight.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAclD,wBAAgB,gBAAgB,IAAI,MAAM,CA2BzC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAA;IACnB,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA8B/E"}
1
+ {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/infra/preflight.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAclD,wBAAgB,gBAAgB,IAAI,MAAM,CA2BzC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAA;IACnB,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,GAC7E,OAAO,CAAC,eAAe,CAAC,CA8B1B"}
@@ -41,7 +41,7 @@ function checkTofuVersion() {
41
41
  }
42
42
  return `${match[1]}.${match[2]}.${match[3]}`;
43
43
  }
44
- async function runPreflight(configPath) {
44
+ async function runPreflight(configPath, credentialOverrides) {
45
45
  // Check 1: tofu binary
46
46
  let tofuVersion;
47
47
  try {
@@ -54,7 +54,7 @@ async function runPreflight(configPath) {
54
54
  // Check 2: credentials
55
55
  let credentials;
56
56
  try {
57
- credentials = await (0, credentials_1.resolveCredentials)();
57
+ credentials = await (0, credentials_1.resolveCredentials)(undefined, credentialOverrides);
58
58
  pass('AWS credentials valid');
59
59
  pass('GitHub token valid');
60
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/infra/preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/infra/preflight.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Credentials } from './types';
2
- export declare function loadOrCreateSuffix(projectRoot: string): Promise<string>;
2
+ export declare function deriveSuffix(projectName: string): string;
3
3
  export declare function buildStateBucketName(projectName: string, suffix: string): string;
4
4
  export declare function ensureStateBucket(credentials: Credentials, bucketName: string): Promise<void>;
5
5
  //# sourceMappingURL=s3-state-bucket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"s3-state-bucket.d.ts","sourceRoot":"","sources":["../../src/infra/s3-state-bucket.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAYrC,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAW7E;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
1
+ {"version":3,"file":"s3-state-bucket.d.ts","sourceRoot":"","sources":["../../src/infra/s3-state-bucket.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAyCf"}
@@ -36,29 +36,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.loadOrCreateSuffix = loadOrCreateSuffix;
39
+ exports.deriveSuffix = deriveSuffix;
40
40
  exports.buildStateBucketName = buildStateBucketName;
41
41
  exports.ensureStateBucket = ensureStateBucket;
42
42
  const client_s3_1 = require("@aws-sdk/client-s3");
43
- const fs = __importStar(require("fs-extra"));
44
- const path = __importStar(require("path"));
45
43
  const crypto = __importStar(require("crypto"));
46
44
  const chalk_1 = __importDefault(require("chalk"));
47
- const STATE_FILE = '.fuel-infra-state.json';
48
- function generateSuffix() {
49
- return crypto.randomBytes(4).toString('hex');
50
- }
51
- async function loadOrCreateSuffix(projectRoot) {
52
- const stateFilePath = path.join(projectRoot, STATE_FILE);
53
- if (await fs.pathExists(stateFilePath)) {
54
- const state = await fs.readJson(stateFilePath);
55
- if (state.stateBucketSuffix) {
56
- return state.stateBucketSuffix;
57
- }
58
- }
59
- const suffix = generateSuffix();
60
- await fs.writeJson(stateFilePath, { stateBucketSuffix: suffix }, { spaces: 2 });
61
- return suffix;
45
+ function deriveSuffix(projectName) {
46
+ return crypto.createHash('sha256').update(projectName).digest('hex').slice(0, 8);
62
47
  }
63
48
  function buildStateBucketName(projectName, suffix) {
64
49
  return `${projectName}-infrastructure-tf-${suffix}`;
@@ -77,16 +62,26 @@ async function ensureStateBucket(credentials, bucketName) {
77
62
  return;
78
63
  }
79
64
  catch (err) {
80
- if (err.name !== 'NotFound' && err['$metadata']?.httpStatusCode !== 404) {
81
- throw err;
65
+ const statusCode = err['$metadata']?.httpStatusCode;
66
+ if (statusCode !== 404 && err.name !== 'NotFound') {
67
+ const detail = err.message || err.name || 'Unknown error';
68
+ throw new Error(`Failed to check state bucket "${bucketName}" (HTTP ${statusCode || '?'}): ${detail}\n` +
69
+ 'Verify your AWS credentials have s3:HeadBucket permission and the region is correct.');
82
70
  }
83
71
  }
84
72
  console.log(chalk_1.default.cyan(` Creating state bucket: ${bucketName}`));
85
- await client.send(new client_s3_1.CreateBucketCommand({ Bucket: bucketName }));
86
- await client.send(new client_s3_1.PutBucketVersioningCommand({
87
- Bucket: bucketName,
88
- VersioningConfiguration: { Status: 'Enabled' },
89
- }));
90
- console.log(chalk_1.default.green(` ✓ State bucket created with versioning enabled`));
73
+ try {
74
+ await client.send(new client_s3_1.CreateBucketCommand({ Bucket: bucketName }));
75
+ await client.send(new client_s3_1.PutBucketVersioningCommand({
76
+ Bucket: bucketName,
77
+ VersioningConfiguration: { Status: 'Enabled' },
78
+ }));
79
+ console.log(chalk_1.default.green(` ✓ State bucket created with versioning enabled`));
80
+ }
81
+ catch (err) {
82
+ const detail = err.message || err.name || 'Unknown error';
83
+ throw new Error(`Failed to create state bucket "${bucketName}": ${detail}\n` +
84
+ 'Verify your AWS credentials have s3:CreateBucket permission and the region is correct.');
85
+ }
91
86
  }
92
87
  //# sourceMappingURL=s3-state-bucket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"s3-state-bucket.js","sourceRoot":"","sources":["../../src/infra/s3-state-bucket.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,gDAWC;AAED,oDAEC;AAED,8CA+BC;AAtED,kDAK2B;AAC3B,6CAA8B;AAC9B,2CAA4B;AAC5B,+CAAgC;AAChC,kDAAyB;AAGzB,MAAM,UAAU,GAAG,wBAAwB,CAAA;AAM3C,SAAS,cAAc;IACrB,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC9C,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,WAAmB;IAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IACxD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAe,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QAC1D,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,iBAAiB,CAAA;QAChC,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAgB,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;IAC7F,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAgB,oBAAoB,CAAC,WAAmB,EAAE,MAAc;IACtE,OAAO,GAAG,WAAW,sBAAsB,MAAM,EAAE,CAAA;AACrD,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,WAAwB,EACxB,UAAkB;IAElB,MAAM,MAAM,GAAG,IAAI,oBAAQ,CAAC;QAC1B,MAAM,EAAE,WAAW,CAAC,UAAU;QAC9B,WAAW,EAAE;YACX,WAAW,EAAE,WAAW,CAAC,iBAAiB;YAC1C,eAAe,EAAE,WAAW,CAAC,qBAAqB;SACnD;KACF,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,6BAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;QAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oCAAoC,UAAU,EAAE,CAAC,CAAC,CAAA;QAC1E,OAAM;IACR,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE,cAAc,KAAK,GAAG,EAAE,CAAC;YACxE,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC,CAAA;IACjE,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;IAClE,MAAM,MAAM,CAAC,IAAI,CACf,IAAI,sCAA0B,CAAC;QAC7B,MAAM,EAAE,UAAU;QAClB,uBAAuB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;KAC/C,CAAC,CACH,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAA;AAC9E,CAAC"}
1
+ {"version":3,"file":"s3-state-bucket.js","sourceRoot":"","sources":["../../src/infra/s3-state-bucket.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,oCAEC;AAED,oDAEC;AAED,8CA4CC;AA9DD,kDAK2B;AAC3B,+CAAgC;AAChC,kDAAyB;AAGzB,SAAgB,YAAY,CAAC,WAAmB;IAC9C,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAClF,CAAC;AAED,SAAgB,oBAAoB,CAAC,WAAmB,EAAE,MAAc;IACtE,OAAO,GAAG,WAAW,sBAAsB,MAAM,EAAE,CAAA;AACrD,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,WAAwB,EACxB,UAAkB;IAElB,MAAM,MAAM,GAAG,IAAI,oBAAQ,CAAC;QAC1B,MAAM,EAAE,WAAW,CAAC,UAAU;QAC9B,WAAW,EAAE;YACX,WAAW,EAAE,WAAW,CAAC,iBAAiB;YAC1C,eAAe,EAAE,WAAW,CAAC,qBAAqB;SACnD;KACF,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,6BAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;QAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oCAAoC,UAAU,EAAE,CAAC,CAAC,CAAA;QAC1E,OAAM;IACR,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,EAAE,cAAc,CAAA;QACnD,IAAI,UAAU,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,eAAe,CAAA;YACzD,MAAM,IAAI,KAAK,CACb,iCAAiC,UAAU,WAAW,UAAU,IAAI,GAAG,MAAM,MAAM,IAAI;gBACrF,sFAAsF,CACzF,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC,CAAA;IACjE,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;QAClE,MAAM,MAAM,CAAC,IAAI,CACf,IAAI,sCAA0B,CAAC;YAC7B,MAAM,EAAE,UAAU;YAClB,uBAAuB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;SAC/C,CAAC,CACH,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAA;IAC9E,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,eAAe,CAAA;QACzD,MAAM,IAAI,KAAK,CACb,kCAAkC,UAAU,MAAM,MAAM,IAAI;YAC1D,wFAAwF,CAC3F,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"secrets-manager-client.d.ts","sourceRoot":"","sources":["../../src/infra/secrets-manager-client.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,wBAAsB,SAAS,CAC7B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,CAoBf"}
1
+ {"version":3,"file":"secrets-manager-client.d.ts","sourceRoot":"","sources":["../../src/infra/secrets-manager-client.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,wBAAsB,SAAS,CAC7B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,CAoBf"}
@@ -1,7 +1,41 @@
1
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
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.putSecret = putSecret;
4
37
  const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
38
+ const YAML = __importStar(require("yaml"));
5
39
  async function putSecret(credentials, name, value) {
6
40
  const client = new client_secrets_manager_1.SecretsManagerClient({
7
41
  region: credentials.AWS_REGION,
@@ -10,7 +44,7 @@ async function putSecret(credentials, name, value) {
10
44
  secretAccessKey: credentials.AWS_SECRET_ACCESS_KEY,
11
45
  },
12
46
  });
13
- const secretString = JSON.stringify(value);
47
+ const secretString = YAML.stringify(value);
14
48
  try {
15
49
  await client.send(new client_secrets_manager_1.CreateSecretCommand({ Name: name, SecretString: secretString }));
16
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"secrets-manager-client.js","sourceRoot":"","sources":["../../src/infra/secrets-manager-client.ts"],"names":[],"mappings":";;AAOA,8BAwBC;AA/BD,4EAIwC;AAGjC,KAAK,UAAU,SAAS,CAC7B,WAAwB,EACxB,IAAY,EACZ,KAA8B;IAE9B,MAAM,MAAM,GAAG,IAAI,6CAAoB,CAAC;QACtC,MAAM,EAAE,WAAW,CAAC,UAAU;QAC9B,WAAW,EAAE;YACX,WAAW,EAAE,WAAW,CAAC,iBAAiB;YAC1C,eAAe,EAAE,WAAW,CAAC,qBAAqB;SACnD;KACF,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAE1C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,4CAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;IACxF,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YACzC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,8CAAqB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;QAC9F,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"secrets-manager-client.js","sourceRoot":"","sources":["../../src/infra/secrets-manager-client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,8BAwBC;AAhCD,4EAIwC;AACxC,2CAA4B;AAGrB,KAAK,UAAU,SAAS,CAC7B,WAAwB,EACxB,IAAY,EACZ,KAA8B;IAE9B,MAAM,MAAM,GAAG,IAAI,6CAAoB,CAAC;QACtC,MAAM,EAAE,WAAW,CAAC,UAAU;QAC9B,WAAW,EAAE;YACX,WAAW,EAAE,WAAW,CAAC,iBAAiB;YAC1C,eAAe,EAAE,WAAW,CAAC,qBAAqB;SACnD;KACF,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAE1C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,4CAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;IACxF,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YACzC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,8CAAqB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;QAC9F,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../../src/infra/template-engine.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAyBlD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAenE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAMpE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBzE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CA2Ef;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,WAAW,EACxB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CA0Cf"}
1
+ {"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../../src/infra/template-engine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAUlD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAenE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAMpE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBzE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CA2Ef;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,WAAW,EACxB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CA0Cf"}
@@ -46,27 +46,12 @@ exports.copyWorkflowFiles = copyWorkflowFiles;
46
46
  exports.generateInfra = generateInfra;
47
47
  const fs = __importStar(require("fs-extra"));
48
48
  const path = __importStar(require("path"));
49
- const crypto = __importStar(require("crypto"));
50
49
  const chalk_1 = __importDefault(require("chalk"));
51
50
  const s3_state_bucket_1 = require("./s3-state-bucket");
52
51
  // Modules that must never be removed during pruning, regardless of main.tf references
53
52
  const MODULES_DONT_REMOVE = ['secret-main'];
54
- /**
55
- * Generate a random 32-char hex database password.
56
- */
57
- function generateDbPassword() {
58
- return crypto.randomBytes(16).toString('hex');
59
- }
60
- /**
61
- * Fetch the caller's public IPv4 address and return it as a /32 CIDR block.
62
- */
63
- async function fetchPublicIpCidr() {
64
- const res = await fetch('https://checkip.amazonaws.com');
65
- if (!res.ok) {
66
- throw new Error(`Failed to fetch public IP: ${res.status} ${res.statusText}`);
67
- }
68
- const ip = (await res.text()).trim();
69
- return `${ip}/32`;
53
+ function slugify(name) {
54
+ return name.replace(/[^a-z0-9]/gi, '_').toLowerCase();
70
55
  }
71
56
  /**
72
57
  * Parse a .tfvars file content into a Record<string, string>.
@@ -129,8 +114,9 @@ async function patchDefaultTfvars(infraRoot, config, credentials) {
129
114
  const vars = parseTfvars(content);
130
115
  vars['project_name'] = config.name;
131
116
  vars['aws_region'] = credentials.AWS_REGION;
132
- vars['db_password'] = generateDbPassword();
133
- vars['access_ip_range'] = await fetchPublicIpCidr();
117
+ vars['db_username'] = slugify(config.name);
118
+ vars['db_name'] = slugify(config.name);
119
+ vars['github_repo_name'] = `${config.name}-monorepo`;
134
120
  await fs.writeFile(filePath, serializeTfvars(vars), 'utf8');
135
121
  }
136
122
  /**
@@ -171,11 +157,11 @@ async function copyWorkflowFiles(projectDir, config, infraSrcRoot) {
171
157
  await fs.writeFile(path.join(workflowsDir, 'tests.yml'), testsContent, 'utf8');
172
158
  // Helper: apply substitutions for a given service entry
173
159
  function applySubstitutions(template, name, dockerfile, buildEnv, branch, secretName) {
174
- const buildArgs = buildEnv && Object.keys(buildEnv).length > 0
175
- ? Object.entries(buildEnv)
176
- .map(([k, v]) => `--build-arg ${k.toUpperCase()}=${v}`)
177
- .join(' ')
178
- : '';
160
+ const buildArgLines = buildEnv && Object.keys(buildEnv).length > 0
161
+ ? Object.entries(buildEnv).map(([k, v]) => `${k}=${v}`)
162
+ : [];
163
+ const buildArgsIndent = template.match(/^(\s*)BUILDARGS$/m)?.[1] ?? '';
164
+ const buildArgs = buildArgLines.join(`\n${buildArgsIndent}`);
179
165
  return template
180
166
  .replaceAll('REPLACEME', name)
181
167
  .replaceAll('DOCKERFILE', dockerfile)
@@ -221,7 +207,7 @@ async function generateInfra(targetRoot, config, credentials, infraSourcePath) {
221
207
  // Step 3: Patch main.tf — replace ../../modules with ./modules
222
208
  await patchMainTf(infraRoot);
223
209
  // Step 4: Patch backend.tf — replace {project_name}, {aws_region}, and {unique_suffix}
224
- const suffix = await (0, s3_state_bucket_1.loadOrCreateSuffix)(targetRoot);
210
+ const suffix = (0, s3_state_bucket_1.deriveSuffix)(config.name);
225
211
  await patchBackendTf(infraRoot, config.name, credentials.AWS_REGION, suffix);
226
212
  // Step 5: Patch default.tfvars — fill ssl, project_name, aws_region, db_password
227
213
  await patchDefaultTfvars(infraRoot, config, credentials);
@@ -1 +1 @@
1
- {"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../src/infra/template-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../src/infra/template-engine.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,6 @@ export interface TofuRunResult {
7
7
  }> | null;
8
8
  }
9
9
  export interface TofuVars {
10
- db_password: string;
11
10
  db_username: string;
12
11
  db_name: string;
13
12
  github_repo_name: string;
@@ -20,5 +19,5 @@ export interface TofuSequenceOptions {
20
19
  }
21
20
  export declare function buildDestroyArgs(credentials: Credentials, tofuVars: TofuVars): string[];
22
21
  export declare function runTofuDestroy(infraDir: string, credentials: Credentials, tofuVars: TofuVars): Promise<void>;
23
- export declare function runTofuApply(infraDir: string, credentials: Credentials, tofuVars: TofuVars, options?: TofuSequenceOptions): Promise<TofuRunResult>;
22
+ export declare function runTofuApply(infraDir: string, credentials: Credentials, tofuVars?: TofuVars, options?: TofuSequenceOptions): Promise<TofuRunResult>;
24
23
  //# sourceMappingURL=tofu-runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tofu-runner.d.ts","sourceRoot":"","sources":["../../src/infra/tofu-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGrC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;CAC7D;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,qBAAa,cAAe,SAAQ,KAAK;;CAKxC;AAyBD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAoGD,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,GACjB,MAAM,EAAE,CAMV;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,CA8CxB"}
1
+ {"version":3,"file":"tofu-runner.d.ts","sourceRoot":"","sources":["../../src/infra/tofu-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGrC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;CAC7D;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,qBAAa,cAAe,SAAQ,KAAK;;CAKxC;AAyBD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAwGD,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,GACjB,MAAM,EAAE,CAMV;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,CA8CxB"}