93 lines
3.3 KiB
Markdown
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
|