wip: doctor/cli/docs/api to vector db consolidation; api hardening for descriptions, tenant, and scopes; migrations and conversions of all DALs to EF v10

This commit is contained in:
master
2026-02-23 15:30:50 +02:00
parent bd8fee6ed8
commit e746577380
1424 changed files with 81225 additions and 25251 deletions

View File

@@ -1,38 +1,45 @@
using Npgsql;
using StellaOps.Evidence.Core;
using StellaOps.Evidence.Persistence.EfCore.Models;
using System.Text.Json;
namespace StellaOps.Evidence.Persistence.Postgres;
public sealed partial class PostgresEvidenceStore
{
private static IEvidence MapEvidence(NpgsqlDataReader reader)
private static IEvidence MapFromEntity(EvidenceRecordEntity entity)
{
var evidenceId = reader.GetString(0);
var subjectNodeId = reader.GetString(1);
var evidenceType = (EvidenceType)reader.GetInt16(2);
var payload = reader.GetFieldValue<byte[]>(3);
var payloadSchemaVer = reader.GetString(4);
var externalCid = GetNullableString(reader, 5);
var provenanceJson = reader.GetString(6);
var signaturesJson = reader.GetString(7);
var provenance = JsonSerializer.Deserialize<EvidenceProvenance>(entity.Provenance, _jsonOptions)
?? throw new InvalidOperationException($"Failed to deserialize provenance for evidence {entity.EvidenceId}");
var provenance = JsonSerializer.Deserialize<EvidenceProvenance>(provenanceJson, _jsonOptions)
?? throw new InvalidOperationException($"Failed to deserialize provenance for evidence {evidenceId}");
var signatures = JsonSerializer.Deserialize<List<EvidenceSignature>>(signaturesJson, _jsonOptions)
var signatures = JsonSerializer.Deserialize<List<EvidenceSignature>>(entity.Signatures, _jsonOptions)
?? [];
return new EvidenceRecord
{
EvidenceId = evidenceId,
SubjectNodeId = subjectNodeId,
EvidenceType = evidenceType,
Payload = payload,
PayloadSchemaVersion = payloadSchemaVer,
ExternalPayloadCid = externalCid,
EvidenceId = entity.EvidenceId,
SubjectNodeId = entity.SubjectNodeId,
EvidenceType = (EvidenceType)entity.EvidenceType,
Payload = entity.Payload,
PayloadSchemaVersion = entity.PayloadSchemaVer,
ExternalPayloadCid = entity.ExternalCid,
Provenance = provenance,
Signatures = signatures
};
}
private EvidenceRecordEntity MapToEntity(IEvidence evidence)
{
return new EvidenceRecordEntity
{
EvidenceId = evidence.EvidenceId,
SubjectNodeId = evidence.SubjectNodeId,
EvidenceType = (short)evidence.EvidenceType,
Payload = evidence.Payload.ToArray(),
PayloadSchemaVer = evidence.PayloadSchemaVersion,
ExternalCid = evidence.ExternalPayloadCid,
Provenance = JsonSerializer.Serialize(evidence.Provenance, _jsonOptions),
Signatures = JsonSerializer.Serialize(evidence.Signatures, _jsonOptions),
TenantId = Guid.Parse(_tenantId)
};
}
}