modal 0.11.1-dev.8 → 0.11.1-dev.9
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/dist/index.cjs +53 -67
- package/dist/index.d.cts +2 -9
- package/dist/index.d.ts +2 -9
- package/dist/index.js +53 -67
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2236,6 +2236,9 @@ function environmentRoleFromJSON(object) {
|
|
|
2236
2236
|
case 3:
|
|
2237
2237
|
case "ENVIRONMENT_ROLE_NO_ACCESS":
|
|
2238
2238
|
return 3 /* ENVIRONMENT_ROLE_NO_ACCESS */;
|
|
2239
|
+
case 4:
|
|
2240
|
+
case "ENVIRONMENT_ROLE_MODAL_ADMINISTERED_OBSERVER":
|
|
2241
|
+
return 4 /* ENVIRONMENT_ROLE_MODAL_ADMINISTERED_OBSERVER */;
|
|
2239
2242
|
case -1:
|
|
2240
2243
|
case "UNRECOGNIZED":
|
|
2241
2244
|
default:
|
|
@@ -2252,6 +2255,8 @@ function environmentRoleToJSON(object) {
|
|
|
2252
2255
|
return "ENVIRONMENT_ROLE_CONTRIBUTOR";
|
|
2253
2256
|
case 3 /* ENVIRONMENT_ROLE_NO_ACCESS */:
|
|
2254
2257
|
return "ENVIRONMENT_ROLE_NO_ACCESS";
|
|
2258
|
+
case 4 /* ENVIRONMENT_ROLE_MODAL_ADMINISTERED_OBSERVER */:
|
|
2259
|
+
return "ENVIRONMENT_ROLE_MODAL_ADMINISTERED_OBSERVER";
|
|
2255
2260
|
case -1 /* UNRECOGNIZED */:
|
|
2256
2261
|
default:
|
|
2257
2262
|
return "UNRECOGNIZED";
|
|
@@ -64581,7 +64586,7 @@ var SecretService = class {
|
|
|
64581
64586
|
"secret_name",
|
|
64582
64587
|
name
|
|
64583
64588
|
);
|
|
64584
|
-
return new Secret(resp.secretId, name
|
|
64589
|
+
return new Secret(resp.secretId, name);
|
|
64585
64590
|
} catch (err) {
|
|
64586
64591
|
if (err instanceof import_nice_grpc2.ClientError && err.code === import_nice_grpc2.Status.NOT_FOUND)
|
|
64587
64592
|
throw new NotFoundError(err.details);
|
|
@@ -64680,20 +64685,16 @@ var Secret = class {
|
|
|
64680
64685
|
// constructed already-hydrated (e.g. from fromName), and not consulted again
|
|
64681
64686
|
// once secretId is set.
|
|
64682
64687
|
#hydrator;
|
|
64683
|
-
// Names of the env vars a server-side Secret defines, as reported by the
|
|
64684
|
-
// control plane on fromName. Undefined when unknown.
|
|
64685
|
-
#keys;
|
|
64686
64688
|
// Caches the single in-flight (or successfully completed) hydration so the
|
|
64687
64689
|
// ephemeral Secret is created at most once, even if multiple callers hydrate
|
|
64688
64690
|
// the same Secret concurrently. Cleared on failure so a transient error
|
|
64689
64691
|
// doesn't permanently break the Secret; subsequent calls can retry.
|
|
64690
64692
|
#hydratePromise;
|
|
64691
64693
|
/** @ignore */
|
|
64692
|
-
constructor(secretId, name, hydrator
|
|
64694
|
+
constructor(secretId, name, hydrator) {
|
|
64693
64695
|
this.#secretId = secretId;
|
|
64694
64696
|
this.name = name;
|
|
64695
64697
|
this.#hydrator = hydrator;
|
|
64696
|
-
this.#keys = keys !== void 0 ? new Set(keys) : void 0;
|
|
64697
64698
|
}
|
|
64698
64699
|
/** The ID of the server-side Secret, or an empty string if not yet hydrated. */
|
|
64699
64700
|
get secretId() {
|
|
@@ -64709,16 +64710,6 @@ var Secret = class {
|
|
|
64709
64710
|
get _hydrator() {
|
|
64710
64711
|
return this.#hydrator;
|
|
64711
64712
|
}
|
|
64712
|
-
/**
|
|
64713
|
-
* Names of the env vars this server-side Secret defines, or `undefined` if
|
|
64714
|
-
* unknown (e.g. for lazy fromObject Secrets or Secrets constructed by id).
|
|
64715
|
-
*
|
|
64716
|
-
* @internal
|
|
64717
|
-
* @hidden
|
|
64718
|
-
*/
|
|
64719
|
-
get _keys() {
|
|
64720
|
-
return this.#keys;
|
|
64721
|
-
}
|
|
64722
64713
|
/**
|
|
64723
64714
|
* Lazily create the ephemeral server-side Secret backing a fromObject Secret
|
|
64724
64715
|
* and populate {@link Secret#secretId secretId}. A no-op once secretId is set
|
|
@@ -64778,21 +64769,39 @@ function collectSecretIds(secrets) {
|
|
|
64778
64769
|
return secret.secretId;
|
|
64779
64770
|
});
|
|
64780
64771
|
}
|
|
64781
|
-
function
|
|
64782
|
-
|
|
64783
|
-
|
|
64784
|
-
|
|
64772
|
+
function resolvableSecrets(secrets) {
|
|
64773
|
+
return secrets.filter(
|
|
64774
|
+
(secret) => secret == null || secretEnvDictHydrator(secret) === void 0
|
|
64775
|
+
);
|
|
64776
|
+
}
|
|
64777
|
+
function secretSources(secrets, env) {
|
|
64778
|
+
const sources = [];
|
|
64779
|
+
secrets.forEach((secret, i) => {
|
|
64785
64780
|
const hydrator = secret != null ? secretEnvDictHydrator(secret) : void 0;
|
|
64786
64781
|
if (hydrator !== void 0) {
|
|
64787
|
-
Object.
|
|
64788
|
-
|
|
64789
|
-
|
|
64790
|
-
|
|
64782
|
+
if (Object.keys(hydrator.envDict).length > 0) {
|
|
64783
|
+
sources.push(
|
|
64784
|
+
SecretSource.create({
|
|
64785
|
+
env: StringMap.create({ contents: hydrator.envDict })
|
|
64786
|
+
})
|
|
64787
|
+
);
|
|
64791
64788
|
}
|
|
64792
|
-
|
|
64789
|
+
return;
|
|
64793
64790
|
}
|
|
64791
|
+
if (secret == null) {
|
|
64792
|
+
throw new InvalidError(`secret at index ${i} must not be null`);
|
|
64793
|
+
}
|
|
64794
|
+
if (secret.secretId === "") {
|
|
64795
|
+
throw new InvalidError(`secret at index ${i} has not been hydrated`);
|
|
64796
|
+
}
|
|
64797
|
+
sources.push(SecretSource.create({ secretId: secret.secretId }));
|
|
64798
|
+
});
|
|
64799
|
+
if (env && Object.keys(env).length > 0) {
|
|
64800
|
+
sources.push(
|
|
64801
|
+
SecretSource.create({ env: StringMap.create({ contents: env }) })
|
|
64802
|
+
);
|
|
64794
64803
|
}
|
|
64795
|
-
return
|
|
64804
|
+
return sources;
|
|
64796
64805
|
}
|
|
64797
64806
|
|
|
64798
64807
|
// src/image.ts
|
|
@@ -72226,16 +72235,14 @@ var SidecarService = class {
|
|
|
72226
72235
|
}
|
|
72227
72236
|
}
|
|
72228
72237
|
validateEnvVarKeys(params?.env ?? {});
|
|
72229
|
-
const
|
|
72230
|
-
params?.secrets ?? []
|
|
72231
|
-
);
|
|
72232
|
-
Object.assign(envDict, params?.env ?? {});
|
|
72238
|
+
const resolvable = resolvableSecrets(params?.secrets ?? []);
|
|
72233
72239
|
await hydrateSandboxSecrets(
|
|
72234
72240
|
this.#access.client,
|
|
72235
|
-
|
|
72241
|
+
resolvable,
|
|
72236
72242
|
params?.cloudBucketMounts
|
|
72237
72243
|
);
|
|
72238
|
-
const secretIds = collectSecretIds(
|
|
72244
|
+
const secretIds = collectSecretIds(resolvable);
|
|
72245
|
+
const sources = secretSources(params?.secrets ?? [], params?.env);
|
|
72239
72246
|
const volumeMounts = buildSidecarVolumeMounts(params?.volumes);
|
|
72240
72247
|
const cloudBucketMounts = buildCloudBucketMountProtos(
|
|
72241
72248
|
params?.cloudBucketMounts
|
|
@@ -72249,7 +72256,6 @@ var SidecarService = class {
|
|
|
72249
72256
|
let resp;
|
|
72250
72257
|
try {
|
|
72251
72258
|
if (viaControlPlane) {
|
|
72252
|
-
const ephemeralSecrets = Object.keys(envDict).length > 0 ? StringMap.create({ contents: envDict }) : void 0;
|
|
72253
72259
|
resp = await this.#access.client.cpClient.sandboxContainerCreateV2(
|
|
72254
72260
|
SandboxContainerCreateV2Request.create({
|
|
72255
72261
|
sandboxId: this.#access.sandboxId,
|
|
@@ -72269,7 +72275,7 @@ var SidecarService = class {
|
|
|
72269
72275
|
memoryMb: params.experimentalMemoryReserveConsumeMiB
|
|
72270
72276
|
}) : void 0
|
|
72271
72277
|
}),
|
|
72272
|
-
|
|
72278
|
+
secretSources: sources
|
|
72273
72279
|
})
|
|
72274
72280
|
);
|
|
72275
72281
|
} else {
|
|
@@ -72280,9 +72286,8 @@ var SidecarService = class {
|
|
|
72280
72286
|
containerName: name,
|
|
72281
72287
|
imageId: image.imageId,
|
|
72282
72288
|
args: command,
|
|
72283
|
-
env: envDict,
|
|
72284
72289
|
workdir: params?.workdir ?? "",
|
|
72285
|
-
|
|
72290
|
+
secretSources: sources,
|
|
72286
72291
|
volumeMounts,
|
|
72287
72292
|
networkAccess,
|
|
72288
72293
|
ptyInfo,
|
|
@@ -73077,16 +73082,15 @@ async function buildSandboxCreateRequestProto(appId, imageId, params = {}) {
|
|
|
73077
73082
|
}
|
|
73078
73083
|
});
|
|
73079
73084
|
}
|
|
73080
|
-
async function buildSandboxCreateV2RequestProto(appId, imageId, params = {}) {
|
|
73085
|
+
async function buildSandboxCreateV2RequestProto(appId, imageId, params = {}, secretSources2 = []) {
|
|
73081
73086
|
if (params.gpu) {
|
|
73082
73087
|
throw new Error("GPUs are not supported by experimentalCreate");
|
|
73083
73088
|
}
|
|
73084
73089
|
const req = await buildSandboxCreateRequestProto(appId, imageId, params);
|
|
73085
|
-
const ephemeralSecrets = params.env && Object.keys(params.env).length > 0 ? StringMap.create({ contents: params.env }) : void 0;
|
|
73086
73090
|
return SandboxCreateV2Request.create({
|
|
73087
73091
|
appId: req.appId,
|
|
73088
73092
|
definition: req.definition,
|
|
73089
|
-
|
|
73093
|
+
secretSources: secretSources2,
|
|
73090
73094
|
tags: req.tags
|
|
73091
73095
|
});
|
|
73092
73096
|
}
|
|
@@ -73170,27 +73174,17 @@ var SandboxService = class {
|
|
|
73170
73174
|
async experimentalCreate(app, image, params = {}) {
|
|
73171
73175
|
await image.build(app);
|
|
73172
73176
|
validateEnvVarKeys(params.env ?? {});
|
|
73173
|
-
const
|
|
73174
|
-
params.secrets ?? []
|
|
73175
|
-
);
|
|
73176
|
-
Object.assign(envDict, params.env ?? {});
|
|
73177
|
+
const resolvable = resolvableSecrets(params.secrets ?? []);
|
|
73177
73178
|
await hydrateSandboxSecrets(
|
|
73178
73179
|
this.#client,
|
|
73179
|
-
[
|
|
73180
|
-
...resolvableSecrets,
|
|
73181
|
-
...params.experimentalOutboundPolicy?._secrets() ?? []
|
|
73182
|
-
],
|
|
73180
|
+
[...resolvable, ...params.experimentalOutboundPolicy?._secrets() ?? []],
|
|
73183
73181
|
params.cloudBucketMounts
|
|
73184
73182
|
);
|
|
73185
|
-
const mergedParams = {
|
|
73186
|
-
...params,
|
|
73187
|
-
secrets: resolvableSecrets,
|
|
73188
|
-
env: envDict
|
|
73189
|
-
};
|
|
73190
73183
|
const createReq = await buildSandboxCreateV2RequestProto(
|
|
73191
73184
|
app.appId,
|
|
73192
73185
|
image.imageId,
|
|
73193
|
-
|
|
73186
|
+
{ ...params, secrets: resolvable },
|
|
73187
|
+
secretSources(params.secrets ?? [], params.env)
|
|
73194
73188
|
);
|
|
73195
73189
|
let createResp;
|
|
73196
73190
|
try {
|
|
@@ -73516,7 +73510,6 @@ function buildTaskExecStartRequestProto(taskId, execId, command, params, contain
|
|
|
73516
73510
|
);
|
|
73517
73511
|
}
|
|
73518
73512
|
validateWorkdir(params?.workdir);
|
|
73519
|
-
const secretIds = (params?.secrets || []).map((secret) => secret.secretId);
|
|
73520
73513
|
const stdout = params?.stdout ?? "pipe";
|
|
73521
73514
|
const stderr = params?.stderr ?? "pipe";
|
|
73522
73515
|
let stdoutConfig;
|
|
@@ -73547,8 +73540,7 @@ function buildTaskExecStartRequestProto(taskId, execId, command, params, contain
|
|
|
73547
73540
|
stderrConfig,
|
|
73548
73541
|
timeoutSecs: params?.timeoutMs ? params.timeoutMs / 1e3 : void 0,
|
|
73549
73542
|
workdir: params?.workdir,
|
|
73550
|
-
|
|
73551
|
-
env: params?.env ?? {},
|
|
73543
|
+
secretSources: secretSources(params?.secrets ?? [], params?.env),
|
|
73552
73544
|
ptyInfo,
|
|
73553
73545
|
runtimeDebug: false,
|
|
73554
73546
|
containerId: containerId ?? ""
|
|
@@ -73821,23 +73813,17 @@ var Sandbox2 = class {
|
|
|
73821
73813
|
this.#ensureAttached();
|
|
73822
73814
|
validateExecArgs(command);
|
|
73823
73815
|
validateEnvVarKeys(params?.env ?? {});
|
|
73824
|
-
|
|
73825
|
-
|
|
73816
|
+
await hydrateSecrets(
|
|
73817
|
+
this.#client,
|
|
73818
|
+
resolvableSecrets(params?.secrets ?? [])
|
|
73826
73819
|
);
|
|
73827
|
-
Object.assign(envDict, params?.env ?? {});
|
|
73828
|
-
await hydrateSecrets(this.#client, resolvableSecrets);
|
|
73829
|
-
const execParams = {
|
|
73830
|
-
...params,
|
|
73831
|
-
env: envDict,
|
|
73832
|
-
secrets: resolvableSecrets
|
|
73833
|
-
};
|
|
73834
73820
|
const [taskId, commandRouterClient] = await this.#getCommandRouter();
|
|
73835
73821
|
const execId = (0, import_uuid2.v4)();
|
|
73836
73822
|
const request = buildTaskExecStartRequestProto(
|
|
73837
73823
|
taskId,
|
|
73838
73824
|
execId,
|
|
73839
73825
|
command,
|
|
73840
|
-
|
|
73826
|
+
params,
|
|
73841
73827
|
containerId
|
|
73842
73828
|
);
|
|
73843
73829
|
await commandRouterClient.execStart(request);
|
|
@@ -75025,7 +75011,7 @@ var AuthTokenManager = class {
|
|
|
75025
75011
|
};
|
|
75026
75012
|
|
|
75027
75013
|
// src/version.ts
|
|
75028
|
-
var SDK_VERSION = "0.11.1-dev.
|
|
75014
|
+
var SDK_VERSION = "0.11.1-dev.9";
|
|
75029
75015
|
function getSDKVersion() {
|
|
75030
75016
|
return SDK_VERSION;
|
|
75031
75017
|
}
|
package/dist/index.d.cts
CHANGED
|
@@ -207,6 +207,7 @@ declare enum EnvironmentRole {
|
|
|
207
207
|
ENVIRONMENT_ROLE_VIEWER = 1,
|
|
208
208
|
ENVIRONMENT_ROLE_CONTRIBUTOR = 2,
|
|
209
209
|
ENVIRONMENT_ROLE_NO_ACCESS = 3,
|
|
210
|
+
ENVIRONMENT_ROLE_MODAL_ADMINISTERED_OBSERVER = 4,
|
|
210
211
|
UNRECOGNIZED = -1
|
|
211
212
|
}
|
|
212
213
|
/**
|
|
@@ -7358,7 +7359,7 @@ declare class Secret {
|
|
|
7358
7359
|
#private;
|
|
7359
7360
|
readonly name?: string;
|
|
7360
7361
|
/** @ignore */
|
|
7361
|
-
constructor(secretId: string, name?: string, hydrator?: SecretHydrator
|
|
7362
|
+
constructor(secretId: string, name?: string, hydrator?: SecretHydrator);
|
|
7362
7363
|
/** The ID of the server-side Secret, or an empty string if not yet hydrated. */
|
|
7363
7364
|
get secretId(): string;
|
|
7364
7365
|
/**
|
|
@@ -7369,14 +7370,6 @@ declare class Secret {
|
|
|
7369
7370
|
* @hidden
|
|
7370
7371
|
*/
|
|
7371
7372
|
get _hydrator(): SecretHydrator | undefined;
|
|
7372
|
-
/**
|
|
7373
|
-
* Names of the env vars this server-side Secret defines, or `undefined` if
|
|
7374
|
-
* unknown (e.g. for lazy fromObject Secrets or Secrets constructed by id).
|
|
7375
|
-
*
|
|
7376
|
-
* @internal
|
|
7377
|
-
* @hidden
|
|
7378
|
-
*/
|
|
7379
|
-
get _keys(): ReadonlySet<string> | undefined;
|
|
7380
7373
|
/**
|
|
7381
7374
|
* Lazily create the ephemeral server-side Secret backing a fromObject Secret
|
|
7382
7375
|
* and populate {@link Secret#secretId secretId}. A no-op once secretId is set
|
package/dist/index.d.ts
CHANGED
|
@@ -207,6 +207,7 @@ declare enum EnvironmentRole {
|
|
|
207
207
|
ENVIRONMENT_ROLE_VIEWER = 1,
|
|
208
208
|
ENVIRONMENT_ROLE_CONTRIBUTOR = 2,
|
|
209
209
|
ENVIRONMENT_ROLE_NO_ACCESS = 3,
|
|
210
|
+
ENVIRONMENT_ROLE_MODAL_ADMINISTERED_OBSERVER = 4,
|
|
210
211
|
UNRECOGNIZED = -1
|
|
211
212
|
}
|
|
212
213
|
/**
|
|
@@ -7358,7 +7359,7 @@ declare class Secret {
|
|
|
7358
7359
|
#private;
|
|
7359
7360
|
readonly name?: string;
|
|
7360
7361
|
/** @ignore */
|
|
7361
|
-
constructor(secretId: string, name?: string, hydrator?: SecretHydrator
|
|
7362
|
+
constructor(secretId: string, name?: string, hydrator?: SecretHydrator);
|
|
7362
7363
|
/** The ID of the server-side Secret, or an empty string if not yet hydrated. */
|
|
7363
7364
|
get secretId(): string;
|
|
7364
7365
|
/**
|
|
@@ -7369,14 +7370,6 @@ declare class Secret {
|
|
|
7369
7370
|
* @hidden
|
|
7370
7371
|
*/
|
|
7371
7372
|
get _hydrator(): SecretHydrator | undefined;
|
|
7372
|
-
/**
|
|
7373
|
-
* Names of the env vars this server-side Secret defines, or `undefined` if
|
|
7374
|
-
* unknown (e.g. for lazy fromObject Secrets or Secrets constructed by id).
|
|
7375
|
-
*
|
|
7376
|
-
* @internal
|
|
7377
|
-
* @hidden
|
|
7378
|
-
*/
|
|
7379
|
-
get _keys(): ReadonlySet<string> | undefined;
|
|
7380
7373
|
/**
|
|
7381
7374
|
* Lazily create the ephemeral server-side Secret backing a fromObject Secret
|
|
7382
7375
|
* and populate {@link Secret#secretId secretId}. A no-op once secretId is set
|
package/dist/index.js
CHANGED
|
@@ -2141,6 +2141,9 @@ function environmentRoleFromJSON(object) {
|
|
|
2141
2141
|
case 3:
|
|
2142
2142
|
case "ENVIRONMENT_ROLE_NO_ACCESS":
|
|
2143
2143
|
return 3 /* ENVIRONMENT_ROLE_NO_ACCESS */;
|
|
2144
|
+
case 4:
|
|
2145
|
+
case "ENVIRONMENT_ROLE_MODAL_ADMINISTERED_OBSERVER":
|
|
2146
|
+
return 4 /* ENVIRONMENT_ROLE_MODAL_ADMINISTERED_OBSERVER */;
|
|
2144
2147
|
case -1:
|
|
2145
2148
|
case "UNRECOGNIZED":
|
|
2146
2149
|
default:
|
|
@@ -2157,6 +2160,8 @@ function environmentRoleToJSON(object) {
|
|
|
2157
2160
|
return "ENVIRONMENT_ROLE_CONTRIBUTOR";
|
|
2158
2161
|
case 3 /* ENVIRONMENT_ROLE_NO_ACCESS */:
|
|
2159
2162
|
return "ENVIRONMENT_ROLE_NO_ACCESS";
|
|
2163
|
+
case 4 /* ENVIRONMENT_ROLE_MODAL_ADMINISTERED_OBSERVER */:
|
|
2164
|
+
return "ENVIRONMENT_ROLE_MODAL_ADMINISTERED_OBSERVER";
|
|
2160
2165
|
case -1 /* UNRECOGNIZED */:
|
|
2161
2166
|
default:
|
|
2162
2167
|
return "UNRECOGNIZED";
|
|
@@ -64492,7 +64497,7 @@ var SecretService = class {
|
|
|
64492
64497
|
"secret_name",
|
|
64493
64498
|
name
|
|
64494
64499
|
);
|
|
64495
|
-
return new Secret(resp.secretId, name
|
|
64500
|
+
return new Secret(resp.secretId, name);
|
|
64496
64501
|
} catch (err) {
|
|
64497
64502
|
if (err instanceof ClientError2 && err.code === Status2.NOT_FOUND)
|
|
64498
64503
|
throw new NotFoundError(err.details);
|
|
@@ -64591,20 +64596,16 @@ var Secret = class {
|
|
|
64591
64596
|
// constructed already-hydrated (e.g. from fromName), and not consulted again
|
|
64592
64597
|
// once secretId is set.
|
|
64593
64598
|
#hydrator;
|
|
64594
|
-
// Names of the env vars a server-side Secret defines, as reported by the
|
|
64595
|
-
// control plane on fromName. Undefined when unknown.
|
|
64596
|
-
#keys;
|
|
64597
64599
|
// Caches the single in-flight (or successfully completed) hydration so the
|
|
64598
64600
|
// ephemeral Secret is created at most once, even if multiple callers hydrate
|
|
64599
64601
|
// the same Secret concurrently. Cleared on failure so a transient error
|
|
64600
64602
|
// doesn't permanently break the Secret; subsequent calls can retry.
|
|
64601
64603
|
#hydratePromise;
|
|
64602
64604
|
/** @ignore */
|
|
64603
|
-
constructor(secretId, name, hydrator
|
|
64605
|
+
constructor(secretId, name, hydrator) {
|
|
64604
64606
|
this.#secretId = secretId;
|
|
64605
64607
|
this.name = name;
|
|
64606
64608
|
this.#hydrator = hydrator;
|
|
64607
|
-
this.#keys = keys !== void 0 ? new Set(keys) : void 0;
|
|
64608
64609
|
}
|
|
64609
64610
|
/** The ID of the server-side Secret, or an empty string if not yet hydrated. */
|
|
64610
64611
|
get secretId() {
|
|
@@ -64620,16 +64621,6 @@ var Secret = class {
|
|
|
64620
64621
|
get _hydrator() {
|
|
64621
64622
|
return this.#hydrator;
|
|
64622
64623
|
}
|
|
64623
|
-
/**
|
|
64624
|
-
* Names of the env vars this server-side Secret defines, or `undefined` if
|
|
64625
|
-
* unknown (e.g. for lazy fromObject Secrets or Secrets constructed by id).
|
|
64626
|
-
*
|
|
64627
|
-
* @internal
|
|
64628
|
-
* @hidden
|
|
64629
|
-
*/
|
|
64630
|
-
get _keys() {
|
|
64631
|
-
return this.#keys;
|
|
64632
|
-
}
|
|
64633
64624
|
/**
|
|
64634
64625
|
* Lazily create the ephemeral server-side Secret backing a fromObject Secret
|
|
64635
64626
|
* and populate {@link Secret#secretId secretId}. A no-op once secretId is set
|
|
@@ -64689,21 +64680,39 @@ function collectSecretIds(secrets) {
|
|
|
64689
64680
|
return secret.secretId;
|
|
64690
64681
|
});
|
|
64691
64682
|
}
|
|
64692
|
-
function
|
|
64693
|
-
|
|
64694
|
-
|
|
64695
|
-
|
|
64683
|
+
function resolvableSecrets(secrets) {
|
|
64684
|
+
return secrets.filter(
|
|
64685
|
+
(secret) => secret == null || secretEnvDictHydrator(secret) === void 0
|
|
64686
|
+
);
|
|
64687
|
+
}
|
|
64688
|
+
function secretSources(secrets, env) {
|
|
64689
|
+
const sources = [];
|
|
64690
|
+
secrets.forEach((secret, i) => {
|
|
64696
64691
|
const hydrator = secret != null ? secretEnvDictHydrator(secret) : void 0;
|
|
64697
64692
|
if (hydrator !== void 0) {
|
|
64698
|
-
Object.
|
|
64699
|
-
|
|
64700
|
-
|
|
64701
|
-
|
|
64693
|
+
if (Object.keys(hydrator.envDict).length > 0) {
|
|
64694
|
+
sources.push(
|
|
64695
|
+
SecretSource.create({
|
|
64696
|
+
env: StringMap.create({ contents: hydrator.envDict })
|
|
64697
|
+
})
|
|
64698
|
+
);
|
|
64702
64699
|
}
|
|
64703
|
-
|
|
64700
|
+
return;
|
|
64704
64701
|
}
|
|
64702
|
+
if (secret == null) {
|
|
64703
|
+
throw new InvalidError(`secret at index ${i} must not be null`);
|
|
64704
|
+
}
|
|
64705
|
+
if (secret.secretId === "") {
|
|
64706
|
+
throw new InvalidError(`secret at index ${i} has not been hydrated`);
|
|
64707
|
+
}
|
|
64708
|
+
sources.push(SecretSource.create({ secretId: secret.secretId }));
|
|
64709
|
+
});
|
|
64710
|
+
if (env && Object.keys(env).length > 0) {
|
|
64711
|
+
sources.push(
|
|
64712
|
+
SecretSource.create({ env: StringMap.create({ contents: env }) })
|
|
64713
|
+
);
|
|
64705
64714
|
}
|
|
64706
|
-
return
|
|
64715
|
+
return sources;
|
|
64707
64716
|
}
|
|
64708
64717
|
|
|
64709
64718
|
// src/image.ts
|
|
@@ -72144,16 +72153,14 @@ var SidecarService = class {
|
|
|
72144
72153
|
}
|
|
72145
72154
|
}
|
|
72146
72155
|
validateEnvVarKeys(params?.env ?? {});
|
|
72147
|
-
const
|
|
72148
|
-
params?.secrets ?? []
|
|
72149
|
-
);
|
|
72150
|
-
Object.assign(envDict, params?.env ?? {});
|
|
72156
|
+
const resolvable = resolvableSecrets(params?.secrets ?? []);
|
|
72151
72157
|
await hydrateSandboxSecrets(
|
|
72152
72158
|
this.#access.client,
|
|
72153
|
-
|
|
72159
|
+
resolvable,
|
|
72154
72160
|
params?.cloudBucketMounts
|
|
72155
72161
|
);
|
|
72156
|
-
const secretIds = collectSecretIds(
|
|
72162
|
+
const secretIds = collectSecretIds(resolvable);
|
|
72163
|
+
const sources = secretSources(params?.secrets ?? [], params?.env);
|
|
72157
72164
|
const volumeMounts = buildSidecarVolumeMounts(params?.volumes);
|
|
72158
72165
|
const cloudBucketMounts = buildCloudBucketMountProtos(
|
|
72159
72166
|
params?.cloudBucketMounts
|
|
@@ -72167,7 +72174,6 @@ var SidecarService = class {
|
|
|
72167
72174
|
let resp;
|
|
72168
72175
|
try {
|
|
72169
72176
|
if (viaControlPlane) {
|
|
72170
|
-
const ephemeralSecrets = Object.keys(envDict).length > 0 ? StringMap.create({ contents: envDict }) : void 0;
|
|
72171
72177
|
resp = await this.#access.client.cpClient.sandboxContainerCreateV2(
|
|
72172
72178
|
SandboxContainerCreateV2Request.create({
|
|
72173
72179
|
sandboxId: this.#access.sandboxId,
|
|
@@ -72187,7 +72193,7 @@ var SidecarService = class {
|
|
|
72187
72193
|
memoryMb: params.experimentalMemoryReserveConsumeMiB
|
|
72188
72194
|
}) : void 0
|
|
72189
72195
|
}),
|
|
72190
|
-
|
|
72196
|
+
secretSources: sources
|
|
72191
72197
|
})
|
|
72192
72198
|
);
|
|
72193
72199
|
} else {
|
|
@@ -72198,9 +72204,8 @@ var SidecarService = class {
|
|
|
72198
72204
|
containerName: name,
|
|
72199
72205
|
imageId: image.imageId,
|
|
72200
72206
|
args: command,
|
|
72201
|
-
env: envDict,
|
|
72202
72207
|
workdir: params?.workdir ?? "",
|
|
72203
|
-
|
|
72208
|
+
secretSources: sources,
|
|
72204
72209
|
volumeMounts,
|
|
72205
72210
|
networkAccess,
|
|
72206
72211
|
ptyInfo,
|
|
@@ -72995,16 +73000,15 @@ async function buildSandboxCreateRequestProto(appId, imageId, params = {}) {
|
|
|
72995
73000
|
}
|
|
72996
73001
|
});
|
|
72997
73002
|
}
|
|
72998
|
-
async function buildSandboxCreateV2RequestProto(appId, imageId, params = {}) {
|
|
73003
|
+
async function buildSandboxCreateV2RequestProto(appId, imageId, params = {}, secretSources2 = []) {
|
|
72999
73004
|
if (params.gpu) {
|
|
73000
73005
|
throw new Error("GPUs are not supported by experimentalCreate");
|
|
73001
73006
|
}
|
|
73002
73007
|
const req = await buildSandboxCreateRequestProto(appId, imageId, params);
|
|
73003
|
-
const ephemeralSecrets = params.env && Object.keys(params.env).length > 0 ? StringMap.create({ contents: params.env }) : void 0;
|
|
73004
73008
|
return SandboxCreateV2Request.create({
|
|
73005
73009
|
appId: req.appId,
|
|
73006
73010
|
definition: req.definition,
|
|
73007
|
-
|
|
73011
|
+
secretSources: secretSources2,
|
|
73008
73012
|
tags: req.tags
|
|
73009
73013
|
});
|
|
73010
73014
|
}
|
|
@@ -73088,27 +73092,17 @@ var SandboxService = class {
|
|
|
73088
73092
|
async experimentalCreate(app, image, params = {}) {
|
|
73089
73093
|
await image.build(app);
|
|
73090
73094
|
validateEnvVarKeys(params.env ?? {});
|
|
73091
|
-
const
|
|
73092
|
-
params.secrets ?? []
|
|
73093
|
-
);
|
|
73094
|
-
Object.assign(envDict, params.env ?? {});
|
|
73095
|
+
const resolvable = resolvableSecrets(params.secrets ?? []);
|
|
73095
73096
|
await hydrateSandboxSecrets(
|
|
73096
73097
|
this.#client,
|
|
73097
|
-
[
|
|
73098
|
-
...resolvableSecrets,
|
|
73099
|
-
...params.experimentalOutboundPolicy?._secrets() ?? []
|
|
73100
|
-
],
|
|
73098
|
+
[...resolvable, ...params.experimentalOutboundPolicy?._secrets() ?? []],
|
|
73101
73099
|
params.cloudBucketMounts
|
|
73102
73100
|
);
|
|
73103
|
-
const mergedParams = {
|
|
73104
|
-
...params,
|
|
73105
|
-
secrets: resolvableSecrets,
|
|
73106
|
-
env: envDict
|
|
73107
|
-
};
|
|
73108
73101
|
const createReq = await buildSandboxCreateV2RequestProto(
|
|
73109
73102
|
app.appId,
|
|
73110
73103
|
image.imageId,
|
|
73111
|
-
|
|
73104
|
+
{ ...params, secrets: resolvable },
|
|
73105
|
+
secretSources(params.secrets ?? [], params.env)
|
|
73112
73106
|
);
|
|
73113
73107
|
let createResp;
|
|
73114
73108
|
try {
|
|
@@ -73434,7 +73428,6 @@ function buildTaskExecStartRequestProto(taskId, execId, command, params, contain
|
|
|
73434
73428
|
);
|
|
73435
73429
|
}
|
|
73436
73430
|
validateWorkdir(params?.workdir);
|
|
73437
|
-
const secretIds = (params?.secrets || []).map((secret) => secret.secretId);
|
|
73438
73431
|
const stdout = params?.stdout ?? "pipe";
|
|
73439
73432
|
const stderr = params?.stderr ?? "pipe";
|
|
73440
73433
|
let stdoutConfig;
|
|
@@ -73465,8 +73458,7 @@ function buildTaskExecStartRequestProto(taskId, execId, command, params, contain
|
|
|
73465
73458
|
stderrConfig,
|
|
73466
73459
|
timeoutSecs: params?.timeoutMs ? params.timeoutMs / 1e3 : void 0,
|
|
73467
73460
|
workdir: params?.workdir,
|
|
73468
|
-
|
|
73469
|
-
env: params?.env ?? {},
|
|
73461
|
+
secretSources: secretSources(params?.secrets ?? [], params?.env),
|
|
73470
73462
|
ptyInfo,
|
|
73471
73463
|
runtimeDebug: false,
|
|
73472
73464
|
containerId: containerId ?? ""
|
|
@@ -73739,23 +73731,17 @@ var Sandbox2 = class {
|
|
|
73739
73731
|
this.#ensureAttached();
|
|
73740
73732
|
validateExecArgs(command);
|
|
73741
73733
|
validateEnvVarKeys(params?.env ?? {});
|
|
73742
|
-
|
|
73743
|
-
|
|
73734
|
+
await hydrateSecrets(
|
|
73735
|
+
this.#client,
|
|
73736
|
+
resolvableSecrets(params?.secrets ?? [])
|
|
73744
73737
|
);
|
|
73745
|
-
Object.assign(envDict, params?.env ?? {});
|
|
73746
|
-
await hydrateSecrets(this.#client, resolvableSecrets);
|
|
73747
|
-
const execParams = {
|
|
73748
|
-
...params,
|
|
73749
|
-
env: envDict,
|
|
73750
|
-
secrets: resolvableSecrets
|
|
73751
|
-
};
|
|
73752
73738
|
const [taskId, commandRouterClient] = await this.#getCommandRouter();
|
|
73753
73739
|
const execId = uuidv42();
|
|
73754
73740
|
const request = buildTaskExecStartRequestProto(
|
|
73755
73741
|
taskId,
|
|
73756
73742
|
execId,
|
|
73757
73743
|
command,
|
|
73758
|
-
|
|
73744
|
+
params,
|
|
73759
73745
|
containerId
|
|
73760
73746
|
);
|
|
73761
73747
|
await commandRouterClient.execStart(request);
|
|
@@ -74943,7 +74929,7 @@ var AuthTokenManager = class {
|
|
|
74943
74929
|
};
|
|
74944
74930
|
|
|
74945
74931
|
// src/version.ts
|
|
74946
|
-
var SDK_VERSION = "0.11.1-dev.
|
|
74932
|
+
var SDK_VERSION = "0.11.1-dev.9";
|
|
74947
74933
|
function getSDKVersion() {
|
|
74948
74934
|
return SDK_VERSION;
|
|
74949
74935
|
}
|