feat(server): add SQLite KV store exposed as $kv in script sandbox

Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
This commit is contained in:
Cursor Agent
2026-08-14 11:11:17 +00:00
co-authored by nsrb
parent 8519c92ed1
commit b88dd4d6e7
4 changed files with 404 additions and 0 deletions
+3
View File
@@ -3,6 +3,7 @@ import path from "path";
import vm from "node:vm";
import { createRequire } from "node:module";
import axios from "axios";
import { createKvApi } from "./kv-store.js";
import { SCRIPTS_DIR } from "./paths.js";
const hostRequire = createRequire(import.meta.url);
@@ -275,11 +276,13 @@ function createRestrictedRequire(screenedAxios) {
function createScriptSandbox({ log, script, workflowName }) {
const scriptLog = log.child({ workflow: workflowName, script });
const $axios = createScreenedAxios(scriptLog);
const $kv = createKvApi(workflowName);
const sandbox = {
...pickBuiltins(),
log: scriptLog,
console: createConsole(scriptLog),
$axios,
$kv,
require: createRestrictedRequire($axios),
};