generated from knso/webklar-preview-template
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>
44 lines
1.3 KiB
TOML
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
|