isol8 0.10.3 → 0.11.1
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 +26 -1
- package/dist/cli.js +902 -333
- package/dist/index.js +450 -79
- package/dist/src/client/remote.d.ts +2 -2
- package/dist/src/client/remote.d.ts.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/engine/code-fetcher.d.ts +21 -0
- package/dist/src/engine/code-fetcher.d.ts.map +1 -0
- package/dist/src/engine/docker.d.ts +22 -5
- package/dist/src/engine/docker.d.ts.map +1 -1
- package/dist/src/engine/image-builder.d.ts +26 -2
- package/dist/src/engine/image-builder.d.ts.map +1 -1
- package/dist/src/engine/pool.d.ts.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/server/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +92 -3
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +3 -1
- package/schema/isol8.config.schema.json +90 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* {@link Isol8Engine} interface, so it can be used interchangeably with
|
|
6
6
|
* {@link DockerIsol8} for local-vs-remote execution.
|
|
7
7
|
*/
|
|
8
|
-
import type { ExecutionRequest, ExecutionResult, Isol8Engine, Isol8Options, StreamEvent } from "../types";
|
|
8
|
+
import type { ExecutionRequest, ExecutionResult, Isol8Engine, Isol8Options, StartOptions, StreamEvent } from "../types";
|
|
9
9
|
/** Connection options for the remote isol8 client. */
|
|
10
10
|
export interface RemoteIsol8Options {
|
|
11
11
|
/** Base URL of the isol8 server (e.g. `"http://localhost:3000"`). */
|
|
@@ -41,7 +41,7 @@ export declare class RemoteIsol8 implements Isol8Engine {
|
|
|
41
41
|
*/
|
|
42
42
|
constructor(options: RemoteIsol8Options, isol8Options?: Isol8Options);
|
|
43
43
|
/** Verify the remote server is reachable by hitting the `/health` endpoint. */
|
|
44
|
-
start(): Promise<void>;
|
|
44
|
+
start(_options?: StartOptions): Promise<void>;
|
|
45
45
|
/** Destroy the remote session (if persistent). No-op for ephemeral mode. */
|
|
46
46
|
stop(): Promise<void>;
|
|
47
47
|
/** Execute code on the remote server and return the result. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../src/client/remote.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,UAAU,CAAC;AAElB,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,0GAA0G;IAC1G,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,WAAY,YAAW,WAAW;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAe;IAE7C;;;OAGG;gBACS,OAAO,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,YAAY;IAOpE,+EAA+E;IACzE,KAAK,
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../src/client/remote.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,UAAU,CAAC;AAElB,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,0GAA0G;IAC1G,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,WAAY,YAAW,WAAW;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAe;IAE7C;;;OAGG;gBACS,OAAO,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,YAAY;IAOpE,+EAA+E;IACzE,KAAK,CAAC,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnD,4EAA4E;IACtE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,+DAA+D;IACzD,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkB9D;;;OAGG;IACI,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC;IA0DvE;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBpE,wEAAwE;IAClE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB5C,0EAA0E;YAC5D,KAAK;CAUpB"}
|
package/dist/src/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;GAGG;AACH,QAAA,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;GAGG;AACH,QAAA,MAAM,cAAc,EAAE,WAyDrB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,CAepD;AAgDD,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { RemoteCodePolicy } from "../types";
|
|
2
|
+
export interface FetchCodeRequest {
|
|
3
|
+
codeUrl: string;
|
|
4
|
+
codeHash?: string;
|
|
5
|
+
allowInsecureCodeUrl?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface FetchCodeResult {
|
|
8
|
+
code: string;
|
|
9
|
+
url: string;
|
|
10
|
+
hash: string;
|
|
11
|
+
}
|
|
12
|
+
interface CodeFetcherDeps {
|
|
13
|
+
fetchFn?: (input: string, init?: RequestInit) => Promise<Response>;
|
|
14
|
+
lookupFn?: (hostname: string) => Promise<Array<{
|
|
15
|
+
address: string;
|
|
16
|
+
family: number;
|
|
17
|
+
}>>;
|
|
18
|
+
}
|
|
19
|
+
export declare function fetchRemoteCode(request: FetchCodeRequest, policy: RemoteCodePolicy, deps?: CodeFetcherDeps): Promise<FetchCodeResult>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=code-fetcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-fetcher.d.ts","sourceRoot":"","sources":["../../../src/engine/code-fetcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CACtF;AA2GD,wBAAsB,eAAe,CACnC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,gBAAgB,EACxB,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,eAAe,CAAC,CAkH1B"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* output sanitization.
|
|
7
7
|
*/
|
|
8
8
|
import Docker from "dockerode";
|
|
9
|
-
import type { ExecutionRequest, ExecutionResult, Isol8Engine, Isol8Options, StreamEvent } from "../types";
|
|
9
|
+
import type { ExecutionRequest, ExecutionResult, Isol8Engine, Isol8Options, StartOptions, StreamEvent } from "../types";
|
|
10
10
|
/** Options for constructing a {@link DockerIsol8} instance. Extends {@link Isol8Options} with Docker-specific settings. */
|
|
11
11
|
export interface DockerIsol8Options extends Isol8Options {
|
|
12
12
|
/** Custom dockerode instance. Defaults to connecting to the local Docker socket. */
|
|
@@ -48,21 +48,26 @@ export declare class DockerIsol8 implements Isol8Engine {
|
|
|
48
48
|
private readonly logNetwork;
|
|
49
49
|
private readonly poolStrategy;
|
|
50
50
|
private readonly poolSize;
|
|
51
|
+
private readonly dependencies;
|
|
51
52
|
private readonly auditLogger?;
|
|
53
|
+
private readonly remoteCodePolicy;
|
|
52
54
|
private container;
|
|
53
55
|
private persistentRuntime;
|
|
54
56
|
private pool;
|
|
55
57
|
private readonly imageCache;
|
|
58
|
+
private resolveExecutionRequest;
|
|
56
59
|
/**
|
|
57
60
|
* @param options - Sandbox configuration options.
|
|
58
61
|
* @param maxConcurrent - Maximum number of concurrent executions (controls the internal semaphore).
|
|
59
62
|
*/
|
|
60
63
|
constructor(options?: DockerIsol8Options, maxConcurrent?: number);
|
|
61
64
|
/**
|
|
62
|
-
* Initialize isol8.
|
|
63
|
-
*
|
|
65
|
+
* Initialize isol8.
|
|
66
|
+
*
|
|
67
|
+
* In ephemeral mode this can optionally pre-warm the container pool.
|
|
68
|
+
* In persistent mode the container is created lazily on first execute.
|
|
64
69
|
*/
|
|
65
|
-
start(): Promise<void>;
|
|
70
|
+
start(options?: StartOptions): Promise<void>;
|
|
66
71
|
/** Stop and remove the container (if one exists). Safe to call multiple times. */
|
|
67
72
|
stop(): Promise<void>;
|
|
68
73
|
/**
|
|
@@ -107,6 +112,7 @@ export declare class DockerIsol8 implements Isol8Engine {
|
|
|
107
112
|
*/
|
|
108
113
|
executeStream(req: ExecutionRequest): AsyncIterable<StreamEvent>;
|
|
109
114
|
private resolveImage;
|
|
115
|
+
private ensurePool;
|
|
110
116
|
private executeEphemeral;
|
|
111
117
|
private executePersistent;
|
|
112
118
|
private retrieveFiles;
|
|
@@ -124,7 +130,7 @@ export declare class DockerIsol8 implements Isol8Engine {
|
|
|
124
130
|
* Remove all isol8 containers (both running and stopped).
|
|
125
131
|
*
|
|
126
132
|
* This static utility method finds and removes all containers created by isol8,
|
|
127
|
-
* identified by images starting with `isol8
|
|
133
|
+
* identified by images starting with `isol8:`.
|
|
128
134
|
*
|
|
129
135
|
* @param docker - Optional Docker instance. If not provided, creates a new one.
|
|
130
136
|
* @returns Promise resolving to an object with counts of removed and failed containers.
|
|
@@ -146,5 +152,16 @@ export declare class DockerIsol8 implements Isol8Engine {
|
|
|
146
152
|
failed: number;
|
|
147
153
|
errors: string[];
|
|
148
154
|
}>;
|
|
155
|
+
/**
|
|
156
|
+
* Remove all isol8 Docker images.
|
|
157
|
+
*
|
|
158
|
+
* Images are identified by repo tags starting with `isol8:`
|
|
159
|
+
* (for example `isol8:python` or `isol8:python-custom-<hash>`).
|
|
160
|
+
*/
|
|
161
|
+
static cleanupImages(docker?: Docker): Promise<{
|
|
162
|
+
removed: number;
|
|
163
|
+
failed: number;
|
|
164
|
+
errors: string[];
|
|
165
|
+
}>;
|
|
149
166
|
}
|
|
150
167
|
//# sourceMappingURL=docker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../../src/engine/docker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,MAAM,MAAM,WAAW,CAAC;AAG/B,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../../src/engine/docker.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,20 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type Docker from "dockerode";
|
|
9
9
|
import type { Isol8Config } from "../types";
|
|
10
|
+
/**
|
|
11
|
+
* Normalize package lists for stable tags/cache hits.
|
|
12
|
+
* - trims whitespace
|
|
13
|
+
* - removes empty entries
|
|
14
|
+
* - de-duplicates
|
|
15
|
+
* - sorts lexicographically
|
|
16
|
+
*/
|
|
17
|
+
export declare function normalizePackages(packages: string[]): string[];
|
|
18
|
+
/**
|
|
19
|
+
* Returns deterministic custom image tag for a runtime + package set.
|
|
20
|
+
* Uses a short deps hash suffix to avoid tag collisions across different
|
|
21
|
+
* dependency sets for the same runtime.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getCustomImageTag(runtime: string, packages: string[]): string;
|
|
10
24
|
/** Progress update emitted during image builds. */
|
|
11
25
|
interface BuildProgress {
|
|
12
26
|
/** Runtime being built (e.g. `"python"`). */
|
|
@@ -21,19 +35,29 @@ type ProgressCallback = (progress: BuildProgress) => void;
|
|
|
21
35
|
* Builds the base `isol8:<runtime>` images for all registered runtimes.
|
|
22
36
|
* Each image is built from the multi-stage Dockerfile in `docker/`.
|
|
23
37
|
*
|
|
38
|
+
* Uses smart build logic: computes a hash of the docker directory contents
|
|
39
|
+
* and skips builds if the image already exists with matching hash.
|
|
40
|
+
* Cleans up dangling images after rebuilding.
|
|
41
|
+
*
|
|
24
42
|
* @param docker - Dockerode instance.
|
|
25
43
|
* @param onProgress - Optional callback for build progress updates.
|
|
44
|
+
* @param force - If true, always rebuild even if image is up to date.
|
|
26
45
|
*/
|
|
27
|
-
export declare function buildBaseImages(docker: Docker, onProgress?: ProgressCallback): Promise<void>;
|
|
46
|
+
export declare function buildBaseImages(docker: Docker, onProgress?: ProgressCallback, force?: boolean): Promise<void>;
|
|
28
47
|
/**
|
|
29
48
|
* Builds custom images with user-specified dependencies layered on top of
|
|
30
49
|
* the base images. Reads package lists from the config's `dependencies` field.
|
|
31
50
|
*
|
|
51
|
+
* Uses smart build logic: computes a hash of the dependency list and
|
|
52
|
+
* skips builds if the image already exists with matching hash.
|
|
53
|
+
* Cleans up dangling images after rebuilding.
|
|
54
|
+
*
|
|
32
55
|
* @param docker - Dockerode instance.
|
|
33
56
|
* @param config - Resolved isol8 configuration.
|
|
34
57
|
* @param onProgress - Optional callback for build progress updates.
|
|
58
|
+
* @param force - If true, always rebuild even if image is up to date.
|
|
35
59
|
*/
|
|
36
|
-
export declare function buildCustomImages(docker: Docker, config: Isol8Config, onProgress?: ProgressCallback): Promise<void>;
|
|
60
|
+
export declare function buildCustomImages(docker: Docker, config: Isol8Config, onProgress?: ProgressCallback, force?: boolean): Promise<void>;
|
|
37
61
|
/**
|
|
38
62
|
* Checks if an image exists locally.
|
|
39
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-builder.d.ts","sourceRoot":"","sources":["../../../src/engine/image-builder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"image-builder.d.ts","sourceRoot":"","sources":["../../../src/engine/image-builder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAmE5C;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAK7E;AAkCD,mDAAmD;AACnD,UAAU,aAAa;IACrB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;IACtC,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,gBAAgB,GAAG,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;AAE1D;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,gBAAgB,EAC7B,KAAK,UAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,CAoEf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,UAAU,CAAC,EAAE,gBAAgB,EAC7B,KAAK,UAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,CAwBf;AAqGD;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrF;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAa/F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../../src/engine/pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAGpC,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,YAAY,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,yDAAyD;IACzD,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAC5D,+DAA+D;IAC/D,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC1C,wEAAwE;IACxE,YAAY,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC;CAClD;AAYD;;;;;;;GAOG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+C;IAC7E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAClE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA4B;IAClE,OAAO,CAAC,gBAAgB,CAA+C;gBAE3D,OAAO,EAAE,WAAW;IA0BhC;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;IAkDvD;;;;OAIG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCxE;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAoB/B;;OAEG;YACW,mBAAmB;YAenB,gBAAgB;IA4B9B;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCxC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAyBd,eAAe;IAW7B,OAAO,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../../src/engine/pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAGpC,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,YAAY,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,yDAAyD;IACzD,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAC5D,+DAA+D;IAC/D,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC1C,wEAAwE;IACxE,YAAY,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC;CAClD;AAYD;;;;;;;GAOG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+C;IAC7E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAClE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA4B;IAClE,OAAO,CAAC,gBAAgB,CAA+C;gBAE3D,OAAO,EAAE,WAAW;IA0BhC;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;IAkDvD;;;;OAIG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCxE;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAoB/B;;OAEG;YACW,mBAAmB;YAenB,gBAAgB;IA4B9B;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCxC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAyBd,eAAe;IAW7B,OAAO,CAAC,SAAS;CAsDlB"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -12,6 +12,6 @@ export { DockerIsol8 } from "./engine/docker";
|
|
|
12
12
|
export { BunAdapter, bashAdapter, DenoAdapter, NodeAdapter, PythonAdapter, RuntimeRegistry, } from "./runtime";
|
|
13
13
|
export type { RuntimeAdapter } from "./runtime/adapter";
|
|
14
14
|
export { createServer } from "./server/index";
|
|
15
|
-
export type { ExecutionRequest, ExecutionResult, Isol8Config, Isol8Engine, Isol8Mode, Isol8Options, NetworkFilterConfig, NetworkMode, Runtime, StreamEvent, } from "./types";
|
|
15
|
+
export type { ExecutionRequest, ExecutionResult, Isol8Config, Isol8Engine, Isol8Mode, Isol8Options, NetworkFilterConfig, NetworkMode, RemoteCodePolicy, Runtime, StreamEvent, } from "./types";
|
|
16
16
|
export { VERSION } from "./version";
|
|
17
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,WAAW,EACX,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,OAAO,EACP,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,WAAW,EACX,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAS5B,+CAA+C;AAC/C,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAaD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAS5B,+CAA+C;AAC/C,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAaD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa;;;;GAmRxD"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -27,8 +27,23 @@ export type NetworkMode = "none" | "host" | "filtered";
|
|
|
27
27
|
* A request to execute code inside isol8.
|
|
28
28
|
*/
|
|
29
29
|
export interface ExecutionRequest {
|
|
30
|
-
/**
|
|
31
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Source code to execute.
|
|
32
|
+
* Mutually exclusive with {@link codeUrl}.
|
|
33
|
+
*/
|
|
34
|
+
code?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Remote URL to fetch source code from before execution.
|
|
37
|
+
* Mutually exclusive with {@link code}.
|
|
38
|
+
*/
|
|
39
|
+
codeUrl?: string;
|
|
40
|
+
/** Expected SHA-256 hash (hex) of the fetched source code. */
|
|
41
|
+
codeHash?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Allow `http://` code URLs for this request.
|
|
44
|
+
* By default, only `https://` is allowed.
|
|
45
|
+
*/
|
|
46
|
+
allowInsecureCodeUrl?: boolean;
|
|
32
47
|
/** Target runtime. Must match a registered {@link RuntimeAdapter}. */
|
|
33
48
|
runtime: Runtime;
|
|
34
49
|
/**
|
|
@@ -248,6 +263,8 @@ export interface Isol8Options {
|
|
|
248
263
|
security?: SecurityConfig;
|
|
249
264
|
/** Audit logging configuration. */
|
|
250
265
|
audit?: AuditConfig;
|
|
266
|
+
/** Remote code fetching policy. */
|
|
267
|
+
remoteCode?: RemoteCodePolicy;
|
|
251
268
|
/**
|
|
252
269
|
* Pool strategy for container reuse.
|
|
253
270
|
* - "secure": Clean container before returning (slower but ensures clean state)
|
|
@@ -265,6 +282,27 @@ export interface Isol8Options {
|
|
|
265
282
|
clean: number;
|
|
266
283
|
dirty: number;
|
|
267
284
|
};
|
|
285
|
+
/**
|
|
286
|
+
* Runtime-specific dependencies used to resolve hashed custom image tags.
|
|
287
|
+
* When provided, isol8 will prefer `isol8:<runtime>-custom-<hash>` images
|
|
288
|
+
* derived from these dependency sets.
|
|
289
|
+
*/
|
|
290
|
+
dependencies?: Isol8Dependencies;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Startup options for {@link Isol8Engine.start}.
|
|
294
|
+
*/
|
|
295
|
+
export interface StartOptions {
|
|
296
|
+
/**
|
|
297
|
+
* Pre-warm ephemeral container pools on startup.
|
|
298
|
+
*
|
|
299
|
+
* - `false` or omitted: no pre-warm (lazy behavior)
|
|
300
|
+
* - `true`: pre-warm all built-in runtimes
|
|
301
|
+
* - `{ runtimes: [...] }`: pre-warm only selected runtimes
|
|
302
|
+
*/
|
|
303
|
+
prewarm?: boolean | {
|
|
304
|
+
runtimes?: Runtime[];
|
|
305
|
+
};
|
|
268
306
|
}
|
|
269
307
|
/**
|
|
270
308
|
* The core isol8 engine abstraction. Both {@link DockerIsol8} and {@link RemoteIsol8}
|
|
@@ -272,7 +310,7 @@ export interface Isol8Options {
|
|
|
272
310
|
*/
|
|
273
311
|
export interface Isol8Engine {
|
|
274
312
|
/** Initialize the engine. Must be called before `execute()`. */
|
|
275
|
-
start(): Promise<void>;
|
|
313
|
+
start(options?: StartOptions): Promise<void>;
|
|
276
314
|
/** Tear down the engine, stopping and removing any containers. */
|
|
277
315
|
stop(): Promise<void>;
|
|
278
316
|
/** Execute code and return the result. */
|
|
@@ -316,6 +354,27 @@ export interface NetworkFilterConfig {
|
|
|
316
354
|
/** Regex patterns for blocked hostnames. Matching hosts are always denied, even if whitelisted. */
|
|
317
355
|
blacklist: string[];
|
|
318
356
|
}
|
|
357
|
+
/** Policy for fetching remote source code. */
|
|
358
|
+
export interface RemoteCodePolicy {
|
|
359
|
+
/** Enable URL-based source fetching. @default false */
|
|
360
|
+
enabled: boolean;
|
|
361
|
+
/** Allowed URL schemes. @default ["https"] */
|
|
362
|
+
allowedSchemes: string[];
|
|
363
|
+
/** Allowed hostname regex patterns. Empty means allow all (subject to blocklist). */
|
|
364
|
+
allowedHosts: string[];
|
|
365
|
+
/** Blocked hostname regex patterns. */
|
|
366
|
+
blockedHosts: string[];
|
|
367
|
+
/** Max fetched source size in bytes. @default 10485760 (10MB) */
|
|
368
|
+
maxCodeSize: number;
|
|
369
|
+
/** Fetch timeout in milliseconds. @default 30000 */
|
|
370
|
+
fetchTimeoutMs: number;
|
|
371
|
+
/** Require `ExecutionRequest.codeHash` for URL-based execution. @default false */
|
|
372
|
+
requireHash: boolean;
|
|
373
|
+
/** Cache support toggle for future use. @default true */
|
|
374
|
+
enableCache: boolean;
|
|
375
|
+
/** Cache TTL in seconds for future use. @default 3600 */
|
|
376
|
+
cacheTtl: number;
|
|
377
|
+
}
|
|
319
378
|
/** Configuration for default execution settings. */
|
|
320
379
|
export interface Isol8Defaults {
|
|
321
380
|
/** Default timeout in milliseconds. @default 30000 */
|
|
@@ -405,10 +464,25 @@ export interface Isol8Config {
|
|
|
405
464
|
network: NetworkFilterConfig;
|
|
406
465
|
/** Container cleanup and lifecycle settings. */
|
|
407
466
|
cleanup: Isol8Cleanup;
|
|
467
|
+
/**
|
|
468
|
+
* Default ephemeral pool strategy used by `isol8 serve`.
|
|
469
|
+
* @default "fast"
|
|
470
|
+
*/
|
|
471
|
+
poolStrategy: "secure" | "fast";
|
|
472
|
+
/**
|
|
473
|
+
* Default ephemeral pool size used by `isol8 serve`.
|
|
474
|
+
* @default { clean: 1, dirty: 1 }
|
|
475
|
+
*/
|
|
476
|
+
poolSize: number | {
|
|
477
|
+
clean: number;
|
|
478
|
+
dirty: number;
|
|
479
|
+
};
|
|
408
480
|
/** Runtime-specific packages to bake into custom Docker images. */
|
|
409
481
|
dependencies: Isol8Dependencies;
|
|
410
482
|
/** Security settings. */
|
|
411
483
|
security: SecurityConfig;
|
|
484
|
+
/** Remote code fetching policy. */
|
|
485
|
+
remoteCode: RemoteCodePolicy;
|
|
412
486
|
/** Audit logging configuration. */
|
|
413
487
|
audit: AuditConfig;
|
|
414
488
|
/** Enable debug logging. @default false */
|
|
@@ -431,10 +505,25 @@ export interface Isol8UserConfig {
|
|
|
431
505
|
network?: Partial<NetworkFilterConfig>;
|
|
432
506
|
/** Container cleanup and lifecycle settings. (Partial override allowed). */
|
|
433
507
|
cleanup?: Partial<Isol8Cleanup>;
|
|
508
|
+
/**
|
|
509
|
+
* Default ephemeral pool strategy used by `isol8 serve`.
|
|
510
|
+
* @default "fast"
|
|
511
|
+
*/
|
|
512
|
+
poolStrategy?: "secure" | "fast";
|
|
513
|
+
/**
|
|
514
|
+
* Default ephemeral pool size used by `isol8 serve`.
|
|
515
|
+
* @default { clean: 1, dirty: 1 }
|
|
516
|
+
*/
|
|
517
|
+
poolSize?: number | {
|
|
518
|
+
clean: number;
|
|
519
|
+
dirty: number;
|
|
520
|
+
};
|
|
434
521
|
/** Runtime-specific packages to bake into custom Docker images. */
|
|
435
522
|
dependencies?: Isol8Dependencies;
|
|
436
523
|
/** Security settings. */
|
|
437
524
|
security?: SecurityConfig;
|
|
525
|
+
/** Remote code fetching policy. (Partial override allowed). */
|
|
526
|
+
remoteCode?: Partial<RemoteCodePolicy>;
|
|
438
527
|
/** Audit logging configuration. */
|
|
439
528
|
audit?: Partial<AuditConfig>;
|
|
440
529
|
}
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;GAQG;AACH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "isol8",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "Secure code execution engine for AI agents",
|
|
5
5
|
"author": "Illusion47586",
|
|
6
6
|
"license": "MIT",
|
|
@@ -45,6 +45,8 @@
|
|
|
45
45
|
"lint:check": "ultracite check",
|
|
46
46
|
"lint:fix": "ultracite fix",
|
|
47
47
|
"bench": "bunx tsx benchmarks/spawn.ts",
|
|
48
|
+
"bench:tti": "bunx tsx benchmarks/tti.ts",
|
|
49
|
+
"bench:tti:pool": "bunx tsx benchmarks/tti.ts --warm-pool --iterations 5",
|
|
48
50
|
"bench:pool": "bunx tsx benchmarks/spawn-pool.ts",
|
|
49
51
|
"bench:detailed": "bunx tsx benchmarks/spawn-detailed.ts",
|
|
50
52
|
"bench:cli": "bun run tests/production/bench-cli.ts",
|
|
@@ -188,6 +188,96 @@
|
|
|
188
188
|
},
|
|
189
189
|
"type": "object"
|
|
190
190
|
},
|
|
191
|
+
"poolSize": {
|
|
192
|
+
"anyOf": [
|
|
193
|
+
{
|
|
194
|
+
"type": "number"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"additionalProperties": false,
|
|
198
|
+
"properties": {
|
|
199
|
+
"clean": {
|
|
200
|
+
"type": "number"
|
|
201
|
+
},
|
|
202
|
+
"dirty": {
|
|
203
|
+
"type": "number"
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
"required": ["clean", "dirty"],
|
|
207
|
+
"type": "object"
|
|
208
|
+
}
|
|
209
|
+
],
|
|
210
|
+
"default": {
|
|
211
|
+
"clean": 1,
|
|
212
|
+
"dirty": 1
|
|
213
|
+
},
|
|
214
|
+
"description": "Default ephemeral pool size used by `isol8 serve`."
|
|
215
|
+
},
|
|
216
|
+
"poolStrategy": {
|
|
217
|
+
"default": "fast",
|
|
218
|
+
"description": "Default ephemeral pool strategy used by `isol8 serve`.",
|
|
219
|
+
"enum": ["secure", "fast"],
|
|
220
|
+
"type": "string"
|
|
221
|
+
},
|
|
222
|
+
"remoteCode": {
|
|
223
|
+
"additionalProperties": false,
|
|
224
|
+
"description": "Remote code fetching policy. (Partial override allowed).",
|
|
225
|
+
"properties": {
|
|
226
|
+
"allowedHosts": {
|
|
227
|
+
"description": "Allowed hostname regex patterns. Empty means allow all (subject to blocklist).",
|
|
228
|
+
"items": {
|
|
229
|
+
"type": "string"
|
|
230
|
+
},
|
|
231
|
+
"type": "array"
|
|
232
|
+
},
|
|
233
|
+
"allowedSchemes": {
|
|
234
|
+
"default": ["https"],
|
|
235
|
+
"description": "Allowed URL schemes.",
|
|
236
|
+
"items": {
|
|
237
|
+
"type": "string"
|
|
238
|
+
},
|
|
239
|
+
"type": "array"
|
|
240
|
+
},
|
|
241
|
+
"blockedHosts": {
|
|
242
|
+
"description": "Blocked hostname regex patterns.",
|
|
243
|
+
"items": {
|
|
244
|
+
"type": "string"
|
|
245
|
+
},
|
|
246
|
+
"type": "array"
|
|
247
|
+
},
|
|
248
|
+
"cacheTtl": {
|
|
249
|
+
"default": 3600,
|
|
250
|
+
"description": "Cache TTL in seconds for future use.",
|
|
251
|
+
"type": "number"
|
|
252
|
+
},
|
|
253
|
+
"enableCache": {
|
|
254
|
+
"default": true,
|
|
255
|
+
"description": "Cache support toggle for future use.",
|
|
256
|
+
"type": "boolean"
|
|
257
|
+
},
|
|
258
|
+
"enabled": {
|
|
259
|
+
"default": false,
|
|
260
|
+
"description": "Enable URL-based source fetching.",
|
|
261
|
+
"type": "boolean"
|
|
262
|
+
},
|
|
263
|
+
"fetchTimeoutMs": {
|
|
264
|
+
"default": 30000,
|
|
265
|
+
"description": "Fetch timeout in milliseconds.",
|
|
266
|
+
"type": "number"
|
|
267
|
+
},
|
|
268
|
+
"maxCodeSize": {
|
|
269
|
+
"default": "10485760 (10MB)",
|
|
270
|
+
"description": "Max fetched source size in bytes.",
|
|
271
|
+
"type": "number"
|
|
272
|
+
},
|
|
273
|
+
"requireHash": {
|
|
274
|
+
"default": false,
|
|
275
|
+
"description": "Require `ExecutionRequest.codeHash` for URL-based execution.",
|
|
276
|
+
"type": "boolean"
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
"type": "object"
|
|
280
|
+
},
|
|
191
281
|
"security": {
|
|
192
282
|
"$ref": "#/definitions/SecurityConfig",
|
|
193
283
|
"description": "Security settings."
|