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";
4import volumes from "./volumes";
5
6const sandboxVolumes = pgTable(
7 "sandbox_volumes",
8 {
9 id: text("id").primaryKey().default(sql`volume_id()`),
10 sandboxId: text("sandbox_id")
11 .notNull()
12 .references(() => sandboxes.id, { onDelete: "cascade" }),
13 volumeId: text("volume_id")
14 .notNull()
15 .references(() => volumes.id),
16 name: text("name"),
17 path: text("path").notNull(),
18 createdAt: timestamp("created_at").defaultNow().notNull(),
19 updatedAt: timestamp("updated_at").defaultNow().notNull(),
20 },
21 (t) => [uniqueIndex("unique_sandbox_volume_path").on(t.sandboxId, t.path)],
22);
23
24export type SelectSandboxVolume = InferSelectModel<typeof sandboxVolumes>;
25export type InsertSandboxVolume = InferInsertModel<typeof sandboxVolumes>;
26
27export default sandboxVolumes;