10-backend/internal/persistence/artifact-manifest.json
{
"manifestVersion": "1",
"artifact": {
"id": "IMPL-EP-PERSISTENCE-MIGRATIONS",
"type": "implementation-module",
"name": "Persistence and Migration Foundation",
"status": "active"
},
"realizes": {
"vision": [
"MVP-001"
],
"capabilities": [
"CAP-015",
"CAP-024",
"CAP-027"
],
"referenceBuildingBlocks": [
"RBB-PERSISTENCE"
],
"solutionBuildingBlocks": [
"BB-EP-010"
],
"requirements": [
"REQ-MVP-PER-001",
"REQ-MVP-AUD-001"
]
},
"implements": {
"domainObjects": [
"ArtifactRevision",
"RelationshipRevision",
"AuditEvent",
"OutboxEvent"
],
"ports": [
"MigrationRunner"
],
"runtimeComponents": [
"engineering-platform-database"
]
},
"documentation": {
"solutionArchitecture": [
"70-data/EP-001B-persistence-model.md"
],
"engineeringPlatform": [
"60-persistence/EP-001B-persistence-boundary.md"
]
},
"ownership": {
"repository": "engineering-platform",
"buildingBlock": "BB-EP-010",
"modulePath": "10-backend/internal/persistence"
},
"quality": {
"tests": [
"10-backend/internal/persistence/migrations"
],
"requiredChecks": [
"go-test",
"migration-validation",
"traceability-validation"
]
},
"verification": {
"codeAreas": [
{
"path": "10-backend/internal/persistence/migrations",
"classification": "adapter",
"status": "directly-verified",
"evidence": [
{
"category": "unit-test",
"path": "10-backend/internal/persistence/migrations/runner_test.go",
"purpose": "prüft Migrationserkennung und SQL-Splitting"
},
{
"category": "fuzz-test",
"path": "10-backend/internal/persistence/migrations/runner_test.go",
"purpose": "stabilisiert SQL-Splitting"
}
],
"limitations": [
"Echte MariaDB-Ausführung fehlt noch."
]
},
{
"path": "10-backend/internal/sharedkernel/language.go",
"classification": "domain-logic",
"status": "directly-verified",
"evidence": [
{
"category": "unit-test",
"path": "10-backend/internal/sharedkernel/id_test.go",
"purpose": "prüft Sprachcodes"
},
{
"category": "fuzz-test",
"path": "10-backend/internal/sharedkernel/id_test.go",
"purpose": "verhindert unbekannte Sprachcodes"
}
]
},
{
"path": "10-backend/internal/sharedkernel/context.go",
"classification": "domain-logic",
"status": "directly-verified",
"evidence": [
{
"category": "unit-test",
"path": "10-backend/internal/sharedkernel/context_test.go",
"purpose": "prüft Akteur und Zeitpunkt"
}
]
},
{
"path": "10-backend/internal/localization/domain/localization.go",
"classification": "declaration-only",
"status": "not-applicable",
"reason": "Aktuell nur Typen und Statuskonstanten."
},
{
"path": "10-backend/internal/translation/domain/job.go",
"classification": "declaration-only",
"status": "not-applicable",
"reason": "Aktuell nur Typen und Statuskonstanten."
},
{
"path": "10-backend/internal/roundtrip/domain/job.go",
"classification": "declaration-only",
"status": "not-applicable",
"reason": "Aktuell nur Typen und Statuskonstanten."
},
{
"path": "10-backend/internal/audit/domain/event.go",
"classification": "declaration-only",
"status": "not-applicable",
"reason": "Aktuell nur Event-Datenmodell."
}
]
}
}