@substrat-run/cli 0.49.7 → 0.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +31 -0
  2. package/dist/changeset.d.ts.map +1 -1
  3. package/dist/changeset.js +19 -6
  4. package/dist/changeset.js.map +1 -1
  5. package/dist/cli.js +96 -28
  6. package/dist/cli.js.map +1 -1
  7. package/dist/data-loss-check.d.ts.map +1 -1
  8. package/dist/data-loss-check.js +11 -1
  9. package/dist/data-loss-check.js.map +1 -1
  10. package/dist/dev-preload.d.ts +2 -0
  11. package/dist/dev-preload.d.ts.map +1 -0
  12. package/dist/dev-preload.js +32 -0
  13. package/dist/dev-preload.js.map +1 -0
  14. package/dist/dev-traces.d.ts +16 -0
  15. package/dist/dev-traces.d.ts.map +1 -0
  16. package/dist/dev-traces.js +191 -0
  17. package/dist/dev-traces.js.map +1 -0
  18. package/dist/dev.d.ts +6 -0
  19. package/dist/dev.d.ts.map +1 -0
  20. package/dist/dev.js +67 -0
  21. package/dist/dev.js.map +1 -0
  22. package/dist/doctor.d.ts +34 -0
  23. package/dist/doctor.d.ts.map +1 -0
  24. package/dist/doctor.js +89 -0
  25. package/dist/doctor.js.map +1 -0
  26. package/dist/login.d.ts +12 -0
  27. package/dist/login.d.ts.map +1 -1
  28. package/dist/login.js +22 -3
  29. package/dist/login.js.map +1 -1
  30. package/dist/outbound-scan.d.ts +1 -1
  31. package/dist/outbound-scan.d.ts.map +1 -1
  32. package/dist/outbound-scan.js +6 -4
  33. package/dist/outbound-scan.js.map +1 -1
  34. package/dist/preview.d.ts +2 -2
  35. package/dist/preview.js +1 -1
  36. package/dist/promote.d.ts +2 -1
  37. package/dist/promote.d.ts.map +1 -1
  38. package/dist/promote.js +4 -3
  39. package/dist/promote.js.map +1 -1
  40. package/dist/prompt.d.ts +21 -0
  41. package/dist/prompt.d.ts.map +1 -0
  42. package/dist/prompt.js +39 -0
  43. package/dist/prompt.js.map +1 -0
  44. package/dist/published-concept.d.ts +3 -0
  45. package/dist/published-concept.d.ts.map +1 -0
  46. package/dist/published-concept.js +28 -0
  47. package/dist/published-concept.js.map +1 -0
  48. package/dist/push.d.ts +38 -1
  49. package/dist/push.d.ts.map +1 -1
  50. package/dist/push.js +270 -111
  51. package/dist/push.js.map +1 -1
  52. package/dist/store-driver.d.ts.map +1 -1
  53. package/dist/store-driver.js +5 -3
  54. package/dist/store-driver.js.map +1 -1
  55. package/dist/worker-node-imports.d.ts.map +1 -1
  56. package/dist/worker-node-imports.js +2 -1
  57. package/dist/worker-node-imports.js.map +1 -1
  58. package/package.json +6 -6
package/README.md CHANGED
@@ -23,6 +23,7 @@ pnpm add -D @substrat-run/cli
23
23
 
24
24
  ```sh
25
25
  substrat login # authenticate against the control plane
26
+ substrat dev [dir] # run the project's dev script with local request traces
26
27
  substrat whoami # show the current identity + reachable tenants
27
28
  substrat push <dir> # upload a vertical as a new immutable version
28
29
  substrat versions <slug> # list a vertical's uploaded versions
@@ -34,6 +35,36 @@ substrat help # full usage
34
35
 
35
36
  Run `substrat help` for the authoritative flag set — this list is a map, not the spec.
36
37
 
38
+ To make an application description queryable in the dashboard's Ask assistant, opt in
39
+ with `"substrat": { "concept": "spec/concept.md" }` in the application's `package.json`.
40
+ The next push snapshots that file with the release. The whole selected document becomes
41
+ readable to dashboard members who can read the application; use a curated Markdown file
42
+ when the full concept includes internal design decisions. Publication is off by default.
43
+ The file must stay within the application directory and fit in 64 KiB of UTF-8 text.
44
+
45
+ `substrat dev` runs the project's `pnpm run dev` with its normal output and exit code.
46
+ When the local server mounts `invocationLog` (as the scaffold does), completed requests
47
+ print a compact trace line and are kept under `.data/substrat-traces/` in the project.
48
+ The newest 256 requests, up to 8 MiB total, are retained. SQL parameter values and
49
+ request and response bodies are not recorded. `--no-trace` runs the same script without
50
+ the trace preload.
51
+
52
+ The trace records SQL statement text, duration and row counts. When source maps are
53
+ available, error stacks point at the original source. **Not recorded, and why:** bound
54
+ SQL parameters can contain personal data or credentials, so the local file store omits
55
+ them. Revisit that decision if a concrete debugging case needs values and a safe,
56
+ explicit opt-in can be designed. Event steps name the type and entity but do not claim
57
+ `from → to` lifecycle moves: the trace omits event payloads, and a checked transition
58
+ can still roll back. Revisit this when the local reader can derive committed moves from
59
+ event history and the declared lifecycle without guessing.
60
+
61
+ Local HTTP measurement (macOS arm64, Node 22.22.3; four runs of 100 warmup and
62
+ 400 sequential requests through the same `invocationLog` fixture with a check and
63
+ SQL step): median latency was 0.20–0.36 ms with `--no-trace` and 1.66–1.97 ms with
64
+ tracing, about 1.5 ms extra. The p95 ranges were 0.32–2.75 ms and 2.21–7.94 ms;
65
+ the median meets the few-millisecond target, while p95 varied under machine load
66
+ and is not separately proven to stay within it.
67
+
37
68
  ## Documentation
38
69
 
39
70
  **https://substrat.net/guide/deploying** — authentication, the push/promote model, channels,
@@ -1 +1 @@
1
- {"version":3,"file":"changeset.d.ts","sourceRoot":"","sources":["../src/changeset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changeset.d.ts","sourceRoot":"","sources":["../src/changeset.ts"],"names":[],"mappings":"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"}
package/dist/changeset.js CHANGED
@@ -58,11 +58,23 @@ export function atCommit(commit, path, cwd) {
58
58
  return shown.stdout;
59
59
  }
60
60
  /**
61
- * The repo-relative path git wants, with forward slashes. Both sides are REAL paths: git reports
62
- * its top level through symlinks resolved (macOS's /var is /private/var), and a path relative to
63
- * the unresolved one climbs out of the repository.
61
+ * A path in the form git reports its top level in: every link resolved (macOS's /var is
62
+ * /private/var) and, on Windows, every 8.3 short name expanded. The JS `realpathSync` keeps a
63
+ * short name as given — `os.tmpdir()` on Windows is often `C:\Users\RUNNER~1\…` — while git
64
+ * answers with the long one, so a path relative to it would climb out of the repository. The
65
+ * native call is realpath(3) on POSIX; a Windows volume that cannot answer it (some RAM disks
66
+ * and network shares) falls back to the JS one.
64
67
  */
65
- const repoPath = (root, abs) => relative(realpathSync(root), realpathSync(abs)).split(sep).join('/');
68
+ function realPath(path) {
69
+ try {
70
+ return realpathSync.native(path);
71
+ }
72
+ catch {
73
+ return realpathSync(path);
74
+ }
75
+ }
76
+ /** The repo-relative path git wants, with forward slashes. Both sides are {@link realPath}s. */
77
+ const repoPath = (root, abs) => relative(realPath(root), realPath(abs)).split(sep).join('/');
66
78
  /** One vertical's artifacts at the base commit and in the working tree. */
67
79
  export function readArtifacts(pkgDir, commit, root) {
68
80
  const read = (file) => (existsSync(join(pkgDir, file)) ? readFileSync(join(pkgDir, file), 'utf8') : null);
@@ -83,8 +95,9 @@ export function packageNameOf(pkgDir) {
83
95
  }
84
96
  /** The `.changeset` directory serving `pkgDir`: the nearest one at or above it, up to the repo root. */
85
97
  export function changesetDirFor(pkgDir, root) {
86
- const top = realpathSync(root);
87
- for (let dir = realpathSync(pkgDir);; dir = dirname(dir)) {
98
+ // Both real, or a short-name `pkgDir` never meets the long-name `top` and the walk passes the root.
99
+ const top = realPath(root);
100
+ for (let dir = realPath(pkgDir);; dir = dirname(dir)) {
88
101
  if (existsSync(join(dir, '.changeset', 'config.json')))
89
102
  return join(dir, '.changeset');
90
103
  if (dir === top || dirname(dir) === dir)
@@ -1 +1 @@
1
- {"version":3,"file":"changeset.js","sourceRoot":"","sources":["../src/changeset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changeset.js","sourceRoot":"","sources":["../src/changeset.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * substrat — authenticated deploy tooling for the platform.
4
4
  *
5
- * substrat login [--cp <url>] [--token <serviceToken>]
5
+ * substrat login [--cp <url>] [--token <serviceToken>] [--workspace <slug>]
6
6
  * substrat push [dir] [--slug <slug>] [--version <v>] [--name <name>]
7
7
  * [--cp <url>] [--token <serviceToken>]
8
8
  * substrat push [dir] --check [--json] the local gate: layer rules + the declared
@@ -18,11 +18,17 @@
18
18
  * so `push` just works; any command also accepts --cp/--token or SUBSTRAT_CP_URL /
19
19
  * SUBSTRAT_SERVICE_TOKEN. A push is not a deploy — the version lands PENDING; admission
20
20
  * (in the console) still gates serving.
21
+ *
22
+ * `login --workspace <slug>` stores the default workspace the non-push commands fall back to,
23
+ * with no prompt. Without a TTY `login` asks nothing at all (see cmdLogin): the URL is --cp,
24
+ * the stored one or the public plane, and several workspaces with no --workspace leave the
25
+ * session saved with no new default and a hint printed.
21
26
  */
22
27
  import { bindConnectionScope, listConnectionBindings } from './connections.js';
23
28
  import { join, resolve as resolvePath } from 'node:path';
24
29
  import { rmSync } from 'node:fs';
25
- import { createInterface } from 'node:readline';
30
+ import { ask } from './prompt.js';
31
+ import { doctor } from './doctor.js';
26
32
  import { loadConfig, saveConfig, resolveAuth } from './config.js';
27
33
  import { browserLogin } from './login.js';
28
34
  import { push, readVerticalMeta, nextVersion, previewVersion, pinTenant, assertLayerRules, assertSchedulesAreSwept, checkPermissionSurface, checkWorkerImports, prepareWorkerBundle, resolveWranglerConfig, assertUiIsServed, readAssetsNeed, deployConfigIfAny, formatDeclaredModel, formatPermissionSurface, readDeclaredModel, } from './push.js';
@@ -43,6 +49,7 @@ import { writeModelView } from './model.js';
43
49
  import { CannotRun, changesetCommand } from './changeset.js';
44
50
  import { syncConceptFile } from './concept.js';
45
51
  import { planCommand } from './plan.js';
52
+ import { dev } from './dev.js';
46
53
  import { listVerticalHostnames, bindSurfaceHostname, bindScopeHostname, unbindHostname, verifyHostname, formatHostnames, formatDnsRecords, } from './hostnames.js';
47
54
  const argv = process.argv.slice(2);
48
55
  /** `--name value` → value, else undefined. */
@@ -72,26 +79,26 @@ function positional(n, booleanFlags = []) {
72
79
  }
73
80
  return found[n];
74
81
  }
75
- /** Prompt on the TTY for a plain (non-secret) value. */
76
- function ask(question) {
77
- const rl = createInterface({ input: process.stdin, output: process.stdout, terminal: true });
78
- return new Promise((resolve) => {
79
- rl.question(question, (answer) => {
80
- rl.close();
81
- resolve(answer.trim());
82
- });
83
- });
84
- }
85
82
  const USAGE = `substrat — authenticated deploy tooling
86
83
 
87
84
  Usage:
88
85
  substrat login [--cp <url>] [--fresh] sign in via the browser (per-human);
89
- --fresh re-prompts past any live browser
90
- or IdP session (switch accounts)
86
+ [--workspace <slug>] --fresh re-prompts past any live browser
87
+ or IdP session (switch accounts);
88
+ --workspace sets the default workspace
89
+ (slug or id) instead of asking. With no
90
+ terminal (agent, pipe, CI) nothing is
91
+ asked: the URL is --cp, else the stored
92
+ one, else console.substrat.net
91
93
  substrat login --token <serviceToken> store a service credential (CI)
94
+ substrat doctor [dir] [--fix] is this machine and project ready to push:
95
+ Node, the project's wrangler, and on Windows
96
+ long paths. --fix turns long paths on (Windows
97
+ asks you to allow it, once)
92
98
  substrat whoami show who you are + your workspaces
93
99
  substrat workspaces list your workspaces (alias of whoami)
94
100
  substrat version print the CLI version (also --version, -v)
101
+ substrat dev [dir] [--no-trace] run the project's dev script with local request traces
95
102
  substrat push [dir] [--promote prod] push a vertical (slug/name/version default
96
103
  from package.json; version auto-bumps);
97
104
  --promote prod points the serving channel at
@@ -298,7 +305,7 @@ that changes the permission or migration surface is refused until the change is
298
305
  acknowledged (--ack-permissions / --ack-migrations) — the refusal prints the permission
299
306
  diff and each new migration's SQL; read them first. It also prints a --review token: the
300
307
  acknowledgement answers that review, and is refused if prod moved since it was read (a
301
- migration acknowledgement is refused without one). For a non-prod environment, run the version against a copy of the data with 'substrat preview
308
+ permission or migration acknowledgement is refused without one). For a non-prod environment, run the version against a copy of the data with 'substrat preview
302
309
  create' — dev/staging channels were retired (#509).
303
310
 
304
311
  Auth resolves: explicit --token/SUBSTRAT_SERVICE_TOKEN → stored browser session →
@@ -311,11 +318,25 @@ authenticated response; an out-of-date CLI prints a one-line upgrade nudge to st
311
318
  async function cmdLogin() {
312
319
  const existing = loadConfig();
313
320
  const cpDefault = existing.controlPlaneUrl ?? 'https://console.substrat.net/api';
314
- const cp = ((flag('cp') ?? (await ask(`control-plane URL [${cpDefault}]: `))) || cpDefault).replace(/\/$/, '');
315
- // CI path: a service credential, no browser.
321
+ // No TTY (an agent, piped stdin, CI, some Windows terminals): nobody can answer a prompt,
322
+ // so the URL is --cp, else the stored one, else the public plane — said out loud.
323
+ const interactive = Boolean(process.stdin.isTTY);
324
+ let cpInput = flag('cp');
325
+ if (cpInput === undefined && interactive) {
326
+ cpInput = await ask(`control-plane URL [${cpDefault}]: `);
327
+ if (cpInput === undefined)
328
+ throw new Error('no control-plane URL given (input ended) — pass --cp <url>');
329
+ }
330
+ else if (cpInput === undefined) {
331
+ console.log(`control-plane URL: ${cpDefault} (no terminal to ask on — pass --cp <url> for another)`);
332
+ }
333
+ const cp = (cpInput || cpDefault).replace(/\/$/, '');
334
+ const wanted = flag('workspace');
335
+ // CI path: a service credential, no browser. There is no account to check --workspace
336
+ // against, so it is stored as given — the control plane resolves it per request, as --tenant.
316
337
  const serviceToken = flag('token');
317
338
  if (serviceToken) {
318
- const path = saveConfig({ ...existing, controlPlaneUrl: cp, serviceToken });
339
+ const path = saveConfig({ ...existing, controlPlaneUrl: cp, serviceToken, ...(wanted ? { defaultTenant: wanted } : {}) });
319
340
  console.log(`✓ saved service credential → ${path}`);
320
341
  return;
321
342
  }
@@ -325,28 +346,59 @@ async function cmdLogin() {
325
346
  const bearerToken = await browserLogin(cp, { fresh: argv.includes('--fresh') });
326
347
  // Resolve the builder's workspace so `promote`/`scope` just work (builder-plane.md §5).
327
348
  // `push` never uses this default — its workspace is the project's (package.json pin).
328
- // One tenant → store it; several → pick; none → they still need to sign up in the app.
349
+ // One tenant → store it; several → --workspace, else pick on a TTY; none → they still
350
+ // need to sign up in the app. Whatever happens here, the session below is saved: a
351
+ // completed browser login is never thrown away over the choice of a default.
329
352
  const { user, tenants } = await fetchWhoami(cp, { authorization: `Bearer ${bearerToken}` }).catch(() => ({ user: null, tenants: [] }));
330
- let defaultTenant = existing.defaultTenant;
331
- if (tenants.length === 1) {
353
+ const byKey = (key) => tenants.find((t) => t.slug === key || t.id === key);
354
+ // When no choice is made, the previous default survives only if THIS account can act for
355
+ // it — a re-login keeps an earlier pick, a different account does not inherit a stranger's.
356
+ const kept = existing.defaultTenant === undefined ? undefined : byKey(existing.defaultTenant)?.slug;
357
+ const howToSet = ' set one with `substrat login --workspace <slug>`, or pass --tenant <slug> (or SUBSTRAT_TENANT) per command.';
358
+ let defaultTenant = kept;
359
+ let refused;
360
+ if (wanted !== undefined) {
361
+ // Slug or id, as the prompt takes — not the prompt's list number, which shifts as
362
+ // memberships change and would make a scripted login pick a different workspace.
363
+ const hit = byKey(wanted);
364
+ if (hit) {
365
+ defaultTenant = hit.slug;
366
+ console.log(` default workspace: ${defaultTenant}`);
367
+ }
368
+ else {
369
+ defaultTenant = kept;
370
+ const valid = user ? tenants.map((t) => t.slug).join(', ') || '(none yet)' : '(could not list them)';
371
+ refused = `'${wanted}' is not one of your workspaces (yours: ${valid}) — signed in, ${kept ? `default workspace stays '${kept}'` : 'no default workspace set'}`;
372
+ }
373
+ }
374
+ else if (tenants.length === 1) {
332
375
  defaultTenant = tenants[0].slug;
333
376
  console.log(` workspace: ${defaultTenant}`);
334
377
  }
335
378
  else if (tenants.length > 1) {
336
379
  console.log(' you belong to several workspaces:');
337
380
  tenants.forEach((t, i) => console.log(` ${i + 1}. ${t.name} [${t.slug}]`));
338
- const pick = await ask(` default workspace [1-${tenants.length}, or a slug]: `);
339
- defaultTenant =
340
- tenants[Number(pick) - 1]?.slug ??
341
- tenants.find((t) => t.slug === pick || t.id === pick)?.slug ??
342
- tenants[0].slug;
343
- console.log(` default workspace: ${defaultTenant} (promote/scope use it; push pins one per project)`);
381
+ // Without a TTY the question would go unanswered (see `ask`) — do not ask it.
382
+ const pick = interactive ? await ask(` default workspace [1-${tenants.length}, or a slug]: `) : undefined;
383
+ if (pick === undefined) {
384
+ defaultTenant = kept;
385
+ console.log(kept ? ` default workspace stays: ${kept} (none chosen)` : ' no default workspace set (none chosen).');
386
+ console.log(howToSet);
387
+ }
388
+ else {
389
+ defaultTenant = tenants[Number(pick) - 1]?.slug ?? byKey(pick)?.slug ?? tenants[0].slug;
390
+ console.log(` default workspace: ${defaultTenant} (promote/scope use it; push pins one per project)`);
391
+ }
344
392
  }
345
393
  else if (user) {
346
394
  console.log(' no workspace yet — create one at your dashboard, then `substrat push`.');
347
395
  }
348
396
  const path = saveConfig({ ...existing, controlPlaneUrl: cp, bearerToken, defaultTenant });
349
397
  console.log(`✓ signed in${user?.email ? ` as ${user.email}` : ''}. session saved to ${path}`);
398
+ if (refused) {
399
+ console.log(howToSet);
400
+ throw new Error(refused); // main() prints it and exits non-zero — a script must not read this as success
401
+ }
350
402
  }
351
403
  /**
352
404
  * The interactive workspace picker for a push with no pinned tenant. Lists the builder's
@@ -374,6 +426,8 @@ async function pickWorkspace(auth, dir) {
374
426
  const suggested = loadConfig().defaultTenant;
375
427
  const def = tenants.findIndex((t) => t.slug === suggested) + 1; // 0 = no login default among them
376
428
  const pick = await ask(`push as [1-${tenants.length}${def ? `, enter = ${def}` : ''}]: `);
429
+ if (pick === undefined)
430
+ throw new Error(`no workspace selected — ${hint}`);
377
431
  const chosen = (pick === '' && def ? tenants[def - 1] : undefined) ??
378
432
  tenants[Number(pick) - 1] ??
379
433
  tenants.find((t) => t.slug === pick || t.id === pick);
@@ -382,7 +436,8 @@ async function pickWorkspace(auth, dir) {
382
436
  tenant = chosen.slug;
383
437
  }
384
438
  const pin = await ask(`pin '${tenant}' in package.json so this project always pushes there? [Y/n]: `);
385
- if (pin === '' || /^y/i.test(pin)) {
439
+ // Input ended (undefined): no answer is not a yes — the push goes on, package.json untouched.
440
+ if (pin !== undefined && (pin === '' || /^y/i.test(pin))) {
386
441
  try {
387
442
  pinTenant(dir, tenant);
388
443
  console.log(`✓ pinned — package.json now carries "substrat": { "tenant": "${tenant}" }`);
@@ -1294,6 +1349,14 @@ async function cmdPlan() {
1294
1349
  throw err;
1295
1350
  }
1296
1351
  }
1352
+ /** `substrat doctor [dir] [--fix]`: is this machine and project ready to push? See doctor.ts. */
1353
+ function cmdDoctor() {
1354
+ const dir = positional(0, ['fix']) ?? '.';
1355
+ const { lines, problems } = doctor(dir, { fix: argv.includes('--fix') });
1356
+ console.log(['substrat doctor', ...lines].join('\n'));
1357
+ if (problems > 0)
1358
+ process.exit(1);
1359
+ }
1297
1360
  async function cmdWhoami() {
1298
1361
  const { controlPlaneUrl, header } = resolveAuth({ cp: flag('cp'), token: flag('token'), tenant: flag('tenant') });
1299
1362
  const { user, tenants } = await fetchWhoami(controlPlaneUrl, header);
@@ -1313,8 +1376,13 @@ async function main() {
1313
1376
  warnIfDistStale();
1314
1377
  const command = argv[0];
1315
1378
  switch (command) {
1379
+ case 'dev':
1380
+ process.exitCode = await dev({ dir: positional(0, ['no-trace']), trace: !argv.includes('--no-trace') });
1381
+ return;
1316
1382
  case 'login':
1317
1383
  return cmdLogin();
1384
+ case 'doctor':
1385
+ return cmdDoctor();
1318
1386
  case 'versions':
1319
1387
  return cmdVersions();
1320
1388
  case 'installs':