up
Some checks failed
Signals CI & Image / signals-ci (push) Has been cancelled
Signals Reachability Scoring & Events / reachability-smoke (push) Has been cancelled
Signals Reachability Scoring & Events / sign-and-upload (push) Has been cancelled
Manifest Integrity / Validate Schema Integrity (push) Has been cancelled
Manifest Integrity / Validate Contract Documents (push) Has been cancelled
Manifest Integrity / Validate Pack Fixtures (push) Has been cancelled
Manifest Integrity / Audit SHA256SUMS Files (push) Has been cancelled
Manifest Integrity / Verify Merkle Roots (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled

This commit is contained in:
StellaOps Bot
2025-12-12 09:35:37 +02:00
parent ce5ec9c158
commit efaf3cb789
238 changed files with 146274 additions and 5767 deletions

View File

@@ -22,7 +22,7 @@ Deliver the VEX Consensus Lens service that normalizes VEX evidence, computes de
## Tooling
- .NET 10 preview; background workers + minimal API.
- PostgreSQL/Mongo for consensus projection; Redis for caching if needed.
- In-memory consensus projection store by default; PostgreSQL provider planned; Redis for caching if needed.
- Signature verification libraries (Ed25519, DSSE, PKIX) and mapping utilities (CPE→purl).
## Definition of Done

View File

@@ -155,7 +155,9 @@ public static class VexLensServiceCollectionExtensions
IServiceCollection services,
VexLensStorageOptions options)
{
switch (options.Driver.ToLowerInvariant())
var driver = (options.Driver ?? "memory").Trim();
switch (driver.ToLowerInvariant())
{
case "memory":
services.TryAddSingleton<IConsensusProjectionStore>(sp =>
@@ -165,19 +167,9 @@ public static class VexLensServiceCollectionExtensions
});
break;
case "mongo":
// MongoDB storage would be registered here
// For now, fall back to in-memory
services.TryAddSingleton<IConsensusProjectionStore>(sp =>
{
var emitter = sp.GetRequiredService<IConsensusEventEmitter>();
return new InMemoryConsensusProjectionStore(emitter);
});
break;
default:
throw new InvalidOperationException(
$"Unknown VexLens storage driver: {options.Driver}");
$"Unsupported VexLens storage driver: '{options.Driver}'. Supported drivers: memory.");
}
}
}

View File

@@ -47,21 +47,16 @@ public sealed class VexLensOptions
public sealed class VexLensStorageOptions
{
/// <summary>
/// Storage driver: "memory" for testing, "mongo" for production.
/// Default is "memory".
/// Storage driver for consensus projections.
/// Supported drivers: "memory" (default) until a persistent provider is introduced.
/// </summary>
public string Driver { get; set; } = "memory";
/// <summary>
/// MongoDB connection string when using mongo driver.
/// Optional connection string for persistent storage drivers (unused for in-memory).
/// </summary>
public string? ConnectionString { get; set; }
/// <summary>
/// Database name for MongoDB storage.
/// </summary>
public string? Database { get; set; }
/// <summary>
/// Collection name for consensus projections.
/// </summary>

View File

@@ -20,3 +20,9 @@
| VEXLENS-ORCH-34-001 | BLOCKED | SPRINT_0129_0001_0001_policy_reasoning | VEXLENS-ORCH-33-001 | Emit completion events to orchestrator ledger; needs job spec. |
Status source of truth: `docs/implplan/SPRINT_0129_0001_0001_policy_reasoning.md`. Update both files together. Keep UTC dates when advancing status.
## Sprint 3410_0001_0001 · MongoDB Final Removal
| Task ID | Status | Sprint | Dependency | Notes |
| --- | --- | --- | --- | --- |
| VEXLENS-3410-001 | DONE | SPRINT_3410_0001_0001_mongodb_final_removal.md | - | Removed MongoDB storage driver path from options/DI; VexLens now in-memory only until persistent provider (Postgres) lands. |