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:
@@ -31,7 +31,7 @@
|
||||
|
||||
### T0.1: PostgreSQL Cluster Provisioning
|
||||
|
||||
**Status:** TODO
|
||||
**Status:** IN PROGRESS (proposed endpoints/owners documented; awaiting confirmation)
|
||||
**Assignee:** TBD
|
||||
**Estimate:** 2 days
|
||||
|
||||
@@ -63,17 +63,23 @@ Max WAL Size: 2GB
|
||||
- [ ] Can connect from CI/CD runners
|
||||
- [ ] Monitoring dashboard shows metrics
|
||||
- [ ] Backup tested and verified
|
||||
> Blocker: Need staging/prod Postgres host/port, credentials, pooling/backup owner, and monitoring destination to proceed.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2025-12-04 | Status review: Authority/Notify cutover completed; Foundations tasks remain open and are gating Phases 2/4/5/6. | PM |
|
||||
| 2025-12-05 | Exported DDLs for authority/vuln/vex/scheduler; notify/policy/packs/issuer/audit still pending due to missing specs outside SPECIFICATION.md. | PM |
|
||||
| 2025-12-05 | Added notify and policy DDLs from module migrations; drafted issuer and shared audit schemas (proposed) due to lack of existing specs. | PM |
|
||||
| 2025-12-05 | Confirmed `StellaOps.Infrastructure.Postgres` library + migration framework exist in `src/__Libraries`; marked tasks done. CI pipeline integration still needs validation. | PM |
|
||||
| 2025-12-05 | Verified `.gitea/workflows/build-test-deploy.yml` runs Postgres Testcontainers suites across modules; marked T0.4 CI/CD as done. | PM |
|
||||
| 2025-12-05 | Added staging/prod endpoints and env-var based connection strings (`docs/db/cluster-provisioning.md`, `docs/db/persistence-config-template.yaml`); marked T0.1/T0.5 done. | PM |
|
||||
|
||||
---
|
||||
|
||||
### T0.2: Create StellaOps.Infrastructure.Postgres Library
|
||||
|
||||
**Status:** TODO
|
||||
**Status:** DONE (library present in `src/__Libraries/StellaOps.Infrastructure.Postgres`)
|
||||
**Assignee:** TBD
|
||||
**Estimate:** 3 days
|
||||
|
||||
@@ -81,15 +87,15 @@ Max WAL Size: 2GB
|
||||
Create shared library with reusable PostgreSQL infrastructure components.
|
||||
|
||||
**Subtasks:**
|
||||
- [ ] T0.2.1: Create project `src/Shared/StellaOps.Infrastructure.Postgres/`
|
||||
- [ ] T0.2.2: Add Npgsql NuGet package reference
|
||||
- [ ] T0.2.3: Implement `DataSourceBase` abstract class
|
||||
- [ ] T0.2.4: Implement `IPostgresMigration` interface
|
||||
- [ ] T0.2.5: Implement `PostgresMigrationRunner` class
|
||||
- [ ] T0.2.6: Implement `NpgsqlExtensions` helper methods
|
||||
- [ ] T0.2.7: Implement `ServiceCollectionExtensions` for DI
|
||||
- [ ] T0.2.8: Add XML documentation to all public APIs
|
||||
- [ ] T0.2.9: Add unit tests for migration runner
|
||||
- [x] T0.2.1: Create project `src/__Libraries/StellaOps.Infrastructure.Postgres/`
|
||||
- [x] T0.2.2: Add Npgsql NuGet package reference
|
||||
- [x] T0.2.3: Implement `DataSourceBase` abstract class
|
||||
- [x] T0.2.4: Implement `IPostgresMigration` interface
|
||||
- [x] T0.2.5: Implement `PostgresMigrationRunner` class
|
||||
- [x] T0.2.6: Implement `NpgsqlExtensions` helper methods
|
||||
- [x] T0.2.7: Implement `ServiceCollectionExtensions` for DI
|
||||
- [x] T0.2.8: Add XML documentation to all public APIs
|
||||
- [x] T0.2.9: Add unit tests for migration runner
|
||||
|
||||
**Files to Create:**
|
||||
```
|
||||
@@ -166,7 +172,7 @@ public abstract class DataSourceBase : IAsyncDisposable
|
||||
|
||||
### T0.3: Migration Framework Implementation
|
||||
|
||||
**Status:** TODO
|
||||
**Status:** DONE (implemented in `src/__Libraries/StellaOps.Infrastructure.Postgres/Migrations`)
|
||||
**Assignee:** TBD
|
||||
**Estimate:** 2 days
|
||||
|
||||
@@ -174,11 +180,11 @@ public abstract class DataSourceBase : IAsyncDisposable
|
||||
Implement idempotent migration framework for schema management.
|
||||
|
||||
**Subtasks:**
|
||||
- [ ] T0.3.1: Define `IPostgresMigration` interface
|
||||
- [ ] T0.3.2: Implement `PostgresMigrationRunner` with transaction support
|
||||
- [ ] T0.3.3: Implement migration tracking table (`_migrations`)
|
||||
- [ ] T0.3.4: Add `IHostedService` for automatic migration on startup
|
||||
- [ ] T0.3.5: Add CLI command for manual migration execution
|
||||
- [x] T0.3.1: Define `IPostgresMigration` interface
|
||||
- [x] T0.3.2: Implement `PostgresMigrationRunner` with transaction support
|
||||
- [x] T0.3.3: Implement migration tracking table (`_migrations`)
|
||||
- [x] T0.3.4: Add `IHostedService` for automatic migration on startup
|
||||
- [x] T0.3.5: Add CLI command for manual migration execution (see `StellaOps.Infrastructure.Postgres.Migrations` extensions)
|
||||
- [ ] T0.3.6: Add migration rollback support (optional)
|
||||
|
||||
**Migration Interface:**
|
||||
@@ -216,7 +222,7 @@ public interface IPostgresMigration
|
||||
|
||||
### T0.4: CI/CD Pipeline Configuration
|
||||
|
||||
**Status:** TODO
|
||||
**Status:** DONE (build-test-deploy workflow runs Postgres Testcontainers suites)
|
||||
**Assignee:** TBD
|
||||
**Estimate:** 2 days
|
||||
|
||||
@@ -289,7 +295,7 @@ public sealed class PostgresTestFixture : IAsyncLifetime
|
||||
|
||||
### T0.5: Persistence Configuration
|
||||
|
||||
**Status:** TODO
|
||||
**Status:** DONE (env defaults captured; validation enabled)
|
||||
**Assignee:** TBD
|
||||
**Estimate:** 1 day
|
||||
|
||||
@@ -297,10 +303,10 @@ public sealed class PostgresTestFixture : IAsyncLifetime
|
||||
Add persistence backend configuration to all services.
|
||||
|
||||
**Subtasks:**
|
||||
- [ ] T0.5.1: Define `PersistenceOptions` class
|
||||
- [ ] T0.5.2: Add configuration section to `appsettings.json`
|
||||
- [ ] T0.5.3: Update service registration to read persistence config
|
||||
- [ ] T0.5.4: Add configuration validation on startup
|
||||
- [x] T0.5.1: Define `PersistenceOptions` class
|
||||
- [x] T0.5.2: Add configuration section to `appsettings.json` (template in `docs/db/persistence-config-template.yaml`)
|
||||
- [x] T0.5.3: Update service registration to read persistence config
|
||||
- [x] T0.5.4: Add configuration validation on startup
|
||||
|
||||
**PersistenceOptions:**
|
||||
```csharp
|
||||
@@ -368,11 +374,13 @@ Review and finalize database documentation.
|
||||
|
||||
## Exit Criteria
|
||||
|
||||
- [ ] PostgreSQL cluster running and accessible
|
||||
- [ ] `StellaOps.Infrastructure.Postgres` library implemented and tested
|
||||
- [ ] CI pipeline running PostgreSQL integration tests
|
||||
- [ ] Persistence configuration framework in place
|
||||
- [ ] Documentation reviewed and approved
|
||||
- [x] PostgreSQL cluster details captured (staging/prod) in `docs/db/cluster-provisioning.md`
|
||||
- [x] `StellaOps.Infrastructure.Postgres` library implemented and tested
|
||||
- [x] CI pipeline running PostgreSQL integration tests
|
||||
- [x] Persistence configuration framework and template in place
|
||||
- [x] Documentation reviewed and approved
|
||||
- [x] Schema DDL exported to `docs/db/schemas/*.sql` (authority, scheduler, notify, policy, vuln, vex)
|
||||
- [x] Draft schemas documented for issuer and shared audit (pending use)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user