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.
- package/dist/adopt.d.ts.map +1 -1
- package/dist/adopt.js +167 -1
- package/dist/adopt.js.map +1 -1
- package/dist/assets/env.d.ts +40 -0
- package/dist/assets/env.d.ts.map +1 -0
- package/dist/assets/env.js +150 -0
- package/dist/assets/env.js.map +1 -0
- package/dist/assets/index.d.ts +2 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/assets/index.js +328 -0
- package/dist/assets/index.js.map +1 -0
- package/dist/assets/mirror.d.ts +59 -0
- package/dist/assets/mirror.d.ts.map +1 -0
- package/dist/assets/mirror.js +251 -0
- package/dist/assets/mirror.js.map +1 -0
- package/dist/completion.d.ts.map +1 -1
- package/dist/completion.js +16 -0
- package/dist/completion.js.map +1 -1
- package/dist/config.d.ts +18 -8
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +157 -50
- package/dist/config.js.map +1 -1
- package/dist/deploy/coolify-app.d.ts +6 -0
- package/dist/deploy/coolify-app.d.ts.map +1 -1
- package/dist/deploy/coolify-app.js +58 -15
- package/dist/deploy/coolify-app.js.map +1 -1
- package/dist/deploy/rename-domain.d.ts.map +1 -1
- package/dist/deploy/rename-domain.js +4 -2
- package/dist/deploy/rename-domain.js.map +1 -1
- package/dist/deploy/rollback.d.ts +11 -0
- package/dist/deploy/rollback.d.ts.map +1 -1
- package/dist/deploy/rollback.js +46 -9
- package/dist/deploy/rollback.js.map +1 -1
- package/dist/deploy/sync.d.ts +98 -0
- package/dist/deploy/sync.d.ts.map +1 -0
- package/dist/deploy/sync.js +354 -0
- package/dist/deploy/sync.js.map +1 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +29 -11
- package/dist/doctor.js.map +1 -1
- package/dist/explain.d.ts.map +1 -1
- package/dist/explain.js +5 -0
- package/dist/explain.js.map +1 -1
- package/dist/index.js +184 -30
- package/dist/index.js.map +1 -1
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +7 -5
- package/dist/prompts.js.map +1 -1
- package/dist/provision/s3-buckets.d.ts +12 -5
- package/dist/provision/s3-buckets.d.ts.map +1 -1
- package/dist/provision/s3-buckets.js +14 -7
- package/dist/provision/s3-buckets.js.map +1 -1
- package/dist/provision/stripe.d.ts +85 -16
- package/dist/provision/stripe.d.ts.map +1 -1
- package/dist/provision/stripe.js +334 -28
- package/dist/provision/stripe.js.map +1 -1
- package/dist/provision/write-env.d.ts +7 -0
- package/dist/provision/write-env.d.ts.map +1 -1
- package/dist/provision/write-env.js +18 -0
- package/dist/provision/write-env.js.map +1 -1
- package/dist/scaffold/app.d.ts.map +1 -1
- package/dist/scaffold/app.js +7 -1
- package/dist/scaffold/app.js.map +1 -1
- package/dist/scaffold/infra.js +2 -2
- package/dist/scaffold/infra.js.map +1 -1
- package/dist/scaffold/manifest.d.ts +5 -0
- package/dist/scaffold/manifest.d.ts.map +1 -1
- package/dist/scaffold/manifest.js.map +1 -1
- package/dist/scaffold/starter-files.d.ts +22 -0
- package/dist/scaffold/starter-files.d.ts.map +1 -1
- package/dist/scaffold/starter-files.js +44 -0
- package/dist/scaffold/starter-files.js.map +1 -1
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +11 -1
- package/dist/status.js.map +1 -1
- package/dist/templates/build-pipeline/docker-compose.yml.hbs +17 -0
- package/dist/utils/cancel-handler.d.ts +17 -0
- package/dist/utils/cancel-handler.d.ts.map +1 -0
- package/dist/utils/cancel-handler.js +97 -0
- package/dist/utils/cancel-handler.js.map +1 -0
- package/dist/utils/coolify-api.d.ts +60 -2
- package/dist/utils/coolify-api.d.ts.map +1 -1
- package/dist/utils/coolify-api.js +85 -2
- package/dist/utils/coolify-api.js.map +1 -1
- package/dist/utils/secrets.d.ts +29 -0
- package/dist/utils/secrets.d.ts.map +1 -1
- package/dist/utils/secrets.js +29 -0
- package/dist/utils/secrets.js.map +1 -1
- package/dist/utils/validate.d.ts +6 -0
- package/dist/utils/validate.d.ts.map +1 -1
- package/dist/utils/validate.js +17 -0
- package/dist/utils/validate.js.map +1 -1
- package/package.json +3 -2
package/dist/provision/stripe.js
CHANGED
|
@@ -1,20 +1,50 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Stripe
|
|
2
|
+
* Stripe per-project provisioning.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
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
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* · TEST / sandbox → ends up in `.env.development` (plaintext)
|
|
9
|
+
* · LIVE → ends up in `.env.production` (dotenvx-encrypted)
|
|
11
10
|
*
|
|
12
|
-
*
|
|
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 {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
/**
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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} (${
|
|
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 ${
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
|
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":"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"}
|
|
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;
|
|
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"}
|
package/dist/scaffold/app.js
CHANGED
|
@@ -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);
|
package/dist/scaffold/app.js.map
CHANGED
|
@@ -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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"}
|
package/dist/scaffold/infra.js
CHANGED
|
@@ -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}
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAuB,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,iDAAiD;AACjD,MAAM,UAAU,cAAc,CAAC,MAAqB;IAClD,mEAAmE;IACnE,sEAAsE;IACtE,mCAAmC;IACnC,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,WAAmB,EAAE,EAAE;QACxD,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAC5B,UAAU,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;IAChC,CAAC,CAAC;IACF,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;
|
|
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. */
|