Files
beh-rde-brief/proxy/wrangler.toml
T
JUSNandClaude Opus 5.5 2af4b7ed41 Korrekturen aus zwei Pruefrunden vor der MBE-Vorfuehrung
Demo-Seite:
- Ampel in Kalendertagen, naechstes kommendes Datum, "Termin am"/"Frist bis"
- nie "Deutsch | Deutsch"; Beraterin bekommt immer Deutsch (d=1), das Handy
  erkennt seine Sprache selbst und speichert die PC-Vorgabe nicht dauerhaft
- Code-Feld ausserhalb von #eingabe; tolerante Code-Eingabe; Ablaufdatum
  im Banner; leeres/abgelaufenes Einrichtungs-Kontingent ohne Kaufangebot,
  mit Telefonnummer; nach Aufladen reicht ein Neuladen
- Handy-Modus: endet nach dem ersten Brief, uebersteht ein Neuladen
  (sessionStorage), keine Sackgasse ohne Zugang, ehrlicher Hinweis +
  "Noch einmal senden", wenn das Ergebnis den PC nicht erreicht
- PC wartet geduldig, solange verbunden; meldet langsame Analysen, fehlende
  Verbindung, fehlenden Zugang; Warnung beim Verlassen
- Einwilligung pro Brief, nennt Gesundheit/Herkunft/Aufenthalt
- localStorage nur ueber abgesicherten Helfer; Dateifeld wird geleert
- RTL (bdi, dir=auto), Sprachliste mit deutschem Zusatz, groesserer QR

Worker: KI-Aufruf und Router-catch liefern immer JSON mit CORS; Logs ohne
Briefinhalt; [observability]; Nutzungszaehler je Analyse (Datum, Sprache,
390 Tage); normCode + 30 Fehlversuche; Uebergabe-TTL gleitend.
Werkzeug: Auswertung pro Woche/Sprache, Eingabepruefung, --bis in der Hilfe.
Datenschutz: SCC statt DPF, "in der Regel 30 Tage", Server-Protokolle,
Nutzungszaehler.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 20:34:15 +02:00

44 lines
1.3 KiB
TOML

name = "behoerdenklar-proxy"
main = "src/index.ts"
compatibility_date = "2026-07-01"
# Worker-Logs im Cloudflare-Dashboard (und `npx wrangler tail`) — hilft,
# wenn live etwas schiefgeht (z. B. die Übersetzung)
[observability]
enabled = true
# 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