Files
beh-rde-brief/proxy/wrangler.toml
T
JUSNandClaude Opus 5.5 0eab2a0ee9 Worker: Einrichtungs-Codes, verschluesselte Uebergabe Handy<->PC, zweisprachige Analyse
- /code loest Einrichtungs-Codes fuer Beratungsstellen ein (Guthaben mit
  Name + Ablaufdatum, max. 10 Fehlversuche pro IP und Tag). Leeres oder
  abgelaufenes Kontingent sagt "fragen Sie bei <Stelle> nach" statt "kaufen".
- /uebergabe/<id>: Durable Object haelt nur Chiffrat (AES-GCM, Schluessel
  nur im QR-Code), loescht nach 15 Minuten, 50 Schreibvorgaenge, Rate-Limit.
  Durable Object statt KV, weil KV fehlende Schluessel zwischenspeichert.
- /demo mit auchDeutsch: deutsch analysieren (Sonnet), dann mit Haiku in die
  Zielsprache uebersetzen - PC zeigt Deutsch, Handy die Muttersprache.
- LOKAL_TEST=1 (.dev.vars) erlaubt localhost fuer Tests mit wrangler dev.
- tools/einrichtungs-code.js: neu | stand | aufladen | verlaengern.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 18:46:29 +02:00

39 lines
1.2 KiB
TOML

name = "behoerdenklar-proxy"
main = "src/index.ts"
compatibility_date = "2026-07-01"
# Erlaubte Anfragen pro Tag: pro Gerät (normale Nutzung) und pro IP-Adresse
# (dämmt Angreifer ein, die Geräte-IDs fälschen; höher, weil sich viele
# Nutzer eine IP teilen können)
[vars]
TAGES_LIMIT = "20"
TAGES_LIMIT_IP = "100"
# Web-Demo (/demo): hartes Tagesbudget über alle Nutzer (Kosten-Deckel,
# 100 Analysen ≈ 2,50 €/Tag Maximalschaden) + IP-Gesamtlimit PRO TAG
# (großzügig, damit geteilte Anschlüsse/Familien/Mobilfunk nicht blockiert
# werden; der Missbrauch wird zusätzlich durch Turnstile + Budget begrenzt)
DEMO_TAGES_BUDGET = "100"
DEMO_LIMIT_IP = "8"
[[kv_namespaces]]
binding = "RATE_LIMIT"
id = "7577adef8ceb4ed6bfaeef81a1d496af"
# Handy <-> PC: verschluesselte Uebergabe per QR-Code (siehe src/index.ts).
# SQLite-Durable-Objects laufen auch im kostenlosen Workers-Tarif.
[[durable_objects.bindings]]
name = "UEBERGABE"
class_name = "Uebergabe"
[[migrations]]
tag = "v1-uebergabe"
new_sqlite_classes = ["Uebergabe"]
# Schreib-Bremse fuer die Uebergabe: 60 Paeckchen pro Minute und IP
[[ratelimits]]
name = "UEBERGABE_LIMIT"
namespace_id = "1001"
[ratelimits.simple]
limit = 60
period = 60