@noodleseed/one 0.26.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/mcp-apps.d.ts.map +1 -1
- package/dist/commands/mcp-apps.js +18 -1
- package/dist/commands/mcp-apps.js.map +1 -1
- package/dist/react-widget-build.js +28 -5
- package/dist/react-widget-build.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.d.ts +10 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.d.ts.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +70 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/index.js +7 -2
- package/node_modules/@noodle-borg/agent-kit/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +25 -3
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js +20 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.d.ts +1 -0
- package/node_modules/@noodle-borg/compiler/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.js +1 -0
- package/node_modules/@noodle-borg/compiler/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/csp-origins.d.ts +40 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/csp-origins.d.ts.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/csp-origins.js +92 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/csp-origins.js.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +6 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
- package/node_modules/@noodle-borg/module/dist/contract.d.ts +7 -0
- package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
- package/node_modules/@noodle-borg/module/dist/contract.js +148 -0
- package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/github/builder-runner.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/github/builder-runner.js +8 -1
- package/node_modules/@noodle-borg/service/dist/github/builder-runner.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/github/fast-lane-classifier.d.ts +5 -4
- package/node_modules/@noodle-borg/service/dist/github/fast-lane-classifier.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/github/fast-lane-classifier.js +21 -11
- package/node_modules/@noodle-borg/service/dist/github/fast-lane-classifier.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/main.js +35 -1
- package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.d.ts +17 -0
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.js +46 -0
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/options.d.ts +11 -1
- package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts +3 -1
- package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-helpers.js +8 -2
- package/node_modules/@noodle-borg/service/dist/registry-helpers.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.d.ts +3 -1
- package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.js +2 -2
- package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/apps.d.ts +3 -2
- package/node_modules/@noodle-borg/service/dist/routes/apps.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/apps.js +4 -4
- package/node_modules/@noodle-borg/service/dist/routes/apps.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +20 -4
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts +3 -2
- package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployments.js +4 -4
- package/node_modules/@noodle-borg/service/dist/routes/deployments.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/diagnostics.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js +8 -4
- package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/endpoint-enrichment.d.ts +6 -3
- package/node_modules/@noodle-borg/service/dist/routes/endpoint-enrichment.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/endpoint-enrichment.js +10 -6
- package/node_modules/@noodle-borg/service/dist/routes/endpoint-enrichment.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/envs.d.ts +3 -2
- package/node_modules/@noodle-borg/service/dist/routes/envs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/envs.js +4 -4
- package/node_modules/@noodle-borg/service/dist/routes/envs.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.js +6 -6
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/rollback.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/rollback.js +3 -1
- package/node_modules/@noodle-borg/service/dist/routes/rollback.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.js +26 -59
- package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.js +36 -52
- package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +7 -8
- package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.js +60 -62
- package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
- package/package.json +2 -2
|
@@ -3,7 +3,7 @@ import { sendContract } from './apps.js';
|
|
|
3
3
|
import { DeploymentResponseSchema } from './contracts.js';
|
|
4
4
|
import { authorizeControlPlane, authorizeTenantControl } from './control-plane.js';
|
|
5
5
|
import { withEndpointUrl } from './endpoint-enrichment.js';
|
|
6
|
-
export async function handleDeployments(req, res, registry, gate, controlPlane, ref, url, endpointBase) {
|
|
6
|
+
export async function handleDeployments(req, res, registry, gate, controlPlane, ref, url, endpointBase, endpointOptions = {}) {
|
|
7
7
|
const identity = await authorizeControlPlane(req, res, gate, { requireIdentity: true });
|
|
8
8
|
if (identity === false)
|
|
9
9
|
return;
|
|
@@ -24,7 +24,7 @@ export async function handleDeployments(req, res, registry, gate, controlPlane,
|
|
|
24
24
|
});
|
|
25
25
|
return sendJson(res, 200, {
|
|
26
26
|
ok: true,
|
|
27
|
-
deployments: deployments.map((record) => withEndpointUrl(record, endpointBase)),
|
|
27
|
+
deployments: deployments.map((record) => withEndpointUrl(record, endpointBase, endpointOptions)),
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
catch (error) {
|
|
@@ -38,7 +38,7 @@ export async function handleDeployments(req, res, registry, gate, controlPlane,
|
|
|
38
38
|
* existence must never leak. Archived deployments ARE returned (with `archivedAt` set): inspecting
|
|
39
39
|
* history, including an archived deployment, is the point of this lookup.
|
|
40
40
|
*/
|
|
41
|
-
export async function handleDeploymentItem(req, res, registry, gate, controlPlane, ref, endpointBase) {
|
|
41
|
+
export async function handleDeploymentItem(req, res, registry, gate, controlPlane, ref, endpointBase, endpointOptions = {}) {
|
|
42
42
|
const identity = await authorizeTenantControl(req, res, gate, controlPlane, ref.org);
|
|
43
43
|
if (identity === false)
|
|
44
44
|
return;
|
|
@@ -51,7 +51,7 @@ export async function handleDeploymentItem(req, res, registry, gate, controlPlan
|
|
|
51
51
|
}
|
|
52
52
|
if (deployment === undefined)
|
|
53
53
|
return sendJson(res, 404, { error: 'unknown deployment' });
|
|
54
|
-
const enriched = withEndpointUrl(deployment, endpointBase);
|
|
54
|
+
const enriched = withEndpointUrl(deployment, endpointBase, endpointOptions);
|
|
55
55
|
return sendContract(res, () => DeploymentResponseSchema.parse({ ok: true, data: enriched }));
|
|
56
56
|
}
|
|
57
57
|
export async function handleAuditEvents(req, res, gate, controlPlane, audit, ref, url) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployments.js","sourceRoot":"","sources":["../../src/routes/deployments.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI1D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,
|
|
1
|
+
{"version":3,"file":"deployments.js","sourceRoot":"","sources":["../../src/routes/deployments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/routes/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGhE,wBAAsB,aAAa,CACjC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,cAAc,EACpB,YAAY,EAAE,iBAAiB,EAC/B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/routes/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGhE,wBAAsB,aAAa,CACjC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,cAAc,EACpB,YAAY,EAAE,iBAAiB,EAC/B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,cAAc,EACpB,YAAY,EAAE,iBAAiB,EAC/B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAaf"}
|
|
@@ -4,7 +4,9 @@ export async function handleInspect(req, res, registry, gate, controlPlane, tena
|
|
|
4
4
|
const allowed = await authorizeTenant(req, res, gate, controlPlane, tenant.org);
|
|
5
5
|
if (!allowed)
|
|
6
6
|
return;
|
|
7
|
-
const body = await inspectDeployment(registry, tenant, options.publicBaseUrl ?? baseFromRequest(req, options.tls ?? {})
|
|
7
|
+
const body = await inspectDeployment(registry, tenant, options.publicBaseUrl ?? baseFromRequest(req, options.tls ?? {}), options.mcpPublicRouting?.publicBaseDomain !== undefined
|
|
8
|
+
? { publicBaseDomain: options.mcpPublicRouting.publicBaseDomain }
|
|
9
|
+
: {});
|
|
8
10
|
if (body === undefined)
|
|
9
11
|
return sendJson(res, 404, { error: 'no active deployment' });
|
|
10
12
|
return sendJson(res, 200, body);
|
|
@@ -13,7 +15,9 @@ export async function handleHostedSmoke(req, res, registry, gate, controlPlane,
|
|
|
13
15
|
const allowed = await authorizeTenant(req, res, gate, controlPlane, tenant.org);
|
|
14
16
|
if (!allowed)
|
|
15
17
|
return;
|
|
16
|
-
const inspected = await inspectDeployment(registry, tenant, options.publicBaseUrl ?? baseFromRequest(req, options.tls ?? {})
|
|
18
|
+
const inspected = await inspectDeployment(registry, tenant, options.publicBaseUrl ?? baseFromRequest(req, options.tls ?? {}), options.mcpPublicRouting?.publicBaseDomain !== undefined
|
|
19
|
+
? { publicBaseDomain: options.mcpPublicRouting.publicBaseDomain }
|
|
20
|
+
: {});
|
|
17
21
|
if (inspected === undefined)
|
|
18
22
|
return sendJson(res, 404, { error: 'no active deployment' });
|
|
19
23
|
return sendJson(res, 200, smokeBody(inspected));
|
|
@@ -29,8 +33,8 @@ async function authorizeTenant(req, res, gate, controlPlane, org) {
|
|
|
29
33
|
sendJson(res, 403, { error: 'forbidden' });
|
|
30
34
|
return false;
|
|
31
35
|
}
|
|
32
|
-
async function inspectDeployment(registry, tenant, baseUrl) {
|
|
33
|
-
const status = await registry.getStatus(tenant, baseUrl);
|
|
36
|
+
async function inspectDeployment(registry, tenant, baseUrl, endpointOptions = {}) {
|
|
37
|
+
const status = await registry.getStatus(tenant, baseUrl, undefined, endpointOptions);
|
|
34
38
|
if (status === undefined)
|
|
35
39
|
return undefined;
|
|
36
40
|
const target = await registry.getActiveByTenant(tenant).catch(() => undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/routes/diagnostics.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAoB,EACpB,GAAmB,EACnB,QAAwB,EACxB,IAAoB,EACpB,YAA+B,EAC/B,MAAiB,EACjB,OAAuB;IAEvB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAChF,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAClC,QAAQ,EACR,MAAM,EACN,OAAO,CAAC,aAAa,IAAI,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/routes/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,11 @@ import type { IncomingMessage } from 'node:http';
|
|
|
10
10
|
import type { AppSummary, DeploymentSummary, EnvSummary } from '../store.js';
|
|
11
11
|
/** Per-request endpoint base: explicit `publicBaseUrl` wins, else the request's own origin. */
|
|
12
12
|
export type ResolveEndpointBase = (req: IncomingMessage) => string;
|
|
13
|
+
export interface EndpointUrlOptions {
|
|
14
|
+
readonly publicBaseDomain?: string;
|
|
15
|
+
}
|
|
13
16
|
/** Stamp `endpointUrl` onto one deployment summary. */
|
|
14
|
-
export declare function withEndpointUrl(summary: DeploymentSummary, base: string): DeploymentSummary;
|
|
15
|
-
export declare function appWithEndpointUrl(app: AppSummary, base: string): AppSummary;
|
|
16
|
-
export declare function envWithEndpointUrl(env: EnvSummary, base: string): EnvSummary;
|
|
17
|
+
export declare function withEndpointUrl(summary: DeploymentSummary, base: string, options?: EndpointUrlOptions): DeploymentSummary;
|
|
18
|
+
export declare function appWithEndpointUrl(app: AppSummary, base: string, options?: EndpointUrlOptions): AppSummary;
|
|
19
|
+
export declare function envWithEndpointUrl(env: EnvSummary, base: string, options?: EndpointUrlOptions): EnvSummary;
|
|
17
20
|
//# sourceMappingURL=endpoint-enrichment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-enrichment.d.ts","sourceRoot":"","sources":["../../src/routes/endpoint-enrichment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7E,+FAA+F;AAC/F,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"endpoint-enrichment.d.ts","sourceRoot":"","sources":["../../src/routes/endpoint-enrichment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7E,+FAA+F;AAC/F,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,CAAC;AACnE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,uDAAuD;AACvD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAUnB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,kBAAuB,GAC/B,UAAU,CAIZ;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,kBAAuB,GAC/B,UAAU,CAIZ"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { tenantMcpUrl } from '../registry-helpers.js';
|
|
2
2
|
/** Stamp `endpointUrl` onto one deployment summary. */
|
|
3
|
-
export function withEndpointUrl(summary, base) {
|
|
3
|
+
export function withEndpointUrl(summary, base, options = {}) {
|
|
4
4
|
return {
|
|
5
5
|
...summary,
|
|
6
|
-
endpointUrl: tenantMcpUrl(base, { org: summary.orgSlug, app: summary.appSlug, env: summary.environment }, summary.serverVersion),
|
|
6
|
+
endpointUrl: tenantMcpUrl(base, { org: summary.orgSlug, app: summary.appSlug, env: summary.environment }, summary.serverVersion, options),
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
|
-
export function appWithEndpointUrl(app, base) {
|
|
10
|
-
return app.latest === undefined
|
|
9
|
+
export function appWithEndpointUrl(app, base, options = {}) {
|
|
10
|
+
return app.latest === undefined
|
|
11
|
+
? app
|
|
12
|
+
: { ...app, latest: withEndpointUrl(app.latest, base, options) };
|
|
11
13
|
}
|
|
12
|
-
export function envWithEndpointUrl(env, base) {
|
|
13
|
-
return env.latest === undefined
|
|
14
|
+
export function envWithEndpointUrl(env, base, options = {}) {
|
|
15
|
+
return env.latest === undefined
|
|
16
|
+
? env
|
|
17
|
+
: { ...env, latest: withEndpointUrl(env.latest, base, options) };
|
|
14
18
|
}
|
|
15
19
|
//# sourceMappingURL=endpoint-enrichment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-enrichment.js","sourceRoot":"","sources":["../../src/routes/endpoint-enrichment.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"endpoint-enrichment.js","sourceRoot":"","sources":["../../src/routes/endpoint-enrichment.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAStD,uDAAuD;AACvD,MAAM,UAAU,eAAe,CAC7B,OAA0B,EAC1B,IAAY,EACZ,UAA8B,EAAE;IAEhC,OAAO;QACL,GAAG,OAAO;QACV,WAAW,EAAE,YAAY,CACvB,IAAI,EACJ,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,EACxE,OAAO,CAAC,aAAa,EACrB,OAAO,CACR;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,GAAe,EACf,IAAY,EACZ,UAA8B,EAAE;IAEhC,OAAO,GAAG,CAAC,MAAM,KAAK,SAAS;QAC7B,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,GAAe,EACf,IAAY,EACZ,UAA8B,EAAE;IAEhC,OAAO,GAAG,CAAC,MAAM,KAAK,SAAS;QAC7B,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;AACrE,CAAC"}
|
|
@@ -10,13 +10,14 @@ import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
|
10
10
|
import type { DeployAuthGate } from '../auth/deploy-gate.js';
|
|
11
11
|
import type { ServerRegistry } from '../registry.js';
|
|
12
12
|
import type { ControlPlaneStore } from '../store.js';
|
|
13
|
+
import { type EndpointUrlOptions } from './endpoint-enrichment.js';
|
|
13
14
|
export declare function handleEnvs(req: IncomingMessage, res: ServerResponse, registry: ServerRegistry, gate: DeployAuthGate, controlPlane: ControlPlaneStore, ref: {
|
|
14
15
|
org: string;
|
|
15
16
|
app: string;
|
|
16
|
-
}, url: URL, endpointBase: string): Promise<void>;
|
|
17
|
+
}, url: URL, endpointBase: string, endpointOptions?: EndpointUrlOptions): Promise<void>;
|
|
17
18
|
export declare function handleEnv(req: IncomingMessage, res: ServerResponse, registry: ServerRegistry, gate: DeployAuthGate, controlPlane: ControlPlaneStore, ref: {
|
|
18
19
|
org: string;
|
|
19
20
|
app: string;
|
|
20
21
|
env: string;
|
|
21
|
-
}, endpointBase: string): Promise<void>;
|
|
22
|
+
}, endpointBase: string, endpointOptions?: EndpointUrlOptions): Promise<void>;
|
|
22
23
|
//# sourceMappingURL=envs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envs.d.ts","sourceRoot":"","sources":["../../src/routes/envs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"envs.d.ts","sourceRoot":"","sources":["../../src/routes/envs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,0BAA0B,CAAC;AAEvF,wBAAsB,UAAU,CAC9B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,cAAc,EACpB,YAAY,EAAE,iBAAiB,EAC/B,GAAG,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EACjC,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,MAAM,EACpB,eAAe,GAAE,kBAAuB,GACvC,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,cAAc,EACpB,YAAY,EAAE,iBAAiB,EAC/B,GAAG,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAC9C,YAAY,EAAE,MAAM,EACpB,eAAe,GAAE,kBAAuB,GACvC,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -3,7 +3,7 @@ import { sendContract } from './apps.js';
|
|
|
3
3
|
import { EnvResponseSchema, EnvsListResponseSchema } from './contracts.js';
|
|
4
4
|
import { authorizeTenantControl } from './control-plane.js';
|
|
5
5
|
import { envWithEndpointUrl } from './endpoint-enrichment.js';
|
|
6
|
-
export async function handleEnvs(req, res, registry, gate, controlPlane, ref, url, endpointBase) {
|
|
6
|
+
export async function handleEnvs(req, res, registry, gate, controlPlane, ref, url, endpointBase, endpointOptions = {}) {
|
|
7
7
|
const identity = await authorizeTenantControl(req, res, gate, controlPlane, ref.org);
|
|
8
8
|
if (identity === false)
|
|
9
9
|
return;
|
|
@@ -24,10 +24,10 @@ export async function handleEnvs(req, res, registry, gate, controlPlane, ref, ur
|
|
|
24
24
|
}
|
|
25
25
|
return sendContract(res, () => EnvsListResponseSchema.parse({
|
|
26
26
|
ok: true,
|
|
27
|
-
data: { envs: envs.map((env) => envWithEndpointUrl(env, endpointBase)) },
|
|
27
|
+
data: { envs: envs.map((env) => envWithEndpointUrl(env, endpointBase, endpointOptions)) },
|
|
28
28
|
}));
|
|
29
29
|
}
|
|
30
|
-
export async function handleEnv(req, res, registry, gate, controlPlane, ref, endpointBase) {
|
|
30
|
+
export async function handleEnv(req, res, registry, gate, controlPlane, ref, endpointBase, endpointOptions = {}) {
|
|
31
31
|
const identity = await authorizeTenantControl(req, res, gate, controlPlane, ref.org);
|
|
32
32
|
if (identity === false)
|
|
33
33
|
return;
|
|
@@ -40,7 +40,7 @@ export async function handleEnv(req, res, registry, gate, controlPlane, ref, end
|
|
|
40
40
|
}
|
|
41
41
|
if (env === undefined)
|
|
42
42
|
return sendJson(res, 404, { error: 'not found' });
|
|
43
|
-
const enriched = envWithEndpointUrl(env, endpointBase);
|
|
43
|
+
const enriched = envWithEndpointUrl(env, endpointBase, endpointOptions);
|
|
44
44
|
return sendContract(res, () => EnvResponseSchema.parse({ ok: true, data: enriched }));
|
|
45
45
|
}
|
|
46
46
|
//# sourceMappingURL=envs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envs.js","sourceRoot":"","sources":["../../src/routes/envs.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"envs.js","sourceRoot":"","sources":["../../src/routes/envs.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAA2B,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEvF,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAoB,EACpB,GAAmB,EACnB,QAAwB,EACxB,IAAoB,EACpB,YAA+B,EAC/B,GAAiC,EACjC,GAAQ,EACR,YAAoB,EACpB,kBAAsC,EAAE;IAExC,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACrF,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO;IAC/B,MAAM,eAAe,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC;IACpE,IAAI,IAA6D,CAAC;IAClE,IAAI,CAAC;QACH,iGAAiG;QACjG,iEAAiE;QACjE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QACzE,IAAI,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;YACvD,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAC5B,sBAAsB,CAAC,KAAK,CAAC;QAC3B,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,EAAE;KAC1F,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAoB,EACpB,GAAmB,EACnB,QAAwB,EACxB,IAAoB,EACpB,YAA+B,EAC/B,GAA8C,EAC9C,YAAoB,EACpB,kBAAsC,EAAE;IAExC,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACrF,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO;IAC/B,IAAI,GAA0D,CAAC;IAC/D,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IACxE,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -14,7 +14,7 @@ import type { TlsPosture } from '@noodle-borg/transport-http';
|
|
|
14
14
|
import type { DeployAuthGate } from '../auth/deploy-gate.js';
|
|
15
15
|
import type { ServerRegistry } from '../registry.js';
|
|
16
16
|
import type { ControlPlaneStore } from '../store.js';
|
|
17
|
-
import type { ResolveEndpointBase } from './endpoint-enrichment.js';
|
|
17
|
+
import type { EndpointUrlOptions, ResolveEndpointBase } from './endpoint-enrichment.js';
|
|
18
18
|
export interface ResourceReadDeps {
|
|
19
19
|
readonly registry: ServerRegistry;
|
|
20
20
|
readonly gate: DeployAuthGate;
|
|
@@ -24,6 +24,7 @@ export interface ResourceReadDeps {
|
|
|
24
24
|
readonly sendJson: (res: ServerResponse, status: number, body: unknown) => void;
|
|
25
25
|
readonly tls: TlsPosture;
|
|
26
26
|
readonly resolveEndpointBase: ResolveEndpointBase;
|
|
27
|
+
readonly endpointOptions?: EndpointUrlOptions;
|
|
27
28
|
}
|
|
28
29
|
/**
|
|
29
30
|
* Try the resource read routes; returns true when the request was handled (or a guard ended it).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-read-dispatch.d.ts","sourceRoot":"","sources":["../../src/routes/resource-read-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-read-dispatch.d.ts","sourceRoot":"","sources":["../../src/routes/resource-read-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAUxF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9E,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC;IAC/F,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChF,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE,kBAAkB,CAAC;CAC/C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,gBAAgB,GACrB,OAAO,CA2GT"}
|
|
@@ -7,14 +7,14 @@ import { parseAppItemPath, parseAppsPath, parseDeploymentItemPath, parseEnvItemP
|
|
|
7
7
|
* `orgRef` GET (org inspect) stays in `service.ts` beside its PATCH sibling, which shares the parse.
|
|
8
8
|
*/
|
|
9
9
|
export function dispatchResourceReads(req, res, url, deps) {
|
|
10
|
-
const { registry, gate, controlPlane, applySecurityHeaders, enforceHttps, sendJson, tls, resolveEndpointBase, } = deps;
|
|
10
|
+
const { registry, gate, controlPlane, applySecurityHeaders, enforceHttps, sendJson, tls, resolveEndpointBase, endpointOptions = {}, } = deps;
|
|
11
11
|
const endpointBase = resolveEndpointBase(req);
|
|
12
12
|
const appsRef = parseAppsPath(url.pathname);
|
|
13
13
|
if (appsRef !== undefined && req.method === 'GET') {
|
|
14
14
|
applySecurityHeaders(res, tls);
|
|
15
15
|
if (enforceHttps(req, res, tls))
|
|
16
16
|
return true;
|
|
17
|
-
handleApps(req, res, registry, gate, controlPlane, appsRef, url, endpointBase).catch(() => {
|
|
17
|
+
handleApps(req, res, registry, gate, controlPlane, appsRef, url, endpointBase, endpointOptions).catch(() => {
|
|
18
18
|
if (!res.headersSent)
|
|
19
19
|
sendJson(res, 500, { error: 'internal error' });
|
|
20
20
|
});
|
|
@@ -25,7 +25,7 @@ export function dispatchResourceReads(req, res, url, deps) {
|
|
|
25
25
|
applySecurityHeaders(res, tls);
|
|
26
26
|
if (enforceHttps(req, res, tls))
|
|
27
27
|
return true;
|
|
28
|
-
handleApp(req, res, registry, gate, controlPlane, appItemRef, endpointBase).catch(() => {
|
|
28
|
+
handleApp(req, res, registry, gate, controlPlane, appItemRef, endpointBase, endpointOptions).catch(() => {
|
|
29
29
|
if (!res.headersSent)
|
|
30
30
|
sendJson(res, 500, { error: 'internal error' });
|
|
31
31
|
});
|
|
@@ -36,7 +36,7 @@ export function dispatchResourceReads(req, res, url, deps) {
|
|
|
36
36
|
applySecurityHeaders(res, tls);
|
|
37
37
|
if (enforceHttps(req, res, tls))
|
|
38
38
|
return true;
|
|
39
|
-
handleEnvs(req, res, registry, gate, controlPlane, envsRef, url, endpointBase).catch(() => {
|
|
39
|
+
handleEnvs(req, res, registry, gate, controlPlane, envsRef, url, endpointBase, endpointOptions).catch(() => {
|
|
40
40
|
if (!res.headersSent)
|
|
41
41
|
sendJson(res, 500, { error: 'internal error' });
|
|
42
42
|
});
|
|
@@ -47,7 +47,7 @@ export function dispatchResourceReads(req, res, url, deps) {
|
|
|
47
47
|
applySecurityHeaders(res, tls);
|
|
48
48
|
if (enforceHttps(req, res, tls))
|
|
49
49
|
return true;
|
|
50
|
-
handleEnv(req, res, registry, gate, controlPlane, envItemRef, endpointBase).catch(() => {
|
|
50
|
+
handleEnv(req, res, registry, gate, controlPlane, envItemRef, endpointBase, endpointOptions).catch(() => {
|
|
51
51
|
if (!res.headersSent)
|
|
52
52
|
sendJson(res, 500, { error: 'internal error' });
|
|
53
53
|
});
|
|
@@ -58,7 +58,7 @@ export function dispatchResourceReads(req, res, url, deps) {
|
|
|
58
58
|
applySecurityHeaders(res, tls);
|
|
59
59
|
if (enforceHttps(req, res, tls))
|
|
60
60
|
return true;
|
|
61
|
-
handleDeploymentItem(req, res, registry, gate, controlPlane, deploymentItemRef, endpointBase).catch(() => {
|
|
61
|
+
handleDeploymentItem(req, res, registry, gate, controlPlane, deploymentItemRef, endpointBase, endpointOptions).catch(() => {
|
|
62
62
|
if (!res.headersSent)
|
|
63
63
|
sendJson(res, 500, { error: 'internal error' });
|
|
64
64
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-read-dispatch.js","sourceRoot":"","sources":["../../src/routes/resource-read-dispatch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,GACd,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-read-dispatch.js","sourceRoot":"","sources":["../../src/routes/resource-read-dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../src/routes/rollback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIhE,wBAAsB,cAAc,CAClC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,cAAc,EACpB,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../src/routes/rollback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIhE,wBAAsB,cAAc,CAClC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,cAAc,EACpB,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAqFf"}
|
|
@@ -40,7 +40,9 @@ export async function handleRollback(req, res, registry, gate, controlPlane, aud
|
|
|
40
40
|
if (!result.ok)
|
|
41
41
|
return sendJson(res, result.status, { ok: false, error: result.error });
|
|
42
42
|
const base = options.publicBaseUrl ?? baseFromRequest(req, options.tls ?? {});
|
|
43
|
-
const endpointUrl = tenantMcpUrl(base, tenant, result.serverVersion
|
|
43
|
+
const endpointUrl = tenantMcpUrl(base, tenant, result.serverVersion, options.mcpPublicRouting?.publicBaseDomain !== undefined
|
|
44
|
+
? { publicBaseDomain: options.mcpPublicRouting.publicBaseDomain }
|
|
45
|
+
: {});
|
|
44
46
|
await audit.emit({
|
|
45
47
|
eventType: 'deploy.rollback',
|
|
46
48
|
org: tenant.org,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/routes/rollback.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGzF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAoB,EACpB,GAAmB,EACnB,QAAwB,EACxB,IAAoB,EACpB,YAA+B,EAC/B,KAAgB,EAChB,OAAe,EACf,MAAiB,EACjB,OAAuB;IAEvB,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IACxF,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO;IAC/B,IAAI,CAAC,CAAC,MAAM,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QAClE,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IACD,4FAA4F;IAC5F,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3E,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,KAAK,CAAC,IAAI,CAAC;YACf,SAAS,EAAE,mBAAmB;YAC9B,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,cAAc;YAC1B,YAAY,EAAE,QAAQ,CAAC,OAAO;YAC9B,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,OAAO,EAAE,EAAE,UAAU,EAAE;SACxB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,iDAAiD,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAqD,CAAC;IAC1E,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjF,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACrE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IACpE,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACxF,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,IAAI,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/routes/rollback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,MAAM,EAAuB,MAAM,WAAW,CAAC;AAEjG,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createServer } from 'node:http';
|
|
2
2
|
import { createJwtVerifier } from '@noodle-borg/auth';
|
|
3
|
-
import {
|
|
3
|
+
import { parseLegacyTenantMcpPath, parsePublicTenantMcpUrl, } from '@noodle-borg/module';
|
|
4
4
|
import { SecretBox, staticMasterKeyProvider } from '@noodle-borg/runtime';
|
|
5
5
|
import { noopLogger } from '@noodle-borg/transport-http';
|
|
6
6
|
import { ALERT_EVALUATION_INTERVAL_MS, AlertEvaluator } from './alert-evaluator.js';
|
|
@@ -231,6 +231,7 @@ export async function serveService(options = {}) {
|
|
|
231
231
|
let resolvedAuthServerIssuer = options.authServerIssuer;
|
|
232
232
|
let registry;
|
|
233
233
|
let oauthStore;
|
|
234
|
+
const allowedMcpDomains = allowedMcpBaseDomains(options);
|
|
234
235
|
const rawCustomerVerifierFactory = createCustomerVerifierFactory({
|
|
235
236
|
allowInsecureLocalhost: options.customerVerifierAllowInsecureLocalhost === true,
|
|
236
237
|
...(options.customerVerifierFirebaseJwks !== undefined
|
|
@@ -263,8 +264,12 @@ export async function serveService(options = {}) {
|
|
|
263
264
|
store: oauthStore,
|
|
264
265
|
signer: options.oauth.signer,
|
|
265
266
|
google: options.oauth.google,
|
|
266
|
-
customerBridgeAuthForResource: async (resource) => registry !== undefined
|
|
267
|
-
|
|
267
|
+
customerBridgeAuthForResource: async (resource) => registry !== undefined
|
|
268
|
+
? bridgeAuthForResource(registry, resource, allowedMcpDomains)
|
|
269
|
+
: undefined,
|
|
270
|
+
managedSecretForResource: async (resource, name) => registry !== undefined
|
|
271
|
+
? managedSecretForResource(registry, resource, name, allowedMcpDomains)
|
|
272
|
+
: undefined,
|
|
268
273
|
verifyCustomerBridgeToken: async (auth, token) => {
|
|
269
274
|
const identity = await rawCustomerVerifierFactory(auth)(token, auth.projectId ?? '');
|
|
270
275
|
return identity === null ? null : { ...identity, scopes: identity.scopes ?? [] };
|
|
@@ -504,15 +509,8 @@ async function openCustomerCredential(secretBox, envelope) {
|
|
|
504
509
|
throw new Error('secret box is required for delegated credential');
|
|
505
510
|
return secretBox.open(envelope.sealed);
|
|
506
511
|
}
|
|
507
|
-
async function bridgeAuthForResource(registry, resource) {
|
|
508
|
-
|
|
509
|
-
try {
|
|
510
|
-
url = new URL(resource);
|
|
511
|
-
}
|
|
512
|
-
catch {
|
|
513
|
-
return undefined;
|
|
514
|
-
}
|
|
515
|
-
const tenant = tenantRefFromMcpPath(url.pathname);
|
|
512
|
+
async function bridgeAuthForResource(registry, resource, allowedBaseDomains) {
|
|
513
|
+
const tenant = tenantRefFromResource(resource, allowedBaseDomains);
|
|
516
514
|
if (tenant === undefined)
|
|
517
515
|
return undefined;
|
|
518
516
|
const target = tenant.serverVersion === undefined
|
|
@@ -524,7 +522,14 @@ async function bridgeAuthForResource(registry, resource) {
|
|
|
524
522
|
const variables = await registry.configStore.resolveConfigValues('variable', resolveConfigScope(tenant));
|
|
525
523
|
return resolveTenantBridgeAuthVariables(auth, variables);
|
|
526
524
|
}
|
|
527
|
-
async function managedSecretForResource(registry, resource, name) {
|
|
525
|
+
async function managedSecretForResource(registry, resource, name, allowedBaseDomains) {
|
|
526
|
+
const tenant = tenantRefFromResource(resource, allowedBaseDomains);
|
|
527
|
+
if (tenant === undefined)
|
|
528
|
+
return undefined;
|
|
529
|
+
const secrets = await registry.configStore.resolveConfigValues('secret', resolveConfigScope(tenant));
|
|
530
|
+
return secrets[name];
|
|
531
|
+
}
|
|
532
|
+
function tenantRefFromResource(resource, allowedBaseDomains) {
|
|
528
533
|
let url;
|
|
529
534
|
try {
|
|
530
535
|
url = new URL(resource);
|
|
@@ -532,52 +537,14 @@ async function managedSecretForResource(registry, resource, name) {
|
|
|
532
537
|
catch {
|
|
533
538
|
return undefined;
|
|
534
539
|
}
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
const secrets = await registry.configStore.resolveConfigValues('secret', resolveConfigScope(tenant));
|
|
539
|
-
return secrets[name];
|
|
540
|
+
return ((allowedBaseDomains.length > 0
|
|
541
|
+
? parsePublicTenantMcpUrl(resource, allowedBaseDomains)
|
|
542
|
+
: undefined) ?? parseLegacyTenantMcpPath(url.pathname));
|
|
540
543
|
}
|
|
541
|
-
function
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
return undefined;
|
|
547
|
-
return {
|
|
548
|
-
org: decodeURIComponent(envVersion[1]),
|
|
549
|
-
app: decodeURIComponent(envVersion[2]),
|
|
550
|
-
env: decodeURIComponent(envVersion[3]),
|
|
551
|
-
serverVersion,
|
|
552
|
-
};
|
|
553
|
-
}
|
|
554
|
-
const prodVersion = /^\/o\/([^/]+)\/([^/]+)\/([^/]+)\/mcp$/.exec(pathname);
|
|
555
|
-
if (prodVersion) {
|
|
556
|
-
const serverVersion = serverVersionFromPathSegment(decodeURIComponent(prodVersion[3]));
|
|
557
|
-
if (serverVersion !== undefined) {
|
|
558
|
-
return {
|
|
559
|
-
org: decodeURIComponent(prodVersion[1]),
|
|
560
|
-
app: decodeURIComponent(prodVersion[2]),
|
|
561
|
-
env: 'prod',
|
|
562
|
-
serverVersion,
|
|
563
|
-
};
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
const prod = /^\/o\/([^/]+)\/([^/]+)\/mcp$/.exec(pathname);
|
|
567
|
-
if (prod) {
|
|
568
|
-
return {
|
|
569
|
-
org: decodeURIComponent(prod[1]),
|
|
570
|
-
app: decodeURIComponent(prod[2]),
|
|
571
|
-
env: 'prod',
|
|
572
|
-
};
|
|
573
|
-
}
|
|
574
|
-
const env = /^\/o\/([^/]+)\/([^/]+)\/([^/]+)\/mcp$/.exec(pathname);
|
|
575
|
-
if (!env)
|
|
576
|
-
return undefined;
|
|
577
|
-
return {
|
|
578
|
-
org: decodeURIComponent(env[1]),
|
|
579
|
-
app: decodeURIComponent(env[2]),
|
|
580
|
-
env: decodeURIComponent(env[3]),
|
|
581
|
-
};
|
|
544
|
+
function allowedMcpBaseDomains(options) {
|
|
545
|
+
return (options.mcpPublicRouting?.allowedBaseDomains ??
|
|
546
|
+
(options.mcpPublicRouting?.publicBaseDomain !== undefined
|
|
547
|
+
? [options.mcpPublicRouting.publicBaseDomain]
|
|
548
|
+
: []));
|
|
582
549
|
}
|
|
583
550
|
//# sourceMappingURL=serve.js.map
|