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

3.3 KiB

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