11import { createHash , randomUUID } from "node:crypto" ;
2- import { tmpdir } from "node:os" ;
32import { isAbsolute , join , resolve } from "node:path" ;
43
54import { SidecarControlError , type SidecarControlErrorCode } from "./error.js" ;
@@ -13,6 +12,8 @@ import type {
1312
1413const CONTROL_SCHEMA_VERSION = 1 as const ;
1514const CONTROL_BOOTSTRAP_ENV = "OD_SIDECAR_CONTROL_BOOTSTRAP_V1" ;
15+ // Launch environments may be exact allowlists, so endpoint identity cannot depend on TMPDIR.
16+ const POSIX_CONTROL_ROOT = "/tmp" ;
1617const CONTROL_TOKEN = / ^ [ A - Z a - z 0 - 9 ] (?: [ A - Z a - z 0 - 9 . _ - ] { 0 , 62 } [ A - Z a - z 0 - 9 ] ) ? $ / ;
1718const CONTROL_NAMESPACE = / ^ [ A - Z a - z 0 - 9 ] (?: [ A - Z a - z 0 - 9 . _ - ] { 0 , 126 } [ A - Z a - z 0 - 9 ] ) ? $ / ;
1819
@@ -214,7 +215,7 @@ export function privateControlPaths(
214215 endpointPath :
215216 process . platform === "win32"
216217 ? `\\\\.\\pipe\\open-design-sidecar-${ key } `
217- : join ( tmpdir ( ) , `od-sidecar-${ key } .sock` ) ,
218+ : join ( POSIX_CONTROL_ROOT , `od-sidecar-${ key } .sock` ) ,
218219 } ;
219220}
220221
@@ -303,11 +304,10 @@ export function installPrivateLaunchMetadata(
303304
304305export function createPrivateLaunchEnv (
305306 metadata : PrivateLaunchMetadata ,
306- extraEnv : NodeJS . ProcessEnv = { } ,
307+ extraEnv ? : NodeJS . ProcessEnv ,
307308) : NodeJS . ProcessEnv {
308309 return {
309- ...process . env ,
310- ...extraEnv ,
310+ ...( extraEnv ?? process . env ) ,
311311 [ CONTROL_BOOTSTRAP_ENV ] : encodePrivateLaunchMetadata ( metadata ) ,
312312 } ;
313313}
0 commit comments