serverless #atproto jetstream to webhook connector, powered by cloudflare durable objects
1/**
2 * For more details on how to configure Wrangler, refer to:
3 * https://developers.cloudflare.com/workers/wrangler/configuration/
4 */
5{
6 "$schema": "node_modules/wrangler/config-schema.json",
7 "name": "doing-jetstream",
8 "main": "src/index.ts",
9 "compatibility_date": "2025-05-29",
10 "migrations": [
11 {
12 "new_sqlite_classes": [
13 "JetstreamProcessor"
14 ],
15 "tag": "v1"
16 }
17 ],
18 "durable_objects": {
19 "bindings": [
20 {
21 "class_name": "JetstreamProcessor",
22 "name": "JETSTREAM_PROCESSOR"
23 }
24 ]
25 },
26 "queues": {
27 "producers": [
28 {
29 "queue": "jetstream-events",
30 "binding": "JETSTREAM_QUEUE"
31 }
32 ],
33 "consumers": [
34 {
35 "queue": "jetstream-events",
36 "max_batch_size": 10,
37 "max_batch_timeout": 5,
38 "max_retries": 3,
39 "dead_letter_queue": "jetstream-events-dlq"
40 }
41 ]
42 },
43 "observability": {
44 "enabled": true
45 },
46 /**
47 * Smart Placement
48 * Docs: https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement
49 */
50 // "placement": { "mode": "smart" },
51
52 /**
53 * Bindings
54 * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including
55 * databases, object storage, AI inference, real-time communication and more.
56 * https://developers.cloudflare.com/workers/runtime-apis/bindings/
57 */
58
59 /**
60 * Scheduled Events - Keep worker alive
61 * https://developers.cloudflare.com/workers/runtime-apis/scheduled-event/
62 */
63 "triggers": [
64 {
65 "crons": ["*/5 * * * *"]
66 }
67 ],
68
69 /**
70 * Environment Variables and Secrets
71 * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables
72 *
73 * Note: WEBHOOK_URL and JETSTREAM_COLLECTIONS are now configured via:
74 * - Production: wrangler secret put or environment variables
75 * - Development: .dev.vars file
76 */
77
78 /**
79 * Note: Secrets are set via CLI and not stored in this file
80 * Set secrets with: wrangler secret put WEBHOOK_BEARER_TOKEN
81 */
82
83 /**
84 * Static Assets
85 * https://developers.cloudflare.com/workers/static-assets/binding/
86 */
87 // "assets": { "directory": "./public/", "binding": "ASSETS" },
88
89 /**
90 * Service Bindings (communicate between multiple Workers)
91 * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings
92 */
93 // "services": [{ "binding": "MY_SERVICE", "service": "my-service" }]
94}