the universal sandbox runtime for agents and humans.
pocketenv.io
sandbox
openclaw
agent
claude-code
vercel-sandbox
deno-sandbox
cloudflare-sandbox
atproto
sprites
daytona
1import { type InferInsertModel, type InferSelectModel, sql } from "drizzle-orm";
2import { pgTable, text, timestamp, uniqueIndex } from "drizzle-orm/pg-core";
3import sandboxes from "./sandboxes.ts";
4import variables from "./variables.ts";
5
6const sandboxVariables = pgTable(
7 "sandbox_variables",
8 {
9 id: text("id")
10 .primaryKey()
11 .default(sql`xata_id()`),
12 sandboxId: text("sandbox_id")
13 .notNull()
14 .references(() => sandboxes.id, { onDelete: "cascade" }),
15 variableId: text("variable_id")
16 .notNull()
17 .references(() => variables.id),
18 name: text("name").notNull(),
19 createdAt: timestamp("created_at").defaultNow().notNull(),
20 updatedAt: timestamp("updated_at").defaultNow().notNull(),
21 },
22 (t) => [
23 uniqueIndex("unique_sandbox_variables_by_name").on(t.sandboxId, t.name),
24 ],
25);
26
27export type SelectSandboxVariable = InferSelectModel<typeof sandboxVariables>;
28export type InsertSandboxVariable = InferInsertModel<typeof sandboxVariables>;
29export default sandboxVariables;