Files
git.stella-ops.org/docs/implplan-blocked/audits/csproj-standards/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.md

7.3 KiB

Audit - StellaOps.EvidenceLocker

Project

  • Path: src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.csproj
  • Module: EvidenceLocker
  • Kind: Service
  • SDK: Microsoft.NET.Sdk
  • TargetFramework: net10.0
  • Audit date (UTC): 2026-01-30

Coding Standards Findings

  • Status: FAIL
  • Nullable: enable
  • TreatWarningsAsErrors: explicit true
  • Deterministic: inherited true
  • 100-line rule violations: 41
  • Service locator usage (BuildServiceProvider/GetService): 4
  • Analyzer enforcement: missing repo-wide (see summary).

Details

  • 100-line files:
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceBundleImmutabilityTests.cs (685 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceSnapshotServiceTests.cs (520 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Reindexing/EvidenceReindexService.cs (501 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceLockerWebServiceContractTests.cs (490 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Services/EvidenceSnapshotService.cs (487 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceBundlePackagingServiceTests.cs (483 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceLockerWebApplicationFactory.cs (456 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceReindexServiceTests.cs (443 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Repositories/EvidenceBundleRepository.cs (437 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceLockerIntegrationTests.cs (423 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Services/EvidencePortableBundleService.cs (421 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/Storage/PostgresVerdictRepository.cs (385 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Storage/S3EvidenceObjectStore.cs (377 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceSignatureServiceTests.cs (372 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidencePortableBundleServiceTests.cs (370 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceLockerWebServiceTests.cs (365 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.WebService/Program.cs (355 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/Api/VerdictEndpoints.cs (342 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.WebService/Audit/EvidenceAuditLogger.cs (338 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceReindexIntegrationTests.cs (323 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Timeline/TimelineIndexerEvidenceTimelinePublisher.cs (321 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Services/EvidenceBundlePackagingService.cs (319 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Signing/EvidenceSignatureService.cs (290 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/ExportEndpointsTests.cs (281 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Core/Configuration/EvidenceLockerOptions.cs (280 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/Api/VerdictContracts.cs (236 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/Api/ExportEndpoints.cs (233 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/DependencyInjection/EvidenceLockerInfrastructureServiceCollectionExtensions.cs (223 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/Api/ExportJobService.cs (219 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/TimelineIndexerEvidenceTimelinePublisherTests.cs (184 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Signing/Rfc3161TimestampAuthorityClient.cs (172 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Storage/FileSystemEvidenceObjectStore.cs (160 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/DatabaseMigrationTests.cs (160 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Core/Reindexing/IEvidenceReindexService.cs (155 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.WebService/Contracts/EvidenceContracts.cs (152 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/S3EvidenceObjectStoreTests.cs (143 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceBundleBuilderTests.cs (140 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Services/IncidentModeManager.cs (134 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/Api/IExportJobService.cs (132 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Builders/EvidenceBundleBuilder.cs (120 lines)
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Db/EvidenceLockerMigrationRunner.cs (120 lines)
  • Service locator matches:
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceReindexIntegrationTests.cs:89 var reindexService = scope.ServiceProvider.GetService();
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceReindexIntegrationTests.cs:153 var reindexService = scope.ServiceProvider.GetService();
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceReindexIntegrationTests.cs:209 var reindexService = scope.ServiceProvider.GetService();
    • src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/EvidenceReindexIntegrationTests.cs:282 var reindexService = scope.ServiceProvider.GetService();

Fix Guidance

  • Split files over 100 lines into smaller types or partials.
  • Replace service locator usage with constructor injection.

Testing Fullness Findings

  • Status: PASS
  • Expected layers: Unit
  • Detected test projects: src/EvidenceLocker/__Tests/StellaOps.EvidenceLocker.SchemaEvolution.Tests/StellaOps.EvidenceLocker.SchemaEvolution.Tests.csproj [Unit], src/EvidenceLocker/__Tests/StellaOps.EvidenceLocker.Export.Tests/StellaOps.EvidenceLocker.Export.Tests.csproj [Unit], src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Tests/StellaOps.EvidenceLocker.Tests.csproj [Unit]
  • Missing layers: none

Manual checks required

  • Observability contract tests for WebService/Worker.
  • Intent tagging required for regulatory modules.
  • Offline execution (tests must run without network access).

Fix Guidance

  • None.