Files
git.stella-ops.org/docs/implplan/archived/2025-12-27-dal-consolidation/README.md
StellaOps Bot 3bfbbae115 fixes save
2025-12-27 23:30:09 +02:00

93 lines
3.3 KiB
Markdown

# 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