@substrat-run/cli 0.44.0 → 0.45.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.
@@ -1,17 +1,17 @@
1
1
  /**
2
- * `substrat store-kind upload | rollout | rollback | status --kind <kind>` (D-63, #2300). Staff
2
+ * `substrat store-driver upload | rollout | rollback | status --driver <driver>` (D-63, #2300). Staff
3
3
  * only, and a write must be made from a person's sign-in (`substrat login`): the control plane
4
4
  * refuses the service token.
5
5
  *
6
- * - `upload` packs the kind's package from `--dir` and stores it. The control plane names the
6
+ * - `upload` packs the driver's package from `--dir` and stores it. The control plane names the
7
7
  * release by its sha256 and says whether this repo pins it yet; bytes may go up first.
8
8
  * - `rollout --sha256` moves every vertical to a stored, pinned release, after a canary. A big
9
9
  * fleet takes more than one request: the command says so, and running it again continues.
10
- * - `rollback` returns the kind to the immediately previous good release.
10
+ * - `rollback` returns the driver to the immediately previous good release.
11
11
  *
12
- * What is packed is the kind's own package only: every `kind_<name>/…/*.py` under `--dir`, by
12
+ * What is packed is the driver's own package only: every `driver_<name>/…/*.py` under `--dir`, by
13
13
  * its path relative to it. `__pycache__` is skipped. Anything else is refused by name, vendored
14
- * packages included: a release is one `kind_` package (the platform's module rule), so a kind
14
+ * packages included: a release is one `driver_` package (the platform's module rule), so a driver
15
15
  * that needs a third-party package cannot be published yet.
16
16
  */
17
17
  import { spawnSync } from 'node:child_process';
@@ -19,14 +19,14 @@ import { lstatSync, readdirSync, readFileSync } from 'node:fs';
19
19
  import { join, relative, sep } from 'node:path';
20
20
  import { STORE_RELEASE_MAX_BYTES } from '@substrat-run/contracts';
21
21
  import { planeFor } from './plane.js';
22
- const KIND_MODULE = /^kind_[a-z0-9_]+\/(?:[A-Za-z_][A-Za-z0-9_]*\/)*[A-Za-z_][A-Za-z0-9_]*\.py$/;
22
+ const DRIVER_MODULE = /^driver_[a-z0-9_]+\/(?:[A-Za-z_][A-Za-z0-9_]*\/)*[A-Za-z_][A-Za-z0-9_]*\.py$/;
23
23
  function base64(bytes) {
24
24
  let text = '';
25
25
  for (let i = 0; i < bytes.length; i += 0x8000)
26
26
  text += String.fromCharCode(...bytes.subarray(i, i + 0x8000));
27
27
  return btoa(text);
28
28
  }
29
- /** How deep, and how many files, a kind's package may go: past either it is not one package. */
29
+ /** How deep, and how many files, a driver's package may go: past either it is not one package. */
30
30
  const MAX_DEPTH = 16;
31
31
  const MAX_FILES = 2000;
32
32
  /**
@@ -81,17 +81,17 @@ export function sourceCommitOf(dir, files) {
81
81
  }
82
82
  return head.stdout.trim();
83
83
  }
84
- /** The kind's package under `dir`, as the upload body. `entry` is the module with the class. */
85
- export function packStoreKindDir(dir, entry, sourceCommit) {
84
+ /** The driver's package under `dir`, as the upload body. `entry` is the module with the class. */
85
+ export function packStoreDriverDir(dir, entry, sourceCommit) {
86
86
  const files = packedFilesOf(dir);
87
- const refused = files.filter((path) => !KIND_MODULE.test(path));
87
+ const refused = files.filter((path) => !DRIVER_MODULE.test(path));
88
88
  if (refused.length > 0) {
89
- throw new Error(`only the kind's own package is published (kind_<name>/…/*.py); refused: ${refused.join(', ')}. ` +
90
- 'Vendored packages are not supported: a release is one kind_ package.');
89
+ throw new Error(`only the driver's own package is published (driver_<name>/…/*.py); refused: ${refused.join(', ')}. ` +
90
+ 'Vendored packages are not supported: a release is one driver_ package.');
91
91
  }
92
92
  const packages = new Set(files.map((path) => path.split('/')[0]));
93
93
  if (packages.size !== 1)
94
- throw new Error(`'${dir}' must hold exactly one kind_ package, not ${[...packages].join(', ') || 'none'}`);
94
+ throw new Error(`'${dir}' must hold exactly one driver_ package, not ${[...packages].join(', ') || 'none'}`);
95
95
  if (!files.includes(entry))
96
96
  throw new Error(`'${dir}' has no ${entry}`);
97
97
  let total = 0;
@@ -106,22 +106,58 @@ export function packStoreKindDir(dir, entry, sourceCommit) {
106
106
  }
107
107
  /** A release is named by its sha256 as `upload` printed it; anything else is refused before a request. */
108
108
  export const isReleaseSha = (value) => value !== undefined && /^[0-9a-f]{64}$/.test(value);
109
- export const uploadStoreKindRelease = (input) => planeFor(input.controlPlaneUrl, input.header).uploadStoreKindRelease(input.kind, input.body);
110
- export const rollOutStoreKind = (input) => planeFor(input.controlPlaneUrl, input.header).rollOutStoreKind(input.kind, input.sha256);
111
- export const rollBackStoreKind = (input) => planeFor(input.controlPlaneUrl, input.header).rollBackStoreKind(input.kind);
112
- export const storeKindStatus = (input) => planeFor(input.controlPlaneUrl, input.header).getStoreKind(input.kind);
109
+ export const uploadStoreDriverRelease = (input) => planeFor(input.controlPlaneUrl, input.header).uploadStoreDriverRelease(input.driver, input.body);
110
+ export const rollOutStoreDriver = (input) => planeFor(input.controlPlaneUrl, input.header).rollOutStoreDriver(input.driver, input.sha256);
111
+ export const rollBackStoreDriver = (input) => planeFor(input.controlPlaneUrl, input.header).rollBackStoreDriver(input.driver);
112
+ export const storeDriverStatus = (input) => planeFor(input.controlPlaneUrl, input.header).getStoreDriver(input.driver);
113
+ export const rebuildStoreDriver = (input) => planeFor(input.controlPlaneUrl, input.header).rebuildStoreDriver(input.driver, { deployFinished: input.deployFinished === true });
113
114
  /**
114
- * What `store-kind status` prints. "Rolls back to" is the server's `rollbackTarget`, never the
115
+ * Whether every script of the driver is built from what the control plane builds from now (#2309).
116
+ * An old key is revoked only once this reads `current`: until then a script on the list below may
117
+ * still accept it.
118
+ */
119
+ export function storeDriverRebuildLines(rebuild) {
120
+ const walk = rebuild.walk;
121
+ // Why it reads as it does: when these lists were first walked towards, and when the next automatic walk is.
122
+ const timing = walk && walk.fingerprint === rebuild.fingerprint
123
+ ? [` first walked towards ${walk.fingerprintSince}${rebuild.nextWalk ? `; next automatic re-walk ${rebuild.nextWalk}` : ''}`]
124
+ : [];
125
+ if (rebuild.current && rebuild.reverifying) {
126
+ return [` scripts: current (re-verifying: a walk since ${walk?.startedAt} re-checks every script; last proved ${walk?.verifiedAt})`, ...timing];
127
+ }
128
+ if (rebuild.current) {
129
+ const by = walk?.attestedBy ? `, deploy attested finished by ${walk.attestedBy}` : '';
130
+ return [` scripts: current (every script is built from ${rebuild.fingerprint.slice(0, 12)}, walk finished ${walk?.finishedAt}${by})`, ...timing];
131
+ }
132
+ if (rebuild.settling) {
133
+ return [
134
+ ` scripts: settling: every script was current when walked (${walk?.finishedAt ?? 'just now'}), but the control plane's deploy may still`,
135
+ ` have been rolling out then. It is walked again from ${rebuild.settling}; once the deploy serves only the new version,`,
136
+ ` \`substrat store-driver rebuild --driver <driver> --deploy-finished\` walks it at once and attests that.`,
137
+ ...timing,
138
+ ];
139
+ }
140
+ const shown = rebuild.pending.slice(0, 10);
141
+ return [
142
+ ` scripts: NOT current: ${rebuild.pending.length} may still be built from older keys or code (target ${rebuild.fingerprint.slice(0, 12)})`,
143
+ ...(shown.length ? [` pending: ${shown.join(', ')}${rebuild.pending.length > shown.length ? `, … ${rebuild.pending.length - shown.length} more` : ''}`] : []),
144
+ ...(walk?.failures ?? []).slice(0, 10).map((f) => ` failed: ${f.vertical}: ${f.detail}`),
145
+ ...timing,
146
+ ];
147
+ }
148
+ /**
149
+ * What `store-driver status` prints. "Rolls back to" is the server's `rollbackTarget`, never the
115
150
  * current release's previous good one: after a diverged or paused rollout it is the current
116
151
  * release, and a rollback still under way continues to its own target.
117
152
  */
118
- export function storeKindStatusLines(kind, view) {
153
+ export function storeDriverStatusLines(driver, view) {
119
154
  return [
120
- `${kind}: current ${view.current?.sha256 ?? 'none'}, rolls back to ${view.rollbackTarget ?? 'nothing'}`,
155
+ `${driver}: current ${view.current?.sha256 ?? 'none'}, rolls back to ${view.rollbackTarget ?? 'nothing'}`,
121
156
  ...(view.unfinishedRollback
122
- ? [` a rollback to ${view.unfinishedRollback} stopped part way: run \`substrat store-kind rollback\` again to finish it`]
157
+ ? [` a rollback to ${view.unfinishedRollback} stopped part way: run \`substrat store-driver rollback\` again to finish it`]
123
158
  : []),
124
159
  ...view.rollouts.slice(-10).map((r) => ` #${r.seq} ${r.action} ${r.sha256} ${r.state}${r.detail ? ` — ${r.detail}` : ''}`),
160
+ ...(view.rebuild ? storeDriverRebuildLines(view.rebuild) : []),
125
161
  ];
126
162
  }
127
- //# sourceMappingURL=store-kind.js.map
163
+ //# sourceMappingURL=store-driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-driver.js","sourceRoot":"","sources":["../src/store-driver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/cli",
3
- "version": "0.44.0",
3
+ "version": "0.45.0",
4
4
  "description": "The substrat CLI — authenticated deploy tooling: push a vertical to the platform, manage its versions and channels",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -31,9 +31,9 @@
31
31
  "@babel/parser": "^7.29.7",
32
32
  "esbuild": "^0.28.2",
33
33
  "@substrat-run/boundary-lint": "^0.8.0",
34
- "@substrat-run/contracts": "^0.148.0",
35
- "@substrat-run/control-plane-client": "^0.2.0",
36
- "@substrat-run/model-view": "^0.2.52"
34
+ "@substrat-run/contracts": "^0.149.0",
35
+ "@substrat-run/model-view": "^0.2.53",
36
+ "@substrat-run/control-plane-client": "^0.3.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/node": "^22.20.5",
@@ -1,46 +0,0 @@
1
- import { type StoreKindReleaseUpload } from '@substrat-run/contracts';
2
- import type { StoreKindView } from '@substrat-run/control-plane-client';
3
- /**
4
- * Every file under `dir`, by its path relative to it, `__pycache__` and `.pyc` left out. A symbolic
5
- * link is refused, not followed: it could pack a file from outside `dir`, or loop forever.
6
- */
7
- export declare function packedFilesOf(dir: string): string[];
8
- /**
9
- * The commit `dir` is checked out at, for the files about to be packed. Refused unless every one
10
- * of them is tracked and unchanged there: an untracked, ignored or edited file is not that
11
- * commit, so the bundle would carry bytes the commit a reviewer reads does not.
12
- */
13
- export declare function sourceCommitOf(dir: string, files: readonly string[]): string;
14
- /** The kind's package under `dir`, as the upload body. `entry` is the module with the class. */
15
- export declare function packStoreKindDir(dir: string, entry: string, sourceCommit: string): StoreKindReleaseUpload;
16
- /** A release is named by its sha256 as `upload` printed it; anything else is refused before a request. */
17
- export declare const isReleaseSha: (value: string | undefined) => value is string;
18
- type Plane = {
19
- controlPlaneUrl: string;
20
- header: Record<string, string>;
21
- };
22
- export declare const uploadStoreKindRelease: (input: Plane & {
23
- kind: string;
24
- body: StoreKindReleaseUpload;
25
- }) => Promise<{
26
- release: import("@substrat-run/control-plane-client").StoreKindReleaseView;
27
- pinned: boolean;
28
- }>;
29
- export declare const rollOutStoreKind: (input: Plane & {
30
- kind: string;
31
- sha256: string;
32
- }) => Promise<import("@substrat-run/control-plane-client").StoreKindRolloutResultView>;
33
- export declare const rollBackStoreKind: (input: Plane & {
34
- kind: string;
35
- }) => Promise<import("@substrat-run/control-plane-client").StoreKindRolloutResultView>;
36
- export declare const storeKindStatus: (input: Plane & {
37
- kind: string;
38
- }) => Promise<StoreKindView>;
39
- /**
40
- * What `store-kind status` prints. "Rolls back to" is the server's `rollbackTarget`, never the
41
- * current release's previous good one: after a diverged or paused rollout it is the current
42
- * release, and a rollback still under way continues to its own target.
43
- */
44
- export declare function storeKindStatusLines(kind: string, view: StoreKindView): string[];
45
- export {};
46
- //# sourceMappingURL=store-kind.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store-kind.d.ts","sourceRoot":"","sources":["../src/store-kind.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAexE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBnD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAgB5E;AAED,gGAAgG;AAChG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,sBAAsB,CAoBzG;AAED,0GAA0G;AAC1G,eAAO,MAAM,YAAY,UAAW,MAAM,GAAG,SAAS,KAAG,KAAK,IAAI,MAA6D,CAAC;AAEhI,KAAK,KAAK,GAAG;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAEzE,eAAO,MAAM,sBAAsB,UAAW,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,sBAAsB,CAAA;CAAE;;;EACN,CAAC;AAE/F,eAAO,MAAM,gBAAgB,UAAW,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,qFACU,CAAC;AAE3F,eAAO,MAAM,iBAAiB,UAAW,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,qFACY,CAAC;AAE9E,eAAO,MAAM,eAAe,UAAW,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,2BACS,CAAC;AAEzE;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM,EAAE,CAQhF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"store-kind.js","sourceRoot":"","sources":["../src/store-kind.ts"],"names":[],"mappings":"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"}