stabilize tests

This commit is contained in:
master
2026-02-01 21:37:40 +02:00
parent 55744f6a39
commit 5d5e80b2e4
6435 changed files with 33984 additions and 13802 deletions

View File

@@ -1,4 +1,4 @@
# Export Center · AGENTS Charter (Sprint 0164-0001-0001)
# Export Center ?? AGENTS Charter (Sprint 0164-0001-0001)
## Module Scope & Working Directory
- Working directory: `src/ExportCenter/**` (API/WebService, Worker, Core/Infrastructure libs, Trivy/Mirror/DevPortal adapters, RiskBundles pipeline, tests, seed/config). Cross-module edits require an explicit note in the sprint Decisions & Risks.
@@ -23,8 +23,8 @@
- `docs/modules/export-center/provenance-and-signing.md`
- `docs/modules/export-center/operations/kms-envelope-pattern.md` (for 37-002 encryption/KMS)
- `docs/modules/export-center/operations/risk-bundle-provider-matrix.md` (for 69/70 risk bundle chain)
- Sprint file `docs/implplan/SPRINT_0164_0001_0001_exportcenter_iii.md`
- Offline triage bundle format: `docs/airgap/offline-bundle-format.md` (SPRINT_3603/3605)
- Sprint file `docs-archived/implplan/SPRINT_0164_0001_0001_exportcenter_iii.md`
- Offline triage bundle format: `docs/modules/airgap/guides/offline-bundle-format.md` (SPRINT_3603/3605)
## Offline Evidence Bundles & Cache (SPRINT_3603 / SPRINT_3605)
- Bundle format: `.stella.bundle.tgz` with DSSE-signed manifest and deterministic entry hashing (no external fetches required to verify).
@@ -62,7 +62,8 @@
- Keep tests air-gap friendly; seeded data under `src/__Tests/__Datasets/seed-data/` or inline fixtures.
## Delivery Discipline
- Update sprint tracker statuses (`TODO DOING DONE/BLOCKED`) in `docs/implplan/SPRINT_0164_0001_0001_exportcenter_iii.md` when starting/finishing/blocking work; mirror design decisions in Decisions & Risks and Execution Log.
- Update sprint tracker statuses (`TODO ??? DOING ??? DONE/BLOCKED`) in `docs-archived/implplan/SPRINT_0164_0001_0001_exportcenter_iii.md` when starting/finishing/blocking work; mirror design decisions in Decisions & Risks and Execution Log.
- If a decision is needed (API contract, KMS envelope pattern), mark the task `BLOCKED`, describe the decision in sprint Decisions & Risks, and continue with other unblocked tasks.
- When contracts or schemas change (API, manifest, provenance, adapter outputs), update module docs and link them from the sprint.
- Retain deterministic retention/pruning behavior; document feature flags and defaults in `docs/modules/export-center/operations/*.md` when modified.

View File

@@ -1,3 +1,4 @@
using System.Buffers.Binary;
using System.Collections.Immutable;
using System.Formats.Tar;

View File

@@ -1,7 +1,8 @@
using Microsoft.Extensions.Logging;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
namespace StellaOps.ExportCenter.RiskBundles;

View File

@@ -1,8 +1,9 @@
using StellaOps.Cryptography;
using System.Globalization;
using System.IO;
using System.Text;
using System.Text.Json.Serialization;
using StellaOps.Cryptography;
namespace StellaOps.ExportCenter.RiskBundles;

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0335-M | DONE | Revalidated 2026-01-07; maintainability audit for ExportCenter.RiskBundles. |
| AUDIT-0335-T | DONE | Revalidated 2026-01-07; test coverage audit for ExportCenter.RiskBundles. |
| AUDIT-0335-A | TODO | Pending approval (non-test project; revalidated 2026-01-07). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,7 +1,7 @@
# StellaOps Exporter Service Agent Charter
# StellaOps Exporter Service ??? Agent Charter
## Mission
Deliver the Export Center service described in Epic10. Provide reproducible, signed bundles (JSON, Trivy DB, mirror) that respect AOC boundaries, tenant isolation, and imposed rule propagation across all consuming components.
Deliver the Export Center service described in Epic???10. Provide reproducible, signed bundles (JSON, Trivy DB, mirror) that respect AOC boundaries, tenant isolation, and imposed rule propagation across all consuming components.
## Key Responsibilities
- Maintain planner, adapters, signing, and distribution layers for export profiles.
@@ -10,17 +10,17 @@ Deliver the Export Center service described in Epic10. Provide reproducible,
- Support Console/CLI experiences, DevOps automation, and Offline Kit packaging without violating sovereignty or redaction requirements.
## Module Layout
- `StellaOps.ExportCenter.Core/` export profile domain logic, planners, and validation.
- `StellaOps.ExportCenter.Infrastructure/` storage providers, signing adapters, integration clients.
- `StellaOps.ExportCenter.WebService/` REST API surface (profiles, runs, downloads, SSE).
- `StellaOps.ExportCenter.Worker/` export execution pipelines and background schedulers.
- `StellaOps.ExportCenter.Tests/` unit tests and future fixture harnesses.
- `StellaOps.ExportCenter.sln` module solution wiring projects together.
- `StellaOps.ExportCenter.Core/` ??? export profile domain logic, planners, and validation.
- `StellaOps.ExportCenter.Infrastructure/` ??? storage providers, signing adapters, integration clients.
- `StellaOps.ExportCenter.WebService/` ??? REST API surface (profiles, runs, downloads, SSE).
- `StellaOps.ExportCenter.Worker/` ??? export execution pipelines and background schedulers.
- `StellaOps.ExportCenter.Tests/` ??? unit tests and future fixture harnesses.
- `StellaOps.ExportCenter.sln` ??? module solution wiring projects together.
## Required Reading
- `docs/modules/export-center/architecture.md`
- `docs/modules/platform/architecture-overview.md`
- `docs/airgap/offline-bundle-format.md` (triage offline bundles)
- `docs/modules/airgap/guides/offline-bundle-format.md` (triage offline bundles)
## Contracts (Offline Triage Bundles)
- Offline triage bundles are `.stella.bundle.tgz` files with a DSSE-signed manifest and deterministic entry ordering.
@@ -34,3 +34,4 @@ Deliver the Export Center service described in Epic10. Provide reproducible,
- 3. Keep changes deterministic (stable ordering, timestamps, hashes) and align with offline/air-gap expectations.
- 4. Coordinate doc updates, tests, and cross-guild communication whenever contracts or workflows change.
- 5. Revert to `TODO` if you pause the task without shipping changes; leave notes in commit/PR descriptions for context.

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0332-M | DONE | Revalidated 2026-01-07; maintainability audit for ExportCenter.Client.Tests. |
| AUDIT-0332-T | DONE | Revalidated 2026-01-07; test coverage audit for ExportCenter.Client.Tests. |
| AUDIT-0332-A | DONE | Waived (test project; revalidated 2026-01-07). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,8 +1,9 @@
using Microsoft.Extensions.Options;
using StellaOps.ExportCenter.Client.Models;
using System.Net;
using System.Net.Http.Json;
using System.Text.Json;
using Microsoft.Extensions.Options;
using StellaOps.ExportCenter.Client.Models;
namespace StellaOps.ExportCenter.Client;

View File

@@ -1,3 +1,4 @@
using StellaOps.ExportCenter.Client.Models;
namespace StellaOps.ExportCenter.Client.Lifecycle;

View File

@@ -1,3 +1,4 @@
using System.Security.Cryptography;
namespace StellaOps.ExportCenter.Client.Streaming;

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0331-M | DONE | Revalidated 2026-01-07; maintainability audit for ExportCenter.Client. |
| AUDIT-0331-T | DONE | Revalidated 2026-01-07; test coverage audit for ExportCenter.Client. |
| AUDIT-0331-A | TODO | Pending approval (non-test project; revalidated 2026-01-07). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -12,7 +12,7 @@ Implement core export planning, bundling, scheduling, and determinism-critical d
- docs/modules/export-center/architecture.md
- docs/modules/export-center/provenance-and-signing.md
- docs/modules/export-center/mirror-bundles.md
- docs/airgap/offline-bundle-format.md
- docs/modules/airgap/guides/offline-bundle-format.md
- docs/modules/platform/architecture-overview.md
## Definition of Done
@@ -26,3 +26,4 @@ Implement core export planning, bundling, scheduling, and determinism-critical d
- 3. Use TimeProvider or explicit timestamps; avoid DateTimeOffset.UtcNow defaults.
- 4. Avoid nondeterministic IDs in output models unless explicitly required.
- 5. Revert to TODO if paused; capture context in PR notes.

View File

@@ -1,3 +1,6 @@
using Microsoft.Extensions.Logging;
using StellaOps.ExportCenter.Core.Planner;
using System.Buffers;
using System.Diagnostics;
using System.Globalization;
@@ -6,8 +9,6 @@ using System.Security.Cryptography;
using System.Text;
using System.Text.Encodings.Web;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.ExportCenter.Core.Planner;
namespace StellaOps.ExportCenter.Core.Adapters;

View File

@@ -1,5 +1,6 @@
using System.Text.Json.Serialization;
using StellaOps.ExportCenter.Core.Planner;
using System.Text.Json.Serialization;
namespace StellaOps.ExportCenter.Core.Adapters;

View File

@@ -1,7 +1,8 @@
using StellaOps.ExportCenter.Core.Planner;
using System.IO.Compression;
using System.Security.Cryptography;
using System.Text;
using StellaOps.ExportCenter.Core.Planner;
namespace StellaOps.ExportCenter.Core.Adapters;

View File

@@ -1,11 +1,12 @@
using Microsoft.Extensions.Logging;
using StellaOps.ExportCenter.Core.Planner;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Nodes;
using Microsoft.Extensions.Logging;
using StellaOps.ExportCenter.Core.Planner;
namespace StellaOps.ExportCenter.Core.Adapters;

View File

@@ -1,10 +1,11 @@
using Microsoft.Extensions.Logging;
using StellaOps.ExportCenter.Core.Planner;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.ExportCenter.Core.Planner;
namespace StellaOps.ExportCenter.Core.Adapters;

View File

@@ -1,9 +1,10 @@
using System.Runtime.CompilerServices;
using System.Text.RegularExpressions;
using Microsoft.Extensions.Logging;
using StellaOps.Cryptography;
using StellaOps.ExportCenter.Core.MirrorBundle;
using StellaOps.ExportCenter.Core.Planner;
using System.Runtime.CompilerServices;
using System.Text.RegularExpressions;
namespace StellaOps.ExportCenter.Core.Adapters;

View File

@@ -1,8 +1,9 @@
using System.Runtime.CompilerServices;
using Microsoft.Extensions.Logging;
using StellaOps.Cryptography;
using StellaOps.ExportCenter.Core.MirrorBundle;
using StellaOps.ExportCenter.Core.Planner;
using System.Runtime.CompilerServices;
namespace StellaOps.ExportCenter.Core.Adapters;

View File

@@ -1,10 +1,11 @@
using Microsoft.Extensions.Logging;
using StellaOps.Cryptography;
using StellaOps.ExportCenter.Core.Planner;
using System.IO.Compression;
using System.Runtime.CompilerServices;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.Cryptography;
using StellaOps.ExportCenter.Core.Planner;
namespace StellaOps.ExportCenter.Core.Adapters.Trivy;

View File

@@ -1,10 +1,11 @@
using Microsoft.Extensions.Logging;
using StellaOps.Cryptography;
using StellaOps.ExportCenter.Core.Planner;
using System.IO.Compression;
using System.Runtime.CompilerServices;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.Cryptography;
using StellaOps.ExportCenter.Core.Planner;
namespace StellaOps.ExportCenter.Core.Adapters.Trivy;

View File

@@ -1,5 +1,6 @@
using System.Text.Json;
using Microsoft.Extensions.Logging;
using System.Text.Json;
namespace StellaOps.ExportCenter.Core.Adapters.Trivy;

View File

@@ -1,10 +1,11 @@
using StellaOps.Cryptography;
using System.Buffers.Binary;
using System.Formats.Tar;
using System.IO.Compression;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.Cryptography;
namespace StellaOps.ExportCenter.Core.AttestationBundle;

View File

@@ -1,3 +1,5 @@
using StellaOps.Cryptography;
using System.Buffers.Binary;
using System.Formats.Tar;
using System.IO.Compression;
@@ -5,7 +7,6 @@ using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.Cryptography;
namespace StellaOps.ExportCenter.Core.BootstrapPack;

View File

@@ -4,16 +4,17 @@
// Description: Builds change trace evidence bundles for export.
// -----------------------------------------------------------------------------
using ChangeTraceModel = StellaOps.Scanner.ChangeTrace.Models.ChangeTrace;
using StellaOps.Attestor.ProofChain.ChangeTrace;
using StellaOps.Attestor.ProofChain.Signing;
using StellaOps.Scanner.ChangeTrace.CycloneDx;
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.Attestor.ProofChain.ChangeTrace;
using StellaOps.Attestor.ProofChain.Signing;
using StellaOps.Scanner.ChangeTrace.CycloneDx;
using ChangeTraceModel = StellaOps.Scanner.ChangeTrace.Models.ChangeTrace;
namespace StellaOps.ExportCenter.Core.ChangeTrace;

View File

@@ -1,6 +1,7 @@
using System.Security.Cryptography;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using System.Security.Cryptography;
namespace StellaOps.ExportCenter.Core.Crypto.Encryption;

View File

@@ -1,7 +1,8 @@
using System.Diagnostics;
using System.Security.Cryptography;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using System.Diagnostics;
using System.Security.Cryptography;
namespace StellaOps.ExportCenter.Core.Crypto.Encryption;

View File

@@ -1,3 +1,4 @@
using Microsoft.Extensions.Logging;
namespace StellaOps.ExportCenter.Core.Crypto.Encryption;

View File

@@ -1,7 +1,8 @@
using System.Text;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Cryptography;
using System.Text;
namespace StellaOps.ExportCenter.Core.Crypto;

View File

@@ -1,14 +1,15 @@
using StellaOps.Cryptography;
using System.Buffers;
using System.Buffers.Binary;
using System.Collections.Generic;
using System.Formats.Tar;
using System.Globalization;
using System.IO.Compression;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Linq;
using StellaOps.Cryptography;
namespace StellaOps.ExportCenter.Core.DevPortalOffline;

View File

@@ -1,10 +1,11 @@
using Microsoft.Extensions.Logging;
using System;
using System.IO;
using System.Text;
using System.Text.Json;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
namespace StellaOps.ExportCenter.Core.DevPortalOffline;

View File

@@ -1,7 +1,8 @@
using System.Security.Cryptography;
using System.Text;
using Microsoft.Extensions.Logging;
using StellaOps.Cryptography;
using System.Security.Cryptography;
using System.Text;
namespace StellaOps.ExportCenter.Core.Encryption;

View File

@@ -1,6 +1,7 @@
using Microsoft.Extensions.Logging;
using System.Security.Cryptography;
using System.Text;
using Microsoft.Extensions.Logging;
namespace StellaOps.ExportCenter.Core.Encryption;

View File

@@ -1,7 +1,8 @@
using Microsoft.Extensions.Logging;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
namespace StellaOps.ExportCenter.Core.EvidenceCache;

View File

@@ -1,9 +1,10 @@
using Microsoft.Extensions.Logging;
using StellaOps.Cryptography;
using System.Globalization;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
using StellaOps.Cryptography;
namespace StellaOps.ExportCenter.Core.Manifest;

View File

@@ -1,6 +1,7 @@
using System.Collections.Concurrent;
using StellaOps.Cryptography;
using StellaOps.Determinism;
using System.Collections.Concurrent;
namespace StellaOps.ExportCenter.Core.MirrorBundle;

View File

@@ -1,3 +1,5 @@
using StellaOps.Cryptography;
using System.Buffers.Binary;
using System.Formats.Tar;
using System.Globalization;
@@ -5,7 +7,6 @@ using System.IO.Compression;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.Cryptography;
namespace StellaOps.ExportCenter.Core.MirrorBundle;

View File

@@ -1,9 +1,10 @@
using StellaOps.Cryptography;
using System.Globalization;
using System.Text;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.Cryptography;
namespace StellaOps.ExportCenter.Core.MirrorBundle;

View File

@@ -1,9 +1,10 @@
using Microsoft.Extensions.Logging;
using System.Net.Http.Headers;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
namespace StellaOps.ExportCenter.Core.Notifications;

View File

@@ -1,9 +1,10 @@
using Microsoft.Extensions.Logging;
using System.Globalization;
using System.Net;
using System.Net.Http.Headers;
using System.Security.Cryptography;
using System.Text;
using Microsoft.Extensions.Logging;
namespace StellaOps.ExportCenter.Core.Notifications;

View File

@@ -1,3 +1,6 @@
using Microsoft.Extensions.Logging;
using StellaOps.Determinism;
using System.Buffers.Binary;
using System.Formats.Tar;
using System.Globalization;
@@ -7,8 +10,6 @@ using System.Security.Cryptography;
using System.Text;
using System.Text.Encodings.Web;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.Determinism;
namespace StellaOps.ExportCenter.Core.OfflineBundle;

View File

@@ -1,7 +1,8 @@
using StellaOps.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.Cryptography;
namespace StellaOps.ExportCenter.Core.OfflineKit;

View File

@@ -1,7 +1,8 @@
using StellaOps.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.Cryptography;
namespace StellaOps.ExportCenter.Core.OfflineKit;

View File

@@ -1,3 +1,4 @@
using System.Collections.Concurrent;
namespace StellaOps.ExportCenter.Core.PackRun;

View File

@@ -1,5 +1,6 @@
using System.Security.Cryptography;
using Microsoft.Extensions.Logging;
using System.Security.Cryptography;
namespace StellaOps.ExportCenter.Core.PackRun;

View File

@@ -1,8 +1,9 @@
using System.Collections.Concurrent;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.Determinism;
using StellaOps.ExportCenter.Core.Domain;
using System.Collections.Concurrent;
using System.Text.Json;
namespace StellaOps.ExportCenter.Core.Planner;

View File

@@ -1,9 +1,10 @@
using Microsoft.Extensions.Logging;
using System.Buffers.Binary;
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using Microsoft.Extensions.Logging;
namespace StellaOps.ExportCenter.Core.Planner;

View File

@@ -1,10 +1,11 @@
using StellaOps.Cryptography;
using System.Buffers.Binary;
using System.Formats.Tar;
using System.IO.Compression;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.Cryptography;
namespace StellaOps.ExportCenter.Core.PortableEvidence;

View File

@@ -3,9 +3,10 @@
// SPDX-License-Identifier: BUSL-1.1
// ----------------------------------------------------------------------------
using System.Globalization;
using StellaOps.Provcache;
using StellaOps.Provcache.Oci;
using System.Globalization;
namespace StellaOps.ExportCenter.Core.Provcache;

View File

@@ -1,10 +1,11 @@
using System.Collections.Concurrent;
using System.Net;
using System.Net.Sockets;
using Cronos;
using Microsoft.Extensions.Logging;
using StellaOps.Determinism;
using StellaOps.ExportCenter.Core.Domain;
using System.Collections.Concurrent;
using System.Net;
using System.Net.Sockets;
namespace StellaOps.ExportCenter.Core.Scheduling;

View File

@@ -5,16 +5,17 @@
// Description: Implementation for signing evidence pack manifests.
// -----------------------------------------------------------------------------
using Microsoft.Extensions.Logging;
using StellaOps.Attestation;
using StellaOps.Attestor.Envelope;
using StellaOps.ExportCenter.Core.Domain;
using System.Collections.Immutable;
using System.Diagnostics;
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.Attestation;
using StellaOps.Attestor.Envelope;
using StellaOps.ExportCenter.Core.Domain;
namespace StellaOps.ExportCenter.Core.Services;

View File

@@ -5,6 +5,10 @@
// Description: Service for generating and managing lineage evidence packs.
// -----------------------------------------------------------------------------
using Microsoft.Extensions.Logging;
using StellaOps.Determinism;
using StellaOps.ExportCenter.Core.Domain;
using System.Collections.Concurrent;
using System.Collections.Immutable;
using System.Diagnostics;
@@ -14,9 +18,6 @@ using System.Security.Cryptography;
using System.Text;
using System.Text.Encodings.Web;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.Determinism;
using StellaOps.ExportCenter.Core.Domain;
namespace StellaOps.ExportCenter.Core.Services;

View File

@@ -1,13 +1,14 @@
using System.IO.Compression;
using System.Security.Cryptography;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using StellaOps.Determinism;
using StellaOps.Policy.Replay;
using StellaOps.Policy.Snapshots;
using System.IO.Compression;
using System.Security.Cryptography;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace StellaOps.ExportCenter.Snapshots;

View File

@@ -1,11 +1,12 @@
using System.IO.Compression;
using System.Security.Cryptography;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using StellaOps.Determinism;
using StellaOps.Policy.Snapshots;
using System.IO.Compression;
using System.Security.Cryptography;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace StellaOps.ExportCenter.Snapshots;

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0333-M | DONE | Revalidated 2026-01-07; maintainability audit for ExportCenter.Core. |
| AUDIT-0333-T | DONE | Revalidated 2026-01-07; test coverage audit for ExportCenter.Core. |
| AUDIT-0333-A | DONE | Applied 2026-01-13; determinism verified, tests added for LineageEvidencePackService/ExportPlanner/ExportScopeResolver, large export warning fix. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,6 +1,7 @@
using Microsoft.Extensions.Logging;
using System.Collections.Concurrent;
using System.Text.RegularExpressions;
using Microsoft.Extensions.Logging;
namespace StellaOps.ExportCenter.Core.Tenancy;

View File

@@ -1,8 +1,9 @@
using Microsoft.Extensions.Logging;
using System.Runtime.CompilerServices;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
namespace StellaOps.ExportCenter.Core.Verification;

View File

@@ -11,7 +11,7 @@ Provide deterministic, offline-safe infrastructure for ExportCenter (DB access,
## Required Reading
- docs/modules/export-center/architecture.md
- docs/modules/export-center/provenance-and-signing.md
- docs/airgap/offline-bundle-format.md
- docs/modules/airgap/guides/offline-bundle-format.md
- docs/modules/platform/architecture-overview.md
## Definition of Done
@@ -25,3 +25,4 @@ Provide deterministic, offline-safe infrastructure for ExportCenter (DB access,
- 3. Keep outputs deterministic and UTC normalized.
- 4. Avoid nondeterministic IDs/timestamps in persisted metadata unless explicit.
- 5. Revert to TODO if paused; capture context in PR notes.

View File

@@ -1,3 +1,4 @@
using System.Reflection;
namespace StellaOps.ExportCenter.Infrastructure.Db;

View File

@@ -1,13 +1,14 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Cryptography;
using StellaOps.ExportCenter.Core.DevPortalOffline;
using System;
using System.Buffers;
using System.IO;
using System.Security.Cryptography;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Cryptography;
using StellaOps.ExportCenter.Core.DevPortalOffline;
namespace StellaOps.ExportCenter.Infrastructure.DevPortalOffline;

View File

@@ -1,13 +1,14 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Cryptography;
using StellaOps.ExportCenter.Core.DevPortalOffline;
using System;
using System.Buffers.Binary;
using System.ComponentModel.DataAnnotations;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Cryptography;
using StellaOps.ExportCenter.Core.DevPortalOffline;
namespace StellaOps.ExportCenter.Infrastructure.DevPortalOffline;

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0334-M | DONE | Revalidated 2026-01-07; maintainability audit for ExportCenter.Infrastructure. |
| AUDIT-0334-T | DONE | Revalidated 2026-01-07; test coverage audit for ExportCenter.Infrastructure. |
| AUDIT-0334-A | TODO | Pending approval (non-test project; revalidated 2026-01-07). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -12,7 +12,7 @@ Validate ExportCenter behaviors with deterministic, offline-friendly tests acros
- docs/modules/export-center/architecture.md
- docs/modules/export-center/provenance-and-signing.md
- docs/modules/export-center/mirror-bundles.md
- docs/airgap/offline-bundle-format.md
- docs/modules/airgap/guides/offline-bundle-format.md
- docs/modules/platform/architecture-overview.md
## Definition of Done
@@ -25,3 +25,4 @@ Validate ExportCenter behaviors with deterministic, offline-friendly tests acros
- 3. Keep tests deterministic; clean up temp files and directories.
- 4. Keep outputs offline-friendly (no network).
- 5. Revert to TODO if paused; capture context in PR notes.

View File

@@ -8,3 +8,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0336-M | DONE | Revalidated 2026-01-07; maintainability audit for ExportCenter.Tests. |
| AUDIT-0336-T | DONE | Revalidated 2026-01-07; test coverage audit for ExportCenter.Tests. |
| AUDIT-0336-A | DONE | Waived (test project; revalidated 2026-01-07). |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -13,7 +13,7 @@ Deliver the ExportCenter HTTP API surface (profiles, runs, bundles, incidents) w
- docs/modules/export-center/architecture.md
- docs/modules/export-center/provenance-and-signing.md
- docs/modules/export-center/mirror-bundles.md
- docs/airgap/offline-bundle-format.md
- docs/modules/airgap/guides/offline-bundle-format.md
- docs/modules/platform/architecture-overview.md
## Definition of Done
@@ -27,3 +27,4 @@ Deliver the ExportCenter HTTP API surface (profiles, runs, bundles, incidents) w
- 3. Prefer TimeProvider and deterministic ID generators over DateTimeOffset.UtcNow/Guid.NewGuid.
- 4. Keep outputs stable (sorted lists, stable timestamps) and offline-friendly.
- 5. Revert to TODO if paused; capture context in PR notes.

View File

@@ -1,6 +1,7 @@
using System.Text.RegularExpressions;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using System.Text.RegularExpressions;
namespace StellaOps.ExportCenter.WebService.Adapters.Trivy;

View File

@@ -1,6 +1,4 @@
using System.Runtime.CompilerServices;
using System.Security.Claims;
using System.Text.Json;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
@@ -10,6 +8,9 @@ using StellaOps.Determinism;
using StellaOps.ExportCenter.Core.Domain;
using StellaOps.ExportCenter.Core.Planner;
using StellaOps.ExportCenter.WebService.Telemetry;
using System.Runtime.CompilerServices;
using System.Security.Claims;
using System.Text.Json;
namespace StellaOps.ExportCenter.WebService.Api;

View File

@@ -1,6 +1,7 @@
using System.Text.Json.Serialization;
using StellaOps.ExportCenter.Core.Domain;
using StellaOps.ExportCenter.Core.Planner;
using System.Text.Json.Serialization;
namespace StellaOps.ExportCenter.WebService.Api;

View File

@@ -1,9 +1,10 @@
using System.Diagnostics;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.Determinism;
using StellaOps.ExportCenter.Core.Domain;
using StellaOps.ExportCenter.WebService.Telemetry;
using System.Diagnostics;
using System.Text.Json;
namespace StellaOps.ExportCenter.WebService.Api;

View File

@@ -1,6 +1,7 @@
using System.Collections.Concurrent;
using Microsoft.Extensions.Logging;
using StellaOps.ExportCenter.Core.Domain;
using System.Collections.Concurrent;
namespace StellaOps.ExportCenter.WebService.Api;

View File

@@ -1,11 +1,12 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.ExportCenter.WebService.Telemetry;
using System.Collections.Concurrent;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.ExportCenter.WebService.Telemetry;
namespace StellaOps.ExportCenter.WebService.Attestation;

View File

@@ -1,7 +1,8 @@
using System.Security.Cryptography;
using System.Text;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using System.Security.Cryptography;
using System.Text;
namespace StellaOps.ExportCenter.WebService.Attestation;

View File

@@ -1,8 +1,9 @@
using System.Globalization;
using System.Text;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Cryptography;
using System.Globalization;
using System.Text;
namespace StellaOps.ExportCenter.WebService.Attestation;

View File

@@ -1,3 +1,5 @@
using Microsoft.Extensions.Logging;
using System.Buffers.Binary;
using System.Collections.Concurrent;
using System.Formats.Tar;
@@ -7,7 +9,6 @@ using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
namespace StellaOps.ExportCenter.WebService.Attestation;

View File

@@ -1,11 +1,12 @@
using StellaOps.Determinism;
using StellaOps.ExportCenter.Client.Models;
using System.Collections.Concurrent;
using System.Globalization;
using System.IO.Compression;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using StellaOps.ExportCenter.Client.Models;
using StellaOps.Determinism;
namespace StellaOps.ExportCenter.WebService.AuditBundle;

View File

@@ -1,5 +1,6 @@
using System.Text.Json.Serialization;
using StellaOps.ExportCenter.Core.Domain;
using System.Text.Json.Serialization;
namespace StellaOps.ExportCenter.WebService.Distribution;

View File

@@ -1,8 +1,9 @@
using System.Globalization;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.Determinism;
using StellaOps.ExportCenter.Core.Domain;
using System.Globalization;
using System.Text.Json;
namespace StellaOps.ExportCenter.WebService.Distribution;

View File

@@ -1,6 +1,7 @@
using System.Collections.Concurrent;
using Microsoft.Extensions.Options;
using StellaOps.ExportCenter.Core.Domain;
using System.Collections.Concurrent;
namespace StellaOps.ExportCenter.WebService.Distribution;

View File

@@ -1,9 +1,10 @@
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
using StellaOps.Attestor.ProofChain.MediaTypes;
using StellaOps.Attestor.ProofChain.Predicates.AI;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace StellaOps.ExportCenter.WebService.Distribution.Oci;

View File

@@ -1,9 +1,10 @@
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
using StellaOps.Attestor.ProofChain.MediaTypes;
using StellaOps.Attestor.ProofChain.Predicates.AI;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace StellaOps.ExportCenter.WebService.Distribution.Oci;

View File

@@ -1,11 +1,12 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using System.Globalization;
using System.Net;
using System.Net.Http.Headers;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
namespace StellaOps.ExportCenter.WebService.Distribution.Oci;

View File

@@ -1,10 +1,11 @@
using Microsoft.Extensions.Logging;
using System.Net;
using System.Net.Http.Headers;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
namespace StellaOps.ExportCenter.WebService.Distribution.Oci;

View File

@@ -1,10 +1,11 @@
using System.Collections.Concurrent;
using System.Diagnostics;
using System.Text.RegularExpressions;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using StellaOps.ExportCenter.Core.MirrorBundle;
using StellaOps.ExportCenter.WebService.Telemetry;
using System.Collections.Concurrent;
using System.Diagnostics;
using System.Text.RegularExpressions;
namespace StellaOps.ExportCenter.WebService.Distribution.Oci;

View File

@@ -1,11 +1,12 @@
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Logging;
using System.Net;
using System.Net.Http.Headers;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Logging;
namespace StellaOps.ExportCenter.WebService.Distribution.Oci;

View File

@@ -1,10 +1,11 @@
using Microsoft.Extensions.Logging;
using System.Net;
using System.Net.Http.Headers;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
namespace StellaOps.ExportCenter.WebService.Distribution.Oci;

View File

@@ -1,8 +1,9 @@
using Microsoft.Extensions.Logging;
using StellaOps.Policy.Engine.Attestation;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
using StellaOps.Policy.Engine.Attestation;
namespace StellaOps.ExportCenter.WebService.Distribution.Oci;

View File

@@ -1,10 +1,11 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.ExportCenter.WebService.Telemetry;
using System.Net.Http.Headers;
using System.Net.Http.Json;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.ExportCenter.WebService.Telemetry;
namespace StellaOps.ExportCenter.WebService.EvidenceLocker;

View File

@@ -1,11 +1,12 @@
// Copyright (c) StellaOps Contributors. Licensed under the BUSL-1.1.
// SPDX-License-Identifier: BUSL-1.1
using System.Security.Claims;
using Microsoft.AspNetCore.Mvc;
using StellaOps.Auth.ServerIntegration;
using StellaOps.Policy.Exceptions.Models;
using StellaOps.Policy.Exceptions.Repositories;
using System.Security.Claims;
namespace StellaOps.ExportCenter.WebService.ExceptionReport;

View File

@@ -1,14 +1,15 @@
// Copyright (c) StellaOps Contributors. Licensed under the BUSL-1.1.
// SPDX-License-Identifier: BUSL-1.1
using System.Collections.Concurrent;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Options;
using StellaOps.Determinism;
using StellaOps.Policy.Exceptions.Models;
using StellaOps.Policy.Exceptions.Repositories;
using System.Collections.Concurrent;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
namespace StellaOps.ExportCenter.WebService.ExceptionReport;

View File

@@ -1,11 +1,12 @@
using System.Collections.Concurrent;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Determinism;
using StellaOps.ExportCenter.WebService.Telemetry;
using StellaOps.ExportCenter.WebService.Timeline;
using System.Collections.Concurrent;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace StellaOps.ExportCenter.WebService.Incident;

View File

@@ -5,11 +5,12 @@
// Description: Endpoints for exporting lineage evidence packs.
// -----------------------------------------------------------------------------
using System.Text.Json;
using Microsoft.AspNetCore.Mvc;
using StellaOps.Auth.ServerIntegration;
using StellaOps.ExportCenter.Core.Domain;
using StellaOps.ExportCenter.Core.Services;
using System.Text.Json;
namespace StellaOps.ExportCenter.WebService.Lineage;

View File

@@ -1,12 +1,13 @@
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using System.Reflection;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
namespace StellaOps.ExportCenter.WebService;

View File

@@ -1,20 +1,21 @@
using Microsoft.AspNetCore.Authorization;
using StellaOps.AirGap.Policy;
using StellaOps.Auth.Abstractions;
using StellaOps.Auth.ServerIntegration;
using StellaOps.AirGap.Policy;
using StellaOps.ExportCenter.WebService;
using StellaOps.ExportCenter.WebService.Api;
using StellaOps.ExportCenter.WebService.Deprecation;
using StellaOps.ExportCenter.WebService.Telemetry;
using StellaOps.ExportCenter.WebService.Timeline;
using StellaOps.ExportCenter.WebService.EvidenceLocker;
using StellaOps.ExportCenter.WebService.Attestation;
using StellaOps.ExportCenter.WebService.AuditBundle;
using StellaOps.ExportCenter.WebService.Deprecation;
using StellaOps.ExportCenter.WebService.EvidenceLocker;
using StellaOps.ExportCenter.WebService.ExceptionReport;
using StellaOps.ExportCenter.WebService.Incident;
using StellaOps.ExportCenter.WebService.Lineage;
using StellaOps.ExportCenter.WebService.RiskBundle;
using StellaOps.ExportCenter.WebService.SimulationExport;
using StellaOps.ExportCenter.WebService.AuditBundle;
using StellaOps.ExportCenter.WebService.ExceptionReport;
using StellaOps.ExportCenter.WebService.Lineage;
using StellaOps.ExportCenter.WebService.Telemetry;
using StellaOps.ExportCenter.WebService.Timeline;
using StellaOps.Router.AspNet;
var builder = WebApplication.CreateBuilder(args);

View File

@@ -1,13 +1,14 @@
using System.Collections.Concurrent;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Determinism;
using StellaOps.ExportCenter.WebService.Telemetry;
using StellaOps.ExportCenter.WebService.Timeline;
using System.Collections.Concurrent;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace StellaOps.ExportCenter.WebService.RiskBundle;

View File

@@ -1,9 +1,10 @@
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.AspNetCore.Mvc;
using StellaOps.Auth.ServerIntegration;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace StellaOps.ExportCenter.WebService.SimulationExport;

View File

@@ -1,3 +1,8 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Determinism;
using StellaOps.ExportCenter.WebService.Telemetry;
using System.Collections.Concurrent;
using System.Globalization;
using System.Runtime.CompilerServices;
@@ -5,10 +10,6 @@ using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.Determinism;
using StellaOps.ExportCenter.WebService.Telemetry;
namespace StellaOps.ExportCenter.WebService.SimulationExport;

View File

@@ -9,3 +9,4 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
| AUDIT-0337-T | DONE | Revalidated 2026-01-07; test coverage audit for ExportCenter.WebService. |
| AUDIT-0337-A | DONE | Applied 2026-01-13; determinism, DI guards, retention/TLS gating, tests added. |
| AUDIT-HOTLIST-EXPORTCENTER-WEBSERVICE-0001 | DONE | Applied 2026-01-13; hotlist remediation and tests completed. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,12 +1,13 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.ExportCenter.Core.Notifications;
using StellaOps.ExportCenter.WebService.Telemetry;
using System.Collections.Concurrent;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.ExportCenter.Core.Notifications;
using StellaOps.ExportCenter.WebService.Telemetry;
namespace StellaOps.ExportCenter.WebService.Timeline;

View File

@@ -13,7 +13,7 @@ Run offline export and risk bundle background jobs with deterministic, offline-s
- docs/modules/export-center/architecture.md
- docs/modules/export-center/provenance-and-signing.md
- docs/modules/export-center/mirror-bundles.md
- docs/airgap/offline-bundle-format.md
- docs/modules/airgap/guides/offline-bundle-format.md
- docs/modules/platform/architecture-overview.md
## Definition of Done
@@ -27,3 +27,4 @@ Run offline export and risk bundle background jobs with deterministic, offline-s
- 3. Prefer TimeProvider and explicit bundle IDs over Guid.NewGuid defaults.
- 4. Keep outputs stable (ordering, timestamps, hashes) and offline-friendly.
- 5. Revert to TODO if paused; capture context in PR notes.

View File

@@ -1,11 +1,12 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
using StellaOps.Cryptography;
using StellaOps.ExportCenter.Core.DevPortalOffline;
using StellaOps.ExportCenter.Infrastructure.DevPortalOffline;
using StellaOps.ExportCenter.Worker;
using StellaOps.ExportCenter.RiskBundles;
using StellaOps.ExportCenter.Worker;
var builder = Host.CreateApplicationBuilder(args);

Some files were not shown because too many files have changed in this diff Show More