Fundament: Doku, Testanpassungen, Restbereinigung
- AGENTS.md und README.md auf Craftvia umgeschrieben (Regeln, Andockpunkte, Stack mit Garage, tsx-Tests, Gate, Demo-Logins) - ISMS-Dokumente entfernt (SPEC, Prototypen, Lane-Prompts, Übergaben, Konzepte Incidents/Framework); Fundament-Doku (Deploy, Sicherheit, Backup, Identity) bleibt - Fundament-Tests an Craftvia-Rollen/Branding angepasst, Resttreffer certvia/isms in Skripten und Kommentaren bereinigt Gate: prisma generate, migrate status, tsc, lint, build, 22/22 Testskripte grün. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -8,7 +8,7 @@ import { writeAuditLog } from "@/server/audit";
|
||||
* Zweck (zwei Dinge auf einmal):
|
||||
* 1. **Nach außen** nur eine generische, nichtssagende Meldung
|
||||
* (`Vorgang nicht möglich.`). Interne Details — Modellnamen, die
|
||||
* Isolationslogik (`Tenant isolation violation: Risk …`), fehlende
|
||||
* Isolationslogik (`Tenant isolation violation: Role …`), fehlende
|
||||
* Berechtigungen — dürfen den Client nicht erreichen (CWE-209). In der
|
||||
* Produktion maskiert Next.js Server-Action-Fehler zwar ohnehin, in
|
||||
* Entwicklung/Test aber nicht — und wir wollen die Meldung an EINER Stelle
|
||||
|
||||
@@ -124,7 +124,7 @@ export async function testBackupConnection(
|
||||
}
|
||||
|
||||
const key = `__connectivity-test__/${randomBytes(8).toString("hex")}.txt`;
|
||||
const payload = Buffer.from(`certvia backup connectivity ${new Date().toISOString()}`, "utf8");
|
||||
const payload = Buffer.from(`craftvia backup connectivity ${new Date().toISOString()}`, "utf8");
|
||||
try {
|
||||
await store.put(key, payload);
|
||||
const back = await store.get(key);
|
||||
|
||||
@@ -55,7 +55,7 @@ export async function buildDsgvoPackage(
|
||||
entries.push({
|
||||
name: "README.txt",
|
||||
data:
|
||||
`certvia — DSGVO-Auskunft (Art. 15/20), Einzelperson\n` +
|
||||
`Craftvia — DSGVO-Auskunft (Art. 15/20), Einzelperson\n` +
|
||||
`Mandant: ${tenant.name} (${tenant.slug})\n` +
|
||||
`Betroffene Identity: ${subjectIdentityId}\n` +
|
||||
`Erstellt: ${generatedAt}\n\n` +
|
||||
@@ -72,7 +72,7 @@ export async function buildDsgvoPackage(
|
||||
entries.push({
|
||||
name: "README.txt",
|
||||
data:
|
||||
`certvia — DSGVO-Datenpaket (Art. 20 Portabilität), gesamter Mandant\n` +
|
||||
`Craftvia — DSGVO-Datenpaket (Art. 20 Portabilität), gesamter Mandant\n` +
|
||||
`Mandant: ${tenant.name} (${tenant.slug})\n` +
|
||||
`Erstellt: ${generatedAt}\n` +
|
||||
`Zeilen gesamt: ${manifest.totalRows}\n\n` +
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Storage-Adapter (Story B4-2 → Epic S1). Gekapselte Schnittstelle für die Datei-
|
||||
// Persistenz hochgeladener eigener Richtlinien und Audit-Nachweise. Aufrufer nutzen
|
||||
// ausschließlich `storage`, sodass das Backend ohne UI-/Action-Änderung austauschbar
|
||||
// bleibt (Konsumenten: policy-upload.ts, audit-evidence.ts).
|
||||
// bleibt (Konsumenten: Dokumente-/Einsatzfoto-Uploads der Fachmodule).
|
||||
//
|
||||
// Backend-Wahl zur Laufzeit (Graceful Fallback):
|
||||
// - Sind alle S3_*-Env gesetzt → echter S3StorageAdapter (Garage/S3-kompatibel).
|
||||
|
||||
Reference in New Issue
Block a user