@ganju/utils 0.0.2 → 0.0.3
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/cliConstants.d.ts +1 -0
- package/dist/cliConstants.d.ts.map +1 -1
- package/dist/cliConstants.js +15 -2
- package/dist/constants.d.ts +4 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +27 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/sdkConstants.d.ts +1 -0
- package/dist/sdkConstants.d.ts.map +1 -1
- package/dist/sdkConstants.js +12 -1
- package/package.json +1 -1
- package/src/cliConstants.ts +15 -1
- package/src/constants.ts +31 -0
- package/src/sdkConstants.ts +12 -0
package/dist/cliConstants.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const CLI_OAUTH_CLIENT_NAME = "Ganju CLI";
|
|
2
2
|
export declare const CLI_OAUTH_REDIRECT_PATH = "/callback";
|
|
3
3
|
export declare const CLI_OAUTH_REDIRECT_PORTS: number[];
|
|
4
|
+
export declare const CONTROL_PLANE_SCOPE = "ganju:manage";
|
|
4
5
|
export declare const CLI_OAUTH_SCOPES: string[];
|
|
5
6
|
export declare const CLI_TOKEN_REFRESH_SKEW_SECONDS = 60;
|
|
6
7
|
export declare const CUSTOM_CODE_SDK_SPECIFIER = "./ganju-sdk.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliConstants.d.ts","sourceRoot":"","sources":["../src/cliConstants.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,qBAAqB,cAAc,CAAC;AACjD,eAAO,MAAM,uBAAuB,cAAc,CAAC;AACnD,eAAO,MAAM,wBAAwB,UAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"cliConstants.d.ts","sourceRoot":"","sources":["../src/cliConstants.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,qBAAqB,cAAc,CAAC;AACjD,eAAO,MAAM,uBAAuB,cAAc,CAAC;AACnD,eAAO,MAAM,wBAAwB,UAAiC,CAAC;AAOvE,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAUlD,eAAO,MAAM,gBAAgB,UAM5B,CAAC;AAIF,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAIjD,eAAO,MAAM,yBAAyB,mBAAmB,CAAC;AAI1D,eAAO,MAAM,4BAA4B,QAAkB,CAAC;AAK5D,eAAO,MAAM,+BAA+B,EAAoB,aAAa,CAAC"}
|
package/dist/cliConstants.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
// The rule for this file: nothing lands here unless the CLI reads it, and it
|
|
13
13
|
// imports nothing.
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.CREDENTIAL_PROVIDER_CUSTOM_CODE = exports.CUSTOM_CODE_MAX_BUNDLE_BYTES = exports.CUSTOM_CODE_SDK_SPECIFIER = exports.CLI_TOKEN_REFRESH_SKEW_SECONDS = exports.CLI_OAUTH_SCOPES = exports.CLI_OAUTH_REDIRECT_PORTS = exports.CLI_OAUTH_REDIRECT_PATH = exports.CLI_OAUTH_CLIENT_NAME = void 0;
|
|
15
|
+
exports.CREDENTIAL_PROVIDER_CUSTOM_CODE = exports.CUSTOM_CODE_MAX_BUNDLE_BYTES = exports.CUSTOM_CODE_SDK_SPECIFIER = exports.CLI_TOKEN_REFRESH_SKEW_SECONDS = exports.CLI_OAUTH_SCOPES = exports.CONTROL_PLANE_SCOPE = exports.CLI_OAUTH_REDIRECT_PORTS = exports.CLI_OAUTH_REDIRECT_PATH = exports.CLI_OAUTH_CLIENT_NAME = void 0;
|
|
16
16
|
// How `ganju login` identifies itself, and where it listens for the redirect.
|
|
17
17
|
//
|
|
18
18
|
// A fixed port would fail whenever something else already held it, so the CLI
|
|
@@ -24,13 +24,26 @@ exports.CREDENTIAL_PROVIDER_CUSTOM_CODE = exports.CUSTOM_CODE_MAX_BUNDLE_BYTES =
|
|
|
24
24
|
exports.CLI_OAUTH_CLIENT_NAME = 'Ganju CLI';
|
|
25
25
|
exports.CLI_OAUTH_REDIRECT_PATH = '/callback';
|
|
26
26
|
exports.CLI_OAUTH_REDIRECT_PORTS = [8976, 8977, 8978, 8979, 8980];
|
|
27
|
+
// What the API requires before a bearer token may act on the control plane —
|
|
28
|
+
// publish code, read and rotate secrets, change billing. Lives here because the
|
|
29
|
+
// CLI is the client that asks for it; the API's own copy is the re-export in
|
|
30
|
+
// `constants.ts`, so the string the CLI requests and the string the middleware
|
|
31
|
+
// demands cannot drift apart.
|
|
32
|
+
exports.CONTROL_PLANE_SCOPE = 'ganju:manage';
|
|
27
33
|
// `offline_access` is what mints the refresh token; without it a CLI session
|
|
28
34
|
// would end an hour after login.
|
|
35
|
+
//
|
|
36
|
+
// An MCP client reads the discovery document to decide what to ask for, and
|
|
37
|
+
// that document does not list `ganju:manage` — so a token minted for someone's
|
|
38
|
+
// MCP server can reach that server and nothing else, while this one can deploy.
|
|
39
|
+
// The consent screen names the scope, which is the point: deploying code as
|
|
40
|
+
// someone is worth showing them.
|
|
29
41
|
exports.CLI_OAUTH_SCOPES = [
|
|
30
42
|
'openid',
|
|
31
43
|
'profile',
|
|
32
44
|
'email',
|
|
33
|
-
'offline_access'
|
|
45
|
+
'offline_access',
|
|
46
|
+
exports.CONTROL_PLANE_SCOPE
|
|
34
47
|
];
|
|
35
48
|
// Refresh this far before the access token actually expires, so a long command
|
|
36
49
|
// can't have its token die mid-request.
|
package/dist/constants.d.ts
CHANGED
|
@@ -539,6 +539,7 @@ export declare const constants: {
|
|
|
539
539
|
OUTPUT_SCHEMA_NOT_OBJECT_MESSAGE: string;
|
|
540
540
|
CUSTOM_CODE_BINDING_TOKEN: string;
|
|
541
541
|
CUSTOM_CODE_BINDING_BROKER: string;
|
|
542
|
+
CUSTOM_CODE_BINDING_VERSION: string;
|
|
542
543
|
CUSTOM_CODE_BROKER_ORIGIN: string;
|
|
543
544
|
CUSTOM_CODE_BROKER_PATH_CONNECTION: string;
|
|
544
545
|
CUSTOM_CODE_BROKER_PATH_SECRET: string;
|
|
@@ -559,6 +560,8 @@ export declare const constants: {
|
|
|
559
560
|
CUSTOM_CODE_BROKER_SERVICE_ENV: string;
|
|
560
561
|
CUSTOM_CODE_COMPATIBILITY_DATE: string;
|
|
561
562
|
CUSTOM_CODE_SCRIPT_CPU_MS: number;
|
|
563
|
+
CUSTOM_CODE_SMOKE_TIMEOUT_MS: number;
|
|
564
|
+
CUSTOM_CODE_SMOKE_INTERVAL_MS: number;
|
|
562
565
|
CUSTOM_CODE_MAX_LOGS: number;
|
|
563
566
|
CUSTOM_CODE_MAX_LOG_LENGTH: number;
|
|
564
567
|
CUSTOM_CODE_SEND_FILE_TARGET_GMAIL: "gmail";
|
|
@@ -605,6 +608,7 @@ export declare const constants: {
|
|
|
605
608
|
OAUTH_SCOPES_SUPPORTED: string[];
|
|
606
609
|
MCP_SCOPE_READ: string;
|
|
607
610
|
ARTIFACT_SCOPE_PREFIX: string;
|
|
611
|
+
CONTROL_PLANE_SCOPE: string;
|
|
608
612
|
CLI_OAUTH_CLIENT_NAME: string;
|
|
609
613
|
CLI_OAUTH_REDIRECT_PATH: string;
|
|
610
614
|
CLI_OAUTH_REDIRECT_PORTS: number[];
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -1228,6 +1228,15 @@ const CUSTOM_CODE_COMPATIBILITY_DATE = '2025-11-17';
|
|
|
1228
1228
|
// tighter than our own workers' 30s — this is the technical cap that bounds
|
|
1229
1229
|
// what one adversarial call can cost us, so an infinite loop in a customer's
|
|
1230
1230
|
// tool is billed as five seconds rather than as whatever it wanted.
|
|
1231
|
+
// How long publish waits for the edition it just uploaded to be the one the
|
|
1232
|
+
// dispatcher answers with, and how often it asks.
|
|
1233
|
+
//
|
|
1234
|
+
// Bounded rather than open-ended because this runs inside the publish request:
|
|
1235
|
+
// past this, publishing would be a request nobody waits out. Exceeding it is
|
|
1236
|
+
// reported as "try again" rather than published, which is the safe direction —
|
|
1237
|
+
// the alternative is advertising tools backed by a script that is not there yet.
|
|
1238
|
+
const CUSTOM_CODE_SMOKE_TIMEOUT_MS = 20_000;
|
|
1239
|
+
const CUSTOM_CODE_SMOKE_INTERVAL_MS = 1_000;
|
|
1231
1240
|
const CUSTOM_CODE_SCRIPT_CPU_MS = 5_000;
|
|
1232
1241
|
// The ctx.log() caps also live in ./sdkConstants — the buffer that enforces them
|
|
1233
1242
|
// runs inside the isolate.
|
|
@@ -1375,6 +1384,20 @@ const OAUTH_SCOPES_SUPPORTED = ['openid', 'profile', 'email', 'offline_access'];
|
|
|
1375
1384
|
// TODO: Net: mcp:read is a cosmetic claim on bot tokens; artifact: is a code path that can't fire. Neither affects security today. They become real only if you build the per-server confinement feature (which would make artifact:<slug> issued + enforced). This is more for OIDC.
|
|
1376
1385
|
const MCP_SCOPE_READ = 'mcp:read';
|
|
1377
1386
|
const ARTIFACT_SCOPE_PREFIX = 'artifact:';
|
|
1387
|
+
// `CONTROL_PLANE_SCOPE` (defined in ./cliConstants, re-exported below) is what
|
|
1388
|
+
// a bearer token needs before it may act as the user on the control plane —
|
|
1389
|
+
// publish code, read and rotate secrets, change billing.
|
|
1390
|
+
//
|
|
1391
|
+
// Access tokens are minted for MCP clients too: a customer who connects Claude
|
|
1392
|
+
// Desktop to one of their MCP servers hands it a token for their own account,
|
|
1393
|
+
// and `/oauth2/userinfo` will happily confirm that it is theirs. Without a scope
|
|
1394
|
+
// that separates the two, "this token belongs to the user" would be the same
|
|
1395
|
+
// sentence as "this token may deploy code as the user", and connecting an MCP
|
|
1396
|
+
// client would silently be an act of full delegation.
|
|
1397
|
+
//
|
|
1398
|
+
// Deliberately outside OAUTH_SCOPES_SUPPORTED: it is allowlisted on the provider
|
|
1399
|
+
// so the CLI can request it, and left out of discovery, which is what an MCP
|
|
1400
|
+
// client reads to decide what to ask for.
|
|
1378
1401
|
// The CLI signs in as a public OAuth client through a loopback redirect
|
|
1379
1402
|
// (RFC 8252) — the flow `wrangler`, `gh` and `vercel` all use. It registers
|
|
1380
1403
|
// itself through RFC 7591 dynamic registration on first login rather than
|
|
@@ -2136,6 +2159,7 @@ exports.constants = {
|
|
|
2136
2159
|
OUTPUT_SCHEMA_NOT_OBJECT_MESSAGE,
|
|
2137
2160
|
CUSTOM_CODE_BINDING_TOKEN: sdkConstants_1.CUSTOM_CODE_BINDING_TOKEN,
|
|
2138
2161
|
CUSTOM_CODE_BINDING_BROKER: sdkConstants_1.CUSTOM_CODE_BINDING_BROKER,
|
|
2162
|
+
CUSTOM_CODE_BINDING_VERSION: sdkConstants_1.CUSTOM_CODE_BINDING_VERSION,
|
|
2139
2163
|
CUSTOM_CODE_BROKER_ORIGIN: sdkConstants_1.CUSTOM_CODE_BROKER_ORIGIN,
|
|
2140
2164
|
CUSTOM_CODE_BROKER_PATH_CONNECTION: sdkConstants_1.CUSTOM_CODE_BROKER_PATH_CONNECTION,
|
|
2141
2165
|
CUSTOM_CODE_BROKER_PATH_SECRET: sdkConstants_1.CUSTOM_CODE_BROKER_PATH_SECRET,
|
|
@@ -2156,6 +2180,8 @@ exports.constants = {
|
|
|
2156
2180
|
CUSTOM_CODE_BROKER_SERVICE_ENV,
|
|
2157
2181
|
CUSTOM_CODE_COMPATIBILITY_DATE,
|
|
2158
2182
|
CUSTOM_CODE_SCRIPT_CPU_MS,
|
|
2183
|
+
CUSTOM_CODE_SMOKE_TIMEOUT_MS,
|
|
2184
|
+
CUSTOM_CODE_SMOKE_INTERVAL_MS,
|
|
2159
2185
|
CUSTOM_CODE_MAX_LOGS: sdkConstants_1.CUSTOM_CODE_MAX_LOGS,
|
|
2160
2186
|
CUSTOM_CODE_MAX_LOG_LENGTH: sdkConstants_1.CUSTOM_CODE_MAX_LOG_LENGTH,
|
|
2161
2187
|
CUSTOM_CODE_SEND_FILE_TARGET_GMAIL,
|
|
@@ -2202,6 +2228,7 @@ exports.constants = {
|
|
|
2202
2228
|
OAUTH_SCOPES_SUPPORTED,
|
|
2203
2229
|
MCP_SCOPE_READ,
|
|
2204
2230
|
ARTIFACT_SCOPE_PREFIX,
|
|
2231
|
+
CONTROL_PLANE_SCOPE: cliConstants_1.CONTROL_PLANE_SCOPE,
|
|
2205
2232
|
CLI_OAUTH_CLIENT_NAME: cliConstants_1.CLI_OAUTH_CLIENT_NAME,
|
|
2206
2233
|
CLI_OAUTH_REDIRECT_PATH: cliConstants_1.CLI_OAUTH_REDIRECT_PATH,
|
|
2207
2234
|
CLI_OAUTH_REDIRECT_PORTS: cliConstants_1.CLI_OAUTH_REDIRECT_PORTS,
|
package/dist/index.d.ts
CHANGED
|
@@ -2226,6 +2226,7 @@ export declare const utils: {
|
|
|
2226
2226
|
OUTPUT_SCHEMA_NOT_OBJECT_MESSAGE: string;
|
|
2227
2227
|
CUSTOM_CODE_BINDING_TOKEN: string;
|
|
2228
2228
|
CUSTOM_CODE_BINDING_BROKER: string;
|
|
2229
|
+
CUSTOM_CODE_BINDING_VERSION: string;
|
|
2229
2230
|
CUSTOM_CODE_BROKER_ORIGIN: string;
|
|
2230
2231
|
CUSTOM_CODE_BROKER_PATH_CONNECTION: string;
|
|
2231
2232
|
CUSTOM_CODE_BROKER_PATH_SECRET: string;
|
|
@@ -2246,6 +2247,8 @@ export declare const utils: {
|
|
|
2246
2247
|
CUSTOM_CODE_BROKER_SERVICE_ENV: string;
|
|
2247
2248
|
CUSTOM_CODE_COMPATIBILITY_DATE: string;
|
|
2248
2249
|
CUSTOM_CODE_SCRIPT_CPU_MS: number;
|
|
2250
|
+
CUSTOM_CODE_SMOKE_TIMEOUT_MS: number;
|
|
2251
|
+
CUSTOM_CODE_SMOKE_INTERVAL_MS: number;
|
|
2249
2252
|
CUSTOM_CODE_MAX_LOGS: number;
|
|
2250
2253
|
CUSTOM_CODE_MAX_LOG_LENGTH: number;
|
|
2251
2254
|
CUSTOM_CODE_SEND_FILE_TARGET_GMAIL: "gmail";
|
|
@@ -2292,6 +2295,7 @@ export declare const utils: {
|
|
|
2292
2295
|
OAUTH_SCOPES_SUPPORTED: string[];
|
|
2293
2296
|
MCP_SCOPE_READ: string;
|
|
2294
2297
|
ARTIFACT_SCOPE_PREFIX: string;
|
|
2298
|
+
CONTROL_PLANE_SCOPE: string;
|
|
2295
2299
|
CLI_OAUTH_CLIENT_NAME: string;
|
|
2296
2300
|
CLI_OAUTH_REDIRECT_PATH: string;
|
|
2297
2301
|
CLI_OAUTH_REDIRECT_PORTS: number[];
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAyCvD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,iCAAiC,EAClC,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,8BAA8B,EAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,gCAAgC,EACjC,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,iCAAiC,EAClC,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EACL,UAAU,EAGX,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQ9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAW3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAgBtB,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,OAAO,EACR,MAAM,eAAe,CAAC;AAiBvB,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAM1E,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAS3B,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAEL,wBAAwB,EAIzB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAoB,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAyCvD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,iCAAiC,EAClC,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,8BAA8B,EAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,gCAAgC,EACjC,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,iCAAiC,EAClC,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EACL,UAAU,EAGX,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQ9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAW3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAgBtB,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,OAAO,EACR,MAAM,eAAe,CAAC;AAiBvB,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAM1E,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAS3B,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAEL,wBAAwB,EAIzB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAoB,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAlGhB,CAAC;;;;;;;;;;;;;;;;;;;;;;;kBAjHkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA0DF,CAAC;oBAEd,CAAC;;;;aA0BkB,CAAC;mBAA8B,CAAC;WACvC,CAAC;gBACf,CAAC;gBAA4B,CAAA;;;mBAmBK,CAAC;oBACtC,CAAC;;;;;;;;;;;;;;;kBA1DmB,CAAC;;;;;;;sBAqCR,CAAC;;;;;;;;;CAuOf,CAAC;AAEF,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,OAAO,EACP,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,8BAA8B,EAC9B,mBAAmB,EACnB,oBAAoB,EACpB,iCAAiC,EACjC,kBAAkB,EAClB,mBAAmB,EACnB,gCAAgC,EAChC,mBAAmB,EACnB,oBAAoB,EACpB,iCAAiC,EACjC,SAAS,EACT,SAAS,EACT,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,MAAM,EACN,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACX,CAAC"}
|
package/dist/sdkConstants.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export declare const CUSTOM_CODE_BROKER_PATH_RESOURCES_LIST = "/resources/list";
|
|
|
9
9
|
export declare const CUSTOM_CODE_BROKER_PATH_RESOURCES_CREATE = "/resources/create";
|
|
10
10
|
export declare const CUSTOM_CODE_BROKER_PATH_RESOURCES_DELETE = "/resources/delete";
|
|
11
11
|
export declare const CUSTOM_CODE_BROKER_PATH_SEND_FILE = "/send-file";
|
|
12
|
+
export declare const CUSTOM_CODE_BINDING_VERSION = "GANJU_SCRIPT_VERSION";
|
|
12
13
|
export declare const CUSTOM_CODE_HEALTH_TOOL = "__ganju_health";
|
|
13
14
|
export declare const CUSTOM_CODE_MAX_LOGS = 50;
|
|
14
15
|
export declare const CUSTOM_CODE_MAX_LOG_LENGTH = 2000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdkConstants.d.ts","sourceRoot":"","sources":["../src/sdkConstants.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,yBAAyB,qBAAqB,CAAC;AAC5D,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AAKzD,eAAO,MAAM,yBAAyB,kCAAkC,CAAC;AACzE,eAAO,MAAM,kCAAkC,gBAAgB,CAAC;AAChE,eAAO,MAAM,8BAA8B,YAAY,CAAC;AACxD,eAAO,MAAM,wCAAwC,sBAAsB,CAAC;AAC5E,eAAO,MAAM,sCAAsC,oBAAoB,CAAC;AACxE,eAAO,MAAM,sCAAsC,oBAAoB,CAAC;AACxE,eAAO,MAAM,wCAAwC,sBAAsB,CAAC;AAC5E,eAAO,MAAM,wCAAwC,sBAAsB,CAAC;AAC5E,eAAO,MAAM,iCAAiC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"sdkConstants.d.ts","sourceRoot":"","sources":["../src/sdkConstants.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,yBAAyB,qBAAqB,CAAC;AAC5D,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AAKzD,eAAO,MAAM,yBAAyB,kCAAkC,CAAC;AACzE,eAAO,MAAM,kCAAkC,gBAAgB,CAAC;AAChE,eAAO,MAAM,8BAA8B,YAAY,CAAC;AACxD,eAAO,MAAM,wCAAwC,sBAAsB,CAAC;AAC5E,eAAO,MAAM,sCAAsC,oBAAoB,CAAC;AACxE,eAAO,MAAM,sCAAsC,oBAAoB,CAAC;AACxE,eAAO,MAAM,wCAAwC,sBAAsB,CAAC;AAC5E,eAAO,MAAM,wCAAwC,sBAAsB,CAAC;AAC5E,eAAO,MAAM,iCAAiC,eAAe,CAAC;AAY9D,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAOlE,eAAO,MAAM,uBAAuB,mBAAmB,CAAC;AAKxD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,0BAA0B,OAAQ,CAAC"}
|
package/dist/sdkConstants.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// The rule for this file: nothing lands here unless the SDK reads it at runtime,
|
|
12
12
|
// and it imports nothing.
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.CUSTOM_CODE_MAX_LOG_LENGTH = exports.CUSTOM_CODE_MAX_LOGS = exports.CUSTOM_CODE_HEALTH_TOOL = exports.CUSTOM_CODE_BROKER_PATH_SEND_FILE = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_DELETE = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_CREATE = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_LIST = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_READ = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_SEARCH = exports.CUSTOM_CODE_BROKER_PATH_SECRET = exports.CUSTOM_CODE_BROKER_PATH_CONNECTION = exports.CUSTOM_CODE_BROKER_ORIGIN = exports.CUSTOM_CODE_BINDING_BROKER = exports.CUSTOM_CODE_BINDING_TOKEN = void 0;
|
|
14
|
+
exports.CUSTOM_CODE_MAX_LOG_LENGTH = exports.CUSTOM_CODE_MAX_LOGS = exports.CUSTOM_CODE_HEALTH_TOOL = exports.CUSTOM_CODE_BINDING_VERSION = exports.CUSTOM_CODE_BROKER_PATH_SEND_FILE = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_DELETE = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_CREATE = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_LIST = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_READ = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_SEARCH = exports.CUSTOM_CODE_BROKER_PATH_SECRET = exports.CUSTOM_CODE_BROKER_PATH_CONNECTION = exports.CUSTOM_CODE_BROKER_ORIGIN = exports.CUSTOM_CODE_BINDING_BROKER = exports.CUSTOM_CODE_BINDING_TOKEN = void 0;
|
|
15
15
|
// Bindings injected into every user script at upload time. The token is a
|
|
16
16
|
// secret_text binding rotated on each publish; the broker is a service binding.
|
|
17
17
|
// Names are part of the SDK's contract with the script, so they can't be
|
|
@@ -30,6 +30,17 @@ exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_LIST = '/resources/list';
|
|
|
30
30
|
exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_CREATE = '/resources/create';
|
|
31
31
|
exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_DELETE = '/resources/delete';
|
|
32
32
|
exports.CUSTOM_CODE_BROKER_PATH_SEND_FILE = '/send-file';
|
|
33
|
+
// Injected at upload time and echoed back by the health probe below. Uploading a
|
|
34
|
+
// script into the dispatch namespace is not read-your-writes: dispatching to the
|
|
35
|
+
// name immediately afterwards can still reach the previous edition. Tool names
|
|
36
|
+
// alone cannot tell the two apart when a deploy does not rename anything, so the
|
|
37
|
+
// script carries the digest of the bytes it was uploaded from and the publish
|
|
38
|
+
// pipeline waits until the edition answering is the one it just wrote.
|
|
39
|
+
//
|
|
40
|
+
// The bytes rather than the version id: a draft is re-uploaded in place, so its
|
|
41
|
+
// id is the same string across every edit and could never separate this upload
|
|
42
|
+
// from the one before it.
|
|
43
|
+
exports.CUSTOM_CODE_BINDING_VERSION = 'GANJU_SCRIPT_VERSION';
|
|
33
44
|
// The reserved tool name the publish pipeline calls against a freshly uploaded
|
|
34
45
|
// script to ask which tools it actually exports — which is what turns "the
|
|
35
46
|
// manifest declares lookup-order but the code exports lookupOrder" from a
|
package/package.json
CHANGED
package/src/cliConstants.ts
CHANGED
|
@@ -23,13 +23,27 @@ export const CLI_OAUTH_CLIENT_NAME = 'Ganju CLI';
|
|
|
23
23
|
export const CLI_OAUTH_REDIRECT_PATH = '/callback';
|
|
24
24
|
export const CLI_OAUTH_REDIRECT_PORTS = [8976, 8977, 8978, 8979, 8980];
|
|
25
25
|
|
|
26
|
+
// What the API requires before a bearer token may act on the control plane —
|
|
27
|
+
// publish code, read and rotate secrets, change billing. Lives here because the
|
|
28
|
+
// CLI is the client that asks for it; the API's own copy is the re-export in
|
|
29
|
+
// `constants.ts`, so the string the CLI requests and the string the middleware
|
|
30
|
+
// demands cannot drift apart.
|
|
31
|
+
export const CONTROL_PLANE_SCOPE = 'ganju:manage';
|
|
32
|
+
|
|
26
33
|
// `offline_access` is what mints the refresh token; without it a CLI session
|
|
27
34
|
// would end an hour after login.
|
|
35
|
+
//
|
|
36
|
+
// An MCP client reads the discovery document to decide what to ask for, and
|
|
37
|
+
// that document does not list `ganju:manage` — so a token minted for someone's
|
|
38
|
+
// MCP server can reach that server and nothing else, while this one can deploy.
|
|
39
|
+
// The consent screen names the scope, which is the point: deploying code as
|
|
40
|
+
// someone is worth showing them.
|
|
28
41
|
export const CLI_OAUTH_SCOPES = [
|
|
29
42
|
'openid',
|
|
30
43
|
'profile',
|
|
31
44
|
'email',
|
|
32
|
-
'offline_access'
|
|
45
|
+
'offline_access',
|
|
46
|
+
CONTROL_PLANE_SCOPE
|
|
33
47
|
];
|
|
34
48
|
|
|
35
49
|
// Refresh this far before the access token actually expires, so a long command
|
package/src/constants.ts
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
CLI_OAUTH_REDIRECT_PATH,
|
|
4
4
|
CLI_OAUTH_REDIRECT_PORTS,
|
|
5
5
|
CLI_OAUTH_SCOPES,
|
|
6
|
+
CONTROL_PLANE_SCOPE,
|
|
6
7
|
CLI_TOKEN_REFRESH_SKEW_SECONDS,
|
|
7
8
|
CUSTOM_CODE_SDK_SPECIFIER,
|
|
8
9
|
CUSTOM_CODE_MAX_BUNDLE_BYTES,
|
|
@@ -11,6 +12,7 @@ import {
|
|
|
11
12
|
import {
|
|
12
13
|
CUSTOM_CODE_BINDING_TOKEN,
|
|
13
14
|
CUSTOM_CODE_BINDING_BROKER,
|
|
15
|
+
CUSTOM_CODE_BINDING_VERSION,
|
|
14
16
|
CUSTOM_CODE_BROKER_ORIGIN,
|
|
15
17
|
CUSTOM_CODE_BROKER_PATH_CONNECTION,
|
|
16
18
|
CUSTOM_CODE_BROKER_PATH_SECRET,
|
|
@@ -1451,6 +1453,16 @@ const CUSTOM_CODE_COMPATIBILITY_DATE = '2025-11-17';
|
|
|
1451
1453
|
// tighter than our own workers' 30s — this is the technical cap that bounds
|
|
1452
1454
|
// what one adversarial call can cost us, so an infinite loop in a customer's
|
|
1453
1455
|
// tool is billed as five seconds rather than as whatever it wanted.
|
|
1456
|
+
// How long publish waits for the edition it just uploaded to be the one the
|
|
1457
|
+
// dispatcher answers with, and how often it asks.
|
|
1458
|
+
//
|
|
1459
|
+
// Bounded rather than open-ended because this runs inside the publish request:
|
|
1460
|
+
// past this, publishing would be a request nobody waits out. Exceeding it is
|
|
1461
|
+
// reported as "try again" rather than published, which is the safe direction —
|
|
1462
|
+
// the alternative is advertising tools backed by a script that is not there yet.
|
|
1463
|
+
const CUSTOM_CODE_SMOKE_TIMEOUT_MS = 20_000;
|
|
1464
|
+
const CUSTOM_CODE_SMOKE_INTERVAL_MS = 1_000;
|
|
1465
|
+
|
|
1454
1466
|
const CUSTOM_CODE_SCRIPT_CPU_MS = 5_000;
|
|
1455
1467
|
|
|
1456
1468
|
// The ctx.log() caps also live in ./sdkConstants — the buffer that enforces them
|
|
@@ -1623,6 +1635,21 @@ const OAUTH_SCOPES_SUPPORTED = ['openid', 'profile', 'email', 'offline_access'];
|
|
|
1623
1635
|
const MCP_SCOPE_READ = 'mcp:read';
|
|
1624
1636
|
const ARTIFACT_SCOPE_PREFIX = 'artifact:';
|
|
1625
1637
|
|
|
1638
|
+
// `CONTROL_PLANE_SCOPE` (defined in ./cliConstants, re-exported below) is what
|
|
1639
|
+
// a bearer token needs before it may act as the user on the control plane —
|
|
1640
|
+
// publish code, read and rotate secrets, change billing.
|
|
1641
|
+
//
|
|
1642
|
+
// Access tokens are minted for MCP clients too: a customer who connects Claude
|
|
1643
|
+
// Desktop to one of their MCP servers hands it a token for their own account,
|
|
1644
|
+
// and `/oauth2/userinfo` will happily confirm that it is theirs. Without a scope
|
|
1645
|
+
// that separates the two, "this token belongs to the user" would be the same
|
|
1646
|
+
// sentence as "this token may deploy code as the user", and connecting an MCP
|
|
1647
|
+
// client would silently be an act of full delegation.
|
|
1648
|
+
//
|
|
1649
|
+
// Deliberately outside OAUTH_SCOPES_SUPPORTED: it is allowlisted on the provider
|
|
1650
|
+
// so the CLI can request it, and left out of discovery, which is what an MCP
|
|
1651
|
+
// client reads to decide what to ask for.
|
|
1652
|
+
|
|
1626
1653
|
// The CLI signs in as a public OAuth client through a loopback redirect
|
|
1627
1654
|
// (RFC 8252) — the flow `wrangler`, `gh` and `vercel` all use. It registers
|
|
1628
1655
|
// itself through RFC 7591 dynamic registration on first login rather than
|
|
@@ -2458,6 +2485,7 @@ export const constants = {
|
|
|
2458
2485
|
OUTPUT_SCHEMA_NOT_OBJECT_MESSAGE,
|
|
2459
2486
|
CUSTOM_CODE_BINDING_TOKEN,
|
|
2460
2487
|
CUSTOM_CODE_BINDING_BROKER,
|
|
2488
|
+
CUSTOM_CODE_BINDING_VERSION,
|
|
2461
2489
|
CUSTOM_CODE_BROKER_ORIGIN,
|
|
2462
2490
|
CUSTOM_CODE_BROKER_PATH_CONNECTION,
|
|
2463
2491
|
CUSTOM_CODE_BROKER_PATH_SECRET,
|
|
@@ -2478,6 +2506,8 @@ export const constants = {
|
|
|
2478
2506
|
CUSTOM_CODE_BROKER_SERVICE_ENV,
|
|
2479
2507
|
CUSTOM_CODE_COMPATIBILITY_DATE,
|
|
2480
2508
|
CUSTOM_CODE_SCRIPT_CPU_MS,
|
|
2509
|
+
CUSTOM_CODE_SMOKE_TIMEOUT_MS,
|
|
2510
|
+
CUSTOM_CODE_SMOKE_INTERVAL_MS,
|
|
2481
2511
|
CUSTOM_CODE_MAX_LOGS,
|
|
2482
2512
|
CUSTOM_CODE_MAX_LOG_LENGTH,
|
|
2483
2513
|
CUSTOM_CODE_SEND_FILE_TARGET_GMAIL,
|
|
@@ -2524,6 +2554,7 @@ export const constants = {
|
|
|
2524
2554
|
OAUTH_SCOPES_SUPPORTED,
|
|
2525
2555
|
MCP_SCOPE_READ,
|
|
2526
2556
|
ARTIFACT_SCOPE_PREFIX,
|
|
2557
|
+
CONTROL_PLANE_SCOPE,
|
|
2527
2558
|
CLI_OAUTH_CLIENT_NAME,
|
|
2528
2559
|
CLI_OAUTH_REDIRECT_PATH,
|
|
2529
2560
|
CLI_OAUTH_REDIRECT_PORTS,
|
package/src/sdkConstants.ts
CHANGED
|
@@ -30,6 +30,18 @@ export const CUSTOM_CODE_BROKER_PATH_RESOURCES_CREATE = '/resources/create';
|
|
|
30
30
|
export const CUSTOM_CODE_BROKER_PATH_RESOURCES_DELETE = '/resources/delete';
|
|
31
31
|
export const CUSTOM_CODE_BROKER_PATH_SEND_FILE = '/send-file';
|
|
32
32
|
|
|
33
|
+
// Injected at upload time and echoed back by the health probe below. Uploading a
|
|
34
|
+
// script into the dispatch namespace is not read-your-writes: dispatching to the
|
|
35
|
+
// name immediately afterwards can still reach the previous edition. Tool names
|
|
36
|
+
// alone cannot tell the two apart when a deploy does not rename anything, so the
|
|
37
|
+
// script carries the digest of the bytes it was uploaded from and the publish
|
|
38
|
+
// pipeline waits until the edition answering is the one it just wrote.
|
|
39
|
+
//
|
|
40
|
+
// The bytes rather than the version id: a draft is re-uploaded in place, so its
|
|
41
|
+
// id is the same string across every edit and could never separate this upload
|
|
42
|
+
// from the one before it.
|
|
43
|
+
export const CUSTOM_CODE_BINDING_VERSION = 'GANJU_SCRIPT_VERSION';
|
|
44
|
+
|
|
33
45
|
// The reserved tool name the publish pipeline calls against a freshly uploaded
|
|
34
46
|
// script to ask which tools it actually exports — which is what turns "the
|
|
35
47
|
// manifest declares lookup-order but the code exports lookupOrder" from a
|