# DAL Consolidation Archive **Completed:** 2025-12-27 ## Summary This archive contains all sprint files for the DAL (Data Access Layer) Consolidation initiative, which migrated StellaOps from fragmented storage patterns (`*.Storage.Postgres`, `*.Storage.InMemory`, `*.Persistence.EfCore`) to a unified `*.Persistence` pattern. ## Final State | Category | Count | Notes | |----------|-------|-------| | Modules with `*.Persistence` | 18 | Standard pattern | | Modules with Infrastructure pattern | 4 | Orchestrator, EvidenceLocker, ExportCenter, TimelineIndexer | | Modules with `*.Storage` naming | 1 | Scanner (established pattern) | | Modules with shared library pattern | 1 | Signer (uses KeyManagement) | ## Sprints Completed ### Master Plan - `SPRINT_1227_0001_0000_dal_consolidation_master.md` ### Batch 1: Small/Simple Modules - `SPRINT_1227_0002_0001_dal_notify.md` - `SPRINT_1227_0002_0002_dal_scheduler.md` - `SPRINT_1227_0002_0003_dal_taskrunner.md` ### Batch 2: Medium Complexity - `SPRINT_1227_0003_0001_dal_authority.md` ### Batch 3: High Complexity - `SPRINT_1227_0004_0001_dal_scanner.md` ### Batch 4: Large Schema - `SPRINT_1227_0005_0001_dal_concelier.md` ### Batch 5: Policy & Signals - `SPRINT_1227_0006_0001_dal_policy.md` - `SPRINT_1227_0006_0002_dal_signals.md` ### Batch 6: VEX Ecosystem - `SPRINT_1227_0007_0001_dal_excititor.md` - `SPRINT_1227_0007_0002_dal_vexhub.md` - `SPRINT_1227_0007_0003_dal_issuer_directory.md` ### Batch 7: Registry & Storage - `SPRINT_1227_0008_0001_dal_packs_registry.md` - `SPRINT_1227_0008_0002_dal_sbom_service.md` - `SPRINT_1227_0008_0003_dal_airgap.md` ### Batch 8: Shared Libraries - `SPRINT_1227_0009_0001_dal_graph.md` - `SPRINT_1227_0009_0002_dal_evidence.md` ### Batch 9: Infrastructure Extraction - `SPRINT_1227_0010_0001_dal_orchestrator.md` - `SPRINT_1227_0010_0002_dal_evidence_locker.md` - `SPRINT_1227_0010_0003_dal_export_center.md` - `SPRINT_1227_0010_0004_dal_timeline_indexer.md` ### Batch 10: Already Modernized - `SPRINT_1227_0011_0001_dal_binary_index.md` - `SPRINT_1227_0011_0002_dal_signer.md` - `SPRINT_1227_0011_0003_dal_attestor.md` ## Target Structure (Per Module) ``` Module/ ├── __Libraries/ │ └── StellaOps.Module.Persistence/ │ ├── Migrations/ # SQL migrations (source of truth) │ ├── EfCore/ # EF Core implementation │ │ ├── Context/ │ │ ├── Entities/ │ │ └── Repositories/ │ ├── Postgres/ # Raw SQL implementation │ │ └── Repositories/ │ ├── InMemory/ # Testing implementation (where applicable) │ │ └── Repositories/ │ └── Extensions/ │ └── ModulePersistenceExtensions.cs ``` ## Decisions Made 1. **SQL migrations remain source of truth** - Database-first approach maintained 2. **EF Core scaffolds from live database** - Supports hybrid Raw SQL + EF Core 3. **InMemory for testing only** - Production uses PostgreSQL 4. **Some modules keep Infrastructure pattern** - Orchestrator, EvidenceLocker, ExportCenter, TimelineIndexer have unique workflow requirements 5. **Scanner keeps Storage naming** - Established pattern with 27 migrations 6. **Signer uses shared library** - KeyManagement library provides DB access