- Hono Worker: auth, key directory (X3DH prekey bundles), message relay, R2 media - Mailbox Durable Object: WebSocket delivery + offline ciphertext queue - PWA client: libsignal (vendored), IndexedDB key store, chat UI, media E2E - Server only ever holds public keys + ciphertext; private keys stay on device Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
38 lines
824 B
JSON
38 lines
824 B
JSON
{
|
|
"$schema": "node_modules/wrangler/config-schema.json",
|
|
"name": "cipher",
|
|
"main": "src/index.js",
|
|
"compatibility_date": "2025-07-01",
|
|
"compatibility_flags": ["nodejs_compat"],
|
|
"observability": { "enabled": true },
|
|
"assets": {
|
|
"directory": "./public",
|
|
"binding": "ASSETS",
|
|
"not_found_handling": "single-page-application"
|
|
},
|
|
"d1_databases": [
|
|
{
|
|
"binding": "DB",
|
|
"database_name": "cipher",
|
|
"database_id": "REPLACE_AFTER_CREATE",
|
|
"migrations_dir": "migrations"
|
|
}
|
|
],
|
|
"r2_buckets": [
|
|
{
|
|
"binding": "MEDIA",
|
|
"bucket_name": "cipher-media"
|
|
}
|
|
],
|
|
"durable_objects": {
|
|
"bindings": [
|
|
{ "name": "MAILBOX", "class_name": "Mailbox" }
|
|
]
|
|
},
|
|
"migrations": [
|
|
{
|
|
"tag": "v1",
|
|
"new_sqlite_classes": ["Mailbox"]
|
|
}
|
|
]
|
|
}
|