Search/AdvisoryAI and DAL conversion to EF finishes up. Preparation for microservices consolidation.

This commit is contained in:
master
2026-02-25 18:19:22 +02:00
parent 4db038123b
commit 63c70a6d37
447 changed files with 52257 additions and 2636 deletions

View File

@@ -0,0 +1,41 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
namespace StellaOps.Scanner.Triage;
/// <summary>
/// Design-time DbContext factory for dotnet ef CLI tooling.
/// Used by scaffold and optimize commands.
/// </summary>
public sealed class TriageDesignTimeDbContextFactory : IDesignTimeDbContextFactory<TriageDbContext>
{
private const string DefaultConnectionString =
"Host=localhost;Port=55433;Database=postgres;Username=postgres;Password=postgres;Search Path=scanner,public";
private const string ConnectionStringEnvironmentVariable = "STELLAOPS_TRIAGE_EF_CONNECTION";
public TriageDbContext CreateDbContext(string[] args)
{
var connectionString = ResolveConnectionString();
var options = new DbContextOptionsBuilder<TriageDbContext>()
.UseNpgsql(connectionString, npgsql =>
{
npgsql.MapEnum<Entities.TriageLane>("triage_lane");
npgsql.MapEnum<Entities.TriageVerdict>("triage_verdict");
npgsql.MapEnum<Entities.TriageReachability>("triage_reachability");
npgsql.MapEnum<Entities.TriageVexStatus>("triage_vex_status");
npgsql.MapEnum<Entities.TriageDecisionKind>("triage_decision_kind");
npgsql.MapEnum<Entities.TriageSnapshotTrigger>("triage_snapshot_trigger");
npgsql.MapEnum<Entities.TriageEvidenceType>("triage_evidence_type");
})
.Options;
return new TriageDbContext(options);
}
private static string ResolveConnectionString()
{
var fromEnvironment = Environment.GetEnvironmentVariable(ConnectionStringEnvironmentVariable);
return string.IsNullOrWhiteSpace(fromEnvironment) ? DefaultConnectionString : fromEnvironment;
}
}