Skip to content
39 linesCodeBlameRaw
1{
2 "$schema": "../../node_modules/wrangler/config-schema.json",
3 "name": "g1t-chat",
4 "account_id": "1e6f2cffa3f445920836e8ebe446bb58",
5 "compatibility_date": "2026-09-26",
6 "main": "./src/index.ts",
7 // Reached only through service bindings. The live socket's viewer comes
8 // in a header the site sets after checking the session, which is only
9 // safe to trust because nothing else can reach this Worker.
10 "workers_dev": false,
11 "placement": { "mode": "off" },
12 "d1_databases": [
13 {
14 "binding": "DB",
15 "database_name": "g1t-chat",
16 "database_id": "e837affd-a435-4408-9345-14d55d520316",
17 "migrations_dir": "migrations"
18 }
19 ],
20 "services": [
21 // Workspaces by slug, and people's names and avatars for members.
22 { "binding": "IDENTITY", "service": "g1t-identity" },
23 // The workspace's agents: who they are, and handing them messages to answer.
24 { "binding": "AGENTS", "service": "g1t-agents" },
25 // Live notifications and unread counts for the people in a conversation (services/notify).
26 { "binding": "NOTIFY", "service": "g1t-notify" }
27 ],
28 // One room per channel for live delivery: it holds the channel's open
29 // sockets, hibernating while nobody says anything (src/room.ts).
30 "durable_objects": {
31 "bindings": [{ "name": "ROOMS", "class_name": "ChannelRoom" }]
32 },
33 "migrations": [{ "tag": "v1", "new_sqlite_classes": ["ChannelRoom"] }],
34 // Custom emoji images, kept by their hash under `emoji/` in the avatars
35 // namespace and served from the usercontent origin at /emoji/<hash>
36 // (apps/web/workers/usercontent.ts), never from the site.
37 "kv_namespaces": [{ "binding": "AVATARS", "id": "e627b571f07047e187c03e1fc2b3bbdd" }],
38 "observability": { "enabled": true, "head_sampling_rate": 0.1 }
39}