rightsize 0.3.0 → 0.5.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.
- package/README.md +33 -27
- package/dist/backend-docker/backend.d.ts +14 -0
- package/dist/backend-docker/backend.d.ts.map +1 -1
- package/dist/backend-docker/backend.js +28 -0
- package/dist/backend-docker/backend.js.map +1 -1
- package/dist/backend-docker/cli.d.ts +4 -0
- package/dist/backend-docker/cli.d.ts.map +1 -1
- package/dist/backend-docker/cli.js +8 -0
- package/dist/backend-docker/cli.js.map +1 -1
- package/dist/backend-msb/backend.d.ts +30 -0
- package/dist/backend-msb/backend.d.ts.map +1 -1
- package/dist/backend-msb/backend.js +64 -0
- package/dist/backend-msb/backend.js.map +1 -1
- package/dist/backend-msb/commands.d.ts +6 -0
- package/dist/backend-msb/commands.d.ts.map +1 -1
- package/dist/backend-msb/commands.js +12 -0
- package/dist/backend-msb/commands.js.map +1 -1
- package/dist/backend-msb/snapshot-import.d.ts +33 -0
- package/dist/backend-msb/snapshot-import.d.ts.map +1 -0
- package/dist/backend-msb/snapshot-import.js +48 -0
- package/dist/backend-msb/snapshot-import.js.map +1 -0
- package/dist/backend-msb/snapshot-list.d.ts +43 -0
- package/dist/backend-msb/snapshot-list.d.ts.map +1 -0
- package/dist/backend-msb/snapshot-list.js +53 -0
- package/dist/backend-msb/snapshot-list.js.map +1 -0
- package/dist/core/backend.d.ts +29 -0
- package/dist/core/backend.d.ts.map +1 -1
- package/dist/core/checkpoint/api.d.ts +49 -0
- package/dist/core/checkpoint/api.d.ts.map +1 -1
- package/dist/core/checkpoint/api.js +124 -1
- package/dist/core/checkpoint/api.js.map +1 -1
- package/dist/core/checkpoint/archive.d.ts +52 -0
- package/dist/core/checkpoint/archive.d.ts.map +1 -0
- package/dist/core/checkpoint/archive.js +134 -0
- package/dist/core/checkpoint/archive.js.map +1 -0
- package/dist/core/checkpoint/registry.d.ts +2 -0
- package/dist/core/checkpoint/registry.d.ts.map +1 -1
- package/dist/core/checkpoint/registry.js +2 -1
- package/dist/core/checkpoint/registry.js.map +1 -1
- package/dist/core/checkpoint/tar-cli.d.ts +45 -0
- package/dist/core/checkpoint/tar-cli.d.ts.map +1 -0
- package/dist/core/checkpoint/tar-cli.js +86 -0
- package/dist/core/checkpoint/tar-cli.js.map +1 -0
- package/dist/core/errors.d.ts +37 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +44 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/modules/cassandra.d.ts +49 -0
- package/dist/modules/cassandra.d.ts.map +1 -0
- package/dist/modules/cassandra.js +69 -0
- package/dist/modules/cassandra.js.map +1 -0
- package/dist/modules/index.d.ts +4 -1
- package/dist/modules/index.d.ts.map +1 -1
- package/dist/modules/index.js +4 -1
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/minio.d.ts +35 -0
- package/dist/modules/minio.d.ts.map +1 -0
- package/dist/modules/minio.js +64 -0
- package/dist/modules/minio.js.map +1 -0
- package/dist/modules/valkey.d.ts +21 -0
- package/dist/modules/valkey.d.ts.map +1 -0
- package/dist/modules/valkey.js +32 -0
- package/dist/modules/valkey.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
**Testcontainers-style integration testing on microVMs. No Docker required.**
|
|
6
6
|
|
|
7
7
|
rightsize runs your integration-test containers as hardware-isolated
|
|
8
|
-
[microsandbox](https://github.com/superradcompany/microsandbox) microVMs
|
|
9
|
-
one microVM per container
|
|
8
|
+
[microsandbox](https://github.com/superradcompany/microsandbox) microVMs -
|
|
9
|
+
one microVM per container - behind a strict-mode ESM TypeScript API whose
|
|
10
10
|
flagship lifecycle is TC39 explicit resource management. The runtime
|
|
11
11
|
self-provisions on first use (no install step), and a hand-rolled Docker
|
|
12
12
|
backend covers the platforms microVMs can't reach.
|
|
@@ -26,7 +26,7 @@ await main();
|
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
`await using` is the whole story: `redis` is disposed automatically at the
|
|
29
|
-
end of its scope
|
|
29
|
+
end of its scope - stopped, removed, its port freed - ordered and awaited,
|
|
30
30
|
the same way a `try`/`finally` would, with none of the boilerplate.
|
|
31
31
|
|
|
32
32
|
## Why microVMs
|
|
@@ -40,11 +40,11 @@ the same way a `try`/`finally` would, with none of the boilerplate.
|
|
|
40
40
|
| Docker client | a general-purpose SDK over a shared HTTP stack | **hand-rolled, unix-socket-only — can't be misrouted onto TCP** |
|
|
41
41
|
|
|
42
42
|
The lifecycle and Docker-client rows above aren't incidental implementation
|
|
43
|
-
choices
|
|
43
|
+
choices - see [Lifecycle](https://ngriaznov.github.io/rightsize-node/guide/lifecycle)
|
|
44
44
|
and [Backends](https://ngriaznov.github.io/rightsize-node/guide/backends)
|
|
45
45
|
for why each one is the way it is. (If you've used Testcontainers, the
|
|
46
|
-
builder shape
|
|
47
|
-
|
|
46
|
+
builder shape - `withEnv`, `withExposedPorts`, `waitingFor`, `getMappedPort`
|
|
47
|
+
- will feel familiar; the lifecycle is where this library departs from it
|
|
48
48
|
most.)
|
|
49
49
|
|
|
50
50
|
## Quickstart
|
|
@@ -53,7 +53,7 @@ most.)
|
|
|
53
53
|
npm install --save-dev rightsize
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
Importing a backend subpath registers it as a side effect
|
|
56
|
+
Importing a backend subpath registers it as a side effect - import whichever
|
|
57
57
|
one(s) you want considered, and `rightsize` picks the best supported one
|
|
58
58
|
automatically (or `RIGHTSIZE_BACKEND` forces a specific one):
|
|
59
59
|
|
|
@@ -62,7 +62,7 @@ import "rightsize/backend-msb";
|
|
|
62
62
|
import "rightsize/backend-docker";
|
|
63
63
|
```
|
|
64
64
|
|
|
65
|
-
Drive any image directly with `GenericContainer`, or use one of
|
|
65
|
+
Drive any image directly with `GenericContainer`, or use one of twenty-one
|
|
66
66
|
preconfigured modules:
|
|
67
67
|
|
|
68
68
|
```ts
|
|
@@ -88,6 +88,7 @@ a `GenericContainer` subclass, so the fluent builders (`withEnv`,
|
|
|
88
88
|
| Module | Helpers |
|
|
89
89
|
|---|---|
|
|
90
90
|
| `RedisContainer` | `uri` |
|
|
91
|
+
| `ValkeyContainer` | `uri` (`redis://` scheme — Valkey speaks the Redis wire protocol) |
|
|
91
92
|
| `MemcachedContainer` | `address` |
|
|
92
93
|
| `ArangoContainer` | `endpoint`; `withRootPassword(...)` to enable auth (default: no-auth) |
|
|
93
94
|
| `MongoDBContainer` | `connectionString`, `replicaSetUrl` (alias) — single-node replica set, auto-initiated |
|
|
@@ -105,17 +106,20 @@ a `GenericContainer` subclass, so the fluent builders (`withEnv`,
|
|
|
105
106
|
| `Neo4jContainer` | `httpUrl`, `boltUrl`, `username`, `password`; `withPassword(...)` — HTTP Cypher endpoint (username fixed at `neo4j`) |
|
|
106
107
|
| `FlociContainer` | `FlociContainer.aws()`/`.azure()`/`.gcp()` factories, `endpointUrl` — [floci.io](https://floci.io) cloud emulators (unsigned REST, no SDK needed) |
|
|
107
108
|
| `FlinkContainer` | `restUrl`; `withTaskManager()` for a full session cluster — **Docker only**¹ |
|
|
109
|
+
| `MinIOContainer` | `endpointUrl`, `rootUser`, `rootPassword`; `withRootUser`/`withRootPassword(...)` — S3-compatible object store |
|
|
110
|
+
| `CassandraContainer` | `contactPoint`, `cqlPort`, `localDatacenter` |
|
|
108
111
|
|
|
109
112
|
Some modules raise a memory floor for their image (`withMemoryLimit`):
|
|
110
|
-
heavyweight JVM images
|
|
111
|
-
(1024 MB)
|
|
112
|
-
than the microVM default. That's baked into the
|
|
113
|
+
heavyweight JVM images - Spring Cloud Config, Keycloak, Neo4j, Flink
|
|
114
|
+
(1024 MB), Cassandra (2560 MB) - and Pinot's multi-JVM QuickStart cluster
|
|
115
|
+
(4096 MB) - need more than the microVM default. That's baked into the
|
|
116
|
+
module; you don't set it.
|
|
113
117
|
Every module's page under [`docs/modules/`](https://ngriaznov.github.io/rightsize-node/modules/)
|
|
114
118
|
documents its exact image tag, wait strategy, and the measured reasoning
|
|
115
119
|
behind these choices.
|
|
116
120
|
|
|
117
121
|
¹ `withTaskManager()` throws `UnsupportedByBackendError` on microsandbox (the
|
|
118
|
-
Flink image carries no `nc`/busybox for network-link emulation
|
|
122
|
+
Flink image carries no `nc`/busybox for network-link emulation - see
|
|
119
123
|
[Networking](https://ngriaznov.github.io/rightsize-node/guide/networking));
|
|
120
124
|
a bare JobManager still runs on microsandbox. Run TaskManager topologies
|
|
121
125
|
under `RIGHTSIZE_BACKEND=docker`.
|
|
@@ -140,11 +144,11 @@ Platform is enabled by default. If WHP isn't enabled on your machine, run
|
|
|
140
144
|
`RIGHTSIZE_BACKEND=docker`.
|
|
141
145
|
|
|
142
146
|
Both backends satisfy one behavioral contract, verified by a shared test
|
|
143
|
-
suite
|
|
147
|
+
suite - the code you write runs unchanged on either. A few edges are
|
|
144
148
|
backend-specific rather than behavioral divergences:
|
|
145
149
|
|
|
146
150
|
- **Network-alias tunnels on microsandbox have real limits** versus Docker's
|
|
147
|
-
native bridge networking
|
|
151
|
+
native bridge networking - see
|
|
148
152
|
[Networking](https://ngriaznov.github.io/rightsize-node/guide/networking).
|
|
149
153
|
- **Read-only file mounts aren't enforced in-guest on microsandbox 0.6.6.**
|
|
150
154
|
`withCopyFileToContainer`'s read-only flag is honored by Docker; on
|
|
@@ -161,18 +165,18 @@ backend-specific rather than behavioral divergences:
|
|
|
161
165
|
- **Self-provisioning runtime.** A pinned `msb` release (binary + libkrunfw)
|
|
162
166
|
is downloaded once, SHA-256-verified against the release manifest, and
|
|
163
167
|
installed atomically under `~/.cache/rightsize/` (`%LOCALAPPDATA%\rightsize`
|
|
164
|
-
on Windows)
|
|
168
|
+
on Windows) - the binary lands last, so a crashed install is detected and
|
|
165
169
|
repaired, never half-trusted. A cross-process file lock keeps parallel
|
|
166
170
|
processes from racing.
|
|
167
171
|
- **Attached-mode supervision.** Each container is a held child process
|
|
168
172
|
supervising its microVM; the image's ENTRYPOINT runs exactly as it would
|
|
169
173
|
under Docker.
|
|
170
174
|
- **Pre-allocated ports.** Host ports are chosen before boot, so brokers
|
|
171
|
-
like Redpanda/Kafka get their advertised listeners baked in
|
|
175
|
+
like Redpanda/Kafka get their advertised listeners baked in - no restart
|
|
172
176
|
dance. A backend binds the ports it's given; it never allocates its own.
|
|
173
177
|
- **Two-tier cleanup, no async `Drop`.** The happy path is `await using` or
|
|
174
|
-
an explicit, awaited `stop()`. The fallback
|
|
175
|
-
either runs
|
|
178
|
+
an explicit, awaited `stop()`. The fallback - a process that exits before
|
|
179
|
+
either runs - falls back to a synchronous, blocking teardown registered
|
|
176
180
|
per container (Node's `"exit"` handler can't `await`), with a ledger-based
|
|
177
181
|
orphan reaper (sweep + optional watchdog) as the backstop for a hard
|
|
178
182
|
`SIGKILL` that bypasses even that. See
|
|
@@ -180,7 +184,7 @@ backend-specific rather than behavioral divergences:
|
|
|
180
184
|
- **Container reuse.** `.withReuse()` plus the double opt-in
|
|
181
185
|
`RIGHTSIZE_REUSE` adopts an already-running sandbox from a prior process
|
|
182
186
|
instead of booting a fresh one, keyed by a content hash of the
|
|
183
|
-
reuse-relevant spec
|
|
187
|
+
reuse-relevant spec - a local-dev-loop speedup, not a CI default. See
|
|
184
188
|
[Container reuse](https://ngriaznov.github.io/rightsize-node/guide/reuse).
|
|
185
189
|
- **Failure diagnostics.** `diagnostics()` renders every currently-running
|
|
186
190
|
container's image, mapped ports, and a bounded log tail into one
|
|
@@ -188,15 +192,17 @@ backend-specific rather than behavioral divergences:
|
|
|
188
192
|
See [Failure diagnostics](https://ngriaznov.github.io/rightsize-node/guide/diagnostics).
|
|
189
193
|
- **Isolation on demand.** `.withRequireIsolation()` fails a `start()`
|
|
190
194
|
fast, before any boot work, if the active backend can't provide
|
|
191
|
-
hardware-virtualized isolation
|
|
195
|
+
hardware-virtualized isolation - for workloads that shouldn't silently
|
|
192
196
|
degrade to a shared-kernel fallback. See
|
|
193
197
|
[Isolation](https://ngriaznov.github.io/rightsize-node/guide/isolation).
|
|
194
198
|
- **Checkpoint / restore.** `checkpoint()` captures a running container's
|
|
195
199
|
filesystem (image commit on docker, disk snapshot on microsandbox);
|
|
196
|
-
`fromCheckpoint()` boots fresh containers from it
|
|
197
|
-
boot-and-seed work across a suite. Pass a name
|
|
200
|
+
`fromCheckpoint()` boots fresh containers from it - skip repeated
|
|
201
|
+
boot-and-seed work across a suite. Pass a name - `checkpoint("name")` - to
|
|
198
202
|
make it durable and rediscoverable across runs via `Checkpoints.find`/
|
|
199
|
-
`list`/`remove`, registered under the rightsize cache dir.
|
|
203
|
+
`list`/`remove`, registered under the rightsize cache dir. `Checkpoints.exportTo`/
|
|
204
|
+
`importFrom` bundle a checkpoint into a portable archive for moving it
|
|
205
|
+
between machines and CI caches. See
|
|
200
206
|
[Checkpoint / restore](https://ngriaznov.github.io/rightsize-node/guide/checkpoints).
|
|
201
207
|
- **Runtime file copy.** `copyFileToContainer` / `copyContentToContainer` /
|
|
202
208
|
`copyFileFromContainer` move files and directories into or out of an
|
|
@@ -205,7 +211,7 @@ backend-specific rather than behavioral divergences:
|
|
|
205
211
|
[Copying files](https://ngriaznov.github.io/rightsize-node/guide/copy).
|
|
206
212
|
- **One interface, two backends.** `SandboxBackend` is a small interface;
|
|
207
213
|
the shared contract suite is the referee, with the Docker backend doubling
|
|
208
|
-
as the correctness oracle for the microVM backend
|
|
214
|
+
as the correctness oracle for the microVM backend - and the same
|
|
209
215
|
interface behavior is a **cross-language contract**, verified against the
|
|
210
216
|
Kotlin and Rust implementations too. See
|
|
211
217
|
[Cross-language parity](https://ngriaznov.github.io/rightsize-node/guide/parity).
|
|
@@ -239,7 +245,7 @@ downlevelled explicit-resource-management helpers, so the shipped
|
|
|
239
245
|
Three self-contained, runnable examples live under
|
|
240
246
|
[`examples/`](https://github.com/ngriaznov/rightsize-node/tree/main/examples).
|
|
241
247
|
Each builds the library once, then runs directly against the compiled
|
|
242
|
-
`dist/`
|
|
248
|
+
`dist/` - no separate example-specific setup beyond `npm install`.
|
|
243
249
|
|
|
244
250
|
| Example | What it shows | Run |
|
|
245
251
|
|---|---|---|
|
|
@@ -248,7 +254,7 @@ Each builds the library once, then runs directly against the compiled
|
|
|
248
254
|
| [`redis.test.ts`](https://github.com/ngriaznov/rightsize-node/blob/main/examples/redis.test.ts) | A `node:test` suite using a module container, gated behind `RIGHTSIZE_IT=1` the same way this repo's own integration tests are | `npm run example:test` |
|
|
249
255
|
|
|
250
256
|
Run all three back to back with `npm run examples:run`. Every example picks
|
|
251
|
-
a backend automatically; force one explicitly the same way you
|
|
257
|
+
a backend automatically; force one explicitly the same way you'd for
|
|
252
258
|
any `rightsize` program:
|
|
253
259
|
|
|
254
260
|
```bash
|
|
@@ -258,7 +264,7 @@ RIGHTSIZE_BACKEND=microsandbox npm run example:redis
|
|
|
258
264
|
|
|
259
265
|
`redis.test.ts` skips its container-backed assertions unless `RIGHTSIZE_IT=1`
|
|
260
266
|
is set, so `npm run example:test` is safe to run on a machine with no
|
|
261
|
-
container runtime
|
|
267
|
+
container runtime - pass the flag to actually exercise it:
|
|
262
268
|
`RIGHTSIZE_IT=1 npm run example:test`.
|
|
263
269
|
|
|
264
270
|
## Documentation
|
|
@@ -57,6 +57,20 @@ export declare class DockerBackend implements SandboxBackend {
|
|
|
57
57
|
* silent `false` — see the SPI's own "no best-effort false" contract.
|
|
58
58
|
*/
|
|
59
59
|
hasCheckpoint(ref: string): Promise<boolean>;
|
|
60
|
+
/**
|
|
61
|
+
* `docker save -o <destFile> <ref>` — `Checkpoints.exportTo`'s backend
|
|
62
|
+
* call, shelling out for the same reason `copyToContainer` does (the
|
|
63
|
+
* daemon's raw image-export endpoint isn't worth hand-rolling against for
|
|
64
|
+
* one operation). A nonzero exit surfaces the tool's own stderr.
|
|
65
|
+
*/
|
|
66
|
+
exportCheckpoint(ref: string, destFile: string): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* `docker load -i <srcFile>` — the effective ref is always `ref` itself:
|
|
69
|
+
* `docker save`/`load` preserve the original tag round-trip (loading over
|
|
70
|
+
* an existing tag re-points it), unlike msb's digest-derived import
|
|
71
|
+
* naming. A nonzero exit surfaces the tool's own stderr.
|
|
72
|
+
*/
|
|
73
|
+
importCheckpoint(srcFile: string, ref: string): Promise<string>;
|
|
60
74
|
/**
|
|
61
75
|
* Best-effort stop+remove of a container identified by NAME — the shape
|
|
62
76
|
* the reaping ledger and sweep need, since they only ever store names,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/backend-docker/backend.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC3I,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/backend-docker/backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,9 @@ const STOP_TIMEOUT_SECS = 10;
|
|
|
11
11
|
// `docker cp` of a directory scales with its contents, not a fixed small
|
|
12
12
|
// payload like the other unary daemon calls this backend makes.
|
|
13
13
|
const COPY_TIMEOUT_MS = 120_000;
|
|
14
|
+
// `docker save`/`load` move a full image layer set, not a single file —
|
|
15
|
+
// more generous than a plain `docker cp`.
|
|
16
|
+
const ARCHIVE_TIMEOUT_MS = 300_000;
|
|
14
17
|
function encodeQueryValue(s) {
|
|
15
18
|
return encodeURIComponent(s);
|
|
16
19
|
}
|
|
@@ -239,6 +242,31 @@ export class DockerBackend {
|
|
|
239
242
|
}
|
|
240
243
|
throw new BackendError(`docker could not inspect image '${ref}' (HTTP ${resp.status}): ${resp.body.toString()}`);
|
|
241
244
|
}
|
|
245
|
+
/**
|
|
246
|
+
* `docker save -o <destFile> <ref>` — `Checkpoints.exportTo`'s backend
|
|
247
|
+
* call, shelling out for the same reason `copyToContainer` does (the
|
|
248
|
+
* daemon's raw image-export endpoint isn't worth hand-rolling against for
|
|
249
|
+
* one operation). A nonzero exit surfaces the tool's own stderr.
|
|
250
|
+
*/
|
|
251
|
+
async exportCheckpoint(ref, destFile) {
|
|
252
|
+
const result = await runDockerCli(DockerCli.save(destFile, ref), ARCHIVE_TIMEOUT_MS);
|
|
253
|
+
if (result.exitCode !== 0) {
|
|
254
|
+
throw new BackendError(`docker save -o ${destFile} ${ref} failed (exit ${result.exitCode}): ${result.stderr.trim()}`);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* `docker load -i <srcFile>` — the effective ref is always `ref` itself:
|
|
259
|
+
* `docker save`/`load` preserve the original tag round-trip (loading over
|
|
260
|
+
* an existing tag re-points it), unlike msb's digest-derived import
|
|
261
|
+
* naming. A nonzero exit surfaces the tool's own stderr.
|
|
262
|
+
*/
|
|
263
|
+
async importCheckpoint(srcFile, ref) {
|
|
264
|
+
const result = await runDockerCli(DockerCli.load(srcFile), ARCHIVE_TIMEOUT_MS);
|
|
265
|
+
if (result.exitCode !== 0) {
|
|
266
|
+
throw new BackendError(`docker load -i ${srcFile} failed (exit ${result.exitCode}): ${result.stderr.trim()}`);
|
|
267
|
+
}
|
|
268
|
+
return ref;
|
|
269
|
+
}
|
|
242
270
|
/**
|
|
243
271
|
* Best-effort stop+remove of a container identified by NAME — the shape
|
|
244
272
|
* the reaping ledger and sweep need, since they only ever store names,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/backend-docker/backend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/backend-docker/backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,10 @@ export declare const DockerCli: {
|
|
|
10
10
|
copyIn(hostPath: string, id: string, containerPath: string): string[];
|
|
11
11
|
/** `docker cp <id>:<containerPath> <hostPath>` — the reverse direction. */
|
|
12
12
|
copyOut(id: string, containerPath: string, hostPath: string): string[];
|
|
13
|
+
/** `docker save -o <destFile> <tag>` — `exportCheckpoint`'s backend call; the tag is preserved inside the archive, unlike msb's digest-derived import naming. */
|
|
14
|
+
save(destFile: string, tag: string): string[];
|
|
15
|
+
/** `docker load -i <srcFile>` — `importCheckpoint`'s backend call; loading re-points the tag if it already exists. */
|
|
16
|
+
load(srcFile: string): string[];
|
|
13
17
|
};
|
|
14
18
|
/**
|
|
15
19
|
* Runs one `docker <args>` invocation to completion over a child process —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/backend-docker/cli.ts"],"names":[],"mappings":"AAGA,qKAAqK;AACrK,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wJAAwJ;AACxJ,eAAO,MAAM,SAAS;IACpB,4EAA4E;qBAC3D,MAAM,MAAM,MAAM,iBAAiB,MAAM,GAAG,MAAM,EAAE;IAGrE,2EAA2E;gBAC/D,MAAM,iBAAiB,MAAM,YAAY,MAAM,GAAG,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/backend-docker/cli.ts"],"names":[],"mappings":"AAGA,qKAAqK;AACrK,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wJAAwJ;AACxJ,eAAO,MAAM,SAAS;IACpB,4EAA4E;qBAC3D,MAAM,MAAM,MAAM,iBAAiB,MAAM,GAAG,MAAM,EAAE;IAGrE,2EAA2E;gBAC/D,MAAM,iBAAiB,MAAM,YAAY,MAAM,GAAG,MAAM,EAAE;IAGtE,iKAAiK;mBAClJ,MAAM,OAAO,MAAM,GAAG,MAAM,EAAE;IAG7C,sHAAsH;kBACxG,MAAM,GAAG,MAAM,EAAE;CAGhC,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA0CjG"}
|
|
@@ -10,6 +10,14 @@ export const DockerCli = {
|
|
|
10
10
|
copyOut(id, containerPath, hostPath) {
|
|
11
11
|
return ["cp", `${id}:${containerPath}`, hostPath];
|
|
12
12
|
},
|
|
13
|
+
/** `docker save -o <destFile> <tag>` — `exportCheckpoint`'s backend call; the tag is preserved inside the archive, unlike msb's digest-derived import naming. */
|
|
14
|
+
save(destFile, tag) {
|
|
15
|
+
return ["save", "-o", destFile, tag];
|
|
16
|
+
},
|
|
17
|
+
/** `docker load -i <srcFile>` — `importCheckpoint`'s backend call; loading re-points the tag if it already exists. */
|
|
18
|
+
load(srcFile) {
|
|
19
|
+
return ["load", "-i", srcFile];
|
|
20
|
+
},
|
|
13
21
|
};
|
|
14
22
|
/**
|
|
15
23
|
* Runs one `docker <args>` invocation to completion over a child process —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/backend-docker/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AASjD,wJAAwJ;AACxJ,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,4EAA4E;IAC5E,MAAM,CAAC,QAAgB,EAAE,EAAU,EAAE,aAAqB;QACxD,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,2EAA2E;IAC3E,OAAO,CAAC,EAAU,EAAE,aAAqB,EAAE,QAAgB;QACzD,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,aAAa,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;CACF,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,IAAuB,EAAE,SAAiB;IACrE,OAAO,IAAI,OAAO,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,SAAS,CAAC,IAAI,YAAY,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,SAAS,yBAAyB,CAAC,CAAC,CAAC;QAC9G,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC1B,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,SAAS,CAAC,IAAI,YAAY,CAAC,2BAA2B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/backend-docker/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -128,6 +128,36 @@ export declare class MsbCliBackend implements SandboxBackend {
|
|
|
128
128
|
* own contract forbids.
|
|
129
129
|
*/
|
|
130
130
|
hasCheckpoint(ref: string): Promise<boolean>;
|
|
131
|
+
/**
|
|
132
|
+
* `msb snapshot export <ref> <destFile>` — writes the `.tar.zst` artifact
|
|
133
|
+
* `Checkpoints.exportTo` bundles into its own archive container. Never
|
|
134
|
+
* `--with-image` (see the checkpoints guide's own note on why: its import
|
|
135
|
+
* fails an integrity check in 0.6.6, so archives never bundle the OCI
|
|
136
|
+
* image — the destination machine pulls it on the restored container's
|
|
137
|
+
* first boot).
|
|
138
|
+
*/
|
|
139
|
+
exportCheckpoint(ref: string, destFile: string): Promise<void>;
|
|
140
|
+
/**
|
|
141
|
+
* `msb snapshot import <archive>`, then resolves the EFFECTIVE ref: msb
|
|
142
|
+
* writes the import under a digest-derived directory name it never lets
|
|
143
|
+
* the caller choose (never the archive's own recorded `ref`), parsed from
|
|
144
|
+
* the printed artifact path's basename (see `parseImportedDigestDirName`).
|
|
145
|
+
* An already-exists failure — msb's own content-addressed dedup — is
|
|
146
|
+
* treated as success, since the artifact is already present under that
|
|
147
|
+
* digest either way; any OTHER import failure surfaces msb's own stderr.
|
|
148
|
+
* The digest-dir basename is then CONFIRMED present via `msb snapshot
|
|
149
|
+
* list --format json` (matching it against each entry's
|
|
150
|
+
* `name`/`artifact_path`) and returned as-is — never the entry's `digest`
|
|
151
|
+
* field. Live-verified against msb 0.6.6: the full `sha256:<64hex>`
|
|
152
|
+
* digest does not resolve as a snapshot ref at all (`msb snapshot inspect
|
|
153
|
+
* sha256:<full>` fails "snapshot not found"); only the digest-dir name
|
|
154
|
+
* resolves for `inspect`/`rm`/`run --snapshot`, so it — not the full
|
|
155
|
+
* digest — is the ref this must hand back for `hasCheckpoint` and every
|
|
156
|
+
* other snapshot-ref call to keep working. `_ref` (the archive's own
|
|
157
|
+
* recorded ref) is unused here — msb's importer never takes one, unlike
|
|
158
|
+
* docker's, where the effective ref really is the ref passed in.
|
|
159
|
+
*/
|
|
160
|
+
importCheckpoint(srcFile: string, _ref: string): Promise<string>;
|
|
131
161
|
private runningSandboxNames;
|
|
132
162
|
exec(handle: SandboxHandle, cmd: ReadonlyArray<string>): Promise<ExecResult>;
|
|
133
163
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/backend-msb/backend.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3I,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/backend-msb/backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,8 @@ import { isPortBindConflictOutput } from "./port-conflict.js";
|
|
|
8
8
|
import { isImageCacheCorruption } from "./image-cache.js";
|
|
9
9
|
import { isMsbStateDbError } from "./state-db.js";
|
|
10
10
|
import { isSnapshotNotFoundError } from "./snapshot-not-found.js";
|
|
11
|
+
import { isSnapshotAlreadyExistsError, parseImportedDigestDirName } from "./snapshot-import.js";
|
|
12
|
+
import { parseSnapshotList, confirmDigestDirNamePresent } from "./snapshot-list.js";
|
|
11
13
|
import { undeliveredLines } from "./follow-replay.js";
|
|
12
14
|
import { requireNoDuplicateGuestPorts, requireAliasesAreValid, hostsAliasScript } from "./network-links.js";
|
|
13
15
|
import { ExecTunnel } from "./exec-tunnel.js";
|
|
@@ -501,6 +503,68 @@ export class MsbCliBackend {
|
|
|
501
503
|
}
|
|
502
504
|
throw new BackendError(`msb snapshot inspect ${ref} failed (exit ${result.exitCode}): ${result.stderr.trim()}`);
|
|
503
505
|
}
|
|
506
|
+
/**
|
|
507
|
+
* `msb snapshot export <ref> <destFile>` — writes the `.tar.zst` artifact
|
|
508
|
+
* `Checkpoints.exportTo` bundles into its own archive container. Never
|
|
509
|
+
* `--with-image` (see the checkpoints guide's own note on why: its import
|
|
510
|
+
* fails an integrity check in 0.6.6, so archives never bundle the OCI
|
|
511
|
+
* image — the destination machine pulls it on the restored container's
|
|
512
|
+
* first boot).
|
|
513
|
+
*/
|
|
514
|
+
async exportCheckpoint(ref, destFile) {
|
|
515
|
+
const msbPath = await this.msbPath();
|
|
516
|
+
const result = await invoke(msbPath, MsbCommands.snapshotExport(ref, destFile), CHECKPOINT_TIMEOUT_MS);
|
|
517
|
+
if (result.exitCode !== 0) {
|
|
518
|
+
throw new BackendError(`msb snapshot export ${ref} ${destFile} failed (exit ${result.exitCode}): ${result.stderr.trim()}`);
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
/**
|
|
522
|
+
* `msb snapshot import <archive>`, then resolves the EFFECTIVE ref: msb
|
|
523
|
+
* writes the import under a digest-derived directory name it never lets
|
|
524
|
+
* the caller choose (never the archive's own recorded `ref`), parsed from
|
|
525
|
+
* the printed artifact path's basename (see `parseImportedDigestDirName`).
|
|
526
|
+
* An already-exists failure — msb's own content-addressed dedup — is
|
|
527
|
+
* treated as success, since the artifact is already present under that
|
|
528
|
+
* digest either way; any OTHER import failure surfaces msb's own stderr.
|
|
529
|
+
* The digest-dir basename is then CONFIRMED present via `msb snapshot
|
|
530
|
+
* list --format json` (matching it against each entry's
|
|
531
|
+
* `name`/`artifact_path`) and returned as-is — never the entry's `digest`
|
|
532
|
+
* field. Live-verified against msb 0.6.6: the full `sha256:<64hex>`
|
|
533
|
+
* digest does not resolve as a snapshot ref at all (`msb snapshot inspect
|
|
534
|
+
* sha256:<full>` fails "snapshot not found"); only the digest-dir name
|
|
535
|
+
* resolves for `inspect`/`rm`/`run --snapshot`, so it — not the full
|
|
536
|
+
* digest — is the ref this must hand back for `hasCheckpoint` and every
|
|
537
|
+
* other snapshot-ref call to keep working. `_ref` (the archive's own
|
|
538
|
+
* recorded ref) is unused here — msb's importer never takes one, unlike
|
|
539
|
+
* docker's, where the effective ref really is the ref passed in.
|
|
540
|
+
*/
|
|
541
|
+
async importCheckpoint(srcFile, _ref) {
|
|
542
|
+
const msbPath = await this.msbPath();
|
|
543
|
+
const imported = await invoke(msbPath, MsbCommands.snapshotImport(srcFile), CHECKPOINT_TIMEOUT_MS);
|
|
544
|
+
let digestDirName;
|
|
545
|
+
if (imported.exitCode === 0) {
|
|
546
|
+
digestDirName = parseImportedDigestDirName(imported.stdout);
|
|
547
|
+
}
|
|
548
|
+
else if (isSnapshotAlreadyExistsError(imported.stderr)) {
|
|
549
|
+
digestDirName = parseImportedDigestDirName(imported.stderr);
|
|
550
|
+
}
|
|
551
|
+
else {
|
|
552
|
+
throw new BackendError(`msb snapshot import ${srcFile} failed (exit ${imported.exitCode}): ${imported.stderr.trim()}`);
|
|
553
|
+
}
|
|
554
|
+
if (digestDirName === undefined) {
|
|
555
|
+
throw new BackendError(`msb snapshot import ${srcFile} did not print a recognizable artifact path — output:\n` +
|
|
556
|
+
`${imported.stdout}${imported.stderr}`);
|
|
557
|
+
}
|
|
558
|
+
const list = await invoke(msbPath, MsbCommands.snapshotList(), CHECKPOINT_TIMEOUT_MS);
|
|
559
|
+
if (list.exitCode !== 0) {
|
|
560
|
+
throw new BackendError(`msb snapshot list failed (exit ${list.exitCode}): ${list.stderr.trim()}`);
|
|
561
|
+
}
|
|
562
|
+
const confirmedRef = confirmDigestDirNamePresent(parseSnapshotList(list.stdout), digestDirName);
|
|
563
|
+
if (confirmedRef === undefined) {
|
|
564
|
+
throw new BackendError(`imported snapshot '${digestDirName}' from ${srcFile} did not appear in 'msb snapshot list' — could not confirm the import`);
|
|
565
|
+
}
|
|
566
|
+
return confirmedRef;
|
|
567
|
+
}
|
|
504
568
|
async runningSandboxNames(msbPath) {
|
|
505
569
|
const result = await invoke(msbPath, MsbCommands.ls(), LOGS_TIMEOUT_MS);
|
|
506
570
|
return runningNames(result.stdout);
|