jevstrudel.git / worker / wrangler.json
1{
2  "name": "jevstrudel",
3  "main": "src/index.ts",
4  "compatibility_date": "2026-09-10",
5  "compatibility_flags": ["global_fetch_strictly_public"],
6  "workers_dev": true,
7  "observability": { "enabled": true, "logs": { "enabled": true, "invocation_logs": false }, "traces": { "enabled": false } },
8  "assets": { "binding": "ASSETS" },
9  "ratelimits": [
10    { "name": "JEV_LIMIT", "namespace_id": "1001", "simple": { "limit": 60, "period": 60 } },
11    { "name": "VOTE_LIMIT", "namespace_id": "1002", "simple": { "limit": 20, "period": 60 } },
12    { "name": "AUTH_LIMIT", "namespace_id": "1003", "simple": { "limit": 30, "period": 60 } },
13    { "name": "LISTEN_LIMIT", "namespace_id": "1004", "simple": { "limit": 60, "period": 60 } },
14    { "name": "RECORD_LIMIT", "namespace_id": "1005", "simple": { "limit": 6, "period": 60 } },
15    { "name": "PARTY_LIMIT", "namespace_id": "1006", "simple": { "limit": 20, "period": 60 } },
16    { "name": "CONTENT_LIMIT", "namespace_id": "1007", "simple": { "limit": 10, "period": 60 } },
17    { "name": "COVER_LIMIT", "namespace_id": "1008", "simple": { "limit": 3, "period": 60 } },
18    { "name": "BROWSE_LIMIT", "namespace_id": "1009", "simple": { "limit": 240, "period": 60 } },
19    { "name": "MCP_LIMIT", "namespace_id": "1010", "simple": { "limit": 120, "period": 60 } },
20    { "name": "LOBBY_LIMIT", "namespace_id": "1011", "simple": { "limit": 20, "period": 60 } },
21    { "name": "DATA_LIMIT", "namespace_id": "1012", "simple": { "limit": 120, "period": 60 } }
22  ],
23  "d1_databases": [{ "binding": "DB", "database_name": "jevstrudel", "migrations_dir": "migrations" }],
24  "analytics_engine_datasets": [{ "binding": "EVENTS", "dataset": "jevstrudel_events" }],
25  "kv_namespaces": [{ "binding": "CACHE" }, { "binding": "OAUTH_KV" }],
26  "r2_buckets": [{ "binding": "COVERS", "bucket_name": "jevstrudel-covers" }],
27  "durable_objects": {
28    "bindings": [
29      { "name": "BUDGET", "class_name": "JevBudget" },
30      { "name": "PARTY", "class_name": "Party" },
31      { "name": "TAB_HUB", "class_name": "TabHub" },
32      { "name": "LOBBY", "class_name": "LobbyRoom" },
33      { "name": "PARTY_DIRECTORY", "class_name": "PartyDirectory" }
34    ]
35  },
36  "vars": { "JEV_DAILY_PER_USER": 1000 },
37  "triggers": { "crons": ["* * * * *"] },
38  "migrations": [
39    { "tag": "v1", "new_sqlite_classes": ["Hub"] },
40    { "tag": "v2", "new_sqlite_classes": ["JevBudget"] },
41    { "tag": "v3", "new_sqlite_classes": ["Party"] },
42    { "tag": "v4", "new_sqlite_classes": ["TabHub"] },
43    { "tag": "v5", "new_sqlite_classes": ["LobbyRoom"] },
44    { "tag": "v6", "new_sqlite_classes": ["PartyDirectory"] }
45  ],
46  "dev": { "port": 4323 },
47  "env": {
48    "dev": {
49      "ratelimits": [
50        { "name": "JEV_LIMIT", "namespace_id": "1001", "simple": { "limit": 60, "period": 60 } },
51        { "name": "VOTE_LIMIT", "namespace_id": "1002", "simple": { "limit": 20, "period": 60 } },
52        { "name": "AUTH_LIMIT", "namespace_id": "1003", "simple": { "limit": 30, "period": 60 } },
53        { "name": "LISTEN_LIMIT", "namespace_id": "1004", "simple": { "limit": 60, "period": 60 } },
54        { "name": "RECORD_LIMIT", "namespace_id": "1005", "simple": { "limit": 6, "period": 60 } },
55        { "name": "PARTY_LIMIT", "namespace_id": "1006", "simple": { "limit": 20, "period": 60 } },
56        { "name": "CONTENT_LIMIT", "namespace_id": "1007", "simple": { "limit": 10, "period": 60 } },
57        { "name": "COVER_LIMIT", "namespace_id": "1008", "simple": { "limit": 3, "period": 60 } },
58        { "name": "BROWSE_LIMIT", "namespace_id": "1009", "simple": { "limit": 240, "period": 60 } },
59        { "name": "MCP_LIMIT", "namespace_id": "1010", "simple": { "limit": 120, "period": 60 } },
60        { "name": "LOBBY_LIMIT", "namespace_id": "1011", "simple": { "limit": 20, "period": 60 } },
61        { "name": "DATA_LIMIT", "namespace_id": "1012", "simple": { "limit": 120, "period": 60 } }
62      ],
63      "d1_databases": [{ "binding": "DB", "database_name": "jevstrudel", "migrations_dir": "migrations" }],
64      "analytics_engine_datasets": [{ "binding": "EVENTS", "dataset": "jevstrudel_events" }],
65      "kv_namespaces": [{ "binding": "CACHE" }, { "binding": "OAUTH_KV" }],
66      "r2_buckets": [{ "binding": "COVERS", "bucket_name": "jevstrudel-covers" }],
67      "durable_objects": {
68        "bindings": [
69          { "name": "HUB", "class_name": "Hub" },
70          { "name": "BUDGET", "class_name": "JevBudget" },
71          { "name": "PARTY", "class_name": "Party" },
72          { "name": "TAB_HUB", "class_name": "TabHub" },
73          { "name": "LOBBY", "class_name": "LobbyRoom" },
74          { "name": "PARTY_DIRECTORY", "class_name": "PartyDirectory" }
75        ]
76      },
77      "vars": { "SONGS_URL": "http://localhost:4322/jev/songs.json", "JEV_DAILY_PER_USER": 1000 }
78    }
79  }
80}