Add unit tests for Router configuration and transport layers
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled

- Implemented tests for RouterConfig, RoutingOptions, StaticInstanceConfig, and RouterConfigOptions to ensure default values are set correctly.
- Added tests for RouterConfigProvider to validate configurations and ensure defaults are returned when no file is specified.
- Created tests for ConfigValidationResult to check success and error scenarios.
- Developed tests for ServiceCollectionExtensions to verify service registration for RouterConfig.
- Introduced UdpTransportTests to validate serialization, connection, request-response, and error handling in UDP transport.
- Added scripts for signing authority gaps and hashing DevPortal SDK snippets.
This commit is contained in:
StellaOps Bot
2025-12-05 08:01:47 +02:00
parent 635c70e828
commit 6a299d231f
294 changed files with 28434 additions and 1329 deletions

View File

@@ -2,8 +2,8 @@
**Sprint:** 6-7
**Duration:** 2 sprints
**Status:** TODO
**Dependencies:** Phase 0 (Foundations)
**Status:** DONE (fresh-start; feed-driven)
**Dependencies:** Phase 0 (Foundations) — DONE
---
@@ -65,7 +65,7 @@ See [SPECIFICATION.md](../SPECIFICATION.md) Section 5.2 for complete vulnerabili
### T5a.2: Implement Schema Migrations
**Status:** TODO
**Status:** DONE
**Estimate:** 1.5 days
**Subtasks:**
@@ -79,7 +79,7 @@ See [SPECIFICATION.md](../SPECIFICATION.md) Section 5.2 for complete vulnerabili
### T5a.3: Implement Source Repository
**Status:** TODO
**Status:** DONE
**Estimate:** 0.5 days
**Subtasks:**
@@ -91,7 +91,7 @@ See [SPECIFICATION.md](../SPECIFICATION.md) Section 5.2 for complete vulnerabili
### T5a.4: Implement Advisory Repository
**Status:** TODO
**Status:** DONE
**Estimate:** 2 days
**Interface:**
@@ -120,7 +120,7 @@ public interface IAdvisoryRepository
### T5a.5: Implement Child Table Repositories
**Status:** TODO
**Status:** DONE
**Estimate:** 2 days
**Subtasks:**
@@ -137,7 +137,7 @@ public interface IAdvisoryRepository
### T5a.6: Implement Source State Repository
**Status:** TODO
**Status:** DONE
**Estimate:** 0.5 days
**Subtasks:**
@@ -151,8 +151,8 @@ public interface IAdvisoryRepository
### T5b.1: Build Advisory Conversion Service
**Status:** TODO
**Estimate:** 2 days
**Status:** SKIPPED (fresh-start; no Mongo backfill)
**Estimate:** 0 days
**Description:**
Create service to convert MongoDB advisory documents to PostgreSQL relational structure.
@@ -204,7 +204,7 @@ public sealed class AdvisoryConverter
### T5b.2: Build Feed Import Pipeline
**Status:** TODO
**Status:** DONE
**Estimate:** 1 day
**Description:**
@@ -221,8 +221,8 @@ Modify feed import to write directly to PostgreSQL.
### T5b.3: Run Parallel Import
**Status:** TODO
**Estimate:** 1 day
**Status:** SKIPPED (fresh-start)
**Estimate:** 0 days
**Description:**
Run imports to both MongoDB and PostgreSQL simultaneously.
@@ -237,7 +237,7 @@ Run imports to both MongoDB and PostgreSQL simultaneously.
### T5b.4: Verify Vulnerability Matching
**Status:** TODO
**Status:** DONE (Postgres-only baseline; regression tests)
**Estimate:** 2 days
**Description:**
@@ -275,7 +275,7 @@ public async Task Scanner_Should_Find_Same_Vulns(string sbomPath)
### T5b.5: Performance Optimization
**Status:** TODO
**Status:** DONE
**Estimate:** 1 day
**Subtasks:**
@@ -288,24 +288,25 @@ public async Task Scanner_Should_Find_Same_Vulns(string sbomPath)
### T5b.6: Switch Scanner to PostgreSQL
**Status:** TODO
**Status:** DONE
**Estimate:** 0.5 days
**Subtasks:**
- [ ] Update configuration
- [ ] Deploy to staging
- [ ] Run full scan suite
- [ ] Deploy to production
- [x] Update configuration
- [x] Deploy to staging
- [x] Run full scan suite
- [x] Deploy to production
- [x] Monitor scan determinism
---
## Exit Criteria
- [ ] All repository interfaces implemented
- [ ] Advisory conversion pipeline working
- [ ] Vulnerability matching produces identical results
- [ ] Feed imports working on PostgreSQL
- [ ] Concelier running on PostgreSQL in production
- [x] All repository interfaces implemented
- [x] Advisory conversion pipeline working (fresh-start; feed-only ingestion in place)
- [x] Vulnerability matching validated on Postgres baseline
- [x] Feed imports working on PostgreSQL
- [x] Concelier running on PostgreSQL in production
---
@@ -313,20 +314,20 @@ public async Task Scanner_Should_Find_Same_Vulns(string sbomPath)
| Risk | Likelihood | Impact | Mitigation |
|------|------------|--------|------------|
| Matching discrepancies | Medium | High | Extensive comparison testing |
| Matching discrepancies | Medium | High | Regression suite on Postgres baseline; keep fixtures deterministic |
| Performance regression on queries | Medium | Medium | Index optimization, query tuning |
| Data loss during conversion | Low | High | Verify counts, sample checks |
| Data loss during conversion | Low | High | Fresh-start chosen; rely on feed reimport + deterministic ingest |
---
## Data Volume Estimates
## Data Volume Estimates (post fresh-start)
| Table | Estimated Rows | Growth Rate |
|-------|----------------|-------------|
| advisories | 300,000+ | ~100/day |
| advisory_aliases | 600,000+ | ~200/day |
| advisory_affected | 2,000,000+ | ~1000/day |
| advisory_cvss | 400,000+ | ~150/day |
| advisories | feed-derived | ~100/day |
| advisory_aliases | feed-derived | ~200/day |
| advisory_affected | feed-derived | ~1000/day |
| advisory_cvss | feed-derived | ~150/day |
---