hatchkit 0.1.34 → 0.1.37

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 (93) hide show
  1. package/dist/adopt.d.ts.map +1 -1
  2. package/dist/adopt.js +167 -1
  3. package/dist/adopt.js.map +1 -1
  4. package/dist/assets/env.d.ts +40 -0
  5. package/dist/assets/env.d.ts.map +1 -0
  6. package/dist/assets/env.js +150 -0
  7. package/dist/assets/env.js.map +1 -0
  8. package/dist/assets/index.d.ts +2 -0
  9. package/dist/assets/index.d.ts.map +1 -0
  10. package/dist/assets/index.js +328 -0
  11. package/dist/assets/index.js.map +1 -0
  12. package/dist/assets/mirror.d.ts +59 -0
  13. package/dist/assets/mirror.d.ts.map +1 -0
  14. package/dist/assets/mirror.js +251 -0
  15. package/dist/assets/mirror.js.map +1 -0
  16. package/dist/completion.d.ts.map +1 -1
  17. package/dist/completion.js +16 -0
  18. package/dist/completion.js.map +1 -1
  19. package/dist/config.d.ts +18 -8
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/config.js +157 -50
  22. package/dist/config.js.map +1 -1
  23. package/dist/deploy/coolify-app.d.ts +6 -0
  24. package/dist/deploy/coolify-app.d.ts.map +1 -1
  25. package/dist/deploy/coolify-app.js +58 -15
  26. package/dist/deploy/coolify-app.js.map +1 -1
  27. package/dist/deploy/rename-domain.d.ts.map +1 -1
  28. package/dist/deploy/rename-domain.js +4 -2
  29. package/dist/deploy/rename-domain.js.map +1 -1
  30. package/dist/deploy/rollback.d.ts +11 -0
  31. package/dist/deploy/rollback.d.ts.map +1 -1
  32. package/dist/deploy/rollback.js +46 -9
  33. package/dist/deploy/rollback.js.map +1 -1
  34. package/dist/deploy/sync.d.ts +98 -0
  35. package/dist/deploy/sync.d.ts.map +1 -0
  36. package/dist/deploy/sync.js +354 -0
  37. package/dist/deploy/sync.js.map +1 -0
  38. package/dist/doctor.d.ts.map +1 -1
  39. package/dist/doctor.js +29 -11
  40. package/dist/doctor.js.map +1 -1
  41. package/dist/explain.d.ts.map +1 -1
  42. package/dist/explain.js +5 -0
  43. package/dist/explain.js.map +1 -1
  44. package/dist/index.js +184 -30
  45. package/dist/index.js.map +1 -1
  46. package/dist/prompts.d.ts.map +1 -1
  47. package/dist/prompts.js +7 -5
  48. package/dist/prompts.js.map +1 -1
  49. package/dist/provision/s3-buckets.d.ts +12 -5
  50. package/dist/provision/s3-buckets.d.ts.map +1 -1
  51. package/dist/provision/s3-buckets.js +14 -7
  52. package/dist/provision/s3-buckets.js.map +1 -1
  53. package/dist/provision/stripe.d.ts +85 -16
  54. package/dist/provision/stripe.d.ts.map +1 -1
  55. package/dist/provision/stripe.js +334 -28
  56. package/dist/provision/stripe.js.map +1 -1
  57. package/dist/provision/write-env.d.ts +7 -0
  58. package/dist/provision/write-env.d.ts.map +1 -1
  59. package/dist/provision/write-env.js +18 -0
  60. package/dist/provision/write-env.js.map +1 -1
  61. package/dist/scaffold/app.d.ts.map +1 -1
  62. package/dist/scaffold/app.js +7 -1
  63. package/dist/scaffold/app.js.map +1 -1
  64. package/dist/scaffold/infra.js +2 -2
  65. package/dist/scaffold/infra.js.map +1 -1
  66. package/dist/scaffold/manifest.d.ts +5 -0
  67. package/dist/scaffold/manifest.d.ts.map +1 -1
  68. package/dist/scaffold/manifest.js.map +1 -1
  69. package/dist/scaffold/starter-files.d.ts +22 -0
  70. package/dist/scaffold/starter-files.d.ts.map +1 -1
  71. package/dist/scaffold/starter-files.js +44 -0
  72. package/dist/scaffold/starter-files.js.map +1 -1
  73. package/dist/status.d.ts.map +1 -1
  74. package/dist/status.js +11 -1
  75. package/dist/status.js.map +1 -1
  76. package/dist/templates/build-pipeline/docker-compose.yml.hbs +17 -0
  77. package/dist/utils/cancel-handler.d.ts +17 -0
  78. package/dist/utils/cancel-handler.d.ts.map +1 -0
  79. package/dist/utils/cancel-handler.js +97 -0
  80. package/dist/utils/cancel-handler.js.map +1 -0
  81. package/dist/utils/coolify-api.d.ts +60 -2
  82. package/dist/utils/coolify-api.d.ts.map +1 -1
  83. package/dist/utils/coolify-api.js +85 -2
  84. package/dist/utils/coolify-api.js.map +1 -1
  85. package/dist/utils/secrets.d.ts +29 -0
  86. package/dist/utils/secrets.d.ts.map +1 -1
  87. package/dist/utils/secrets.js +29 -0
  88. package/dist/utils/secrets.js.map +1 -1
  89. package/dist/utils/validate.d.ts +6 -0
  90. package/dist/utils/validate.d.ts.map +1 -1
  91. package/dist/utils/validate.js +17 -0
  92. package/dist/utils/validate.js.map +1 -1
  93. package/package.json +3 -2
@@ -1,20 +1,50 @@
1
1
  /*
2
- * Stripe webhook auto-provisioning.
2
+ * Stripe per-project provisioning.
3
3
  *
4
- * When a project enables the `stripe` feature, hatchkit registers a
5
- * dedicated webhook endpoint on the user's Stripe account pointing at
6
- * `https://<domain>/api/stripe/webhook` and writes the resulting
7
- * `whsec_…` signing secret encrypted into `.env.production`.
4
+ * Called from BOTH `hatchkit create` and `hatchkit adopt`. Each call
5
+ * stands up Stripe credentials + a webhook endpoint for the project in
6
+ * **two** modes:
8
7
  *
9
- * The Stripe API uses application/x-www-form-urlencoded for write
10
- * endpoints (not JSON). Arrays are encoded as `key[]=v1&key[]=v2`.
8
+ * · TEST / sandbox → ends up in `.env.development` (plaintext)
9
+ * · LIVE → ends up in `.env.production` (dotenvx-encrypted)
11
10
  *
12
- * Reference: https://docs.stripe.com/api/webhook_endpoints/create
11
+ * What hatchkit can auto-provision (one resource per mode):
12
+ * POST /v1/webhook_endpoints → returns whsec_… signing secret
13
+ *
14
+ * What hatchkit MUST collect from the user (Stripe API doesn't allow
15
+ * minting these programmatically — only the dashboard does):
16
+ * · per-project secret key (sk_test/sk_live or rk_test/rk_live)
17
+ * · per-project publishable key (pk_test/pk_live)
18
+ *
19
+ * Best-practice steering:
20
+ * · TEST mode → encourage one Sandbox per project so test data is
21
+ * fully isolated. Each Sandbox has its own sk_test/pk_test pair.
22
+ * · LIVE mode → encourage a project-scoped restricted key (Charges,
23
+ * Customers, PaymentIntents, Subscriptions, Checkout) so a leak
24
+ * of one project's `.env.production` can't access another's data.
25
+ *
26
+ * Stripe's API uses application/x-www-form-urlencoded for write
27
+ * endpoints. Reference:
28
+ * https://docs.stripe.com/api/webhook_endpoints/create
29
+ * https://docs.stripe.com/sandboxes
30
+ * https://docs.stripe.com/keys-best-practices
13
31
  */
14
- import { ensureStripe } from "../config.js";
15
- /** Default events that the starter's `/api/stripe/webhook` handler
16
- * cares about. Coverage for the standard Checkout + Subscription
17
- * flow; extend here when the starter grows new webhook handlers. */
32
+ import { input, select } from "@inquirer/prompts";
33
+ import chalk from "chalk";
34
+ import { confirmPastedSecret, ensureStripe } from "../config.js";
35
+ import { SECRET_KEYS, getSecret, setSecret } from "../utils/secrets.js";
36
+ /** CHANGE_ME_<KEY> values the starter looks for to log a "Stripe is
37
+ * unconfigured" warning at boot. Kept in a single export so the
38
+ * starter and the CLI agree on the sentinel; updates here must be
39
+ * mirrored by `starter/packages/server/src/services/stripe.ts`. */
40
+ export const STRIPE_PLACEHOLDER = {
41
+ secretKey: "CHANGE_ME_STRIPE_SECRET_KEY",
42
+ publishableKey: "CHANGE_ME_STRIPE_PUBLISHABLE_KEY",
43
+ webhookSecret: "CHANGE_ME_STRIPE_WEBHOOK_SECRET",
44
+ };
45
+ /** Default events the starter's `/api/stripe/webhook` handler cares
46
+ * about. Coverage for the standard Checkout + Subscription flow;
47
+ * extend here when the starter grows new webhook handlers. */
18
48
  export const DEFAULT_STRIPE_EVENTS = [
19
49
  "checkout.session.completed",
20
50
  "checkout.session.async_payment_succeeded",
@@ -25,34 +55,310 @@ export const DEFAULT_STRIPE_EVENTS = [
25
55
  "invoice.payment_succeeded",
26
56
  "invoice.payment_failed",
27
57
  ];
28
- /** Register a webhook endpoint on Stripe pointing at the project's
29
- * `/api/stripe/webhook` URL. */
30
- export async function provisionStripeWebhook(projectName, domain, events = DEFAULT_STRIPE_EVENTS) {
31
- const cfg = await ensureStripe();
32
- const url = `https://${domain}/api/stripe/webhook`;
58
+ /** Per-mode tone for prompts and dashboard deep-links. */
59
+ const MODE_INFO = {
60
+ test: {
61
+ label: "TEST / Sandbox",
62
+ sandboxesUrl: "https://dashboard.stripe.com/sandboxes",
63
+ apiKeysUrl: "https://dashboard.stripe.com/test/apikeys",
64
+ skPattern: /^(sk|rk)_test_/,
65
+ pkPattern: /^pk_test_/,
66
+ skSample: "sk_test_… or rk_test_…",
67
+ pkSample: "pk_test_…",
68
+ },
69
+ live: {
70
+ label: "LIVE",
71
+ sandboxesUrl: "https://dashboard.stripe.com/apikeys",
72
+ apiKeysUrl: "https://dashboard.stripe.com/apikeys",
73
+ skPattern: /^(sk|rk)_live_/,
74
+ pkPattern: /^pk_live_/,
75
+ skSample: "sk_live_… or rk_live_…",
76
+ pkSample: "pk_live_…",
77
+ },
78
+ };
79
+ /** Provision Stripe for a project: collect per-project keys for each
80
+ * configured mode, register a webhook endpoint, persist everything in
81
+ * the OS keychain. The caller is responsible for writing the returned
82
+ * values into `.env.{development,production}`. */
83
+ export async function provisionStripeProject(opts) {
84
+ // Master keys — at least one mode must be configured. ensureStripe
85
+ // throws if neither is.
86
+ const master = await ensureStripe();
87
+ console.log(chalk.bold(`\n ── Stripe (${opts.projectName}) ─────────────────────────────\n`));
88
+ console.log(chalk.dim(` Hatchkit provisions Stripe in two modes per project:\n` +
89
+ ` TEST/sandbox → .env.development (plaintext)\n` +
90
+ ` LIVE → .env.production (dotenvx-encrypted)\n` +
91
+ ` Webhook signing secrets are auto-minted using your master keys;\n` +
92
+ ` per-project app keys (sk + pk) you'll paste below — Stripe doesn't\n` +
93
+ ` expose an API to mint those automatically.\n`));
94
+ const result = {};
95
+ if (master.hasTestMaster && master.testSecretKey) {
96
+ result.test = await provisionMode({
97
+ projectName: opts.projectName,
98
+ domain: opts.domain,
99
+ events: opts.events ?? DEFAULT_STRIPE_EVENTS,
100
+ mode: "test",
101
+ masterSecretKey: master.testSecretKey,
102
+ reprompt: opts.reprompt ?? false,
103
+ });
104
+ }
105
+ else {
106
+ console.log(chalk.yellow(" · Skipping TEST/sandbox — no test master key configured. " +
107
+ "Run `hatchkit config add stripe` to add one."));
108
+ }
109
+ if (master.hasLiveMaster && master.liveSecretKey) {
110
+ result.live = await provisionMode({
111
+ projectName: opts.projectName,
112
+ domain: opts.domain,
113
+ events: opts.events ?? DEFAULT_STRIPE_EVENTS,
114
+ mode: "live",
115
+ masterSecretKey: master.liveSecretKey,
116
+ reprompt: opts.reprompt ?? false,
117
+ });
118
+ }
119
+ else {
120
+ console.log(chalk.yellow(" · Skipping LIVE — no live master key configured. " +
121
+ "Run `hatchkit config add stripe` to add one."));
122
+ }
123
+ return result;
124
+ }
125
+ async function provisionMode(args) {
126
+ const info = MODE_INFO[args.mode];
127
+ console.log(chalk.bold(`\n ${info.label}\n`));
128
+ // Per-project app keys — paste once, cached in keychain for re-runs.
129
+ // Skip path returns null so we short-circuit the webhook minting too:
130
+ // a skipped mode should leave the user's Stripe account completely
131
+ // untouched (no orphan webhook endpoints they didn't ask for).
132
+ const collected = await collectPerProjectKeys({
133
+ projectName: args.projectName,
134
+ mode: args.mode,
135
+ reprompt: args.reprompt,
136
+ });
137
+ if (collected.kind === "skipped") {
138
+ console.log(chalk.yellow(` · Skipped ${info.label}. Hatchkit will write commented placeholders\n` +
139
+ ` to the env file. The starter logs a clear startup warning when\n` +
140
+ ` Stripe vars are missing — non-Stripe features still work.`));
141
+ return { kind: "skipped", mode: args.mode };
142
+ }
143
+ // Webhook endpoint — ALWAYS re-create on a re-prompt to avoid orphaned
144
+ // endpoints; idempotent re-runs (no reprompt) reuse the cached
145
+ // signing secret if both the secret AND endpoint id are still in the
146
+ // keychain.
147
+ const cachedWebhookSecret = await getSecret(SECRET_KEYS.stripeProjectWebhookSecret(args.projectName, args.mode));
148
+ const cachedWebhookId = await getSecret(SECRET_KEYS.stripeProjectWebhookId(args.projectName, args.mode));
149
+ let webhookSecret;
150
+ let webhookEndpointId;
151
+ const webhookUrl = `https://${args.domain}/api/stripe/webhook`;
152
+ if (!args.reprompt && cachedWebhookSecret && cachedWebhookId) {
153
+ webhookSecret = cachedWebhookSecret;
154
+ webhookEndpointId = cachedWebhookId;
155
+ console.log(chalk.dim(` · ${info.label} webhook reused from cache (${webhookEndpointId})`));
156
+ }
157
+ else {
158
+ console.log(chalk.dim(` Creating ${info.label} webhook → ${webhookUrl}`));
159
+ const created = await createStripeWebhook({
160
+ projectName: args.projectName,
161
+ url: webhookUrl,
162
+ events: args.events,
163
+ mode: args.mode,
164
+ masterSecretKey: args.masterSecretKey,
165
+ });
166
+ webhookSecret = created.signingSecret;
167
+ webhookEndpointId = created.endpointId;
168
+ await setSecret(SECRET_KEYS.stripeProjectWebhookSecret(args.projectName, args.mode), webhookSecret);
169
+ await setSecret(SECRET_KEYS.stripeProjectWebhookId(args.projectName, args.mode), webhookEndpointId);
170
+ console.log(chalk.green(` ✓ ${info.label} webhook created (${webhookEndpointId})`));
171
+ }
172
+ return {
173
+ kind: "configured",
174
+ mode: args.mode,
175
+ secretKey: collected.secretKey,
176
+ publishableKey: collected.publishableKey,
177
+ webhookSecret,
178
+ webhookEndpointId,
179
+ webhookUrl,
180
+ };
181
+ }
182
+ async function collectPerProjectKeys(args) {
183
+ const info = MODE_INFO[args.mode];
184
+ const skKeychain = SECRET_KEYS.stripeProjectSecretKey(args.projectName, args.mode);
185
+ const pkKeychain = SECRET_KEYS.stripeProjectPublishableKey(args.projectName, args.mode);
186
+ if (!args.reprompt) {
187
+ const cachedSk = await getSecret(skKeychain);
188
+ const cachedPk = await getSecret(pkKeychain);
189
+ if (cachedSk && cachedPk) {
190
+ console.log(chalk.dim(` · ${info.label} per-project keys reused from cache ` +
191
+ `(${args.projectName}). Pass --reprompt-stripe or rotate via the ` +
192
+ `dashboard if you need fresh values.`));
193
+ return { kind: "provided", secretKey: cachedSk, publishableKey: cachedPk };
194
+ }
195
+ }
196
+ // Best-practice steering specific to mode.
197
+ if (args.mode === "test") {
198
+ console.log(chalk.dim(` Recommended: create a dedicated Sandbox for this project so test\n` +
199
+ ` data (customers, charges, subscriptions) stays isolated from your\n` +
200
+ ` other projects. Each sandbox has its own sk_test_/pk_test_ pair.\n` +
201
+ ` 1. Open ${chalk.cyan(info.sandboxesUrl)}\n` +
202
+ ` 2. Create a sandbox named ${chalk.cyan(args.projectName)} (or pick existing)\n` +
203
+ ` 3. Inside the sandbox: Developers → API keys → reveal sk_test/pk_test\n`));
204
+ }
205
+ else {
206
+ console.log(chalk.dim(` Recommended: create a project-scoped restricted key so a leak in this\n` +
207
+ ` project's .env.production can't reach customer/charge data on others.\n` +
208
+ ` 1. Open ${chalk.cyan(info.apiKeysUrl)} (must be in LIVE mode)\n` +
209
+ ` 2. Click 'Create restricted key', name it ${chalk.cyan(args.projectName)}\n` +
210
+ ` 3. Grant: Charges Write, Customers Write, PaymentIntents Write,\n` +
211
+ ` Subscriptions Write, Checkout Sessions Write, Billing Portal Sessions Write\n` +
212
+ ` 4. (You can also paste your account-wide sk_live but the blast\n` +
213
+ ` radius will be larger.)\n`));
214
+ }
215
+ // Skip is a first-class option — opting out of one mode just means
216
+ // the env file gets `CHANGE_ME_*` placeholders + a comment header. The
217
+ // user can wire up later with `dotenvx set` (or by re-running adopt
218
+ // once the manifest exists). Defaulting to "provide" keeps the happy
219
+ // path one Enter away for users who already have keys ready.
220
+ const action = await select({
221
+ message: `${info.label}: provide keys now, or skip and wire up later?`,
222
+ choices: [
223
+ { name: "Provide keys now (paste sk + pk)", value: "provide" },
224
+ {
225
+ name: "Skip — write commented placeholders to the env file",
226
+ value: "skip",
227
+ },
228
+ ],
229
+ default: "provide",
230
+ });
231
+ if (action === "skip") {
232
+ return { kind: "skipped" };
233
+ }
234
+ const secretKey = await confirmPastedSecret(`Per-project ${info.label} secret key (${info.skSample})`);
235
+ if (!info.skPattern.test(secretKey)) {
236
+ throw new Error(`Pasted secret key doesn't match ${args.mode} mode (expected prefix ` +
237
+ `sk_${args.mode}_ or rk_${args.mode}_).`);
238
+ }
239
+ const publishableKey = (await input({
240
+ message: `Per-project ${info.label} publishable key (${info.pkSample}):`,
241
+ validate: (v) => {
242
+ const t = v.trim();
243
+ if (!info.pkPattern.test(t))
244
+ return `Must start with pk_${args.mode}_ for ${args.mode} mode.`;
245
+ return true;
246
+ },
247
+ })).trim();
248
+ // Sanity-check the per-project secret by hitting /v1/balance.
249
+ const verifyRes = await fetch("https://api.stripe.com/v1/balance", {
250
+ headers: { Authorization: `Bearer ${secretKey}` },
251
+ });
252
+ if (!verifyRes.ok) {
253
+ const body = await verifyRes.text().catch(() => "");
254
+ throw new Error(`Per-project ${args.mode} secret key failed verification (HTTP ${verifyRes.status}): ${body}`);
255
+ }
256
+ await setSecret(skKeychain, secretKey);
257
+ await setSecret(pkKeychain, publishableKey);
258
+ return { kind: "provided", secretKey, publishableKey };
259
+ }
260
+ async function createStripeWebhook(args) {
33
261
  const body = new URLSearchParams();
34
- body.set("url", url);
35
- body.set("description", `hatchkit: ${projectName} (${cfg.mode})`);
36
- for (const ev of events)
262
+ body.set("url", args.url);
263
+ body.set("description", `hatchkit: ${args.projectName} (${args.mode})`);
264
+ for (const ev of args.events)
37
265
  body.append("enabled_events[]", ev);
38
266
  const res = await fetch("https://api.stripe.com/v1/webhook_endpoints", {
39
267
  method: "POST",
40
268
  headers: {
41
- Authorization: `Bearer ${cfg.secretKey}`,
269
+ Authorization: `Bearer ${args.masterSecretKey}`,
42
270
  "Content-Type": "application/x-www-form-urlencoded",
43
271
  },
44
272
  body: body.toString(),
45
273
  });
46
274
  if (!res.ok) {
47
275
  const text = await res.text().catch(() => "");
48
- throw new Error(`Stripe create webhook failed: HTTP ${res.status} ${text}`);
276
+ throw new Error(`Stripe create webhook failed (${args.mode}): HTTP ${res.status} ${text}`);
49
277
  }
50
278
  const data = (await res.json());
51
- return {
52
- endpointId: data.id,
53
- signingSecret: data.secret,
54
- url: data.url,
55
- mode: cfg.mode ?? "test",
56
- };
279
+ return { endpointId: data.id, signingSecret: data.secret };
280
+ }
281
+ /** Render env-file lines for one mode. The starter reads:
282
+ * STRIPE_SECRET_KEY server, dotenvx-decrypted in prod
283
+ * STRIPE_PUBLISHABLE_KEY — server (also surfaced to client below)
284
+ * STRIPE_WEBHOOK_SECRET — server, dotenvx-decrypted in prod
285
+ * NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY — client bundle (Next.js convention)
286
+ * STRIPE_MODE — informational, lets the app warn loudly
287
+ * if a live key was deployed without TLS
288
+ *
289
+ * For a `skipped` outcome we emit `CHANGE_ME_*` placeholder values for
290
+ * the three secrets — the starter checks for that prefix at boot and
291
+ * logs a clear "Stripe is unconfigured" warning so dev/prod surfaces
292
+ * the gap instead of failing silently. STRIPE_MODE is still set so
293
+ * the warning message can name the right mode. */
294
+ export function renderStripeEnv(outcome) {
295
+ if (outcome.kind === "skipped") {
296
+ return [
297
+ `STRIPE_MODE=${outcome.mode}`,
298
+ `STRIPE_SECRET_KEY=${STRIPE_PLACEHOLDER.secretKey}`,
299
+ `STRIPE_PUBLISHABLE_KEY=${STRIPE_PLACEHOLDER.publishableKey}`,
300
+ `STRIPE_WEBHOOK_SECRET=${STRIPE_PLACEHOLDER.webhookSecret}`,
301
+ `NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=${STRIPE_PLACEHOLDER.publishableKey}`,
302
+ ];
303
+ }
304
+ return [
305
+ `STRIPE_MODE=${outcome.mode}`,
306
+ `STRIPE_SECRET_KEY=${outcome.secretKey}`,
307
+ `STRIPE_PUBLISHABLE_KEY=${outcome.publishableKey}`,
308
+ `STRIPE_WEBHOOK_SECRET=${outcome.webhookSecret}`,
309
+ `NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=${outcome.publishableKey}`,
310
+ ];
311
+ }
312
+ /** Comment header to inject into the env file ABOVE the CHANGE_ME
313
+ * placeholder lines when the user skipped a mode. Idempotent — the
314
+ * first line acts as a sentinel that callers grep for, so re-runs
315
+ * don't duplicate the block. Listing concrete `dotenvx set` commands
316
+ * saves the user a trip to the docs.
317
+ *
318
+ * `envFileLabel` is the relative path the user sees in their project
319
+ * (e.g. "packages/server/.env.production"); embedding it makes the
320
+ * copy-paste recipe complete. */
321
+ export function renderStripeSkipComment(mode, envFileLabel) {
322
+ const dashUrl = mode === "test"
323
+ ? "https://dashboard.stripe.com/sandboxes (per-project sandbox recommended)"
324
+ : "https://dashboard.stripe.com/apikeys (project-scoped restricted key recommended)";
325
+ const dotenvxFlag = envFileLabel.endsWith(".env.production") ? " --encrypt" : "";
326
+ return [
327
+ `# ─── Stripe (${mode}) — skipped at hatchkit scaffold time ───`,
328
+ `# To wire up later:`,
329
+ `# 1. Get your sk + pk from ${dashUrl}`,
330
+ `# 2. Replace each CHANGE_ME_* with the real value:`,
331
+ `# pnpm --filter @starter/server exec dotenvx set STRIPE_SECRET_KEY <sk_${mode}_…> -f ${envFileLabel}${dotenvxFlag}`,
332
+ `# pnpm --filter @starter/server exec dotenvx set STRIPE_PUBLISHABLE_KEY <pk_${mode}_…> -f ${envFileLabel}${dotenvxFlag}`,
333
+ `# 3. Create a webhook endpoint in the dashboard pointing at`,
334
+ `# https://<your-domain>/api/stripe/webhook (or use the Stripe CLI`,
335
+ `# \`stripe listen --forward-to localhost:5000/api/stripe/webhook\`),`,
336
+ `# then store its whsec_…:`,
337
+ `# pnpm --filter @starter/server exec dotenvx set STRIPE_WEBHOOK_SECRET <whsec_…> -f ${envFileLabel}${dotenvxFlag}`,
338
+ ];
339
+ }
340
+ /** Delete the webhook endpoint hatchkit registered for `project` in
341
+ * `mode`. Returns "deleted" on success, "not-found" if the endpoint
342
+ * was already removed. Used by `hatchkit destroy <project>`. */
343
+ export async function deleteStripeProjectWebhook(project, mode) {
344
+ const master = await ensureStripe();
345
+ const masterKey = mode === "test" ? master.testSecretKey : master.liveSecretKey;
346
+ if (!masterKey) {
347
+ return "not-found";
348
+ }
349
+ const endpointId = await getSecret(SECRET_KEYS.stripeProjectWebhookId(project, mode));
350
+ if (!endpointId)
351
+ return "not-found";
352
+ const res = await fetch(`https://api.stripe.com/v1/webhook_endpoints/${endpointId}`, {
353
+ method: "DELETE",
354
+ headers: { Authorization: `Bearer ${masterKey}` },
355
+ });
356
+ if (res.status === 404)
357
+ return "not-found";
358
+ if (!res.ok) {
359
+ const text = await res.text().catch(() => "");
360
+ throw new Error(`Stripe delete webhook failed: HTTP ${res.status} ${text}`);
361
+ }
362
+ return "deleted";
57
363
  }
58
364
  //# sourceMappingURL=stripe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../src/provision/stripe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C;;qEAEqE;AACrE,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,4BAA4B;IAC5B,0CAA0C;IAC1C,uCAAuC;IACvC,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,2BAA2B;IAC3B,wBAAwB;CACzB,CAAC;AAcF;iCACiC;AACjC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAmB,EACnB,MAAc,EACd,SAAmB,qBAAqB;IAExC,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,WAAW,MAAM,qBAAqB,CAAC;IAEnD,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;IACnC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,WAAW,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IAClE,KAAK,MAAM,EAAE,IAAI,MAAM;QAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAE7D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,6CAA6C,EAAE;QACrE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,GAAG,CAAC,SAAS,EAAE;YACxC,cAAc,EAAE,mCAAmC;SACpD;QACD,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;KACtB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAgD,CAAC;IAC/E,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,EAAE;QACnB,aAAa,EAAE,IAAI,CAAC,MAAM;QAC1B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,MAAM;KACzB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../src/provision/stripe.ts"],"names":[],"mappings":"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"}
@@ -28,4 +28,11 @@ export declare function writeDevEnv(envPath: string, pairs: EnvPair[]): string[]
28
28
  /** Encrypt each KEY into `.env.production` via dotenvx. First call
29
29
  * generates the keypair and writes `.env.keys`. */
30
30
  export declare function writeProdEnv(envPath: string, pairs: EnvPair[]): string[];
31
+ /** Append a block of comment lines to an env file ONCE. The first line
32
+ * acts as a sentinel — if it already appears in the file, the call is
33
+ * a no-op. dotenvx-encrypted files preserve comments verbatim, so this
34
+ * works the same on `.env.production` (encrypted) and
35
+ * `.env.development` (plain). Used by Stripe's "skip" path to drop a
36
+ * visible "wire this up later" recipe above the CHANGE_ME placeholders. */
37
+ export declare function appendCommentBlock(envPath: string, comments: string[]): void;
31
38
  //# sourceMappingURL=write-env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"write-env.d.ts","sourceRoot":"","sources":["../../src/provision/write-env.ts"],"names":[],"mappings":"AAmBA,kEAAkE;AAClE,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;0CAE0C;AAC1C,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAUxD;AAED;;;qBAGqB;AACrB,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;CAC5B,CAMA;AAED;;uCAEuC;AACvC,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAqBvE;AAED;oDACoD;AACpD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAQxE"}
1
+ {"version":3,"file":"write-env.d.ts","sourceRoot":"","sources":["../../src/provision/write-env.ts"],"names":[],"mappings":"AAmBA,kEAAkE;AAClE,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;0CAE0C;AAC1C,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAUxD;AAED;;;qBAGqB;AACrB,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;CAC5B,CAMA;AAED;;uCAEuC;AACvC,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAqBvE;AAED;oDACoD;AACpD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAQxE;AAED;;;;;4EAK4E;AAC5E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAS5E"}
@@ -78,6 +78,24 @@ export function writeProdEnv(envPath, pairs) {
78
78
  }
79
79
  return encrypted;
80
80
  }
81
+ /** Append a block of comment lines to an env file ONCE. The first line
82
+ * acts as a sentinel — if it already appears in the file, the call is
83
+ * a no-op. dotenvx-encrypted files preserve comments verbatim, so this
84
+ * works the same on `.env.production` (encrypted) and
85
+ * `.env.development` (plain). Used by Stripe's "skip" path to drop a
86
+ * visible "wire this up later" recipe above the CHANGE_ME placeholders. */
87
+ export function appendCommentBlock(envPath, comments) {
88
+ if (comments.length === 0)
89
+ return;
90
+ ensureParent(envPath);
91
+ const sentinel = comments[0];
92
+ const existing = existsSync(envPath) ? readFileSync(envPath, "utf-8") : "";
93
+ if (existing.includes(sentinel))
94
+ return;
95
+ const prefix = existing === "" ? "" : existing.endsWith("\n") ? "\n" : "\n\n";
96
+ const block = `${comments.join("\n")}\n`;
97
+ writeFileSync(envPath, existing + prefix + block, { mode: 0o600 });
98
+ }
81
99
  function ensureParent(filePath) {
82
100
  const parent = dirname(filePath);
83
101
  if (!existsSync(parent))
@@ -1 +1 @@
1
- {"version":3,"file":"write-env.js","sourceRoot":"","sources":["../../src/provision/write-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAerD;;0CAE0C;AAC1C,MAAM,UAAU,aAAa,CAAC,KAAe;IAC3C,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,GAAG,CAAC;YAAE,SAAS;QACrB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;qBAGqB;AACrB,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IAIjD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACvD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACjD,CAAC;AAED;;uCAEuC;AACvC,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,KAAgB;IAC3D,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,KAAK,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE1D,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,sEAAsE;IACtE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACvE,aAAa,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;oDACoD;AACpD,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,KAAgB;IAC5D,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;QACnC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAClE,CAAC;AAED;;4CAE4C;AAC5C,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"write-env.js","sourceRoot":"","sources":["../../src/provision/write-env.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/scaffold/app.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAa,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,KAAK,iBAAiB,EAAyB,MAAM,cAAc,CAAC;AAqB7E,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB;iEAC6D;IAC7D,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,6EAA6E;AAC7E,wBAAsB,WAAW,CAC/B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CA8FzB"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/scaffold/app.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAa,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,KAAK,iBAAiB,EAAyB,MAAM,cAAc,CAAC;AAsB7E,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB;iEAC6D;IAC7D,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,6EAA6E;AAC7E,wBAAsB,WAAW,CAC/B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CA8FzB"}
@@ -24,7 +24,7 @@ import { getCliVersion } from "../utils/version.js";
24
24
  import { seedDotenvxProduction } from "./dotenvx.js";
25
25
  import { MANIFEST_FILENAME, toManifest, writeManifest } from "./manifest.js";
26
26
  import { stripPackageJsonBuildBlock, stripPackageJsonDeps, stripPackageJsonScripts, unchainTypecheckScript, } from "./pkg-json.js";
27
- import { applyPorts, flipNextConfigToStaticExport, removeIfExists, replaceInFile, stripMobileBridgeFromLayout, updateEnvExample, } from "./starter-files.js";
27
+ import { applyPorts, applyProjectName, flipNextConfigToStaticExport, removeIfExists, replaceInFile, stripMobileBridgeFromLayout, updateEnvExample, } from "./starter-files.js";
28
28
  // Monorepo root → starter submodule
29
29
  const MONOREPO_ROOT = resolve(join(import.meta.dirname, "..", "..", ".."));
30
30
  const STARTER_ROOT = join(MONOREPO_ROOT, "starter");
@@ -132,6 +132,12 @@ async function runScaffoldSteps(config, outputDir, reservedPorts) {
132
132
  // Rename the project in package.json
133
133
  replaceInFile(join(outputDir, "package.json"), "node-realtime-starter", config.name);
134
134
  modifications.push("package.json (renamed project)");
135
+ // Project-name substitution for local-infra identifiers — gives each
136
+ // scaffolded project its own dev Mongo DB / MinIO bucket / E2E
137
+ // isolation. Without this, two projects on one machine collide on
138
+ // the same `starter-dev` bucket and `starter-dev` Mongo database.
139
+ applyProjectName(outputDir, config.name);
140
+ modifications.push("renamed local-infra identifiers (Mongo DB / MinIO bucket / E2E names)");
135
141
  // .env.example files: production URLs for this project's domain.
136
142
  // .env.development is left alone (local dev defaults should stay pointing at localhost).
137
143
  updateEnvExample(outputDir, "packages/server/.env.example", config);
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/scaffold/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/scaffold/app.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,8 @@ export function generateTfvars(config) {
16
16
  return;
17
17
  subdomains[key] = description;
18
18
  };
19
- addSubdomain(config.subdomain, "Web app + API paths");
20
- addSubdomain(`api.${config.subdomain}`, "REST API");
19
+ addSubdomain(config.subdomain || "@", "Web app + API paths");
20
+ addSubdomain(config.subdomain ? `api.${config.subdomain}` : "api", "REST API");
21
21
  addSubdomain("admin", "Coolify dashboard");
22
22
  // The user's CLI DNS config decides which stack we target.
23
23
  // "manual" returns "" — caller skips writing tfvars entirely because
@@ -1 +1 @@
1
- {"version":3,"file":"infra.js","sourceRoot":"","sources":["../../src/scaffold/infra.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"infra.js","sourceRoot":"","sources":["../../src/scaffold/infra.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,11 @@ export interface ProjectManifest {
13
13
  name: string;
14
14
  /** Production domain — already public in DNS + .env.example. */
15
15
  domain: string;
16
+ /** Human-readable one-liner shown on the Coolify project + application
17
+ * pages. Optional: when unset, hatchkit falls back to a generic
18
+ * "Adopted by hatchkit" blurb on create, and leaves the field alone
19
+ * on subsequent updates. */
20
+ description?: string;
16
21
  /** Feature flags selected at scaffold. */
17
22
  features: Feature[];
18
23
  /** ML services wired into the backend. */