msolarczek and Claude Opus 5
4a25f2cc3b
Fundament: atomare Mandanten-Transaktionen, iframe-Vorschau, Uploads bis 25 MB, DSGVO-Felder
...
- db.ts: tenantTransaction() – atomar auch bei RLS_ENFORCED=true (AsyncLocalStorage
bindet Operationen an eine craftvia_app-Transaktion, Kontext einmal gesetzt,
verschachtelte Aufrufe treten bei, fremder Mandant wird abgewiesen)
- services/context.ts: inTransaction(ctx, fn); imports/confirm.ts umgestellt
- next.config.ts: EMBEDDABLE_FILE_ROUTES mit frame-ancestors 'self'/SAMEORIGIN
(PDF-Vorschau Prüfmaske), proxyClientMaxBodySize 26mb (Import bis 25 MB)
- test-rls-enforcement: RLS-URL-Default aus DATABASE_URL (Lane-DBs)
- dsgvo/pii-fields: 26 Personenreferenzen des Craftvia-Domänenmodells
- ARCHITEKTUR §4.8: Transaktions-, Header-, Upload-, Versions- und PII-Regeln
- Test test-tenant-transaction (Commit/Rollback/Fremdmandant/Verschachtelung),
grün im Owner- und im RLS-Modus
Gate: tsc, lint, build, 31/31 Tests grün.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-14 12:29:57 +02:00
msolarczek and Claude Opus 5
3e16689b2f
Merge lane/berichte in feature/craftvia-mvp
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-14 12:23:34 +02:00
msolarczek and Claude Opus 5
8a6fdd8f7a
L5 Berichte & Unterschrift: Berichtsinhalt, Services, Unterschrift und PDF
...
ReportContent-Vertrag, Content-Builder mit Tagesfilter, Services für Tages-/Abschlussbericht,
Bearbeiten, Absenden, Freigabe, Zurückweisen, neue Version, Unterschrift und PDF-Erzeugung
(playwright-core, Worker-Processor, Dockerfile-Stage worker). Stubs für L2-Transition/Blocker
und Dokumenten-Store.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-14 12:22:40 +02:00
msolarczek and Claude Opus 5
f532ba9a96
Merge lane/import in feature/craftvia-mvp
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-14 12:22:07 +02:00
msolarczek and Claude Opus 5
b8b8bddefe
Fundament: Audit mit IP/User-Agent, Mail-Absender je Mandant
...
- Migration audit_request_context: ip_address, user_agent an audit_logs (Spec §26)
- writeAuditLog/writePlatformAudit erfassen IP (X-Forwarded-For) und User-Agent
aus dem Request; außerhalb eines Requests (Worker/Skripte) null
- Audit-Viewer liest die neuen Spalten statt Heuristik aus before/after
- deliverMail nutzt Anzeigename und Reply-To aus TenantSettings (Spec §33.2);
Absenderadresse bleibt Plattform-Domain (SPF/DKIM), Header-Injection bereinigt
Gate: tsc, lint, build, 24/24 Tests grün.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-14 12:20:41 +02:00
msolarczek and Claude Opus 5
12a764786a
L3 Auftragsimport: Extraktion, Plausibilität, Dubletten, Bestätigung (Services + Tests)
...
- Claude-Extraktion (PDF nativ/Bild, Structured Output, Konfidenzen, Volltext), FakeProvider
- Plausibilitätsprüfung, Mapping Extraktion → Formular, Korrektur-Diff
- Services Upload/Verarbeitung/Bestätigung/Verwerfen/Neu verarbeiten, Processor import-extraction
- Stubs: storeFile (§4.3), findDuplicateCustomers (L1), createWorkOrder (L2)
- Tests test-import-rules/-flow/-live, Beispiel-PDFs + Generator
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-14 12:17:13 +02:00
msolarczek and Claude Opus 5
dfbc92bb4d
L6 Benachrichtigungen & Audit: Audit-Viewer mit Filter und Diff
...
- /settings/audit (audit:read): Filter Zeitraum, Benutzer, Aktion, Objektart,
Objekt-ID; Pagination; Detail-Popup mit before/after-Diff, Ergebnis, IP/User-Agent
(derzeit nicht erfasst, Fundament-Bedarf).
- Service services/audit/viewer.ts, strikt mandantengebunden über ctx.db.
- Audit-Entity-Labels für alle Craftvia-Entitäten.
- Test scripts/test-benachrichtigungen-inbox-audit.ts (46 Prüfungen): Posteingang,
Mandantentrennung, Rollen/Scope, Mailkonfiguration, Audit-Viewer.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-14 12:12:51 +02:00
msolarczek and Claude Opus 5
879012415e
L6 Benachrichtigungen & Audit: Glocke, Posteingang, Nutzer-Einstellungen, Mailkonfiguration
...
- Glocke im Backoffice-Header (ungelesen-Zähler, letzte 10, alle gelesen), mobil
einbindbar über variant="mobile".
- /notifications mit Filter gelesen/ungelesen/Art, Öffnen markiert gelesen (nur
relative Links), Pagination.
- /account Abschnitt Benachrichtigungen: E-Mail-Opt-out je Typ, Notdienst Pflicht.
- /settings/email (tenant:manage): Absendername, Antwortadresse, Empfänger Notdienst
und Abrechnung; Validierung gegen Header-Injection, max. 20 Adressen, Audit.
- Actions unter actions/notifications mit moduleGuard + guard; Navigation ergänzt.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-14 12:12:21 +02:00
msolarczek and Claude Opus 5
7b37c41a83
L6 Benachrichtigungen & Audit: Empfängerregeln, In-App-Benachrichtigungen und Craftvia-Mails
...
- handleEvent (Signatur unverändert) löst alle 17 Domain-Events auf: Team/Assignees,
Backoffice (read_all + report:approve), Teamleiter-Freigaben, Ersteller, Abrechnung,
Notdienst, Import, Sync; Akteur ausgenommen, alle IDs über ctx.db neu aufgelöst.
- In-App-Notification über ctx.db (ungelesene gleiche Meldung wird aufgefrischt),
E-Mail über enqueueMail mit dedupeKey event:entity:user (+ optional occurrenceId),
Opt-out je Typ, Notdienst als Pflichtmail, feste Empfänger ohne Doppelmail.
- Mail-Templates craftvia_* (de/en) inkl. Notdienst-Format Spec §19.4 und Craftvia-Fußzeile.
- Migration tenant_mail_settings: mailFromName, mailReplyTo, emergencyRecipients,
billingRecipients an tenant_settings (keine neue Tabelle).
- Texte aus messages/{de,en}/notifications.json.
- Test scripts/test-benachrichtigungen-events.ts (63 Prüfungen).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-14 12:11:53 +02:00
msolarczek and Claude Opus 5
bf4456718e
Architektur: Craftvia-Domänenmodell, Verträge und Team-Schnitte
...
- Migration 0002_craftvia_domain: 27 Fachtabellen inkl. RLS (enable_tenant_rls)
- TENANT_MODELS (db.ts, backup/topology.ts) um alle Fachmodelle ergänzt
- moduleGuard liefert DB-autoritative Rechte; ServiceCtx für Domänen-Services
- Verträge: Statusmaschine, Events, Nummernkreise, Sichtbarkeits-Scopes,
Job-Queues + Worker, KI-Provider-Interfaces, Sync-Envelope
- docs/craftvia/ARCHITEKTUR.md mit Lanes, Ownership und DoD
Gate: tsc, lint, build, 22/22 Tests grün.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-14 11:49:21 +02:00