Add unit tests for Router configuration and transport layers
- 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:
@@ -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 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user