MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / resolveSecretKey

Function resolveSecretKey

apps/host-selfhost/src/config.ts:59–79  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

57 * setup). Memoized so repeated per-request reads are cheap.
58 */
59export const resolveSecretKey = (): string => {
60 if (cachedSecretKey) return cachedSecretKey;
61 const fromEnv = process.env.EXECUTOR_SECRET_KEY?.trim();
62 if (fromEnv) {
63 cachedSecretKey = fromEnv;
64 return fromEnv;
65 }
66 const keyPath = join(resolveDataDir(), "secret.key");
67 if (existsSync(keyPath)) {
68 cachedSecretKey = readFileSync(keyPath, "utf8").trim();
69 return cachedSecretKey;
70 }
71 mkdirSync(resolveDataDir(), { recursive: true });
72 const generated = randomBytes(32).toString("base64");
73 writeFileSync(keyPath, generated, { mode: 0o600 });
74 console.warn(
75 `[executor] generated a secret-encryption key at ${keyPath}. Set EXECUTOR_SECRET_KEY to manage it explicitly (and to keep secrets readable across data-dir changes).`,
76 );
77 cachedSecretKey = generated;
78 return generated;
79};
80
81let cachedAuthSecret: string | undefined;
82

Callers 1

executor.config.tsFile · 0.90

Calls 3

toStringMethod · 0.80
warnMethod · 0.80
resolveDataDirFunction · 0.70

Tested by

no test coverage detected