libre-webui 0.19.6 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/backend/dist/db.d.ts.map +1 -1
- package/backend/dist/db.js +29 -0
- package/backend/dist/db.js.map +1 -1
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +12 -10
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/routes/work.d.ts.map +1 -1
- package/backend/dist/routes/work.js +138 -4
- package/backend/dist/routes/work.js.map +1 -1
- package/backend/dist/services/systemDiagnosticsService.d.ts +4 -3
- package/backend/dist/services/systemDiagnosticsService.d.ts.map +1 -1
- package/backend/dist/services/systemDiagnosticsService.js +35 -34
- package/backend/dist/services/systemDiagnosticsService.js.map +1 -1
- package/backend/dist/services/workAccessService.d.ts +15 -0
- package/backend/dist/services/workAccessService.d.ts.map +1 -0
- package/backend/dist/services/workAccessService.js +67 -0
- package/backend/dist/services/workAccessService.js.map +1 -0
- package/backend/dist/services/workAdminService.d.ts +67 -0
- package/backend/dist/services/workAdminService.d.ts.map +1 -0
- package/backend/dist/services/workAdminService.js +92 -0
- package/backend/dist/services/workAdminService.js.map +1 -0
- package/backend/dist/services/workKubernetesDriver.d.ts +74 -0
- package/backend/dist/services/workKubernetesDriver.d.ts.map +1 -0
- package/backend/dist/services/workKubernetesDriver.js +659 -0
- package/backend/dist/services/workKubernetesDriver.js.map +1 -0
- package/backend/dist/services/workPolicyService.d.ts +58 -0
- package/backend/dist/services/workPolicyService.d.ts.map +1 -0
- package/backend/dist/services/workPolicyService.js +249 -0
- package/backend/dist/services/workPolicyService.js.map +1 -0
- package/backend/dist/services/workPreviewProxyService.d.ts +7 -1
- package/backend/dist/services/workPreviewProxyService.d.ts.map +1 -1
- package/backend/dist/services/workPreviewProxyService.js +36 -8
- package/backend/dist/services/workPreviewProxyService.js.map +1 -1
- package/backend/dist/services/workRuntimeDriver.d.ts +166 -0
- package/backend/dist/services/workRuntimeDriver.d.ts.map +1 -0
- package/backend/dist/services/workRuntimeDriver.js +737 -0
- package/backend/dist/services/workRuntimeDriver.js.map +1 -0
- package/backend/dist/services/workRuntimeService.d.ts +60 -51
- package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
- package/backend/dist/services/workRuntimeService.js +310 -658
- package/backend/dist/services/workRuntimeService.js.map +1 -1
- package/backend/dist/services/workRuntimeShared.d.ts +83 -0
- package/backend/dist/services/workRuntimeShared.d.ts.map +1 -0
- package/backend/dist/services/workRuntimeShared.js +136 -0
- package/backend/dist/services/workRuntimeShared.js.map +1 -0
- package/backend/dist/services/workTaskService.d.ts +6 -1
- package/backend/dist/services/workTaskService.d.ts.map +1 -1
- package/backend/dist/services/workTaskService.js +18 -3
- package/backend/dist/services/workTaskService.js.map +1 -1
- package/backend/dist/services/workTerminalService.d.ts +2 -22
- package/backend/dist/services/workTerminalService.d.ts.map +1 -1
- package/backend/dist/services/workTerminalService.js +10 -127
- package/backend/dist/services/workTerminalService.js.map +1 -1
- package/backend/dist/types/work.d.ts +4 -0
- package/backend/dist/types/work.d.ts.map +1 -1
- package/backend/dist/utils/dockerEndpoint.d.ts +37 -0
- package/backend/dist/utils/dockerEndpoint.d.ts.map +1 -0
- package/backend/dist/utils/dockerEndpoint.js +72 -0
- package/backend/dist/utils/dockerEndpoint.js.map +1 -0
- package/backend/dist/workTerminalServer.d.ts.map +1 -1
- package/backend/dist/workTerminalServer.js +6 -5
- package/backend/dist/workTerminalServer.js.map +1 -1
- package/backend/package.json +2 -1
- package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
- package/frontend/dist/assets/index-Z4-oLWDC.js +2 -0
- package/frontend/dist/assets/index-tBUyDbHh.css +1 -0
- package/frontend/dist/index.html +11 -10
- package/frontend/dist/js/{ArtifactContainer-Dy_1KKWg.js → ArtifactContainer-DQRF4rh-.js} +1 -1
- package/frontend/dist/js/{ArtifactDemoPage-Big00RwH.js → ArtifactDemoPage-BOlB1lS-.js} +1 -1
- package/frontend/dist/js/{ArtifactSandboxFrame-C_S4j076.js → ArtifactSandboxFrame-DqU5GDrI.js} +2 -2
- package/frontend/dist/js/{ArtifactSlideOutPanel-B4-D3HkB.js → ArtifactSlideOutPanel-B0I-hCux.js} +1 -1
- package/frontend/dist/js/ChatPage-DyV0_oCt.js +16 -0
- package/frontend/dist/js/{FirstTimeSetup-C6YxrwR7.js → FirstTimeSetup-ButTmjp0.js} +1 -1
- package/frontend/dist/js/{GalleryPage-BtcPs7SO.js → GalleryPage-CaT63b-s.js} +1 -1
- package/frontend/dist/js/HomePage-BWyg3nHu.js +1 -0
- package/frontend/dist/js/{LibreClawPage-B14Go5Mn.js → LibreClawPage-DUd3tjQE.js} +1 -1
- package/frontend/dist/js/ModelSelector-COFcJnMJ.js +1 -0
- package/frontend/dist/js/{ModelsPage-Cc3L0ur8.js → ModelsPage-BRbTEXNL.js} +1 -1
- package/frontend/dist/js/{NotesPage-BwEMW-Z3.js → NotesPage-CTutDN50.js} +1 -1
- package/frontend/dist/js/{PersonasPage-e-CbTxP3.js → PersonasPage-C6iTMI3N.js} +2 -2
- package/frontend/dist/js/{PluginUsagePage-CvZMJJwv.js → PluginUsagePage-BQQ0-_PP.js} +1 -1
- package/frontend/dist/js/{RichMessageContent-DNl3_CIw.js → RichMessageContent-DPqeqxkQ.js} +1 -1
- package/frontend/dist/js/SettingsModal-C_1k75Kv.js +1 -0
- package/frontend/dist/js/SettingsToggle-bZ5W4CCf.js +1 -0
- package/frontend/dist/js/SystemPage-CUecyRPh.js +1 -0
- package/frontend/dist/js/UserManagementPage-CZ4KMOY9.js +1 -0
- package/frontend/dist/js/WorkPage-BqDcfXV6.js +5 -0
- package/frontend/dist/js/api-iCpOEijB.js +14 -0
- package/frontend/dist/js/{appStore-BpoXhleX.js → appStore-DTd6dWg2.js} +2 -2
- package/frontend/dist/js/{ar-ClMsdoTH.js → ar-C8YV99Y-.js} +1 -1
- package/frontend/dist/js/authStore-CuK4HUVh.js +4 -0
- package/frontend/dist/js/{bn-LyPol_AY.js → bn-C9dcls7_.js} +1 -1
- package/frontend/dist/js/chatStore-VNT0eHRB.js +2 -0
- package/frontend/dist/js/{config-CuXlcWP1.js → config--Xp9rZtJ.js} +1 -1
- package/frontend/dist/js/{cs-D98fZaKF.js → cs-DtL8VeeX.js} +1 -1
- package/frontend/dist/js/{da-M7ND0GQR.js → da-U3aNn1aF.js} +1 -1
- package/frontend/dist/js/{de-BV0q1kzb.js → de-DzuyeVpX.js} +1 -1
- package/frontend/dist/js/{es-C7FvsVoN.js → es-OiU8plii.js} +1 -1
- package/frontend/dist/js/{estree-BuWOCMW0.js → estree-BAQkciRX.js} +1 -1
- package/frontend/dist/js/{fr-5SloN0ok.js → fr-DDa3R8bs.js} +1 -1
- package/frontend/dist/js/{hi-C6VeRgeR.js → hi-D8Y0hl34.js} +1 -1
- package/frontend/dist/js/{html-D7tW7UvW.js → html-DxA-Bcvi.js} +1 -1
- package/frontend/dist/js/{i18n-CLd1FZPx.js → i18n-BqWNFeNo.js} +1 -1
- package/frontend/dist/js/{id-CkVp7Z1Z.js → id-BwcWtkBv.js} +1 -1
- package/frontend/dist/js/{is-DqxnBX4W.js → is-DzfQHQih.js} +1 -1
- package/frontend/dist/js/{it-CiW4_O5V.js → it-C5VU3_Je.js} +1 -1
- package/frontend/dist/js/{ja-BZ3Sdund.js → ja-DLhOhxvf.js} +1 -1
- package/frontend/dist/js/{ko-CS7LAhfJ.js → ko-CCKiyQD6.js} +1 -1
- package/frontend/dist/js/{markdown-CBSxWEtK.js → markdown-IsZpJ5ke.js} +1 -1
- package/frontend/dist/js/{messageCodeStyles-BlTi46wI.js → messageCodeStyles-CsV3zwyK.js} +1 -1
- package/frontend/dist/js/{ms-URvcYqgz.js → ms-CXXkPvWw.js} +1 -1
- package/frontend/dist/js/{nl-CQJpW7wK.js → nl-CA_e0Epl.js} +1 -1
- package/frontend/dist/js/{pl-DDMgPMAz.js → pl-BG32wdpx.js} +1 -1
- package/frontend/dist/js/{pt-JCqqmGn_.js → pt-BzRGWQXO.js} +1 -1
- package/frontend/dist/js/{ru-C_dwMbiK.js → ru-DBjn_Q-Q.js} +1 -1
- package/frontend/dist/js/{standalone-CaXys7q3.js → standalone-CK3b5Ktq.js} +1 -1
- package/frontend/dist/js/{sv-CW3c9NGx.js → sv-Hz_iRGdF.js} +1 -1
- package/frontend/dist/js/{th-9ARgClBr.js → th-MsyXlGH9.js} +1 -1
- package/frontend/dist/js/{tr-DNY5_DAg.js → tr-Cofmy_ef.js} +1 -1
- package/frontend/dist/js/{typescript-DQ5zi5zo.js → typescript-BMYmVohw.js} +1 -1
- package/frontend/dist/js/{ui-DFQiHo_k.js → ui-C2kNYwfG.js} +2 -2
- package/frontend/dist/js/{uk-XDh4_7IL.js → uk-B2o05LCR.js} +1 -1
- package/frontend/dist/js/{vi-BaoJBXnt.js → vi-CZh8uJgV.js} +1 -1
- package/frontend/dist/js/workApi-C33ZrPws.js +6 -0
- package/frontend/dist/js/{zh-B202vYJt.js → zh-DhKXi8ZA.js} +1 -1
- package/package.json +4 -3
- package/frontend/dist/assets/index-Cd0_AoYV.js +0 -23
- package/frontend/dist/assets/index-DtkGuqvC.css +0 -1
- package/frontend/dist/js/ChatPage-BkFd1iac.js +0 -16
- package/frontend/dist/js/HomePage-5PhpAt14.js +0 -1
- package/frontend/dist/js/ModelSelector-C1wN91tl.js +0 -1
- package/frontend/dist/js/SettingsModal-C8KJJEud.js +0 -1
- package/frontend/dist/js/SystemPage-8kEAS71H.js +0 -1
- package/frontend/dist/js/UserManagementPage-BSrZ0ucu.js +0 -1
- package/frontend/dist/js/WorkPage-spf92PVN.js +0 -5
- package/frontend/dist/js/api-MySpmAK8.js +0 -19
- package/frontend/dist/js/authStore-DmrydYuS.js +0 -3
- package/frontend/dist/js/chatStore-CWqfsOjc.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workKubernetesDriver.js","sourceRoot":"","sources":["../../src/services/workKubernetesDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ResolvedWorkRuntimePolicy } from './workRuntimeShared.js';
|
|
2
|
+
export interface WorkPolicyRecord {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
image?: string;
|
|
6
|
+
memoryLimit?: string;
|
|
7
|
+
cpuLimit?: string;
|
|
8
|
+
pidsLimit?: number;
|
|
9
|
+
networkDefault?: boolean;
|
|
10
|
+
workspaceSize?: string;
|
|
11
|
+
idleTimeoutMs?: number;
|
|
12
|
+
createdAt: number;
|
|
13
|
+
updatedAt: number;
|
|
14
|
+
}
|
|
15
|
+
export interface WorkPolicyInput {
|
|
16
|
+
name: string;
|
|
17
|
+
image?: string | null;
|
|
18
|
+
memoryLimit?: string | null;
|
|
19
|
+
cpuLimit?: string | null;
|
|
20
|
+
pidsLimit?: number | null;
|
|
21
|
+
networkDefault?: boolean | null;
|
|
22
|
+
workspaceSize?: string | null;
|
|
23
|
+
idleTimeoutMs?: number | null;
|
|
24
|
+
}
|
|
25
|
+
export declare function validateWorkPolicyInput(input: WorkPolicyInput): {
|
|
26
|
+
name: string;
|
|
27
|
+
image: string | null;
|
|
28
|
+
memoryLimit: string | null;
|
|
29
|
+
cpuLimit: string | null;
|
|
30
|
+
pidsLimit: number | null;
|
|
31
|
+
networkDefault: boolean | null;
|
|
32
|
+
workspaceSize: string | null;
|
|
33
|
+
idleTimeoutMs: number | null;
|
|
34
|
+
};
|
|
35
|
+
export declare class WorkPolicyService {
|
|
36
|
+
list(): WorkPolicyRecord[];
|
|
37
|
+
get(id: string): WorkPolicyRecord | undefined;
|
|
38
|
+
create(input: WorkPolicyInput): WorkPolicyRecord;
|
|
39
|
+
update(id: string, input: WorkPolicyInput): WorkPolicyRecord;
|
|
40
|
+
/**
|
|
41
|
+
* Delete a policy. Tasks that referenced it fall back to the global
|
|
42
|
+
* defaults (the SET NULL semantic); their fingerprint changes, so their
|
|
43
|
+
* sandbox is recreated with default limits on next use.
|
|
44
|
+
*/
|
|
45
|
+
remove(id: string): void;
|
|
46
|
+
/**
|
|
47
|
+
* The runtime configuration a task actually runs with. Resolution never
|
|
48
|
+
* fails the caller: a missing policy row (deleted mid-flight) or an
|
|
49
|
+
* unreachable database resolves to the global defaults — the hardened
|
|
50
|
+
* baseline — with a warning.
|
|
51
|
+
*/
|
|
52
|
+
resolve(policyId: string | null | undefined): ResolvedWorkRuntimePolicy;
|
|
53
|
+
/** Whether any policy enables idle-stop when the global knob is off. */
|
|
54
|
+
anyIdleTimeoutConfigured(): boolean;
|
|
55
|
+
}
|
|
56
|
+
export declare const workPolicyService: WorkPolicyService;
|
|
57
|
+
export default workPolicyService;
|
|
58
|
+
//# sourceMappingURL=workPolicyService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workPolicyService.d.ts","sourceRoot":"","sources":["../../src/services/workPolicyService.ts"],"names":[],"mappings":"AA+BA,OAAO,EACL,yBAAyB,EAI1B,MAAM,wBAAwB,CAAC;AAYhC,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAoCD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAwFA;AAED,qBAAa,iBAAiB;IAC5B,IAAI,IAAI,gBAAgB,EAAE,CAKzB;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAK5C;IAED,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CAuC/C;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,gBAAgB,CA4C3D;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAkBvB;IAED;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,yBAAyB,CAwBtE;IAED,wEAAwE;IACxE,wBAAwB,IAAI,OAAO,CAWlC;CACF;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC;eAC1C,iBAAiB"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Libre WebUI
|
|
3
|
+
* Copyright (C) 2025 Kroonen AI, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at:
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Named Work runtime policies: admin-defined presets (image, resource
|
|
19
|
+
* limits, workspace size, idle timeout, network default) a task can be
|
|
20
|
+
* created under. Every field is optional — a policy states only what it
|
|
21
|
+
* changes from the deployment's global runtime configuration, and
|
|
22
|
+
* resolution merges the two. Policies never weaken the sandbox hardening
|
|
23
|
+
* profile: the non-negotiable parts (non-root, read-only rootfs, dropped
|
|
24
|
+
* capabilities, network isolation) are not policy fields at all.
|
|
25
|
+
*/
|
|
26
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
27
|
+
import { getDatabase } from '../db.js';
|
|
28
|
+
import { createLogger } from '../utils/logger.js';
|
|
29
|
+
import { WorkRuntimeError, defaultRuntimePolicy, workRuntimeConfig, } from './workRuntimeShared.js';
|
|
30
|
+
const logger = createLogger('services:work-policy');
|
|
31
|
+
const NAME_MAX_LENGTH = 100;
|
|
32
|
+
const IMAGE_MAX_LENGTH = 300;
|
|
33
|
+
// Docker memory quantities: bytes, or one-letter binary suffixes with the
|
|
34
|
+
// two-letter spellings Docker also accepts (2g, 2gb, 2gib).
|
|
35
|
+
const MEMORY_PATTERN = /^\d+(?:\.\d+)?(?:[bkmg](?:i?b)?)?$/i;
|
|
36
|
+
// Kubernetes resource quantities for workspace PVCs.
|
|
37
|
+
const WORKSPACE_SIZE_PATTERN = /^\d+(?:\.\d+)?(?:Ki|Mi|Gi|Ti|K|M|G|T)?$/;
|
|
38
|
+
const invalid = (message) => new WorkRuntimeError(message, 400, 'WORK_POLICY_INVALID');
|
|
39
|
+
function mapPolicy(row) {
|
|
40
|
+
return {
|
|
41
|
+
id: row.id,
|
|
42
|
+
name: row.name,
|
|
43
|
+
image: row.image ?? undefined,
|
|
44
|
+
memoryLimit: row.memory_limit ?? undefined,
|
|
45
|
+
cpuLimit: row.cpu_limit ?? undefined,
|
|
46
|
+
pidsLimit: row.pids_limit ?? undefined,
|
|
47
|
+
networkDefault: row.network_default === null ? undefined : Boolean(row.network_default),
|
|
48
|
+
workspaceSize: row.workspace_size ?? undefined,
|
|
49
|
+
idleTimeoutMs: row.idle_timeout_ms ?? undefined,
|
|
50
|
+
createdAt: row.created_at,
|
|
51
|
+
updatedAt: row.updated_at,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export function validateWorkPolicyInput(input) {
|
|
55
|
+
const name = typeof input.name === 'string' ? input.name.trim() : '';
|
|
56
|
+
if (!name || name.length > NAME_MAX_LENGTH) {
|
|
57
|
+
throw invalid(`Policy name is required and must be at most ${NAME_MAX_LENGTH} characters.`);
|
|
58
|
+
}
|
|
59
|
+
const image = input.image === null || input.image === undefined || input.image === ''
|
|
60
|
+
? null
|
|
61
|
+
: String(input.image).trim();
|
|
62
|
+
if (image !== null && (image.length > IMAGE_MAX_LENGTH || /\s/.test(image))) {
|
|
63
|
+
throw invalid('Policy image must be a single image reference.');
|
|
64
|
+
}
|
|
65
|
+
const memoryLimit = input.memoryLimit === null ||
|
|
66
|
+
input.memoryLimit === undefined ||
|
|
67
|
+
input.memoryLimit === ''
|
|
68
|
+
? null
|
|
69
|
+
: String(input.memoryLimit).trim();
|
|
70
|
+
if (memoryLimit !== null && !MEMORY_PATTERN.test(memoryLimit)) {
|
|
71
|
+
throw invalid('Policy memory limit must look like 2g, 512m, or bytes.');
|
|
72
|
+
}
|
|
73
|
+
const cpuLimit = input.cpuLimit === null ||
|
|
74
|
+
input.cpuLimit === undefined ||
|
|
75
|
+
input.cpuLimit === ''
|
|
76
|
+
? null
|
|
77
|
+
: String(input.cpuLimit).trim();
|
|
78
|
+
if (cpuLimit !== null) {
|
|
79
|
+
const parsed = Number(cpuLimit);
|
|
80
|
+
if (!Number.isFinite(parsed) || parsed <= 0 || parsed > 256) {
|
|
81
|
+
throw invalid('Policy CPU limit must be a number between 0 and 256.');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const pidsLimit = input.pidsLimit === null || input.pidsLimit === undefined
|
|
85
|
+
? null
|
|
86
|
+
: Number(input.pidsLimit);
|
|
87
|
+
if (pidsLimit !== null &&
|
|
88
|
+
(!Number.isInteger(pidsLimit) || pidsLimit < 16 || pidsLimit > 100000)) {
|
|
89
|
+
throw invalid('Policy PID limit must be an integer between 16 and 100000.');
|
|
90
|
+
}
|
|
91
|
+
const networkDefault = input.networkDefault === null || input.networkDefault === undefined
|
|
92
|
+
? null
|
|
93
|
+
: Boolean(input.networkDefault);
|
|
94
|
+
const workspaceSize = input.workspaceSize === null ||
|
|
95
|
+
input.workspaceSize === undefined ||
|
|
96
|
+
input.workspaceSize === ''
|
|
97
|
+
? null
|
|
98
|
+
: String(input.workspaceSize).trim();
|
|
99
|
+
if (workspaceSize !== null && !WORKSPACE_SIZE_PATTERN.test(workspaceSize)) {
|
|
100
|
+
throw invalid('Policy workspace size must look like 5Gi or 500Mi.');
|
|
101
|
+
}
|
|
102
|
+
const idleTimeoutMs = input.idleTimeoutMs === null || input.idleTimeoutMs === undefined
|
|
103
|
+
? null
|
|
104
|
+
: Number(input.idleTimeoutMs);
|
|
105
|
+
if (idleTimeoutMs !== null &&
|
|
106
|
+
(!Number.isInteger(idleTimeoutMs) ||
|
|
107
|
+
idleTimeoutMs < 0 ||
|
|
108
|
+
idleTimeoutMs > 30 * 24 * 60 * 60 * 1000)) {
|
|
109
|
+
throw invalid('Policy idle timeout must be a non-negative duration in ms.');
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
name,
|
|
113
|
+
image,
|
|
114
|
+
memoryLimit,
|
|
115
|
+
cpuLimit,
|
|
116
|
+
pidsLimit,
|
|
117
|
+
networkDefault,
|
|
118
|
+
workspaceSize,
|
|
119
|
+
idleTimeoutMs,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
export class WorkPolicyService {
|
|
123
|
+
list() {
|
|
124
|
+
const rows = getDatabase()
|
|
125
|
+
.prepare('SELECT * FROM work_policies ORDER BY name ASC')
|
|
126
|
+
.all();
|
|
127
|
+
return rows.map(mapPolicy);
|
|
128
|
+
}
|
|
129
|
+
get(id) {
|
|
130
|
+
const row = getDatabase()
|
|
131
|
+
.prepare('SELECT * FROM work_policies WHERE id = ?')
|
|
132
|
+
.get(id);
|
|
133
|
+
return row ? mapPolicy(row) : undefined;
|
|
134
|
+
}
|
|
135
|
+
create(input) {
|
|
136
|
+
const fields = validateWorkPolicyInput(input);
|
|
137
|
+
const id = uuidv4();
|
|
138
|
+
const now = Date.now();
|
|
139
|
+
try {
|
|
140
|
+
getDatabase()
|
|
141
|
+
.prepare(`INSERT INTO work_policies (
|
|
142
|
+
id, name, image, memory_limit, cpu_limit, pids_limit,
|
|
143
|
+
network_default, workspace_size, idle_timeout_ms,
|
|
144
|
+
created_at, updated_at
|
|
145
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
146
|
+
.run(id, fields.name, fields.image, fields.memoryLimit, fields.cpuLimit, fields.pidsLimit, fields.networkDefault === null ? null : fields.networkDefault ? 1 : 0, fields.workspaceSize, fields.idleTimeoutMs, now, now);
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
if (/UNIQUE/.test(error instanceof Error ? error.message : '')) {
|
|
150
|
+
throw new WorkRuntimeError(`A Work policy named "${fields.name}" already exists.`, 409, 'WORK_POLICY_NAME_CONFLICT');
|
|
151
|
+
}
|
|
152
|
+
throw error;
|
|
153
|
+
}
|
|
154
|
+
const created = this.get(id);
|
|
155
|
+
if (!created)
|
|
156
|
+
throw new Error('Work policy was not created.');
|
|
157
|
+
return created;
|
|
158
|
+
}
|
|
159
|
+
update(id, input) {
|
|
160
|
+
const existing = this.get(id);
|
|
161
|
+
if (!existing) {
|
|
162
|
+
throw new WorkRuntimeError('This Work policy no longer exists.', 404, 'WORK_POLICY_NOT_FOUND');
|
|
163
|
+
}
|
|
164
|
+
const fields = validateWorkPolicyInput(input);
|
|
165
|
+
try {
|
|
166
|
+
getDatabase()
|
|
167
|
+
.prepare(`UPDATE work_policies SET
|
|
168
|
+
name = ?, image = ?, memory_limit = ?, cpu_limit = ?,
|
|
169
|
+
pids_limit = ?, network_default = ?, workspace_size = ?,
|
|
170
|
+
idle_timeout_ms = ?, updated_at = ?
|
|
171
|
+
WHERE id = ?`)
|
|
172
|
+
.run(fields.name, fields.image, fields.memoryLimit, fields.cpuLimit, fields.pidsLimit, fields.networkDefault === null ? null : fields.networkDefault ? 1 : 0, fields.workspaceSize, fields.idleTimeoutMs, Date.now(), id);
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
if (/UNIQUE/.test(error instanceof Error ? error.message : '')) {
|
|
176
|
+
throw new WorkRuntimeError(`A Work policy named "${fields.name}" already exists.`, 409, 'WORK_POLICY_NAME_CONFLICT');
|
|
177
|
+
}
|
|
178
|
+
throw error;
|
|
179
|
+
}
|
|
180
|
+
const updated = this.get(id);
|
|
181
|
+
if (!updated)
|
|
182
|
+
throw new Error('Work policy was not updated.');
|
|
183
|
+
return updated;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Delete a policy. Tasks that referenced it fall back to the global
|
|
187
|
+
* defaults (the SET NULL semantic); their fingerprint changes, so their
|
|
188
|
+
* sandbox is recreated with default limits on next use.
|
|
189
|
+
*/
|
|
190
|
+
remove(id) {
|
|
191
|
+
const db = getDatabase();
|
|
192
|
+
const transaction = db.transaction(() => {
|
|
193
|
+
db.prepare('UPDATE work_tasks SET policy_id = NULL WHERE policy_id = ?').run(id);
|
|
194
|
+
const result = db
|
|
195
|
+
.prepare('DELETE FROM work_policies WHERE id = ?')
|
|
196
|
+
.run(id);
|
|
197
|
+
if (result.changes === 0) {
|
|
198
|
+
throw new WorkRuntimeError('This Work policy no longer exists.', 404, 'WORK_POLICY_NOT_FOUND');
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
transaction();
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* The runtime configuration a task actually runs with. Resolution never
|
|
205
|
+
* fails the caller: a missing policy row (deleted mid-flight) or an
|
|
206
|
+
* unreachable database resolves to the global defaults — the hardened
|
|
207
|
+
* baseline — with a warning.
|
|
208
|
+
*/
|
|
209
|
+
resolve(policyId) {
|
|
210
|
+
if (!policyId)
|
|
211
|
+
return defaultRuntimePolicy;
|
|
212
|
+
let policy;
|
|
213
|
+
try {
|
|
214
|
+
policy = this.get(policyId);
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
logger.warn(`Could not resolve Work policy ${policyId}:`, error);
|
|
218
|
+
return defaultRuntimePolicy;
|
|
219
|
+
}
|
|
220
|
+
if (!policy) {
|
|
221
|
+
logger.warn(`Work policy ${policyId} no longer exists; using the global defaults.`);
|
|
222
|
+
return defaultRuntimePolicy;
|
|
223
|
+
}
|
|
224
|
+
return {
|
|
225
|
+
policyId: policy.id,
|
|
226
|
+
image: policy.image ?? workRuntimeConfig.image,
|
|
227
|
+
memoryLimit: policy.memoryLimit ?? workRuntimeConfig.memoryLimit,
|
|
228
|
+
cpuLimit: policy.cpuLimit ?? workRuntimeConfig.cpuLimit,
|
|
229
|
+
pidsLimit: policy.pidsLimit ?? workRuntimeConfig.pidsLimit,
|
|
230
|
+
idleTimeoutMs: policy.idleTimeoutMs ?? workRuntimeConfig.idleTimeoutMs,
|
|
231
|
+
workspaceSize: policy.workspaceSize,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
/** Whether any policy enables idle-stop when the global knob is off. */
|
|
235
|
+
anyIdleTimeoutConfigured() {
|
|
236
|
+
try {
|
|
237
|
+
const row = getDatabase()
|
|
238
|
+
.prepare('SELECT 1 FROM work_policies WHERE idle_timeout_ms > 0 LIMIT 1')
|
|
239
|
+
.get();
|
|
240
|
+
return row !== undefined;
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
export const workPolicyService = new WorkPolicyService();
|
|
248
|
+
export default workPolicyService;
|
|
249
|
+
//# sourceMappingURL=workPolicyService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workPolicyService.js","sourceRoot":"","sources":["../../src/services/workPolicyService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAEL,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,GAAG,YAAY,CAAC,sBAAsB,CAAC,CAAC;AAEpD,MAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,0EAA0E;AAC1E,4DAA4D;AAC5D,MAAM,cAAc,GAAG,qCAAqC,CAAC;AAC7D,qDAAqD;AACrD,MAAM,sBAAsB,GAAG,yCAAyC,CAAC;AAyCzE,MAAM,OAAO,GAAG,CAAC,OAAe,EAAoB,EAAE,CACpD,IAAI,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC;AAE5D,SAAS,SAAS,CAAC,GAAc;IAC/B,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;QAC7B,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,SAAS;QAC1C,QAAQ,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;QACpC,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;QACtC,cAAc,EACZ,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QACzE,aAAa,EAAE,GAAG,CAAC,cAAc,IAAI,SAAS;QAC9C,aAAa,EAAE,GAAG,CAAC,eAAe,IAAI,SAAS;QAC/C,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAsB;IAU5D,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QAC3C,MAAM,OAAO,CACX,+CAA+C,eAAe,cAAc,CAC7E,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GACT,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE;QACrE,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,OAAO,CAAC,gDAAgD,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,WAAW,GACf,KAAK,CAAC,WAAW,KAAK,IAAI;QAC1B,KAAK,CAAC,WAAW,KAAK,SAAS;QAC/B,KAAK,CAAC,WAAW,KAAK,EAAE;QACtB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,WAAW,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9D,MAAM,OAAO,CAAC,wDAAwD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,QAAQ,GACZ,KAAK,CAAC,QAAQ,KAAK,IAAI;QACvB,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC5B,KAAK,CAAC,QAAQ,KAAK,EAAE;QACnB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;YAC5D,MAAM,OAAO,CAAC,sDAAsD,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GACb,KAAK,CAAC,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;QACvD,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9B,IACE,SAAS,KAAK,IAAI;QAClB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,EAAE,IAAI,SAAS,GAAG,MAAO,CAAC,EACvE,CAAC;QACD,MAAM,OAAO,CAAC,4DAA4D,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,cAAc,GAClB,KAAK,CAAC,cAAc,KAAK,IAAI,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS;QACjE,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAEpC,MAAM,aAAa,GACjB,KAAK,CAAC,aAAa,KAAK,IAAI;QAC5B,KAAK,CAAC,aAAa,KAAK,SAAS;QACjC,KAAK,CAAC,aAAa,KAAK,EAAE;QACxB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,aAAa,KAAK,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1E,MAAM,OAAO,CAAC,oDAAoD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,aAAa,GACjB,KAAK,CAAC,aAAa,KAAK,IAAI,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS;QAC/D,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAClC,IACE,aAAa,KAAK,IAAI;QACtB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;YAC/B,aAAa,GAAG,CAAC;YACjB,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAC3C,CAAC;QACD,MAAM,OAAO,CAAC,4DAA4D,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO;QACL,IAAI;QACJ,KAAK;QACL,WAAW;QACX,QAAQ;QACR,SAAS;QACT,cAAc;QACd,aAAa;QACb,aAAa;KACd,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B,IAAI;QACF,MAAM,IAAI,GAAG,WAAW,EAAE;aACvB,OAAO,CAAC,+CAA+C,CAAC;aACxD,GAAG,EAAiB,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,MAAM,GAAG,GAAG,WAAW,EAAE;aACtB,OAAO,CAAC,0CAA0C,CAAC;aACnD,GAAG,CAAC,EAAE,CAA0B,CAAC;QACpC,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,KAAsB;QAC3B,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,WAAW,EAAE;iBACV,OAAO,CACN;;;;qDAI2C,CAC5C;iBACA,GAAG,CACF,EAAE,EACF,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrE,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,aAAa,EACpB,GAAG,EACH,GAAG,CACJ,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/D,MAAM,IAAI,gBAAgB,CACxB,wBAAwB,MAAM,CAAC,IAAI,mBAAmB,EACtD,GAAG,EACH,2BAA2B,CAC5B,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,KAAsB;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,gBAAgB,CACxB,oCAAoC,EACpC,GAAG,EACH,uBAAuB,CACxB,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,WAAW,EAAE;iBACV,OAAO,CACN;;;;uBAIa,CACd;iBACA,GAAG,CACF,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrE,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,aAAa,EACpB,IAAI,CAAC,GAAG,EAAE,EACV,EAAE,CACH,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/D,MAAM,IAAI,gBAAgB,CACxB,wBAAwB,MAAM,CAAC,IAAI,mBAAmB,EACtD,GAAG,EACH,2BAA2B,CAC5B,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAU;QACf,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACtC,EAAE,CAAC,OAAO,CACR,4DAA4D,CAC7D,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACV,MAAM,MAAM,GAAG,EAAE;iBACd,OAAO,CAAC,wCAAwC,CAAC;iBACjD,GAAG,CAAC,EAAE,CAAC,CAAC;YACX,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,gBAAgB,CACxB,oCAAoC,EACpC,GAAG,EACH,uBAAuB,CACxB,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QACH,WAAW,EAAE,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,QAAmC;QACzC,IAAI,CAAC,QAAQ;YAAE,OAAO,oBAAoB,CAAC;QAC3C,IAAI,MAAoC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,iCAAiC,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;YACjE,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CACT,eAAe,QAAQ,+CAA+C,CACvE,CAAC;YACF,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,iBAAiB,CAAC,KAAK;YAC9C,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,iBAAiB,CAAC,WAAW;YAChE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ;YACvD,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC,SAAS;YAC1D,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,iBAAiB,CAAC,aAAa;YACtE,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,wBAAwB;QACtB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,WAAW,EAAE;iBACtB,OAAO,CACN,+DAA+D,CAChE;iBACA,GAAG,EAAE,CAAC;YACT,OAAO,GAAG,KAAK,SAAS,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AACzD,eAAe,iBAAiB,CAAC"}
|
|
@@ -13,8 +13,14 @@ export declare class WorkPreviewProxyService {
|
|
|
13
13
|
private readonly lookupPreview;
|
|
14
14
|
private readonly upstreamHost;
|
|
15
15
|
constructor(secret?: string, lookupPreview?: PreviewRecordLookup, upstreamHost?: string);
|
|
16
|
+
private readonly taskUpstreamHosts;
|
|
16
17
|
private signature;
|
|
17
|
-
createPreviewUrl(taskId: string, port: number): string;
|
|
18
|
+
createPreviewUrl(taskId: string, port: number, upstreamHost?: string): string;
|
|
19
|
+
/** Drop a task's upstream override when its preview stops or it is removed. */
|
|
20
|
+
clearPreviewUpstream(taskId: string): void;
|
|
21
|
+
private activityListener?;
|
|
22
|
+
/** Observe authorized preview traffic, e.g. to feed an idle sweep. */
|
|
23
|
+
onPreviewActivity(listener: (taskId: string) => void): void;
|
|
18
24
|
private parseTarget;
|
|
19
25
|
private upstreamRequestHeaders;
|
|
20
26
|
private rewriteLocation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workPreviewProxyService.d.ts","sourceRoot":"","sources":["../../src/services/workPreviewProxyService.ts"],"names":[],"mappings":"AAkBA,OAAa,EAEX,KAAK,eAAe,EAErB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMjD,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAmF9D,UAAU,aAAa;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"workPreviewProxyService.d.ts","sourceRoot":"","sources":["../../src/services/workPreviewProxyService.ts"],"names":[],"mappings":"AAkBA,OAAa,EAEX,KAAK,eAAe,EAErB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMjD,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAmF9D,UAAU,aAAa;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,CAAC;AA2HhF,eAAO,MAAM,kBAAkB,YACpB,MAAM,eACF,MAAM,iBACJ,MAAM,KACpB,MA0DF,CAAC;AAeF,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAH/B,YACmB,MAAM,SAAsB,EAC5B,aAAa,GAAE,mBAA0C,EACzD,YAAY,SAAwB,EACnD;IAMJ,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IAE/D,OAAO,CAAC,SAAS;IAOjB,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAeR;IAED,+EAA+E;IAC/E,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEzC;IAED,OAAO,CAAC,gBAAgB,CAAC,CAA2B;IAEpD,sEAAsE;IACtE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAE1D;IAED,OAAO,CAAC,WAAW;IAgEnB,OAAO,CAAC,sBAAsB;IAyB9B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,oBAAoB;IAiD5B,UAAU,YAAa,OAAO,YAAY,QAAQ,KAAG,IAAI,CAmGvD;IAEF,gBAAgB,CACd,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,OAAO,CAkET;CACF;AAED,eAAO,MAAM,uBAAuB,yBAAgC,CAAC;eACtD,uBAAuB"}
|
|
@@ -238,6 +238,11 @@ export class WorkPreviewProxyService {
|
|
|
238
238
|
this.secret = secret;
|
|
239
239
|
this.lookupPreview = lookupPreview;
|
|
240
240
|
this.upstreamHost = upstreamHost;
|
|
241
|
+
// Per-task upstream host overrides (the Kubernetes backend targets the
|
|
242
|
+
// sandbox Pod IP). Server-side only — never part of the signed URL — and
|
|
243
|
+
// in-memory only, matching preview lifetimes: previews do not survive a
|
|
244
|
+
// backend restart.
|
|
245
|
+
this.taskUpstreamHosts = new Map();
|
|
241
246
|
this.handleHttp = (request, response) => {
|
|
242
247
|
const target = this.parseTarget(request.originalUrl || request.url);
|
|
243
248
|
if (!target) {
|
|
@@ -259,7 +264,7 @@ export class WorkPreviewProxyService {
|
|
|
259
264
|
return;
|
|
260
265
|
}
|
|
261
266
|
const upstreamRequest = http.request({
|
|
262
|
-
hostname:
|
|
267
|
+
hostname: target.upstreamHost,
|
|
263
268
|
port: target.port,
|
|
264
269
|
path: target.upstreamPath,
|
|
265
270
|
method: request.method,
|
|
@@ -325,17 +330,31 @@ export class WorkPreviewProxyService {
|
|
|
325
330
|
.update(`${taskId}:${port}:${nonce}`)
|
|
326
331
|
.digest('base64url');
|
|
327
332
|
}
|
|
328
|
-
createPreviewUrl(taskId, port) {
|
|
333
|
+
createPreviewUrl(taskId, port, upstreamHost) {
|
|
329
334
|
if (!TASK_ID_PATTERN.test(taskId)) {
|
|
330
335
|
throw new Error('Work preview task ID is invalid.');
|
|
331
336
|
}
|
|
332
337
|
if (!Number.isInteger(port) || port < 1 || port > 65535) {
|
|
333
338
|
throw new Error('Work preview port is invalid.');
|
|
334
339
|
}
|
|
340
|
+
if (upstreamHost) {
|
|
341
|
+
this.taskUpstreamHosts.set(taskId, upstreamHost.replace(/^\[|\]$/g, ''));
|
|
342
|
+
}
|
|
343
|
+
else {
|
|
344
|
+
this.taskUpstreamHosts.delete(taskId);
|
|
345
|
+
}
|
|
335
346
|
const nonce = crypto.randomBytes(16).toString('base64url');
|
|
336
347
|
const signature = this.signature(taskId, port, nonce);
|
|
337
348
|
return `${WORK_PREVIEW_PROXY_PREFIX}/${encodeURIComponent(taskId)}/${port}.${nonce}.${signature}/`;
|
|
338
349
|
}
|
|
350
|
+
/** Drop a task's upstream override when its preview stops or it is removed. */
|
|
351
|
+
clearPreviewUpstream(taskId) {
|
|
352
|
+
this.taskUpstreamHosts.delete(taskId);
|
|
353
|
+
}
|
|
354
|
+
/** Observe authorized preview traffic, e.g. to feed an idle sweep. */
|
|
355
|
+
onPreviewActivity(listener) {
|
|
356
|
+
this.activityListener = listener;
|
|
357
|
+
}
|
|
339
358
|
parseTarget(rawUrl) {
|
|
340
359
|
let url;
|
|
341
360
|
try {
|
|
@@ -385,7 +404,16 @@ export class WorkPreviewProxyService {
|
|
|
385
404
|
return undefined;
|
|
386
405
|
}
|
|
387
406
|
const upstreamPath = `/${url.pathname.slice(proxyBasePath.length)}${url.search}`;
|
|
388
|
-
|
|
407
|
+
// Every authorized preview request (HTTP and WebSocket both resolve
|
|
408
|
+
// through here) counts as task activity for the idle sweep.
|
|
409
|
+
this.activityListener?.(taskId);
|
|
410
|
+
return {
|
|
411
|
+
taskId,
|
|
412
|
+
port,
|
|
413
|
+
proxyBasePath,
|
|
414
|
+
upstreamPath,
|
|
415
|
+
upstreamHost: this.taskUpstreamHosts.get(taskId) ?? this.upstreamHost,
|
|
416
|
+
};
|
|
389
417
|
}
|
|
390
418
|
upstreamRequestHeaders(headers, target) {
|
|
391
419
|
const outgoing = {};
|
|
@@ -399,17 +427,17 @@ export class WorkPreviewProxyService {
|
|
|
399
427
|
}
|
|
400
428
|
outgoing[name] = value;
|
|
401
429
|
}
|
|
402
|
-
outgoing.host = `${formatHostForUrl(
|
|
430
|
+
outgoing.host = `${formatHostForUrl(target.upstreamHost)}:${target.port}`;
|
|
403
431
|
outgoing['accept-encoding'] = 'identity';
|
|
404
432
|
if (headers.origin) {
|
|
405
|
-
outgoing.origin = `http://${formatHostForUrl(
|
|
433
|
+
outgoing.origin = `http://${formatHostForUrl(target.upstreamHost)}:${target.port}`;
|
|
406
434
|
}
|
|
407
435
|
return outgoing;
|
|
408
436
|
}
|
|
409
437
|
rewriteLocation(value, target) {
|
|
410
438
|
try {
|
|
411
|
-
const location = new URL(value, `http://${formatHostForUrl(
|
|
412
|
-
if (location.hostname.replace(/^\[|\]$/g, '') ===
|
|
439
|
+
const location = new URL(value, `http://${formatHostForUrl(target.upstreamHost)}:${target.port}`);
|
|
440
|
+
if (location.hostname.replace(/^\[|\]$/g, '') === target.upstreamHost &&
|
|
413
441
|
Number(location.port || 80) === target.port) {
|
|
414
442
|
return `${target.proxyBasePath}${location.pathname.replace(/^\/+/, '')}${location.search}${location.hash}`;
|
|
415
443
|
}
|
|
@@ -462,7 +490,7 @@ export class WorkPreviewProxyService {
|
|
|
462
490
|
headers.connection = 'Upgrade';
|
|
463
491
|
headers.upgrade = request.headers.upgrade || 'websocket';
|
|
464
492
|
const upstreamRequest = http.request({
|
|
465
|
-
hostname:
|
|
493
|
+
hostname: target.upstreamHost,
|
|
466
494
|
port: target.port,
|
|
467
495
|
path: target.upstreamPath,
|
|
468
496
|
method: request.method,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workPreviewProxyService.js","sourceRoot":"","sources":["../../src/services/workPreviewProxyService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workPreviewProxyService.js","sourceRoot":"","sources":["../../src/services/workPreviewProxyService.ts"],"names":[],"mappings":"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"}
|