Fix PBKDF2 iteration cap (Workers max 100k), add custom domain + error handler
- PBKDF2 iterations 210k->100k (Cloudflare WebCrypto hard limit; miniflare didn't enforce) - Add cipher.theradicalparty.com custom domain route - Add onError handler - Verified live: E2E delivery + offline store-and-forward both working Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
360bfeb5ab
commit
372a77754a
3 changed files with 11 additions and 2 deletions
|
|
@ -11,6 +11,11 @@ export { Mailbox } from "./do/mailbox.js";
|
||||||
|
|
||||||
const app = new Hono();
|
const app = new Hono();
|
||||||
|
|
||||||
|
app.onError((err, c) => {
|
||||||
|
console.error("unhandled:", err.stack || err.message);
|
||||||
|
return c.json({ error: "server error" }, 500);
|
||||||
|
});
|
||||||
|
|
||||||
app.get("/api/health", (c) => c.json({ ok: true, service: "cipher" }));
|
app.get("/api/health", (c) => c.json({ ok: true, service: "cipher" }));
|
||||||
|
|
||||||
app.route("/api/auth", auth);
|
app.route("/api/auth", auth);
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,8 @@
|
||||||
|
|
||||||
import { b64, randomToken, now } from "./util.js";
|
import { b64, randomToken, now } from "./util.js";
|
||||||
|
|
||||||
const PBKDF2_ITERS = 210000;
|
// Cloudflare Workers caps PBKDF2 at 100k iterations (WebCrypto limit).
|
||||||
|
const PBKDF2_ITERS = 100000;
|
||||||
|
|
||||||
async function pbkdf2(password, saltBytes) {
|
async function pbkdf2(password, saltBytes) {
|
||||||
const enc = new TextEncoder();
|
const enc = new TextEncoder();
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,9 @@
|
||||||
"compatibility_date": "2025-07-01",
|
"compatibility_date": "2025-07-01",
|
||||||
"compatibility_flags": ["nodejs_compat"],
|
"compatibility_flags": ["nodejs_compat"],
|
||||||
"observability": { "enabled": true },
|
"observability": { "enabled": true },
|
||||||
|
"routes": [
|
||||||
|
{ "pattern": "cipher.theradicalparty.com", "custom_domain": true }
|
||||||
|
],
|
||||||
"assets": {
|
"assets": {
|
||||||
"directory": "./public",
|
"directory": "./public",
|
||||||
"binding": "ASSETS",
|
"binding": "ASSETS",
|
||||||
|
|
@ -14,7 +17,7 @@
|
||||||
{
|
{
|
||||||
"binding": "DB",
|
"binding": "DB",
|
||||||
"database_name": "cipher",
|
"database_name": "cipher",
|
||||||
"database_id": "REPLACE_AFTER_CREATE",
|
"database_id": "f80ec87d-02ad-486d-b33a-50322f33c235",
|
||||||
"migrations_dir": "migrations"
|
"migrations_dir": "migrations"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue