hatchkit 0.1.35 → 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
@@ -0,0 +1,354 @@
1
+ /*
2
+ * sync — push the .hatchkit.json manifest's view of the project onto
3
+ * the Coolify resource(s) hatchkit created (or adopted) for it.
4
+ *
5
+ * Why this exists: Coolify's auto-generated Traefik labels are derived
6
+ * from the application's Domain field (`docker_compose_domains` for
7
+ * dockercompose build packs, `fqdn` / `domains` otherwise). When a
8
+ * scaffold or adopt run created the app without that field populated —
9
+ * either because of the pre-fix bug where `updateApplication` couldn't
10
+ * push domains, or because the user changed the manifest after scaffold —
11
+ * the container ends up with zero traefik labels and Traefik silently
12
+ * drops the route. `hatchkit sync` reads the manifest, finds the matching
13
+ * Coolify app(s), and PATCHes them so Coolify regenerates the labels on
14
+ * the next deploy.
15
+ *
16
+ * Scope is deliberately narrow. Sync only pushes fields that are safe to
17
+ * blast over the wire idempotently:
18
+ * · domain (`docker_compose_domains` for compose apps; `domains` for
19
+ * nixpacks / dockerfile / static)
20
+ * · ports_exposes (so the multi-host routing for the starter's split
21
+ * compose stays consistent with what runCoolifySetup creates)
22
+ *
23
+ * Out of scope (handled by other commands):
24
+ * · env vars → `hatchkit keys push` + adopt's setAppEnv
25
+ * · DNS records → adopt's wireDns + `rename-domain`
26
+ * · ML services / GPU → `hatchkit add gpu`
27
+ * · S3 buckets / tokens → `hatchkit provision s3`
28
+ *
29
+ * Idempotent by design: reads current state first, only PATCHes when the
30
+ * desired domain set differs from what Coolify reports. `--dry-run`
31
+ * shows the diff without touching anything.
32
+ */
33
+ import chalk from "chalk";
34
+ import ora from "ora";
35
+ import { getCoolifyConfig } from "../config.js";
36
+ import { readManifest } from "../scaffold/manifest.js";
37
+ import { CoolifyApi } from "../utils/coolify-api.js";
38
+ /** Top-level entrypoint. Reads the project manifest, finds the Coolify
39
+ * app(s) hatchkit knows about by name, and pushes the desired domain
40
+ * + ports payload — or just prints what it would push when `dryRun`. */
41
+ export async function runSync(opts) {
42
+ const manifest = readManifest(opts.projectDir);
43
+ if (!manifest) {
44
+ const err = `No .hatchkit.json found in ${opts.projectDir}.`;
45
+ if (!opts.json) {
46
+ console.log(chalk.red(` ${err}`));
47
+ console.log(chalk.dim(" Run `hatchkit sync` from a hatchkit-scaffolded project root, or `hatchkit adopt` to onboard an existing project first."));
48
+ }
49
+ return { ok: false, error: err, apps: [], dryRun: !!opts.dryRun };
50
+ }
51
+ const cfg = await getCoolifyConfig();
52
+ if (!cfg) {
53
+ const err = "Coolify is not configured. Run `hatchkit config add coolify` first.";
54
+ if (!opts.json)
55
+ console.log(chalk.red(` ${err}`));
56
+ return { ok: false, error: err, apps: [], dryRun: !!opts.dryRun };
57
+ }
58
+ const api = new CoolifyApi({ url: cfg.url, token: cfg.token });
59
+ const desiredAll = computeDesiredAppStates(manifest);
60
+ const apps = [];
61
+ const errors = [];
62
+ // Match every desired-app entry against Coolify by name. We don't
63
+ // pre-list /applications and intersect because sync should still work
64
+ // when the user has hundreds of apps; a per-name lookup is cheaper.
65
+ // Apps the manifest expects but that don't exist in Coolify are
66
+ // logged as a hint (the user probably needs `hatchkit adopt` first)
67
+ // but don't fail the whole run — partial sync of the apps that DO
68
+ // exist is the most useful behavior.
69
+ for (const desired of desiredAll) {
70
+ const matchSpinner = opts.json ? null : ora(`Coolify: locating "${desired.appName}"`).start();
71
+ const found = await api.findApplicationByName(desired.appName);
72
+ if (!found) {
73
+ matchSpinner?.warn(`Coolify: no app named "${desired.appName}" — skipping`);
74
+ continue;
75
+ }
76
+ matchSpinner?.succeed(`Coolify: found "${desired.appName}" (${found.uuid})`);
77
+ let current;
78
+ try {
79
+ current = await api.getApplication(found.uuid);
80
+ }
81
+ catch (err) {
82
+ errors.push(`Failed to read Coolify app "${desired.appName}" (${found.uuid}): ${err.message}`);
83
+ continue;
84
+ }
85
+ const plan = buildPlan(found.uuid, desired, current);
86
+ apps.push(plan);
87
+ if (!opts.json)
88
+ renderPlan(plan);
89
+ if (!plan.changed)
90
+ continue;
91
+ if (opts.dryRun)
92
+ continue;
93
+ const patch = ora(`Coolify: updating "${desired.appName}"`).start();
94
+ try {
95
+ await api.updateApplication(plan.uuid, {
96
+ portsExposes: plan.desiredPortsExposes,
97
+ ...(plan.desiredDockerComposeDomains
98
+ ? { dockerComposeDomains: plan.desiredDockerComposeDomains }
99
+ : {}),
100
+ ...(plan.desiredDomains ? { domains: plan.desiredDomains } : {}),
101
+ });
102
+ patch.succeed(`Coolify: updated "${desired.appName}"`);
103
+ }
104
+ catch (err) {
105
+ patch.fail(`Coolify: PATCH failed: ${err.message}`);
106
+ errors.push(`PATCH ${desired.appName}: ${err.message}`);
107
+ }
108
+ }
109
+ if (apps.length === 0 && errors.length === 0) {
110
+ const err = `No Coolify apps matched manifest project "${manifest.name}".`;
111
+ if (!opts.json) {
112
+ console.log(chalk.yellow(` ${err}`));
113
+ console.log(chalk.dim(` Looked for: ${desiredAll.map((d) => `"${d.appName}"`).join(", ")}.\n` +
114
+ ` Run \`hatchkit adopt\` to create them, or rename the existing app(s) to match.`));
115
+ }
116
+ return { ok: false, error: err, apps, dryRun: !!opts.dryRun };
117
+ }
118
+ if (!opts.json) {
119
+ if (opts.dryRun) {
120
+ console.log(chalk.dim("\n --dry-run: no changes pushed."));
121
+ }
122
+ else {
123
+ const changed = apps.filter((a) => a.changed);
124
+ if (changed.length === 0) {
125
+ console.log(chalk.green("\n ✓ Coolify already in sync with manifest."));
126
+ }
127
+ else {
128
+ console.log(chalk.green(`\n ✓ Synced ${changed.length} app(s) to manifest state.`) +
129
+ chalk.dim("\n Trigger a redeploy in Coolify (or push a commit) for Traefik to pick up the new labels."));
130
+ }
131
+ }
132
+ if (errors.length > 0) {
133
+ console.log(chalk.yellow("\n Errors:"));
134
+ for (const e of errors)
135
+ console.log(chalk.yellow(` · ${e}`));
136
+ }
137
+ }
138
+ return {
139
+ ok: errors.length === 0,
140
+ apps,
141
+ dryRun: !!opts.dryRun,
142
+ ...(errors.length > 0 ? { error: errors.join("; ") } : {}),
143
+ };
144
+ }
145
+ /** Map a manifest to the set of Coolify apps hatchkit owns for it. The
146
+ * shapes we cover (matching the layouts `findCoolifyAppsForProject`
147
+ * understands):
148
+ *
149
+ * 1. Adopted single-app: `<name>`
150
+ * 2. Starter split (legacy): `<name>-server` + `<name>-client`
151
+ * 3. Old single-app fallbacks: `<name>-web` / `<name>-app` / `<name>-api`
152
+ *
153
+ * We synthesize a candidate list per layout. The actual lookup happens
154
+ * per-name; misses are skipped. This means a project that scaffolded as
155
+ * starter-split AND was later adopted as single-app would push twice —
156
+ * not a problem because each PATCH is independent and idempotent. */
157
+ export function computeDesiredAppStates(manifest) {
158
+ const { name, domain, surfaces, ports } = manifest;
159
+ const portServer = String(ports?.server ?? 3000);
160
+ const portClient = String(ports?.client ?? 3001);
161
+ // Routing recipes — see `runCoolifySetup` (cli/src/deploy/coolify.ts)
162
+ // for the create-time source of truth. Sync mirrors that exactly so
163
+ // re-running sync converges to the same labels Coolify generated at
164
+ // create time.
165
+ const apiDomain = `api.${domain}`;
166
+ const frontendDomain = `https://${domain}`;
167
+ const backendDomains = [
168
+ `https://${apiDomain}`,
169
+ `https://${domain}/api`,
170
+ `https://${domain}/api/ws`,
171
+ `https://${apiDomain}/ws`,
172
+ ];
173
+ const splitClientDomains = [{ name: "client", domain: frontendDomain }];
174
+ const splitServerDomains = backendDomains.map((d) => ({ name: "server", domain: d }));
175
+ // Single-app layout: one Coolify app named `<name>` with one compose
176
+ // service `app`. ports_exposes is surface-aware:
177
+ // server-only / both → server port (the public listener)
178
+ // client-only → 80 (matches adopt.ts's static-site default)
179
+ const singleAppPort = surfaces === "client-only" ? "80" : portServer;
180
+ const singleAppDomain = surfaces === "client-only" && (singleAppPort === "80" || singleAppPort === "443")
181
+ ? `https://${domain}`
182
+ : `https://${domain}:${singleAppPort}`;
183
+ // Use bare `https://<domain>` when the listener is on the conventional
184
+ // 80/443 — Coolify's Traefik handles the HTTPS termination and the
185
+ // explicit port suffix would push the route through Traefik on a
186
+ // non-standard port (which won't match the Coolify ingress). The
187
+ // formatDockerComposeDomain helper in coolify-app.ts uses the same
188
+ // rule; mirror it here so sync output matches what adopt creates.
189
+ const singleAppCanonicalDomain = singleAppPort === "80" || singleAppPort === "443" ? `https://${domain}` : singleAppDomain;
190
+ const singleApp = {
191
+ appName: name,
192
+ domains: [{ name: "app", domain: singleAppCanonicalDomain }],
193
+ portsExposes: singleAppPort,
194
+ };
195
+ // Starter-split layout: two apps. Each app's compose has its own
196
+ // service named `client` or `server` respectively; routing splits
197
+ // along the same lines as runCoolifySetup creates.
198
+ const splitClient = {
199
+ appName: `${name}-client`,
200
+ domains: splitClientDomains,
201
+ portsExposes: portClient,
202
+ };
203
+ const splitServer = {
204
+ appName: `${name}-server`,
205
+ domains: splitServerDomains,
206
+ portsExposes: portServer,
207
+ };
208
+ // Old single-app fallbacks. `runCoolifySetup` creates `<name>-web`
209
+ // for the very-old starter shape; the others are speculative for
210
+ // hand-written compose layouts that adopt previously matched.
211
+ const fallbackWeb = {
212
+ ...singleApp,
213
+ appName: `${name}-web`,
214
+ };
215
+ // Filter by surfaces so we don't ship a non-existent split shape
216
+ // in JSON output. The actual Coolify lookup will skip non-existent
217
+ // names anyway, but keeping the candidate list tight reduces noise.
218
+ if (surfaces === "client-only") {
219
+ return [singleApp, fallbackWeb, splitClient];
220
+ }
221
+ if (surfaces === "server-only") {
222
+ return [singleApp, fallbackWeb, splitServer];
223
+ }
224
+ // both / undefined → server-of-truth is the split layout, but adopt
225
+ // collapses to single-app for projects without a separate frontend.
226
+ return [singleApp, fallbackWeb, splitServer, splitClient];
227
+ }
228
+ // ---------------------------------------------------------------------------
229
+ // Plan rendering
230
+ // ---------------------------------------------------------------------------
231
+ function buildPlan(uuid, desired, current) {
232
+ const isCompose = current.buildPack === "dockercompose";
233
+ // dockercompose apps use docker_compose_domains; everything else uses
234
+ // the flat `domains` field. Coolify rejects a domain payload that
235
+ // doesn't match the build pack with a 422.
236
+ const desiredDockerComposeDomains = isCompose ? desired.domains : undefined;
237
+ const desiredDomains = isCompose ? undefined : desired.domains.map((d) => d.domain);
238
+ const portsChanged = current.portsExposes !== undefined && current.portsExposes !== desired.portsExposes;
239
+ const domainsChanged = isCompose
240
+ ? !sameDockerComposeDomains(current.dockerComposeDomains, desired.domains)
241
+ : !sameStringList(splitFqdn(current.fqdn), desired.domains.map((d) => d.domain));
242
+ return {
243
+ uuid,
244
+ name: current.name || desired.appName,
245
+ buildPack: current.buildPack,
246
+ ...(desiredDockerComposeDomains ? { desiredDockerComposeDomains } : {}),
247
+ ...(desiredDomains ? { desiredDomains } : {}),
248
+ desiredPortsExposes: desired.portsExposes,
249
+ current: {
250
+ fqdn: current.fqdn,
251
+ ...(current.dockerComposeDomains
252
+ ? { dockerComposeDomains: current.dockerComposeDomains }
253
+ : {}),
254
+ ...(current.portsExposes !== undefined ? { portsExposes: current.portsExposes } : {}),
255
+ },
256
+ changed: portsChanged || domainsChanged,
257
+ };
258
+ }
259
+ function renderPlan(plan) {
260
+ console.log(chalk.bold(`\n ${plan.name}`) + chalk.dim(` (${plan.uuid.slice(0, 8)}…)`));
261
+ if (plan.buildPack) {
262
+ console.log(chalk.dim(` build pack: ${plan.buildPack}`));
263
+ }
264
+ if (plan.desiredDockerComposeDomains) {
265
+ const before = plan.current.dockerComposeDomains ?? [];
266
+ const after = plan.desiredDockerComposeDomains;
267
+ const same = sameDockerComposeDomains(before, after);
268
+ if (same) {
269
+ console.log(chalk.green(` ✓ docker_compose_domains: in sync`));
270
+ console.log(chalk.dim(` ${formatDockerComposeDomains(after)}`));
271
+ }
272
+ else {
273
+ console.log(chalk.yellow(` · docker_compose_domains:`));
274
+ console.log(chalk.dim(` before: ${formatDockerComposeDomains(before)}`));
275
+ console.log(chalk.dim(` after: ${formatDockerComposeDomains(after)}`));
276
+ }
277
+ }
278
+ else if (plan.desiredDomains) {
279
+ const before = splitFqdn(plan.current.fqdn);
280
+ const after = plan.desiredDomains;
281
+ const same = sameStringList(before, after);
282
+ if (same) {
283
+ console.log(chalk.green(` ✓ domains: in sync (${after.join(", ")})`));
284
+ }
285
+ else {
286
+ console.log(chalk.yellow(` · domains:`));
287
+ console.log(chalk.dim(` before: ${before.join(", ") || "(empty)"}`));
288
+ console.log(chalk.dim(` after: ${after.join(", ")}`));
289
+ }
290
+ }
291
+ if (plan.current.portsExposes !== undefined &&
292
+ plan.current.portsExposes !== plan.desiredPortsExposes) {
293
+ console.log(chalk.yellow(` · ports_exposes:`));
294
+ console.log(chalk.dim(` before: ${plan.current.portsExposes}`));
295
+ console.log(chalk.dim(` after: ${plan.desiredPortsExposes}`));
296
+ }
297
+ else if (plan.current.portsExposes === plan.desiredPortsExposes) {
298
+ console.log(chalk.green(` ✓ ports_exposes: ${plan.desiredPortsExposes}`));
299
+ }
300
+ }
301
+ // ---------------------------------------------------------------------------
302
+ // Helpers
303
+ // ---------------------------------------------------------------------------
304
+ function splitFqdn(fqdn) {
305
+ if (!fqdn)
306
+ return [];
307
+ return fqdn
308
+ .split(",")
309
+ .map((s) => s.trim())
310
+ .filter(Boolean);
311
+ }
312
+ function sameStringList(a, b) {
313
+ if (a.length !== b.length)
314
+ return false;
315
+ const sa = [...a].sort();
316
+ const sb = [...b].sort();
317
+ return sa.every((v, i) => v === sb[i]);
318
+ }
319
+ function sameDockerComposeDomains(a, b) {
320
+ const left = a ?? [];
321
+ if (left.length !== b.length)
322
+ return false;
323
+ // Order-insensitive comparison — Coolify doesn't promise to round-trip
324
+ // the array in the same order it was sent.
325
+ const key = (e) => `${e.name}::${e.domain}`;
326
+ const setA = new Set(left.map(key));
327
+ return b.every((e) => setA.has(key(e)));
328
+ }
329
+ function formatDockerComposeDomains(entries) {
330
+ if (entries.length === 0)
331
+ return "(empty)";
332
+ return entries.map((e) => `${e.name}=${e.domain}`).join(", ");
333
+ }
334
+ // ---------------------------------------------------------------------------
335
+ // CLI glue — thin wrapper the dispatcher calls.
336
+ // ---------------------------------------------------------------------------
337
+ export async function runSyncCli(args) {
338
+ const dryRun = args.includes("--dry-run");
339
+ const json = args.includes("--json");
340
+ const dirArg = (() => {
341
+ const i = args.findIndex((a) => a === "--dir");
342
+ if (i >= 0 && args[i + 1])
343
+ return args[i + 1];
344
+ return undefined;
345
+ })();
346
+ const projectDir = dirArg ? dirArg : process.cwd();
347
+ const result = await runSync({ projectDir, dryRun, json });
348
+ if (json) {
349
+ console.log(JSON.stringify(result, null, 2));
350
+ }
351
+ if (!result.ok)
352
+ process.exit(1);
353
+ }
354
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/deploy/sync.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAuBA,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAwfD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAoBnE;AAED;;;;;;;;;;;0CAW0C;AAC1C,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA6FrF;AAED;;;;;;;;;;;;;+CAa+C;AAC/C,wBAAsB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA6HxF;AAED,wBAAsB,SAAS,CAAC,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C5E"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAuBA,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAugBD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAoBnE;AAED;;;;;;;;;;;0CAW0C;AAC1C,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA6FrF;AAED;;;;;;;;;;;;;+CAa+C;AAC/C,wBAAsB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA6HxF;AAED,wBAAsB,SAAS,CAAC,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C5E"}
package/dist/doctor.js CHANGED
@@ -423,30 +423,47 @@ async function checkResend() {
423
423
  return undefined;
424
424
  });
425
425
  }
426
- async function checkStripe() {
427
- const { getStripeConfig } = await import("./config.js");
428
- const cfg = await getStripeConfig();
429
- if (!cfg)
430
- return { name: "Stripe", status: "skip" };
431
- return check(`Stripe (${cfg.mode})`, async () => {
426
+ async function checkStripeMode(mode, secretKey) {
427
+ return check(`Stripe (${mode} master)`, async () => {
432
428
  const res = await fetch("https://api.stripe.com/v1/balance", {
433
- headers: { Authorization: `Bearer ${cfg.secretKey}` },
429
+ headers: { Authorization: `Bearer ${secretKey}` },
434
430
  });
435
431
  if (!res.ok)
436
432
  throw new Error(`HTTP ${res.status}`);
437
- return "secret key valid";
433
+ // The webhook_endpoints:write scope can't be cheaply tested with
434
+ // a GET, so /balance is the proxy: it proves the key is live and
435
+ // the account is reachable. A scope-mismatched key still passes
436
+ // /balance — at provision time, POST /v1/webhook_endpoints will
437
+ // surface the scope error inline (and `hatchkit create` already
438
+ // soft-fails to a manual fallback when that happens).
439
+ return "master key valid";
438
440
  }, (detail) => {
439
441
  const code = httpCode(detail);
440
442
  if (code === 401) {
441
443
  return [
442
- "Stripe secret key is invalid or was rotated.",
443
- "Find the current pair at https://dashboard.stripe.com/apikeys",
444
+ `Stripe ${mode} master key is invalid or was rotated.`,
445
+ `Create a new restricted key (${mode} mode) at https://dashboard.stripe.com/apikeys`,
446
+ "Required scope: Webhook Endpoints — Write",
444
447
  "Then re-run: `hatchkit config add stripe`",
445
448
  ];
446
449
  }
447
450
  return undefined;
448
451
  });
449
452
  }
453
+ async function checkStripe() {
454
+ const { getStripeConfig } = await import("./config.js");
455
+ const cfg = await getStripeConfig();
456
+ if (!cfg)
457
+ return [{ name: "Stripe", status: "skip" }];
458
+ const out = [];
459
+ if (cfg.testSecretKey)
460
+ out.push(await checkStripeMode("test", cfg.testSecretKey));
461
+ if (cfg.liveSecretKey)
462
+ out.push(await checkStripeMode("live", cfg.liveSecretKey));
463
+ if (out.length === 0)
464
+ return [{ name: "Stripe", status: "skip" }];
465
+ return out;
466
+ }
450
467
  export async function collectDoctorResults() {
451
468
  const results = [];
452
469
  results.push(await checkGitHub());
@@ -460,7 +477,8 @@ export async function collectDoctorResults() {
460
477
  results.push(await checkGlitchtip());
461
478
  results.push(await checkOpenpanel());
462
479
  results.push(await checkResend());
463
- results.push(await checkStripe());
480
+ for (const r of await checkStripe())
481
+ results.push(r);
464
482
  // Project-local checks — only run when doctor was invoked inside a
465
483
  // hatchkit-managed project (manifest at cwd). Globally they're a
466
484
  // no-op, so `hatchkit doctor` from $HOME stays clean.
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"explain.d.ts","sourceRoot":"","sources":["../src/explain.ts"],"names":[],"mappings":"AA2JA,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAoD7D"}
1
+ {"version":3,"file":"explain.d.ts","sourceRoot":"","sources":["../src/explain.ts"],"names":[],"mappings":"AAiKA,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAoD7D"}
package/dist/explain.js CHANGED
@@ -74,6 +74,11 @@ const MODEL = {
74
74
  summary: "Provision GlitchTip / OpenPanel / Resend clients for an existing project (creates -dev + -prod pair each).",
75
75
  when: "After the scaffold is live and you're ready to wire up observability / email.",
76
76
  },
77
+ {
78
+ name: "hatchkit assets <seed|push|pull|migrate|list>",
79
+ summary: "Move bytes between the project's local MinIO bucket and its production S3 bucket. Streams cross-provider, so `migrate` works against any S3-compatible source for adoption.",
80
+ when: "After `hatchkit adopt`, to copy existing assets into the new prod bucket; or routinely to seed local dev data (`seed`) and push staged content to prod (`push`).",
81
+ },
77
82
  {
78
83
  name: "hatchkit keys show <project>",
79
84
  summary: "Print the project's DOTENV_PRIVATE_KEY_PRODUCTION from the keychain.",
@@ -1 +1 @@
1
- {"version":3,"file":"explain.js","sourceRoot":"","sources":["../src/explain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"explain.js","sourceRoot":"","sources":["../src/explain.ts"],"names":[],"mappings":"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"}