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

@@ -17,7 +17,7 @@
- docs/modules/platform/architecture-overview.md
- docs/modules/airgap/architecture.md
- src/AirGap/AGENTS.md (parent module charter)
- docs/24_OFFLINE_KIT.md
- docs/OFFLINE_KIT.md
## Working Directory & Scope
- Primary: src/AirGap/__Libraries/StellaOps.AirGap.Bundle/
@@ -26,22 +26,22 @@
## Key Components
### Models/
- `BundleManifest.cs` Top-level bundle metadata and entry list
- `KnowledgeSnapshotManifest.cs` Snapshot-specific manifest with digest references
- `BundleManifest.cs` ??? Top-level bundle metadata and entry list
- `KnowledgeSnapshotManifest.cs` ??? Snapshot-specific manifest with digest references
### Services/
- `BundleBuilder.cs` Creates bundles from source data with manifest generation
- `BundleLoader.cs` Loads and validates existing bundles
- `SnapshotBundleReader.cs` Streaming reader for bundle contents
- `SnapshotBundleWriter.cs` Streaming writer for bundle creation
- `SnapshotManifestSigner.cs` DSSE signing of manifests
- `TimeAnchorService.cs` Time anchor integration for staleness tracking
- `KnowledgeSnapshotImporter.cs` Orchestrates snapshot import
- `BundleBuilder.cs` ??? Creates bundles from source data with manifest generation
- `BundleLoader.cs` ??? Loads and validates existing bundles
- `SnapshotBundleReader.cs` ??? Streaming reader for bundle contents
- `SnapshotBundleWriter.cs` ??? Streaming writer for bundle creation
- `SnapshotManifestSigner.cs` ??? DSSE signing of manifests
- `TimeAnchorService.cs` ??? Time anchor integration for staleness tracking
- `KnowledgeSnapshotImporter.cs` ??? Orchestrates snapshot import
### Import Targets/
- `ConcelierAdvisoryImportTarget.cs` Advisory data import
- `ExcititorVexImportTarget.cs` VEX statement import
- `PolicyRegistryImportTarget.cs` Policy bundle import
- `ConcelierAdvisoryImportTarget.cs` ??? Advisory data import
- `ExcititorVexImportTarget.cs` ??? VEX statement import
- `PolicyRegistryImportTarget.cs` ??? Policy bundle import
### Extractors/
- Archive extraction utilities for bundle contents
@@ -71,3 +71,4 @@
- Observability: structured logs for bundle operations, import metrics.
- Update sprint status in docs/implplan/SPRINT_*.md when starting/completing work.
- Mirror decisions in sprint Decisions & Risks section.

View File

@@ -5,10 +5,11 @@
// Description: Extracts advisory data from Concelier for knowledge snapshot bundles.
// -----------------------------------------------------------------------------
using StellaOps.AirGap.Bundle.Services;
using System.Globalization;
using System.Text;
using System.Text.Json;
using StellaOps.AirGap.Bundle.Services;
namespace StellaOps.AirGap.Bundle.Extractors;

View File

@@ -5,10 +5,11 @@
// Description: Extracts policy bundle data for knowledge snapshot bundles.
// -----------------------------------------------------------------------------
using StellaOps.AirGap.Bundle.Services;
using System.IO.Compression;
using System.Text;
using System.Text.Json;
using StellaOps.AirGap.Bundle.Services;
namespace StellaOps.AirGap.Bundle.Extractors;

View File

@@ -5,10 +5,11 @@
// Description: Extracts VEX statement data from Excititor for knowledge snapshot bundles.
// -----------------------------------------------------------------------------
using StellaOps.AirGap.Bundle.Services;
using System.Globalization;
using System.Text;
using System.Text.Json;
using StellaOps.AirGap.Bundle.Services;
namespace StellaOps.AirGap.Bundle.Extractors;

View File

@@ -1,10 +1,11 @@
using System.Security.Cryptography;
using StellaOps.AirGap.Bundle.Models;
using StellaOps.Canonical.Json;
using System.Security.Cryptography;
using System.Text;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.AirGap.Bundle.Models;
using StellaOps.Canonical.Json;
namespace StellaOps.AirGap.Bundle.Serialization;

View File

@@ -1,6 +1,7 @@
using StellaOps.AirGap.Bundle.Models;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.AirGap.Bundle.Models;
namespace StellaOps.AirGap.Bundle.Serialization;

View File

@@ -1,9 +1,10 @@
using System.Collections.Immutable;
using System.Security.Cryptography;
using System.Text;
using StellaOps.AirGap.Bundle.Models;
using StellaOps.AirGap.Bundle.Serialization;
using StellaOps.AirGap.Bundle.Validation;
using System.Collections.Immutable;
using System.Security.Cryptography;
using System.Text;
namespace StellaOps.AirGap.Bundle.Services;

View File

@@ -5,14 +5,15 @@
// Description: Adapter implementing IAdvisoryImportTarget for Concelier module.
// -----------------------------------------------------------------------------
using System.Collections.Immutable;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using StellaOps.AirGap.Bundle.Models;
using StellaOps.Concelier.Core.Raw;
using StellaOps.Concelier.RawModels;
using StellaOps.Determinism;
using System.Collections.Immutable;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
namespace StellaOps.AirGap.Bundle.Services;

View File

@@ -1,3 +1,4 @@
using System.Formats.Asn1;
using System.Net.Http;
using System.Security.Cryptography.X509Certificates;

View File

@@ -5,15 +5,16 @@
// Description: Adapter implementing IVexImportTarget for Excititor module.
// -----------------------------------------------------------------------------
using StellaOps.AirGap.Bundle.Models;
using StellaOps.Determinism;
using StellaOps.Excititor.Core;
using StellaOps.Excititor.Core.Storage;
using System.Collections.Immutable;
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using StellaOps.AirGap.Bundle.Models;
using StellaOps.Determinism;
using StellaOps.Excititor.Core;
using StellaOps.Excititor.Core.Storage;
namespace StellaOps.AirGap.Bundle.Services;

View File

@@ -5,11 +5,12 @@
// Description: Imports knowledge snapshot content to Concelier, Excititor, and Policy.
// -----------------------------------------------------------------------------
using System.IO.Compression;
using System.Formats.Tar;
using System.Text.Json;
using StellaOps.AirGap.Bundle.Models;
using StellaOps.Determinism;
using System.Formats.Tar;
using System.IO.Compression;
using System.Text.Json;
namespace StellaOps.AirGap.Bundle.Services;

View File

@@ -5,12 +5,13 @@
// Description: Extensions for including local RBAC policy in offline kit bundles.
// -----------------------------------------------------------------------------
using StellaOps.AirGap.Bundle.Models;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using StellaOps.AirGap.Bundle.Models;
namespace StellaOps.AirGap.Bundle.Services;

View File

@@ -1,6 +1,7 @@
using System.Formats.Asn1;
using System.Security.Cryptography.X509Certificates;
using System.Net.Http;
using System.Security.Cryptography.X509Certificates;
namespace StellaOps.AirGap.Bundle.Services;

View File

@@ -5,11 +5,12 @@
// Description: Adapter implementing IPolicyImportTarget for Policy module.
// -----------------------------------------------------------------------------
using StellaOps.AirGap.Bundle.Models;
using StellaOps.Determinism;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using StellaOps.AirGap.Bundle.Models;
using StellaOps.Determinism;
namespace StellaOps.AirGap.Bundle.Services;

View File

@@ -5,13 +5,14 @@
// Description: Reads and verifies sealed knowledge snapshot bundles.
// -----------------------------------------------------------------------------
using PolicySnapshotEntry = StellaOps.AirGap.Bundle.Models.PolicySnapshotEntry;
using StellaOps.AirGap.Bundle.Models;
using System.Formats.Tar;
using System.IO.Compression;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using StellaOps.AirGap.Bundle.Models;
using PolicySnapshotEntry = StellaOps.AirGap.Bundle.Models.PolicySnapshotEntry;
namespace StellaOps.AirGap.Bundle.Services;

View File

@@ -5,14 +5,15 @@
// Description: Writes sealed knowledge snapshots to tar.gz bundles.
// -----------------------------------------------------------------------------
using PolicySnapshotEntry = StellaOps.AirGap.Bundle.Models.PolicySnapshotEntry;
using StellaOps.AirGap.Bundle.Models;
using System.Formats.Tar;
using System.Globalization;
using System.IO.Compression;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using StellaOps.AirGap.Bundle.Models;
using PolicySnapshotEntry = StellaOps.AirGap.Bundle.Models.PolicySnapshotEntry;
namespace StellaOps.AirGap.Bundle.Services;

View File

@@ -5,6 +5,7 @@
// Description: Signs snapshot manifests using DSSE format for integrity verification.
// -----------------------------------------------------------------------------
using System.Globalization;
using System.Security.Cryptography;
using System.Text;

View File

@@ -1,7 +1,8 @@
using StellaOps.AirGap.Bundle.Models;
using System.Collections.Immutable;
using System.Text.Json;
using System.Text.Json.Serialization;
using StellaOps.AirGap.Bundle.Models;
namespace StellaOps.AirGap.Bundle.Services;

View File

@@ -0,0 +1,8 @@
# StellaOps.AirGap.Bundle Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_solid_review.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/AirGap/__Libraries/StellaOps.AirGap.Bundle/StellaOps.AirGap.Bundle.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |

View File

@@ -1,8 +1,9 @@
using System.Security.Cryptography;
using System.Text;
using StellaOps.AirGap.Bundle.Models;
using StellaOps.AirGap.Bundle.Serialization;
using StellaOps.AirGap.Bundle.Services;
using System.Security.Cryptography;
using System.Text;
namespace StellaOps.AirGap.Bundle.Validation;

View File

@@ -12,8 +12,8 @@
- `docs/README.md`
- `docs/07_HIGH_LEVEL_ARCHITECTURE.md`
- `docs/modules/platform/architecture-overview.md`
- `docs/airgap/bundle-repositories.md`
- `docs/airgap/airgap-mode.md`
- `docs/modules/airgap/guides/bundle-repositories.md`
- `docs/modules/airgap/guides/airgap-mode.md`
## Working Agreements
- Update task status in the sprint tracker and local `TASKS.md`.
@@ -25,3 +25,4 @@
- Use Postgres test fixtures or Testcontainers; no network.
- Mark integration tests as Integration, not Unit.
- Keep data ordering deterministic with explicit ORDER BY clauses.

View File

@@ -1,13 +1,14 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Npgsql;
using StellaOps.AirGap.Controller.Stores;
using StellaOps.AirGap.Importer.Versioning;
using StellaOps.AirGap.Persistence.Postgres;
using StellaOps.AirGap.Persistence.Postgres.Repositories;
using StellaOps.Infrastructure.Postgres.Options;
using Npgsql;
namespace StellaOps.AirGap.Persistence.Extensions;

View File

@@ -1,7 +1,8 @@
using System.Reflection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using StellaOps.Infrastructure.Postgres.Migrations;
using System.Reflection;
namespace StellaOps.AirGap.Persistence.Postgres;

View File

@@ -1,10 +1,11 @@
using System.Text.Json;
using Microsoft.Extensions.Logging;
using Npgsql;
using StellaOps.AirGap.Controller.Domain;
using StellaOps.AirGap.Controller.Stores;
using StellaOps.AirGap.Time.Models;
using StellaOps.Infrastructure.Postgres.Repositories;
using System.Text.Json;
namespace StellaOps.AirGap.Persistence.Postgres.Repositories;

View File

@@ -2,13 +2,14 @@
// Copyright (c) StellaOps. Licensed under BUSL-1.1.
// </copyright>
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.AirGap.Sync.Models;
using StellaOps.Canonical.Json;
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
namespace StellaOps.AirGap.Sync.Services;

View File

@@ -2,14 +2,15 @@
// Copyright (c) StellaOps. Licensed under BUSL-1.1.
// </copyright>
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.AirGap.Sync.Models;
using StellaOps.AirGap.Sync.Stores;
using StellaOps.Canonical.Json;
using StellaOps.Determinism;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
namespace StellaOps.AirGap.Sync.Services;

View File

@@ -2,13 +2,14 @@
// Copyright (c) StellaOps. Licensed under BUSL-1.1.
// </copyright>
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using StellaOps.AirGap.Sync.Models;
using StellaOps.Canonical.Json;
using StellaOps.HybridLogicalClock;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
namespace StellaOps.AirGap.Sync.Services;

View File

@@ -2,14 +2,15 @@
// Copyright (c) StellaOps. Licensed under BUSL-1.1.
// </copyright>
using System.Security.Cryptography;
using System.Text;
using Microsoft.Extensions.Logging;
using StellaOps.AirGap.Sync.Models;
using StellaOps.AirGap.Sync.Stores;
using StellaOps.Canonical.Json;
using StellaOps.Determinism;
using StellaOps.HybridLogicalClock;
using System.Security.Cryptography;
using System.Text;
namespace StellaOps.AirGap.Sync.Services;

View File

@@ -2,12 +2,13 @@
// Copyright (c) StellaOps. Licensed under BUSL-1.1.
// </copyright>
using System.Text.Json;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.AirGap.Sync.Models;
using StellaOps.Canonical.Json;
using StellaOps.HybridLogicalClock;
using System.Text.Json;
namespace StellaOps.AirGap.Sync.Stores;

View File

@@ -2,8 +2,9 @@
// Copyright (c) StellaOps. Licensed under BUSL-1.1.
// </copyright>
using System.Diagnostics.Metrics;
using StellaOps.AirGap.Sync.Models;
using System.Diagnostics.Metrics;
namespace StellaOps.AirGap.Sync.Telemetry;

View File

@@ -2,13 +2,14 @@
// Copyright (c) StellaOps. Licensed under BUSL-1.1.
// </copyright>
using System.Globalization;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.AirGap.Sync.Models;
using StellaOps.AirGap.Sync.Services;
using StellaOps.AirGap.Sync.Telemetry;
using System.Globalization;
using System.Text.Json;
namespace StellaOps.AirGap.Sync.Transport;

View File

@@ -2,13 +2,14 @@
// Copyright (c) StellaOps. Licensed under BUSL-1.1.
// </copyright>
using System.Text;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.AirGap.Sync.Models;
using StellaOps.AirGap.Sync.Services;
using StellaOps.AirGap.Sync.Telemetry;
using System.Text;
using System.Text.Json;
namespace StellaOps.AirGap.Sync.Transport;

View File

@@ -0,0 +1,8 @@
# StellaOps.AirGap.Bundle.Tests Task Board
This board mirrors active sprint tasks for this module.
Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_solid_review.md`.
| Task ID | Status | Notes |
| --- | --- | --- |
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/StellaOps.AirGap.Bundle.Tests.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |