diff --git a/ai/internal/qa03gate/qa03gate_test.go b/ai/internal/gates/classification/qa03gate_test.go similarity index 98% rename from ai/internal/qa03gate/qa03gate_test.go rename to ai/internal/gates/classification/qa03gate_test.go index 1ac7cce2..56cecc75 100644 --- a/ai/internal/qa03gate/qa03gate_test.go +++ b/ai/internal/gates/classification/qa03gate_test.go @@ -1,10 +1,10 @@ -// Package qa03gate ist das Prüfgate für QA-03: misst Klassifizierungs- und +// Package classification ist das Prüfgate für QA-03: misst Klassifizierungs- und // Extraktionsgenauigkeit am Referenzkorpus (QA-01, ai/internal/refcorpus) // und belegt die Wirkung von Korrektur-Feedback auf künftige Vorschläge. // Reines Prüfgate — ruft nur bestehende, bereits gemergte Pakete auf // (classify CLS-02, extract EXT-05-Grundlage, correction/historysuggest // CLS-05), ohne deren Code zu ändern. -package qa03gate +package classification import ( "context" diff --git a/ai/internal/qa05gate/qa05gate_test.go b/ai/internal/gates/governance/qa05gate_test.go similarity index 98% rename from ai/internal/qa05gate/qa05gate_test.go rename to ai/internal/gates/governance/qa05gate_test.go index a1334331..de99b49d 100644 --- a/ai/internal/qa05gate/qa05gate_test.go +++ b/ai/internal/gates/governance/qa05gate_test.go @@ -1,9 +1,9 @@ -// Package qa05gate ist das Prüfgate für QA-05 (Datenschutz- & +// Package governance ist das Prüfgate für QA-05 (Datenschutz- & // Governance-Prüfung). Es bringt keine neue Fachlogik ein, sondern führt // GOV-02/GOV-03/GOV-05 end-to-end gegen eine echte Postgres-Wegwerf-DB bzw. // einen Mock-Core zusammen, um die drei QA-05-Akzeptanzkriterien in der // Praxis (nicht nur auf Store-Ebene) nachzuweisen. -package qa05gate +package governance import ( "context" @@ -36,7 +36,7 @@ func realPool(t *testing.T) *pgxpool.Pool { t.Skip("TEST_TENANT_DSN nicht gesetzt, Integrationstest übersprungen") } pool := testdb.Pool(t, dsn) - migrationsDir, err := filepath.Abs("../../migrations") + migrationsDir, err := filepath.Abs("../../../migrations") if err != nil { t.Fatalf("migrationsverzeichnis: %v", err) } diff --git a/ai/internal/qa04gate/qa04gate.go b/ai/internal/gates/searchquality/qa04gate.go similarity index 98% rename from ai/internal/qa04gate/qa04gate.go rename to ai/internal/gates/searchquality/qa04gate.go index e43810c2..cb501eea 100644 --- a/ai/internal/qa04gate/qa04gate.go +++ b/ai/internal/gates/searchquality/qa04gate.go @@ -1,4 +1,4 @@ -// Package qa04gate ist das Prüfgate für QA-04: es misst Suchqualität, +// Package searchquality ist das Prüfgate für QA-04: es misst Suchqualität, // RAG-Antwortgüte und Quellenverweis-Nachvollziehbarkeit auf einem festen, // synthetischen Testkorpus (SEM-01..06 bereits gemergt) und ändert keines der // geprüften Pakete. Der Korpus stammt aus refcorpus (QA-01), die "Einbettung" @@ -7,7 +7,7 @@ // einem externen Modell abhängt. Reine Termfrequenz ohne IDF-Gewichtung wurde // probiert und verworfen: seltene, fachlich entscheidende Wörter (z.B. // "Gesamtbetrag") gingen gegen häufige, generische Wörter unter. -package qa04gate +package searchquality import ( "context" diff --git a/ai/internal/qa04gate/qa04gate_test.go b/ai/internal/gates/searchquality/qa04gate_test.go similarity index 99% rename from ai/internal/qa04gate/qa04gate_test.go rename to ai/internal/gates/searchquality/qa04gate_test.go index 18c96934..a9f7a1e8 100644 --- a/ai/internal/qa04gate/qa04gate_test.go +++ b/ai/internal/gates/searchquality/qa04gate_test.go @@ -1,4 +1,4 @@ -package qa04gate +package searchquality import ( "context" diff --git a/ai/internal/qa04gate/testdata.go b/ai/internal/gates/searchquality/testdata.go similarity index 98% rename from ai/internal/qa04gate/testdata.go rename to ai/internal/gates/searchquality/testdata.go index afc2785b..8858814e 100644 --- a/ai/internal/qa04gate/testdata.go +++ b/ai/internal/gates/searchquality/testdata.go @@ -1,4 +1,4 @@ -package qa04gate +package searchquality // testQuestion ist eine feste Testfrage des QA-04-Prüfgates gegen den // refcorpus-Testkorpus (QA-01). erwarteteSourceID ist leer, wenn die Frage diff --git a/archive/internal/retentionverify/verify.go b/archive/internal/retentionverify/verify.go index 96a0bcde..aa3333fc 100644 --- a/archive/internal/retentionverify/verify.go +++ b/archive/internal/retentionverify/verify.go @@ -1,7 +1,7 @@ // Package retentionverify implementiert VAL-03: Stichprobenvergleich von // retain_until (Quelle aus TAR-01 vs. nach der Migration im generischen // Retention-Objektmodell) je Tenant, nach dem Berichtsmuster aus VAL-01 -// (internal/migrationverify): Abweichung ist entweder erklaert oder +// (internal/migration/verify): Abweichung ist entweder erklaert oder // blockierender Befund, nie reine Notiz. package retentionverify diff --git a/cmd/cor01-tenant-migrate/main.go b/cmd/cor01-tenant-migrate/main.go index 017c4469..af0ba0ce 100644 --- a/cmd/cor01-tenant-migrate/main.go +++ b/cmd/cor01-tenant-migrate/main.go @@ -1,6 +1,6 @@ // cor01-tenant-migrate fuehrt COR-01 aus: Uebernahme der freigegebenen // tenant_migration_map (MAP-02) in Core TEN-01. Einmalig wiederholbar -// gegen dieselbe Quelle (siehe internal/migrationtenant). +// gegen dieselbe Quelle (siehe internal/migration/tenant). package main import ( @@ -9,7 +9,7 @@ import ( "os" "gitea.perlbach24.de/scripte/nexarch/internal/db" - "gitea.perlbach24.de/scripte/nexarch/internal/migrationtenant" + "gitea.perlbach24.de/scripte/nexarch/internal/migration/tenant" "gitea.perlbach24.de/scripte/nexarch/internal/tenant" ) diff --git a/cmd/cor02-user-migrate/main.go b/cmd/cor02-user-migrate/main.go index f2ee4174..b3edacc2 100644 --- a/cmd/cor02-user-migrate/main.go +++ b/cmd/cor02-user-migrate/main.go @@ -1,6 +1,6 @@ // cor02-user-migrate fuehrt COR-02 aus: Uebernahme der freigegebenen // user_migration_map in Core IAM-01, bcrypt-Hashes 1:1 ohne Rehash. -// Einmalig wiederholbar gegen dieselbe Quelle (siehe internal/migrationuser). +// Einmalig wiederholbar gegen dieselbe Quelle (siehe internal/migration/user). package main import ( @@ -9,7 +9,7 @@ import ( "os" "gitea.perlbach24.de/scripte/nexarch/internal/db" - "gitea.perlbach24.de/scripte/nexarch/internal/migrationuser" + "gitea.perlbach24.de/scripte/nexarch/internal/migration/user" "gitea.perlbach24.de/scripte/nexarch/internal/tenant" ) diff --git a/cmd/val01-zeilenzahl-abgleich/main.go b/cmd/val01-zeilenzahl-abgleich/main.go index b3f006e0..ea016001 100644 --- a/cmd/val01-zeilenzahl-abgleich/main.go +++ b/cmd/val01-zeilenzahl-abgleich/main.go @@ -4,7 +4,7 @@ // Migrationsschritt. // // Benutzer-Quellzahl kommt aus der freigegebenen user_migration_map -// (Registry-DB, siehe internal/migrationuser). Dokument-/Nachrichten- +// (Registry-DB, siehe internal/migration/user). Dokument-/Nachrichten- // Quellzahlen kommen aus archivdms/archivmail und liegen in diesem // Repository nicht als Go-Code vor (nur als Source-Interface in // dms/internal/migrationdocument bzw. mail/internal/messagemigration, @@ -22,7 +22,7 @@ import ( "github.com/jackc/pgx/v5/pgxpool" - "gitea.perlbach24.de/scripte/nexarch/internal/migrationverify" + "gitea.perlbach24.de/scripte/nexarch/internal/migration/verify" "gitea.perlbach24.de/scripte/nexarch/internal/tenant" ) diff --git a/dms/internal/cutoverstage/stages.go b/dms/internal/cutoverstage/stages.go index 8e39c28c..83f9f316 100644 --- a/dms/internal/cutoverstage/stages.go +++ b/dms/internal/cutoverstage/stages.go @@ -223,7 +223,7 @@ const val02SampleSize = 5 // val02 entschluesselt eine Stichprobe migrierter Revisionen ueber denselben // crypto.Service wie der Lesepfad; den eigentlichen Hash-Vergleich macht -// internal/migrationverify (VAL-02) im Root-Modul auf diesen Klartexten. +// internal/migration/verify (VAL-02) im Root-Modul auf diesen Klartexten. func (e *Env) val02(ctx context.Context, t Tenant, _ int64, res *Result) error { target, err := e.Pool(ctx, t.TenantDB) if err != nil { diff --git a/dms/internal/qa08/qa08_test.go b/dms/internal/gates/auditproof/qa08_test.go similarity index 99% rename from dms/internal/qa08/qa08_test.go rename to dms/internal/gates/auditproof/qa08_test.go index b307e5a1..a02dc219 100644 --- a/dms/internal/qa08/qa08_test.go +++ b/dms/internal/gates/auditproof/qa08_test.go @@ -1,8 +1,8 @@ -// Package qa08 ist das Pruefgate "Revisionssicherheit" (QA-08): Manipulation +// Package auditproof ist das Pruefgate "Revisionssicherheit" (QA-08): Manipulation // an Protokoll und Revisionsinhalt wird erkannt, Signaturen sind mit einem // externen Werkzeug (pdfsig) pruefbar, Aktionen sind im Protokoll auffindbar, // und pro Revision entsteht ein Pruefbericht. -package qa08 +package auditproof import ( "bytes" diff --git a/dms/internal/qa03/qa03_test.go b/dms/internal/gates/documentcore/qa03_test.go similarity index 99% rename from dms/internal/qa03/qa03_test.go rename to dms/internal/gates/documentcore/qa03_test.go index 02f5f0d4..6883d9bc 100644 --- a/dms/internal/qa03/qa03_test.go +++ b/dms/internal/gates/documentcore/qa03_test.go @@ -1,9 +1,9 @@ -// Package qa03 ist das Pruefgate "Dokumentenkern" (QA-03): der komplette +// Package documentcore ist das Pruefgate "Dokumentenkern" (QA-03): der komplette // Lebenszyklus hochladen, ansehen, ablegen, herunterladen, loeschen, // wiederherstellen als automatisierter Test gegen das echte, voll migrierte // Schema, mit Pruefsummenvergleich ueber alle Schritte, Abbruchszenarien und // dem vollstaendigen Referenzkorpus (QA-01). -package qa03 +package documentcore import ( "bytes" diff --git a/dms/internal/qa02/qa02_test.go b/dms/internal/gates/foundation/qa02_test.go similarity index 99% rename from dms/internal/qa02/qa02_test.go rename to dms/internal/gates/foundation/qa02_test.go index 4c4c12e1..49fa99e5 100644 --- a/dms/internal/qa02/qa02_test.go +++ b/dms/internal/gates/foundation/qa02_test.go @@ -1,8 +1,8 @@ -// Package qa02 ist das Pruefgate "Fundament" (QA-02): Durchstich von der +// Package foundation ist das Pruefgate "Fundament" (QA-02): Durchstich von der // identifizierten Anfrage bis zum verschluesselt abgelegten Objekt, Wirksamkeit // der Verschluesselung und Fehlerbild bei Ausfall von Datenbank, Storage und // Schluesseldienst, jeweils gegen das echte, voll migrierte Schema. -package qa02 +package foundation import ( "bytes" diff --git a/dms/internal/qa10/qa10_test.go b/dms/internal/gates/loadtest/qa10_test.go similarity index 98% rename from dms/internal/qa10/qa10_test.go rename to dms/internal/gates/loadtest/qa10_test.go index d7c8c6fa..0aa12395 100644 --- a/dms/internal/qa10/qa10_test.go +++ b/dms/internal/gates/loadtest/qa10_test.go @@ -1,10 +1,10 @@ -// Package qa10 enthaelt QA-10s automatisierte Prüfungen je Akzeptanzkriterium: +// Package loadtest enthaelt QA-10s automatisierte Prüfungen je Akzeptanzkriterium: // Zielwerte fuer Antwortzeit/Durchsatz gemessen (AC1), definiertes statt // zufaelliges Verhalten bei Ueberlast (AC2), selbststaendige Erholung nach // Lastspitze (AC3). Dieselbe Bootstrap-Logik wie cmd/qa10loadtest, aber // kleine, schnelle Groessenordnung fuer den CI-Testlauf statt fuer die // Messung im Prüfprotokoll. -package qa10 +package loadtest import ( "bytes" @@ -92,7 +92,7 @@ func setup(t *testing.T, docCount int) *testHarness { if err != nil { t.Fatalf("users tabelle: %v", err) } - migrations, err := migrate.Load(filepath.Join("..", "..", "migrations", "tenant")) + migrations, err := migrate.Load(filepath.Join("..", "..", "..", "migrations", "tenant")) if err != nil { t.Fatalf("migrationen laden: %v", err) } diff --git a/dms/internal/qa05/classification_test.go b/dms/internal/gates/metadataclass/classification_test.go similarity index 99% rename from dms/internal/qa05/classification_test.go rename to dms/internal/gates/metadataclass/classification_test.go index 60291bff..a156830d 100644 --- a/dms/internal/qa05/classification_test.go +++ b/dms/internal/gates/metadataclass/classification_test.go @@ -1,4 +1,4 @@ -package qa05 +package metadataclass import ( "bytes" diff --git a/dms/internal/qa05/qa05_test.go b/dms/internal/gates/metadataclass/qa05_test.go similarity index 99% rename from dms/internal/qa05/qa05_test.go rename to dms/internal/gates/metadataclass/qa05_test.go index 3ef2c10a..b5002e06 100644 --- a/dms/internal/qa05/qa05_test.go +++ b/dms/internal/gates/metadataclass/qa05_test.go @@ -1,9 +1,9 @@ -// Package qa05 ist das Pruefgate "Metadaten & Klassifizierung" (QA-05) fuer +// Package metadataclass ist das Pruefgate "Metadaten & Klassifizierung" (QA-05) fuer // den Teil, der im DMS existiert: Feldvalidierung ueber alle Eingabewege, // Typwechsel mit Bestandsdaten und Konsistenz der Massenbearbeitung, gegen das // echte, voll migrierte Schema. Die Genauigkeit der automatischen Zuordnung // (MET-05, CLS-01/03) ist mangels Umsetzung nicht pruefbar, siehe Protokoll. -package qa05 +package metadataclass import ( "bytes" diff --git a/dms/internal/qa04/qa04_test.go b/dms/internal/gates/searchocr/qa04_test.go similarity index 99% rename from dms/internal/qa04/qa04_test.go rename to dms/internal/gates/searchocr/qa04_test.go index 49abaae7..2e2fee77 100644 --- a/dms/internal/qa04/qa04_test.go +++ b/dms/internal/gates/searchocr/qa04_test.go @@ -1,8 +1,8 @@ -// Package qa04 ist das Pruefgate "Suche & Texterkennung" (QA-04): Es misst am +// Package searchocr ist das Pruefgate "Suche & Texterkennung" (QA-04): Es misst am // festen, synthetischen Referenzkorpus die Erkennungsrate der OCR-Pipeline, die // Trefferqualitaet der Suche und die Konsistenz zwischen Datenbank und Suchindex, // gegen echtes Postgres (Testschema), echtes Tesseract und echtes Manticore. -package qa04 +package searchocr import ( "bytes" diff --git a/dms/internal/qa06/qa06_test.go b/dms/internal/gates/securityauthz/qa06_test.go similarity index 99% rename from dms/internal/qa06/qa06_test.go rename to dms/internal/gates/securityauthz/qa06_test.go index 90533d8d..921e5908 100644 --- a/dms/internal/qa06/qa06_test.go +++ b/dms/internal/gates/securityauthz/qa06_test.go @@ -1,7 +1,7 @@ -// Package qa06 ist das Pruefgate "Sicherheit & Berechtigung" (QA-06): jede +// Package securityauthz ist das Pruefgate "Sicherheit & Berechtigung" (QA-06): jede // Rolle gegen jeden objektbezogenen Endpunkt, Einschleusung, Upload-Haertung, // signierte URLs und aktive Inhalte. -package qa06 +package securityauthz import ( "context" diff --git a/dms/internal/qa06/search_test.go b/dms/internal/gates/securityauthz/search_test.go similarity index 99% rename from dms/internal/qa06/search_test.go rename to dms/internal/gates/securityauthz/search_test.go index 26c61ede..1af3328b 100644 --- a/dms/internal/qa06/search_test.go +++ b/dms/internal/gates/securityauthz/search_test.go @@ -1,4 +1,4 @@ -package qa06 +package securityauthz import ( "context" diff --git a/internal/cutoverorchestrator/steps_acl.go b/internal/cutoverorchestrator/steps_acl.go index 22bbefaf..a9bd4c00 100644 --- a/internal/cutoverorchestrator/steps_acl.go +++ b/internal/cutoverorchestrator/steps_acl.go @@ -9,7 +9,7 @@ import ( "github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5/pgxpool" - "gitea.perlbach24.de/scripte/nexarch/internal/migrationacl" + "gitea.perlbach24.de/scripte/nexarch/internal/migration/acl" "gitea.perlbach24.de/scripte/nexarch/internal/policy" "gitea.perlbach24.de/scripte/nexarch/internal/rbac" ) diff --git a/internal/cutoverorchestrator/steps_core.go b/internal/cutoverorchestrator/steps_core.go index 49052fac..837ea60e 100644 --- a/internal/cutoverorchestrator/steps_core.go +++ b/internal/cutoverorchestrator/steps_core.go @@ -11,10 +11,10 @@ import ( "gitea.perlbach24.de/scripte/nexarch/internal/finalmigrationapproval" "gitea.perlbach24.de/scripte/nexarch/internal/migrate" - "gitea.perlbach24.de/scripte/nexarch/internal/migrationaudit" - "gitea.perlbach24.de/scripte/nexarch/internal/migrationrole" - "gitea.perlbach24.de/scripte/nexarch/internal/migrationtenant" - "gitea.perlbach24.de/scripte/nexarch/internal/migrationuser" + "gitea.perlbach24.de/scripte/nexarch/internal/migration/audit" + "gitea.perlbach24.de/scripte/nexarch/internal/migration/role" + "gitea.perlbach24.de/scripte/nexarch/internal/migration/tenant" + "gitea.perlbach24.de/scripte/nexarch/internal/migration/user" "gitea.perlbach24.de/scripte/nexarch/internal/tenant" "gitea.perlbach24.de/scripte/nexarch/internal/tenantapproval" "gitea.perlbach24.de/scripte/nexarch/internal/tenantmatch" diff --git a/internal/cutoverorchestrator/steps_verify.go b/internal/cutoverorchestrator/steps_verify.go index 79ba3bb1..2ccd7d4c 100644 --- a/internal/cutoverorchestrator/steps_verify.go +++ b/internal/cutoverorchestrator/steps_verify.go @@ -15,8 +15,8 @@ import ( "github.com/jackc/pgx/v5/pgxpool" "gitea.perlbach24.de/scripte/nexarch/internal/auth" - "gitea.perlbach24.de/scripte/nexarch/internal/migrationuser" - "gitea.perlbach24.de/scripte/nexarch/internal/migrationverify" + "gitea.perlbach24.de/scripte/nexarch/internal/migration/user" + "gitea.perlbach24.de/scripte/nexarch/internal/migration/verify" "gitea.perlbach24.de/scripte/nexarch/internal/user" ) diff --git a/internal/cutoverorchestrator/val04.go b/internal/cutoverorchestrator/val04.go index 8ea2eba8..2739a482 100644 --- a/internal/cutoverorchestrator/val04.go +++ b/internal/cutoverorchestrator/val04.go @@ -7,10 +7,10 @@ import ( "path/filepath" "strings" - "gitea.perlbach24.de/scripte/nexarch/internal/migrationauditcontinuity" + "gitea.perlbach24.de/scripte/nexarch/internal/migration/auditcontinuity" ) -// val04 verwendet VAL-04 (internal/migrationauditcontinuity) direkt: Quelle +// val04 verwendet VAL-04 (internal/migration/auditcontinuity) direkt: Quelle // und Ziel liegen beide in der Registry-DB (legacy_audit_log_staging bzw. // audit_events aus COR-05), eine Modulstufe ist dafuer nicht noetig. func (d *Dryrun) val04(ctx context.Context) (Outcome, error) { diff --git a/internal/migrationacl/migrate.go b/internal/migration/acl/migrate.go similarity index 100% rename from internal/migrationacl/migrate.go rename to internal/migration/acl/migrate.go diff --git a/internal/migrationacl/migrate_test.go b/internal/migration/acl/migrate_test.go similarity index 100% rename from internal/migrationacl/migrate_test.go rename to internal/migration/acl/migrate_test.go diff --git a/internal/migrationacl/uuid.go b/internal/migration/acl/uuid.go similarity index 100% rename from internal/migrationacl/uuid.go rename to internal/migration/acl/uuid.go diff --git a/internal/migrationaudit/migrate.go b/internal/migration/audit/migrate.go similarity index 100% rename from internal/migrationaudit/migrate.go rename to internal/migration/audit/migrate.go diff --git a/internal/migrationaudit/migrate_test.go b/internal/migration/audit/migrate_test.go similarity index 100% rename from internal/migrationaudit/migrate_test.go rename to internal/migration/audit/migrate_test.go diff --git a/internal/migrationauditcontinuity/continuity.go b/internal/migration/auditcontinuity/continuity.go similarity index 97% rename from internal/migrationauditcontinuity/continuity.go rename to internal/migration/auditcontinuity/continuity.go index abefc137..28fd6314 100644 --- a/internal/migrationauditcontinuity/continuity.go +++ b/internal/migration/auditcontinuity/continuity.go @@ -1,6 +1,6 @@ // Package migrationauditcontinuity implementiert VAL-04: den // Kontinuitaetsabgleich des Audit-Logs je Tenant nach COR-05 -// (internal/migrationaudit) — aeltester/neuester Eintrag und Gesamtzahl +// (internal/migration/audit) — aeltester/neuester Eintrag und Gesamtzahl // zwischen legacy_audit_log_staging (Quelle) und audit_events (Ziel) // duerfen weder eine Luecke noch eine Zeitverschiebung zeigen. package migrationauditcontinuity diff --git a/internal/migrationauditcontinuity/continuity_test.go b/internal/migration/auditcontinuity/continuity_test.go similarity index 99% rename from internal/migrationauditcontinuity/continuity_test.go rename to internal/migration/auditcontinuity/continuity_test.go index 31fd5723..710b307e 100644 --- a/internal/migrationauditcontinuity/continuity_test.go +++ b/internal/migration/auditcontinuity/continuity_test.go @@ -11,7 +11,7 @@ import ( "github.com/jackc/pgx/v5/pgxpool" - "gitea.perlbach24.de/scripte/nexarch/internal/migrationaudit" + "gitea.perlbach24.de/scripte/nexarch/internal/migration/audit" "gitea.perlbach24.de/scripte/nexarch/internal/testdb" ) diff --git a/internal/migrationauditcontinuity/postgres.go b/internal/migration/auditcontinuity/postgres.go similarity index 100% rename from internal/migrationauditcontinuity/postgres.go rename to internal/migration/auditcontinuity/postgres.go diff --git a/internal/migrationauditcontinuity/render.go b/internal/migration/auditcontinuity/render.go similarity index 100% rename from internal/migrationauditcontinuity/render.go rename to internal/migration/auditcontinuity/render.go diff --git a/internal/migrationrole/map.go b/internal/migration/role/map.go similarity index 100% rename from internal/migrationrole/map.go rename to internal/migration/role/map.go diff --git a/internal/migrationrole/mapping.go b/internal/migration/role/mapping.go similarity index 100% rename from internal/migrationrole/mapping.go rename to internal/migration/role/mapping.go diff --git a/internal/migrationrole/mapping_test.go b/internal/migration/role/mapping_test.go similarity index 100% rename from internal/migrationrole/mapping_test.go rename to internal/migration/role/mapping_test.go diff --git a/internal/migrationrole/migrate.go b/internal/migration/role/migrate.go similarity index 100% rename from internal/migrationrole/migrate.go rename to internal/migration/role/migrate.go diff --git a/internal/migrationrole/migrate_test.go b/internal/migration/role/migrate_test.go similarity index 100% rename from internal/migrationrole/migrate_test.go rename to internal/migration/role/migrate_test.go diff --git a/internal/migrationtenant/map.go b/internal/migration/tenant/map.go similarity index 100% rename from internal/migrationtenant/map.go rename to internal/migration/tenant/map.go diff --git a/internal/migrationtenant/migrate.go b/internal/migration/tenant/migrate.go similarity index 100% rename from internal/migrationtenant/migrate.go rename to internal/migration/tenant/migrate.go diff --git a/internal/migrationtenant/migrate_test.go b/internal/migration/tenant/migrate_test.go similarity index 100% rename from internal/migrationtenant/migrate_test.go rename to internal/migration/tenant/migrate_test.go diff --git a/internal/migrationuser/map.go b/internal/migration/user/map.go similarity index 100% rename from internal/migrationuser/map.go rename to internal/migration/user/map.go diff --git a/internal/migrationuser/migrate.go b/internal/migration/user/migrate.go similarity index 100% rename from internal/migrationuser/migrate.go rename to internal/migration/user/migrate.go diff --git a/internal/migrationuser/migrate_test.go b/internal/migration/user/migrate_test.go similarity index 100% rename from internal/migrationuser/migrate_test.go rename to internal/migration/user/migrate_test.go diff --git a/internal/migrationuser/val05_login_test.go b/internal/migration/user/val05_login_test.go similarity index 100% rename from internal/migrationuser/val05_login_test.go rename to internal/migration/user/val05_login_test.go diff --git a/internal/migrationverify/hashcompare.go b/internal/migration/verify/hashcompare.go similarity index 100% rename from internal/migrationverify/hashcompare.go rename to internal/migration/verify/hashcompare.go diff --git a/internal/migrationverify/hashcompare_test.go b/internal/migration/verify/hashcompare_test.go similarity index 100% rename from internal/migrationverify/hashcompare_test.go rename to internal/migration/verify/hashcompare_test.go diff --git a/internal/migrationverify/postgres.go b/internal/migration/verify/postgres.go similarity index 94% rename from internal/migrationverify/postgres.go rename to internal/migration/verify/postgres.go index 78fafaf4..57be5650 100644 --- a/internal/migrationverify/postgres.go +++ b/internal/migration/verify/postgres.go @@ -12,7 +12,7 @@ import ( type TenantPoolResolver func(ctx context.Context, tenantSlug string) (*pgxpool.Pool, error) // PostgresTenantCountProvider zaehlt users und documents direkt in der -// Tenant-Datenbank, in die COR-02 (internal/migrationuser) bzw. DOK-01 +// Tenant-Datenbank, in die COR-02 (internal/migration/user) bzw. DOK-01 // (dms/internal/migrationdocument) schreiben. Die Nachrichten-Zieltabelle // existiert nicht in Postgres (siehe mail/internal/messagemigration, // Metadaten liegen ausschliesslich im Manticore-Suchindex) — das @@ -40,7 +40,7 @@ func (p PostgresTenantCountProvider) Counts(ctx context.Context, tenantSlug stri // RegistryApprovedUserCountProvider zaehlt freigegebene // user_migration_map-Eintraege je Tenant (siehe -// internal/migrationuser.MapStore.Approved) als Quellzahl der +// internal/migration/user.MapStore.Approved) als Quellzahl der // Benutzer-Kerntabelle. type RegistryApprovedUserCountProvider struct { RegistryPool *pgxpool.Pool diff --git a/internal/migrationverify/postgres_test.go b/internal/migration/verify/postgres_test.go similarity index 100% rename from internal/migrationverify/postgres_test.go rename to internal/migration/verify/postgres_test.go diff --git a/internal/migrationverify/render.go b/internal/migration/verify/render.go similarity index 100% rename from internal/migrationverify/render.go rename to internal/migration/verify/render.go diff --git a/internal/migrationverify/report.go b/internal/migration/verify/report.go similarity index 100% rename from internal/migrationverify/report.go rename to internal/migration/verify/report.go diff --git a/internal/migrationverify/verify.go b/internal/migration/verify/verify.go similarity index 100% rename from internal/migrationverify/verify.go rename to internal/migration/verify/verify.go diff --git a/internal/migrationverify/verify_test.go b/internal/migration/verify/verify_test.go similarity index 100% rename from internal/migrationverify/verify_test.go rename to internal/migration/verify/verify_test.go diff --git a/internal/tenantapproval/store_test.go b/internal/tenantapproval/store_test.go index fa8828dd..50796180 100644 --- a/internal/tenantapproval/store_test.go +++ b/internal/tenantapproval/store_test.go @@ -134,7 +134,7 @@ func TestUnapprovedEntry_IsRejectedByDownstreamConsumer(t *testing.T) { id := ids[0] // Akzeptanzkriterium 3: approved_at IS NOT NULL ist die einzige Quelle, - // die COR-01 (internal/migrationtenant.MapStore.Approved) tatsaechlich + // die COR-01 (internal/migration/tenant.MapStore.Approved) tatsaechlich // liest -- derselbe Filter wird hier direkt nachgebildet, um die // Zurueckweisung ohne Freigabe nachzuweisen. var count int diff --git a/internal/usermigrationapproval/store.go b/internal/usermigrationapproval/store.go index 0097d4d7..80ab69ac 100644 --- a/internal/usermigrationapproval/store.go +++ b/internal/usermigrationapproval/store.go @@ -3,7 +3,7 @@ // (internal/tenantapproval) eine Ebene tiefer (Benutzer statt Tenant). Jede // Benutzer-Zusammenfuehrung erfordert eine explizite, protokollierte // menschliche Entscheidung (Approve/Reject), bevor COR-02 -// (internal/migrationuser.MapStore.Approved) sie als Quelle nutzen darf. +// (internal/migration/user.MapStore.Approved) sie als Quelle nutzen darf. package usermigrationapproval import ( diff --git a/internal/usermigrationapproval/store_test.go b/internal/usermigrationapproval/store_test.go index c6c1c254..8d1d698e 100644 --- a/internal/usermigrationapproval/store_test.go +++ b/internal/usermigrationapproval/store_test.go @@ -167,7 +167,7 @@ func TestUnapprovedMerge_StaysRejectedWhileBothAccountsRemainSeparatelyMigratabl } mergeID := mergeIDs[0] - // Downstream-Filter von COR-02 (internal/migrationuser.MapStore.Approved) + // Downstream-Filter von COR-02 (internal/migration/user.MapStore.Approved) // liest ausschliesslich approved_at IS NOT NULL -- hier direkt // nachgebildet, um die Zurueckweisung ohne Freigabe nachzuweisen. assertNotApprovedForDownstream := func(id int64) { @@ -251,7 +251,7 @@ func TestUnapprovedMerge_StaysRejectedWhileBothAccountsRemainSeparatelyMigratabl // AC3: die freigegebene Map ist die einzige Quelle fuer COR-02 -- // Approved() liefert ausschliesslich Eintraege mit approved_at gesetzt, -// genau der Filter, den internal/migrationuser.MapStore.Approved +// genau der Filter, den internal/migration/user.MapStore.Approved // implementiert. func TestApproved_LiefertNurFreigegebeneEintraege(t *testing.T) { ctx := context.Background() diff --git a/scripts/qa02-foundation-gate.sh b/scripts/qa02-foundation-gate.sh index ec46bba1..0e6b19c7 100755 --- a/scripts/qa02-foundation-gate.sh +++ b/scripts/qa02-foundation-gate.sh @@ -52,7 +52,7 @@ go_suite FDN-09 ./internal/crypto/ go_suite FDN-16 ./internal/testdb/ ./internal/testlock/ go_suite FDN-10/11 ./internal/downloadapi/ ./internal/jobqueue/ go_suite QA-01 ./internal/testcorpus/ -go_suite QA-02 ./internal/qa02/ +go_suite QA-02 ./internal/gates/foundation/ perf_serial() { local out; out="$(cd dms && TEST_PERF=1 go test -count=1 -p 1 -v -run 'TestSearch_ConcurrentRequestsStayUnderResponseTimeLimit|TestFilters_ResponseTimeWithFiveFilters' ./internal/searchapi/ 2>&1)" diff --git a/scripts/qa03-epic-gate.sh b/scripts/qa03-epic-gate.sh index 5e5c6fb3..31497c2a 100755 --- a/scripts/qa03-epic-gate.sh +++ b/scripts/qa03-epic-gate.sh @@ -25,7 +25,7 @@ go_suite DOC-11/12 ./internal/trash/ ./internal/trashapi/ go_suite DOC-14 ./internal/docmerge/ go_suite DOC-15 ./internal/bulkedit/ ./internal/bulkeditapi/ go_suite QA-01 ./internal/testcorpus/ -go_suite QA-03 ./internal/qa03/ +go_suite QA-03 ./internal/gates/documentcore/ if [ "${QA03_SKIP_WEB:-0}" != 1 ]; then for d in shl dms-upload dms-browser pdf-viewer; do diff --git a/workflow/internal/qa03/qa03_test.go b/workflow/internal/gates/approvals/qa03_test.go similarity index 99% rename from workflow/internal/qa03/qa03_test.go rename to workflow/internal/gates/approvals/qa03_test.go index 426b4f33..0ddd2183 100644 --- a/workflow/internal/qa03/qa03_test.go +++ b/workflow/internal/gates/approvals/qa03_test.go @@ -1,10 +1,10 @@ -// Package qa03 ist das Pruefgate Genehmigungen & Aufgaben (QA-03): ein +// Package approvals ist das Pruefgate Genehmigungen & Aufgaben (QA-03): ein // fester Testkorpus, der die bereits gemergten Bausteine APR-02 // (dualcheck), APR-04 (delegation), TSK-03 (escalation) und TSK-05 // (escalationnotify) end-zu-ende gegen echtes Postgres durchspielt -- // Missbrauchsversuche auf die Vier-Augen-Freigabe, Zeitraffer-Fristen und // den vollstaendigen Eskalationspfad bis zum simulierten Core-Dispatcher. -package qa03 +package approvals import ( "context" diff --git a/workflow/internal/qa02/qa02_test.go b/workflow/internal/gates/engine/qa02_test.go similarity index 99% rename from workflow/internal/qa02/qa02_test.go rename to workflow/internal/gates/engine/qa02_test.go index e0ceec40..47d36180 100644 --- a/workflow/internal/qa02/qa02_test.go +++ b/workflow/internal/gates/engine/qa02_test.go @@ -1,9 +1,9 @@ -// Package qa02 ist das Pruefgate fuer QA-02: Zustandsautomat (ENG-01), +// Package engine ist das Pruefgate fuer QA-02: Zustandsautomat (ENG-01), // Prozessdefinitions-Format (ENG-03), Modul-Adapter-Schnittstelle (ENG-02) // und Fehlerbehandlung/Retry (ENG-05) werden hier nicht isoliert, sondern // im Zusammenspiel gegen eine echte, frisch migrierte Testdatenbank // gefahren. -package qa02 +package engine import ( "context"