Search/AdvisoryAI and DAL conversion to EF finishes up. Preparation for microservices consolidation.
This commit is contained in:
@@ -361,10 +361,12 @@ public sealed class PostgresExceptionRepository : IExceptionRepository
|
||||
return [];
|
||||
}
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
var sql = $"""
|
||||
SELECT * FROM policy.exceptions
|
||||
WHERE status = 'active'
|
||||
AND expires_at > NOW()
|
||||
AND expires_at > @now
|
||||
AND ({string.Join(" OR ", scopeClauses)})
|
||||
ORDER BY created_at DESC
|
||||
""";
|
||||
@@ -372,6 +374,7 @@ public sealed class PostgresExceptionRepository : IExceptionRepository
|
||||
await using var connection = await _dataSource.OpenConnectionAsync(cancellationToken).ConfigureAwait(false);
|
||||
await using var cmd = new NpgsqlCommand(sql, connection);
|
||||
|
||||
cmd.Parameters.AddWithValue("now", now);
|
||||
foreach (var (key, value) in parameters)
|
||||
{
|
||||
cmd.Parameters.AddWithValue(key, value ?? DBNull.Value);
|
||||
@@ -396,13 +399,16 @@ public sealed class PostgresExceptionRepository : IExceptionRepository
|
||||
const string sql = """
|
||||
SELECT * FROM policy.exceptions
|
||||
WHERE status = 'active'
|
||||
AND expires_at > NOW()
|
||||
AND expires_at <= NOW() + @interval
|
||||
AND expires_at > @now
|
||||
AND expires_at <= @now + @interval
|
||||
ORDER BY expires_at ASC
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
await using var connection = await _dataSource.OpenConnectionAsync(cancellationToken).ConfigureAwait(false);
|
||||
await using var cmd = new NpgsqlCommand(sql, connection);
|
||||
cmd.Parameters.AddWithValue("now", now);
|
||||
cmd.Parameters.AddWithValue("interval", withinTimeSpan);
|
||||
|
||||
var results = new List<ExceptionObject>();
|
||||
@@ -422,12 +428,15 @@ public sealed class PostgresExceptionRepository : IExceptionRepository
|
||||
const string sql = """
|
||||
SELECT * FROM policy.exceptions
|
||||
WHERE status = 'active'
|
||||
AND expires_at <= NOW()
|
||||
AND expires_at <= @now
|
||||
ORDER BY expires_at ASC
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
await using var connection = await _dataSource.OpenConnectionAsync(cancellationToken).ConfigureAwait(false);
|
||||
await using var cmd = new NpgsqlCommand(sql, connection);
|
||||
cmd.Parameters.AddWithValue("now", now);
|
||||
|
||||
var results = new List<ExceptionObject>();
|
||||
await using var reader = await cmd.ExecuteReaderAsync(cancellationToken).ConfigureAwait(false);
|
||||
|
||||
@@ -0,0 +1,192 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class AdvisorySourceConflictEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.AdvisorySourceConflictEntity",
|
||||
typeof(AdvisorySourceConflictEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 16,
|
||||
keyCount: 1);
|
||||
|
||||
var conflictId = runtimeEntityType.AddProperty(
|
||||
"ConflictId",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("ConflictId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<ConflictId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
conflictId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
conflictId.AddAnnotation("Relational:ColumnName", "conflict_id");
|
||||
conflictId.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var advisoryId = runtimeEntityType.AddProperty(
|
||||
"AdvisoryId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("AdvisoryId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<AdvisoryId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
advisoryId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
advisoryId.AddAnnotation("Relational:ColumnName", "advisory_id");
|
||||
|
||||
var conflictType = runtimeEntityType.AddProperty(
|
||||
"ConflictType",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("ConflictType", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<ConflictType>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
conflictType.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
conflictType.AddAnnotation("Relational:ColumnName", "conflict_type");
|
||||
|
||||
var description = runtimeEntityType.AddProperty(
|
||||
"Description",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("Description", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<Description>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
description.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
description.AddAnnotation("Relational:ColumnName", "description");
|
||||
|
||||
var detailsJson = runtimeEntityType.AddProperty(
|
||||
"DetailsJson",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("DetailsJson", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<DetailsJson>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
detailsJson.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
detailsJson.AddAnnotation("Relational:ColumnName", "details_json");
|
||||
detailsJson.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var firstDetectedAt = runtimeEntityType.AddProperty(
|
||||
"FirstDetectedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("FirstDetectedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<FirstDetectedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
firstDetectedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
firstDetectedAt.AddAnnotation("Relational:ColumnName", "first_detected_at");
|
||||
firstDetectedAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var lastDetectedAt = runtimeEntityType.AddProperty(
|
||||
"LastDetectedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("LastDetectedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<LastDetectedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
lastDetectedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
lastDetectedAt.AddAnnotation("Relational:ColumnName", "last_detected_at");
|
||||
lastDetectedAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var pairedSourceKey = runtimeEntityType.AddProperty(
|
||||
"PairedSourceKey",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("PairedSourceKey", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<PairedSourceKey>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
pairedSourceKey.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
pairedSourceKey.AddAnnotation("Relational:ColumnName", "paired_source_key");
|
||||
|
||||
var resolvedAt = runtimeEntityType.AddProperty(
|
||||
"ResolvedAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("ResolvedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<ResolvedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
resolvedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
resolvedAt.AddAnnotation("Relational:ColumnName", "resolved_at");
|
||||
|
||||
var severity = runtimeEntityType.AddProperty(
|
||||
"Severity",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("Severity", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<Severity>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
severity.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
severity.AddAnnotation("Relational:ColumnName", "severity");
|
||||
|
||||
var sourceFamily = runtimeEntityType.AddProperty(
|
||||
"SourceFamily",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("SourceFamily", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<SourceFamily>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
sourceFamily.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
sourceFamily.AddAnnotation("Relational:ColumnName", "source_family");
|
||||
|
||||
var sourceKey = runtimeEntityType.AddProperty(
|
||||
"SourceKey",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("SourceKey", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<SourceKey>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
sourceKey.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
sourceKey.AddAnnotation("Relational:ColumnName", "source_key");
|
||||
|
||||
var status = runtimeEntityType.AddProperty(
|
||||
"Status",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("Status", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<Status>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
status.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
status.AddAnnotation("Relational:ColumnName", "status");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var updatedAt = runtimeEntityType.AddProperty(
|
||||
"UpdatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("UpdatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<UpdatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
updatedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
updatedAt.AddAnnotation("Relational:ColumnName", "updated_at");
|
||||
updatedAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var updatedBy = runtimeEntityType.AddProperty(
|
||||
"UpdatedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceConflictEntity).GetProperty("UpdatedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceConflictEntity).GetField("<UpdatedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
updatedBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
updatedBy.AddAnnotation("Relational:ColumnName", "updated_by");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { conflictId });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "advisory_source_conflicts_pkey");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "advisory_source_conflicts");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class AdvisorySourceImpactEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.AdvisorySourceImpactEntity",
|
||||
typeof(AdvisorySourceImpactEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 12,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(AdvisorySourceImpactEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceImpactEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var decisionRefs = runtimeEntityType.AddProperty(
|
||||
"DecisionRefs",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceImpactEntity).GetProperty("DecisionRefs", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceImpactEntity).GetField("<DecisionRefs>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
decisionRefs.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
decisionRefs.AddAnnotation("Relational:ColumnName", "decision_refs");
|
||||
decisionRefs.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var environment = runtimeEntityType.AddProperty(
|
||||
"Environment",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceImpactEntity).GetProperty("Environment", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceImpactEntity).GetField("<Environment>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
environment.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
environment.AddAnnotation("Relational:ColumnName", "environment");
|
||||
|
||||
var impactSeverity = runtimeEntityType.AddProperty(
|
||||
"ImpactSeverity",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceImpactEntity).GetProperty("ImpactSeverity", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceImpactEntity).GetField("<ImpactSeverity>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
impactSeverity.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
impactSeverity.AddAnnotation("Relational:ColumnName", "impact_severity");
|
||||
|
||||
var impactedDecisionsCount = runtimeEntityType.AddProperty(
|
||||
"ImpactedDecisionsCount",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(AdvisorySourceImpactEntity).GetProperty("ImpactedDecisionsCount", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceImpactEntity).GetField("<ImpactedDecisionsCount>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
impactedDecisionsCount.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
impactedDecisionsCount.AddAnnotation("Relational:ColumnName", "impacted_decisions_count");
|
||||
|
||||
var lastDecisionAt = runtimeEntityType.AddProperty(
|
||||
"LastDecisionAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(AdvisorySourceImpactEntity).GetProperty("LastDecisionAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceImpactEntity).GetField("<LastDecisionAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
lastDecisionAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
lastDecisionAt.AddAnnotation("Relational:ColumnName", "last_decision_at");
|
||||
|
||||
var region = runtimeEntityType.AddProperty(
|
||||
"Region",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceImpactEntity).GetProperty("Region", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceImpactEntity).GetField("<Region>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
region.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
region.AddAnnotation("Relational:ColumnName", "region");
|
||||
|
||||
var sourceFamily = runtimeEntityType.AddProperty(
|
||||
"SourceFamily",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceImpactEntity).GetProperty("SourceFamily", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceImpactEntity).GetField("<SourceFamily>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
sourceFamily.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
sourceFamily.AddAnnotation("Relational:ColumnName", "source_family");
|
||||
|
||||
var sourceKey = runtimeEntityType.AddProperty(
|
||||
"SourceKey",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceImpactEntity).GetProperty("SourceKey", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceImpactEntity).GetField("<SourceKey>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
sourceKey.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
sourceKey.AddAnnotation("Relational:ColumnName", "source_key");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceImpactEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceImpactEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var updatedAt = runtimeEntityType.AddProperty(
|
||||
"UpdatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(AdvisorySourceImpactEntity).GetProperty("UpdatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceImpactEntity).GetField("<UpdatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
updatedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
updatedAt.AddAnnotation("Relational:ColumnName", "updated_at");
|
||||
updatedAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var updatedBy = runtimeEntityType.AddProperty(
|
||||
"UpdatedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(AdvisorySourceImpactEntity).GetProperty("UpdatedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(AdvisorySourceImpactEntity).GetField("<UpdatedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
updatedBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
updatedBy.AddAnnotation("Relational:ColumnName", "updated_by");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "advisory_source_impacts_pkey");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "advisory_source_impacts");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class BudgetEntryEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.BudgetEntryEntity",
|
||||
typeof(BudgetEntryEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 10,
|
||||
namedIndexCount: 3,
|
||||
keyCount: 1);
|
||||
|
||||
var entryId = runtimeEntityType.AddProperty(
|
||||
"EntryId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(BudgetEntryEntity).GetProperty("EntryId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetEntryEntity).GetField("<EntryId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
maxLength: 64);
|
||||
entryId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
entryId.AddAnnotation("Relational:ColumnName", "entry_id");
|
||||
|
||||
var consumedAt = runtimeEntityType.AddProperty(
|
||||
"ConsumedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(BudgetEntryEntity).GetProperty("ConsumedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetEntryEntity).GetField("<ConsumedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
consumedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
consumedAt.AddAnnotation("Relational:ColumnName", "consumed_at");
|
||||
consumedAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var consumedBy = runtimeEntityType.AddProperty(
|
||||
"ConsumedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(BudgetEntryEntity).GetProperty("ConsumedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetEntryEntity).GetField("<ConsumedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true,
|
||||
maxLength: 256);
|
||||
consumedBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
consumedBy.AddAnnotation("Relational:ColumnName", "consumed_by");
|
||||
|
||||
var isException = runtimeEntityType.AddProperty(
|
||||
"IsException",
|
||||
typeof(bool),
|
||||
propertyInfo: typeof(BudgetEntryEntity).GetProperty("IsException", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetEntryEntity).GetField("<IsException>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: false);
|
||||
isException.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
isException.AddAnnotation("Relational:ColumnName", "is_exception");
|
||||
|
||||
var penaltyPoints = runtimeEntityType.AddProperty(
|
||||
"PenaltyPoints",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(BudgetEntryEntity).GetProperty("PenaltyPoints", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetEntryEntity).GetField("<PenaltyPoints>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
penaltyPoints.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
penaltyPoints.AddAnnotation("Relational:ColumnName", "penalty_points");
|
||||
|
||||
var reason = runtimeEntityType.AddProperty(
|
||||
"Reason",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(BudgetEntryEntity).GetProperty("Reason", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetEntryEntity).GetField("<Reason>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true,
|
||||
maxLength: 512);
|
||||
reason.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
reason.AddAnnotation("Relational:ColumnName", "reason");
|
||||
|
||||
var releaseId = runtimeEntityType.AddProperty(
|
||||
"ReleaseId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(BudgetEntryEntity).GetProperty("ReleaseId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetEntryEntity).GetField("<ReleaseId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
maxLength: 128);
|
||||
releaseId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
releaseId.AddAnnotation("Relational:ColumnName", "release_id");
|
||||
|
||||
var riskPoints = runtimeEntityType.AddProperty(
|
||||
"RiskPoints",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(BudgetEntryEntity).GetProperty("RiskPoints", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetEntryEntity).GetField("<RiskPoints>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
riskPoints.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
riskPoints.AddAnnotation("Relational:ColumnName", "risk_points");
|
||||
|
||||
var serviceId = runtimeEntityType.AddProperty(
|
||||
"ServiceId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(BudgetEntryEntity).GetProperty("ServiceId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetEntryEntity).GetField("<ServiceId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
maxLength: 128);
|
||||
serviceId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
serviceId.AddAnnotation("Relational:ColumnName", "service_id");
|
||||
|
||||
var window = runtimeEntityType.AddProperty(
|
||||
"Window",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(BudgetEntryEntity).GetProperty("Window", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetEntryEntity).GetField("<Window>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
maxLength: 16);
|
||||
window.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
window.AddAnnotation("Relational:ColumnName", "window");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { entryId });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "budget_entries_pkey");
|
||||
|
||||
var idx_budget_entries_consumed_at = runtimeEntityType.AddIndex(
|
||||
new[] { consumedAt },
|
||||
name: "idx_budget_entries_consumed_at");
|
||||
|
||||
var idx_budget_entries_release_id = runtimeEntityType.AddIndex(
|
||||
new[] { releaseId },
|
||||
name: "idx_budget_entries_release_id");
|
||||
|
||||
var idx_budget_entries_service_window = runtimeEntityType.AddIndex(
|
||||
new[] { serviceId, window },
|
||||
name: "idx_budget_entries_service_window");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "budget_entries");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class BudgetLedgerEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.BudgetLedgerEntity",
|
||||
typeof(BudgetLedgerEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 10,
|
||||
unnamedIndexCount: 1,
|
||||
namedIndexCount: 4,
|
||||
keyCount: 1);
|
||||
|
||||
var budgetId = runtimeEntityType.AddProperty(
|
||||
"BudgetId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(BudgetLedgerEntity).GetProperty("BudgetId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetLedgerEntity).GetField("<BudgetId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
maxLength: 256);
|
||||
budgetId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
budgetId.AddAnnotation("Relational:ColumnName", "budget_id");
|
||||
|
||||
var allocated = runtimeEntityType.AddProperty(
|
||||
"Allocated",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(BudgetLedgerEntity).GetProperty("Allocated", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetLedgerEntity).GetField("<Allocated>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
allocated.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
allocated.AddAnnotation("Relational:ColumnName", "allocated");
|
||||
|
||||
var consumed = runtimeEntityType.AddProperty(
|
||||
"Consumed",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(BudgetLedgerEntity).GetProperty("Consumed", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetLedgerEntity).GetField("<Consumed>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
consumed.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
consumed.AddAnnotation("Relational:ColumnName", "consumed");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(BudgetLedgerEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetLedgerEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var serviceId = runtimeEntityType.AddProperty(
|
||||
"ServiceId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(BudgetLedgerEntity).GetProperty("ServiceId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetLedgerEntity).GetField("<ServiceId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
maxLength: 128);
|
||||
serviceId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
serviceId.AddAnnotation("Relational:ColumnName", "service_id");
|
||||
|
||||
var status = runtimeEntityType.AddProperty(
|
||||
"Status",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(BudgetLedgerEntity).GetProperty("Status", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetLedgerEntity).GetField("<Status>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
maxLength: 16);
|
||||
status.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
status.AddAnnotation("Relational:ColumnName", "status");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(BudgetLedgerEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetLedgerEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true,
|
||||
maxLength: 64);
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var tier = runtimeEntityType.AddProperty(
|
||||
"Tier",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(BudgetLedgerEntity).GetProperty("Tier", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetLedgerEntity).GetField("<Tier>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
tier.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tier.AddAnnotation("Relational:ColumnName", "tier");
|
||||
|
||||
var updatedAt = runtimeEntityType.AddProperty(
|
||||
"UpdatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(BudgetLedgerEntity).GetProperty("UpdatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetLedgerEntity).GetField("<UpdatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
updatedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
updatedAt.AddAnnotation("Relational:ColumnName", "updated_at");
|
||||
updatedAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var window = runtimeEntityType.AddProperty(
|
||||
"Window",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(BudgetLedgerEntity).GetProperty("Window", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(BudgetLedgerEntity).GetField("<Window>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
maxLength: 16);
|
||||
window.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
window.AddAnnotation("Relational:ColumnName", "window");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { budgetId });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "budget_ledger_pkey");
|
||||
|
||||
var index = runtimeEntityType.AddIndex(
|
||||
new[] { serviceId, window },
|
||||
unique: true);
|
||||
index.AddAnnotation("Relational:Name", "uq_budget_ledger_service_window");
|
||||
|
||||
var idx_budget_ledger_service_id = runtimeEntityType.AddIndex(
|
||||
new[] { serviceId },
|
||||
name: "idx_budget_ledger_service_id");
|
||||
|
||||
var idx_budget_ledger_status = runtimeEntityType.AddIndex(
|
||||
new[] { status },
|
||||
name: "idx_budget_ledger_status");
|
||||
|
||||
var idx_budget_ledger_tenant_id = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId },
|
||||
name: "idx_budget_ledger_tenant_id");
|
||||
|
||||
var idx_budget_ledger_window = runtimeEntityType.AddIndex(
|
||||
new[] { window },
|
||||
name: "idx_budget_ledger_window");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "budget_ledger");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,196 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class ConflictEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.ConflictEntity",
|
||||
typeof(ConflictEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 15,
|
||||
namedIndexCount: 3,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var affectedScope = runtimeEntityType.AddProperty(
|
||||
"AffectedScope",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("AffectedScope", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<AffectedScope>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
affectedScope.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
affectedScope.AddAnnotation("Relational:ColumnName", "affected_scope");
|
||||
|
||||
var conflictType = runtimeEntityType.AddProperty(
|
||||
"ConflictType",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("ConflictType", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<ConflictType>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
conflictType.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
conflictType.AddAnnotation("Relational:ColumnName", "conflict_type");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var createdBy = runtimeEntityType.AddProperty(
|
||||
"CreatedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("CreatedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<CreatedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
createdBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdBy.AddAnnotation("Relational:ColumnName", "created_by");
|
||||
|
||||
var description = runtimeEntityType.AddProperty(
|
||||
"Description",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("Description", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<Description>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
description.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
description.AddAnnotation("Relational:ColumnName", "description");
|
||||
|
||||
var leftRuleId = runtimeEntityType.AddProperty(
|
||||
"LeftRuleId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("LeftRuleId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<LeftRuleId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
leftRuleId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
leftRuleId.AddAnnotation("Relational:ColumnName", "left_rule_id");
|
||||
|
||||
var metadata = runtimeEntityType.AddProperty(
|
||||
"Metadata",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("Metadata", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<Metadata>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
metadata.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
metadata.AddAnnotation("Relational:ColumnName", "metadata");
|
||||
metadata.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var resolution = runtimeEntityType.AddProperty(
|
||||
"Resolution",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("Resolution", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<Resolution>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
resolution.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
resolution.AddAnnotation("Relational:ColumnName", "resolution");
|
||||
|
||||
var resolvedAt = runtimeEntityType.AddProperty(
|
||||
"ResolvedAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("ResolvedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<ResolvedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
resolvedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
resolvedAt.AddAnnotation("Relational:ColumnName", "resolved_at");
|
||||
|
||||
var resolvedBy = runtimeEntityType.AddProperty(
|
||||
"ResolvedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("ResolvedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<ResolvedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
resolvedBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
resolvedBy.AddAnnotation("Relational:ColumnName", "resolved_by");
|
||||
|
||||
var rightRuleId = runtimeEntityType.AddProperty(
|
||||
"RightRuleId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("RightRuleId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<RightRuleId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
rightRuleId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
rightRuleId.AddAnnotation("Relational:ColumnName", "right_rule_id");
|
||||
|
||||
var severity = runtimeEntityType.AddProperty(
|
||||
"Severity",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("Severity", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<Severity>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
severity.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
severity.AddAnnotation("Relational:ColumnName", "severity");
|
||||
|
||||
var status = runtimeEntityType.AddProperty(
|
||||
"Status",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("Status", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<Status>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
status.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
status.AddAnnotation("Relational:ColumnName", "status");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ConflictEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ConflictEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "conflicts_pkey");
|
||||
|
||||
var idx_conflicts_status = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, status },
|
||||
name: "idx_conflicts_status");
|
||||
|
||||
var idx_conflicts_tenant = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId },
|
||||
name: "idx_conflicts_tenant");
|
||||
|
||||
var idx_conflicts_type = runtimeEntityType.AddIndex(
|
||||
new[] { conflictType },
|
||||
name: "idx_conflicts_type");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "conflicts");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,287 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class EvaluationRunEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.EvaluationRunEntity",
|
||||
typeof(EvaluationRunEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 23,
|
||||
namedIndexCount: 5,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var artifactId = runtimeEntityType.AddProperty(
|
||||
"ArtifactId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("ArtifactId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<ArtifactId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
artifactId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
artifactId.AddAnnotation("Relational:ColumnName", "artifact_id");
|
||||
|
||||
var completedAt = runtimeEntityType.AddProperty(
|
||||
"CompletedAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("CompletedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<CompletedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
completedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
completedAt.AddAnnotation("Relational:ColumnName", "completed_at");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var createdBy = runtimeEntityType.AddProperty(
|
||||
"CreatedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("CreatedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<CreatedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
createdBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdBy.AddAnnotation("Relational:ColumnName", "created_by");
|
||||
|
||||
var criticalCount = runtimeEntityType.AddProperty(
|
||||
"CriticalCount",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("CriticalCount", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<CriticalCount>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
criticalCount.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
criticalCount.AddAnnotation("Relational:ColumnName", "critical_count");
|
||||
|
||||
var durationMs = runtimeEntityType.AddProperty(
|
||||
"DurationMs",
|
||||
typeof(int?),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("DurationMs", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<DurationMs>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
durationMs.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
durationMs.AddAnnotation("Relational:ColumnName", "duration_ms");
|
||||
|
||||
var errorMessage = runtimeEntityType.AddProperty(
|
||||
"ErrorMessage",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("ErrorMessage", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<ErrorMessage>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
errorMessage.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
errorMessage.AddAnnotation("Relational:ColumnName", "error_message");
|
||||
|
||||
var findingsCount = runtimeEntityType.AddProperty(
|
||||
"FindingsCount",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("FindingsCount", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<FindingsCount>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
findingsCount.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
findingsCount.AddAnnotation("Relational:ColumnName", "findings_count");
|
||||
|
||||
var highCount = runtimeEntityType.AddProperty(
|
||||
"HighCount",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("HighCount", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<HighCount>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
highCount.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
highCount.AddAnnotation("Relational:ColumnName", "high_count");
|
||||
|
||||
var inputHash = runtimeEntityType.AddProperty(
|
||||
"InputHash",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("InputHash", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<InputHash>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
inputHash.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
inputHash.AddAnnotation("Relational:ColumnName", "input_hash");
|
||||
|
||||
var lowCount = runtimeEntityType.AddProperty(
|
||||
"LowCount",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("LowCount", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<LowCount>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
lowCount.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
lowCount.AddAnnotation("Relational:ColumnName", "low_count");
|
||||
|
||||
var mediumCount = runtimeEntityType.AddProperty(
|
||||
"MediumCount",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("MediumCount", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<MediumCount>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
mediumCount.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
mediumCount.AddAnnotation("Relational:ColumnName", "medium_count");
|
||||
|
||||
var metadata = runtimeEntityType.AddProperty(
|
||||
"Metadata",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("Metadata", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<Metadata>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
metadata.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
metadata.AddAnnotation("Relational:ColumnName", "metadata");
|
||||
metadata.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var packId = runtimeEntityType.AddProperty(
|
||||
"PackId",
|
||||
typeof(Guid?),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("PackId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<PackId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
packId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
packId.AddAnnotation("Relational:ColumnName", "pack_id");
|
||||
|
||||
var packVersion = runtimeEntityType.AddProperty(
|
||||
"PackVersion",
|
||||
typeof(int?),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("PackVersion", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<PackVersion>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
packVersion.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
packVersion.AddAnnotation("Relational:ColumnName", "pack_version");
|
||||
|
||||
var projectId = runtimeEntityType.AddProperty(
|
||||
"ProjectId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("ProjectId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<ProjectId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
projectId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
projectId.AddAnnotation("Relational:ColumnName", "project_id");
|
||||
|
||||
var result = runtimeEntityType.AddProperty(
|
||||
"Result",
|
||||
typeof(EvaluationResult?),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("Result", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<Result>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
result.SetValueConverter(new ValueConverter<EvaluationResult, string>(
|
||||
string (EvaluationResult v) => ((object)v).ToString().ToLowerInvariant(),
|
||||
EvaluationResult (string v) => Enum.Parse<EvaluationResult>(v, true)));
|
||||
result.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
result.AddAnnotation("Relational:ColumnName", "result");
|
||||
|
||||
var riskProfileId = runtimeEntityType.AddProperty(
|
||||
"RiskProfileId",
|
||||
typeof(Guid?),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("RiskProfileId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<RiskProfileId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
riskProfileId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
riskProfileId.AddAnnotation("Relational:ColumnName", "risk_profile_id");
|
||||
|
||||
var score = runtimeEntityType.AddProperty(
|
||||
"Score",
|
||||
typeof(decimal?),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("Score", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<Score>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
score.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
score.AddAnnotation("Relational:ColumnName", "score");
|
||||
|
||||
var startedAt = runtimeEntityType.AddProperty(
|
||||
"StartedAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("StartedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<StartedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
startedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
startedAt.AddAnnotation("Relational:ColumnName", "started_at");
|
||||
|
||||
var status = runtimeEntityType.AddProperty(
|
||||
"Status",
|
||||
typeof(EvaluationStatus),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("Status", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<Status>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
status.SetValueConverter(new ValueConverter<EvaluationStatus, string>(
|
||||
string (EvaluationStatus v) => ((object)v).ToString().ToLowerInvariant(),
|
||||
EvaluationStatus (string v) => Enum.Parse<EvaluationStatus>(v, true)));
|
||||
status.SetSentinelFromProviderValue("pending");
|
||||
status.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
status.AddAnnotation("Relational:ColumnName", "status");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(EvaluationRunEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(EvaluationRunEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "evaluation_runs_pkey");
|
||||
|
||||
var idx_evaluation_runs_artifact = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, artifactId },
|
||||
name: "idx_evaluation_runs_artifact");
|
||||
|
||||
var idx_evaluation_runs_created = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, createdAt },
|
||||
name: "idx_evaluation_runs_created");
|
||||
|
||||
var idx_evaluation_runs_project = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, projectId },
|
||||
name: "idx_evaluation_runs_project");
|
||||
|
||||
var idx_evaluation_runs_status = runtimeEntityType.AddIndex(
|
||||
new[] { status },
|
||||
name: "idx_evaluation_runs_status");
|
||||
|
||||
var idx_evaluation_runs_tenant = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId },
|
||||
name: "idx_evaluation_runs_tenant");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "evaluation_runs");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class ExceptionApprovalAuditEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.ExceptionApprovalAuditEntity",
|
||||
typeof(ExceptionApprovalAuditEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 12,
|
||||
unnamedIndexCount: 1,
|
||||
namedIndexCount: 1,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(ExceptionApprovalAuditEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalAuditEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var actionType = runtimeEntityType.AddProperty(
|
||||
"ActionType",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalAuditEntity).GetProperty("ActionType", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalAuditEntity).GetField("<ActionType>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
actionType.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
actionType.AddAnnotation("Relational:ColumnName", "action_type");
|
||||
|
||||
var actorId = runtimeEntityType.AddProperty(
|
||||
"ActorId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalAuditEntity).GetProperty("ActorId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalAuditEntity).GetField("<ActorId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
actorId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
actorId.AddAnnotation("Relational:ColumnName", "actor_id");
|
||||
|
||||
var clientInfo = runtimeEntityType.AddProperty(
|
||||
"ClientInfo",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalAuditEntity).GetProperty("ClientInfo", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalAuditEntity).GetField("<ClientInfo>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
clientInfo.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
clientInfo.AddAnnotation("Relational:ColumnName", "client_info");
|
||||
clientInfo.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var description = runtimeEntityType.AddProperty(
|
||||
"Description",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalAuditEntity).GetProperty("Description", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalAuditEntity).GetField("<Description>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
description.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
description.AddAnnotation("Relational:ColumnName", "description");
|
||||
|
||||
var details = runtimeEntityType.AddProperty(
|
||||
"Details",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalAuditEntity).GetProperty("Details", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalAuditEntity).GetField("<Details>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
details.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
details.AddAnnotation("Relational:ColumnName", "details");
|
||||
details.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var newStatus = runtimeEntityType.AddProperty(
|
||||
"NewStatus",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalAuditEntity).GetProperty("NewStatus", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalAuditEntity).GetField("<NewStatus>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
newStatus.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
newStatus.AddAnnotation("Relational:ColumnName", "new_status");
|
||||
|
||||
var occurredAt = runtimeEntityType.AddProperty(
|
||||
"OccurredAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(ExceptionApprovalAuditEntity).GetProperty("OccurredAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalAuditEntity).GetField("<OccurredAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
occurredAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
occurredAt.AddAnnotation("Relational:ColumnName", "occurred_at");
|
||||
occurredAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var previousStatus = runtimeEntityType.AddProperty(
|
||||
"PreviousStatus",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalAuditEntity).GetProperty("PreviousStatus", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalAuditEntity).GetField("<PreviousStatus>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
previousStatus.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
previousStatus.AddAnnotation("Relational:ColumnName", "previous_status");
|
||||
|
||||
var requestId = runtimeEntityType.AddProperty(
|
||||
"RequestId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalAuditEntity).GetProperty("RequestId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalAuditEntity).GetField("<RequestId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
requestId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
requestId.AddAnnotation("Relational:ColumnName", "request_id");
|
||||
|
||||
var sequenceNumber = runtimeEntityType.AddProperty(
|
||||
"SequenceNumber",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(ExceptionApprovalAuditEntity).GetProperty("SequenceNumber", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalAuditEntity).GetField("<SequenceNumber>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
sequenceNumber.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
sequenceNumber.AddAnnotation("Relational:ColumnName", "sequence_number");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalAuditEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalAuditEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "exception_approval_audit_pkey");
|
||||
|
||||
var index = runtimeEntityType.AddIndex(
|
||||
new[] { requestId, sequenceNumber },
|
||||
unique: true);
|
||||
|
||||
var idx_approval_audit_request = runtimeEntityType.AddIndex(
|
||||
new[] { requestId },
|
||||
name: "idx_approval_audit_request");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "exception_approval_audit");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,338 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class ExceptionApprovalRequestEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.ExceptionApprovalRequestEntity",
|
||||
typeof(ExceptionApprovalRequestEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 30,
|
||||
unnamedIndexCount: 1,
|
||||
namedIndexCount: 2,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var approvedByIds = runtimeEntityType.AddProperty(
|
||||
"ApprovedByIds",
|
||||
typeof(string[]),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("ApprovedByIds", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<ApprovedByIds>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
var approvedByIdsElementType = approvedByIds.SetElementType(typeof(string));
|
||||
approvedByIds.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
approvedByIds.AddAnnotation("Relational:ColumnName", "approved_by_ids");
|
||||
|
||||
var artifactDigest = runtimeEntityType.AddProperty(
|
||||
"ArtifactDigest",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("ArtifactDigest", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<ArtifactDigest>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
artifactDigest.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
artifactDigest.AddAnnotation("Relational:ColumnName", "artifact_digest");
|
||||
|
||||
var compensatingControls = runtimeEntityType.AddProperty(
|
||||
"CompensatingControls",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("CompensatingControls", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<CompensatingControls>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
compensatingControls.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
compensatingControls.AddAnnotation("Relational:ColumnName", "compensating_controls");
|
||||
compensatingControls.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var environments = runtimeEntityType.AddProperty(
|
||||
"Environments",
|
||||
typeof(string[]),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("Environments", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<Environments>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
var environmentsElementType = environments.SetElementType(typeof(string));
|
||||
environments.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
environments.AddAnnotation("Relational:ColumnName", "environments");
|
||||
|
||||
var evidenceRefs = runtimeEntityType.AddProperty(
|
||||
"EvidenceRefs",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("EvidenceRefs", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<EvidenceRefs>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
evidenceRefs.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
evidenceRefs.AddAnnotation("Relational:ColumnName", "evidence_refs");
|
||||
evidenceRefs.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var exceptionExpiresAt = runtimeEntityType.AddProperty(
|
||||
"ExceptionExpiresAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("ExceptionExpiresAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<ExceptionExpiresAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
exceptionExpiresAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
exceptionExpiresAt.AddAnnotation("Relational:ColumnName", "exception_expires_at");
|
||||
|
||||
var exceptionId = runtimeEntityType.AddProperty(
|
||||
"ExceptionId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("ExceptionId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<ExceptionId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
exceptionId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
exceptionId.AddAnnotation("Relational:ColumnName", "exception_id");
|
||||
|
||||
var gateLevel = runtimeEntityType.AddProperty(
|
||||
"GateLevel",
|
||||
typeof(GateLevel),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("GateLevel", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<GateLevel>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
providerPropertyType: typeof(int));
|
||||
gateLevel.SetSentinelFromProviderValue(0);
|
||||
gateLevel.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
gateLevel.AddAnnotation("Relational:ColumnName", "gate_level");
|
||||
|
||||
var imagePattern = runtimeEntityType.AddProperty(
|
||||
"ImagePattern",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("ImagePattern", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<ImagePattern>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
imagePattern.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
imagePattern.AddAnnotation("Relational:ColumnName", "image_pattern");
|
||||
|
||||
var justification = runtimeEntityType.AddProperty(
|
||||
"Justification",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("Justification", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<Justification>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
justification.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
justification.AddAnnotation("Relational:ColumnName", "justification");
|
||||
|
||||
var metadata = runtimeEntityType.AddProperty(
|
||||
"Metadata",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("Metadata", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<Metadata>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
metadata.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
metadata.AddAnnotation("Relational:ColumnName", "metadata");
|
||||
metadata.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var purlPattern = runtimeEntityType.AddProperty(
|
||||
"PurlPattern",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("PurlPattern", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<PurlPattern>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
purlPattern.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
purlPattern.AddAnnotation("Relational:ColumnName", "purl_pattern");
|
||||
|
||||
var rationale = runtimeEntityType.AddProperty(
|
||||
"Rationale",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("Rationale", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<Rationale>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
rationale.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
rationale.AddAnnotation("Relational:ColumnName", "rationale");
|
||||
|
||||
var reasonCode = runtimeEntityType.AddProperty(
|
||||
"ReasonCode",
|
||||
typeof(ExceptionReasonCode),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("ReasonCode", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<ReasonCode>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
providerPropertyType: typeof(string));
|
||||
reasonCode.SetSentinelFromProviderValue("FalsePositive");
|
||||
reasonCode.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
reasonCode.AddAnnotation("Relational:ColumnName", "reason_code");
|
||||
|
||||
var rejectedById = runtimeEntityType.AddProperty(
|
||||
"RejectedById",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("RejectedById", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<RejectedById>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
rejectedById.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
rejectedById.AddAnnotation("Relational:ColumnName", "rejected_by_id");
|
||||
|
||||
var rejectionReason = runtimeEntityType.AddProperty(
|
||||
"RejectionReason",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("RejectionReason", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<RejectionReason>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
rejectionReason.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
rejectionReason.AddAnnotation("Relational:ColumnName", "rejection_reason");
|
||||
|
||||
var requestExpiresAt = runtimeEntityType.AddProperty(
|
||||
"RequestExpiresAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("RequestExpiresAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<RequestExpiresAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
requestExpiresAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
requestExpiresAt.AddAnnotation("Relational:ColumnName", "request_expires_at");
|
||||
|
||||
var requestId = runtimeEntityType.AddProperty(
|
||||
"RequestId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("RequestId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<RequestId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
requestId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
requestId.AddAnnotation("Relational:ColumnName", "request_id");
|
||||
|
||||
var requestedTtlDays = runtimeEntityType.AddProperty(
|
||||
"RequestedTtlDays",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("RequestedTtlDays", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<RequestedTtlDays>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
requestedTtlDays.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
requestedTtlDays.AddAnnotation("Relational:ColumnName", "requested_ttl_days");
|
||||
|
||||
var requestorId = runtimeEntityType.AddProperty(
|
||||
"RequestorId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("RequestorId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<RequestorId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
requestorId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
requestorId.AddAnnotation("Relational:ColumnName", "requestor_id");
|
||||
|
||||
var requiredApproverIds = runtimeEntityType.AddProperty(
|
||||
"RequiredApproverIds",
|
||||
typeof(string[]),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("RequiredApproverIds", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<RequiredApproverIds>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
var requiredApproverIdsElementType = requiredApproverIds.SetElementType(typeof(string));
|
||||
requiredApproverIds.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
requiredApproverIds.AddAnnotation("Relational:ColumnName", "required_approver_ids");
|
||||
|
||||
var resolvedAt = runtimeEntityType.AddProperty(
|
||||
"ResolvedAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("ResolvedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<ResolvedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
resolvedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
resolvedAt.AddAnnotation("Relational:ColumnName", "resolved_at");
|
||||
|
||||
var status = runtimeEntityType.AddProperty(
|
||||
"Status",
|
||||
typeof(ApprovalRequestStatus),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("Status", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<Status>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
providerPropertyType: typeof(string));
|
||||
status.SetSentinelFromProviderValue("Pending");
|
||||
status.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
status.AddAnnotation("Relational:ColumnName", "status");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var ticketRef = runtimeEntityType.AddProperty(
|
||||
"TicketRef",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("TicketRef", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<TicketRef>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
ticketRef.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
ticketRef.AddAnnotation("Relational:ColumnName", "ticket_ref");
|
||||
|
||||
var updatedAt = runtimeEntityType.AddProperty(
|
||||
"UpdatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("UpdatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<UpdatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
updatedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
updatedAt.AddAnnotation("Relational:ColumnName", "updated_at");
|
||||
updatedAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var version = runtimeEntityType.AddProperty(
|
||||
"Version",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("Version", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<Version>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
version.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
version.AddAnnotation("Relational:ColumnName", "version");
|
||||
|
||||
var vulnerabilityId = runtimeEntityType.AddProperty(
|
||||
"VulnerabilityId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRequestEntity).GetProperty("VulnerabilityId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRequestEntity).GetField("<VulnerabilityId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
vulnerabilityId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
vulnerabilityId.AddAnnotation("Relational:ColumnName", "vulnerability_id");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "exception_approval_requests_pkey");
|
||||
|
||||
var index = runtimeEntityType.AddIndex(
|
||||
new[] { requestId },
|
||||
unique: true);
|
||||
|
||||
var idx_approval_requests_status = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, status },
|
||||
name: "idx_approval_requests_status");
|
||||
|
||||
var idx_approval_requests_tenant = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId },
|
||||
name: "idx_approval_requests_tenant");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "exception_approval_requests");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,203 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class ExceptionApprovalRuleEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.ExceptionApprovalRuleEntity",
|
||||
typeof(ExceptionApprovalRuleEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 16,
|
||||
unnamedIndexCount: 1,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var allowSelfApproval = runtimeEntityType.AddProperty(
|
||||
"AllowSelfApproval",
|
||||
typeof(bool),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("AllowSelfApproval", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<AllowSelfApproval>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: false);
|
||||
allowSelfApproval.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
allowSelfApproval.AddAnnotation("Relational:ColumnName", "allow_self_approval");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var description = runtimeEntityType.AddProperty(
|
||||
"Description",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("Description", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<Description>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
description.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
description.AddAnnotation("Relational:ColumnName", "description");
|
||||
|
||||
var enabled = runtimeEntityType.AddProperty(
|
||||
"Enabled",
|
||||
typeof(bool),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("Enabled", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<Enabled>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: false);
|
||||
enabled.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
enabled.AddAnnotation("Relational:ColumnName", "enabled");
|
||||
|
||||
var gateLevel = runtimeEntityType.AddProperty(
|
||||
"GateLevel",
|
||||
typeof(GateLevel),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("GateLevel", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<GateLevel>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
providerPropertyType: typeof(int));
|
||||
gateLevel.SetSentinelFromProviderValue(0);
|
||||
gateLevel.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
gateLevel.AddAnnotation("Relational:ColumnName", "gate_level");
|
||||
|
||||
var maxTtlDays = runtimeEntityType.AddProperty(
|
||||
"MaxTtlDays",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("MaxTtlDays", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<MaxTtlDays>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
maxTtlDays.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
maxTtlDays.AddAnnotation("Relational:ColumnName", "max_ttl_days");
|
||||
|
||||
var minApprovers = runtimeEntityType.AddProperty(
|
||||
"MinApprovers",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("MinApprovers", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<MinApprovers>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
minApprovers.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
minApprovers.AddAnnotation("Relational:ColumnName", "min_approvers");
|
||||
|
||||
var minRationaleLength = runtimeEntityType.AddProperty(
|
||||
"MinRationaleLength",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("MinRationaleLength", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<MinRationaleLength>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
minRationaleLength.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
minRationaleLength.AddAnnotation("Relational:ColumnName", "min_rationale_length");
|
||||
|
||||
var name = runtimeEntityType.AddProperty(
|
||||
"Name",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("Name", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<Name>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
name.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
name.AddAnnotation("Relational:ColumnName", "name");
|
||||
|
||||
var priority = runtimeEntityType.AddProperty(
|
||||
"Priority",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("Priority", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<Priority>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
priority.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
priority.AddAnnotation("Relational:ColumnName", "priority");
|
||||
|
||||
var requireCompensatingControls = runtimeEntityType.AddProperty(
|
||||
"RequireCompensatingControls",
|
||||
typeof(bool),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("RequireCompensatingControls", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<RequireCompensatingControls>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: false);
|
||||
requireCompensatingControls.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
requireCompensatingControls.AddAnnotation("Relational:ColumnName", "require_compensating_controls");
|
||||
|
||||
var requireEvidence = runtimeEntityType.AddProperty(
|
||||
"RequireEvidence",
|
||||
typeof(bool),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("RequireEvidence", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<RequireEvidence>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: false);
|
||||
requireEvidence.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
requireEvidence.AddAnnotation("Relational:ColumnName", "require_evidence");
|
||||
|
||||
var requiredRoles = runtimeEntityType.AddProperty(
|
||||
"RequiredRoles",
|
||||
typeof(string[]),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("RequiredRoles", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<RequiredRoles>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
var requiredRolesElementType = requiredRoles.SetElementType(typeof(string));
|
||||
requiredRoles.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
requiredRoles.AddAnnotation("Relational:ColumnName", "required_roles");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var updatedAt = runtimeEntityType.AddProperty(
|
||||
"UpdatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(ExceptionApprovalRuleEntity).GetProperty("UpdatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionApprovalRuleEntity).GetField("<UpdatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
updatedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
updatedAt.AddAnnotation("Relational:ColumnName", "updated_at");
|
||||
updatedAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "exception_approval_rules_pkey");
|
||||
|
||||
var index = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, gateLevel, name },
|
||||
unique: true);
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "exception_approval_rules");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,242 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class ExceptionEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.ExceptionEntity",
|
||||
typeof(ExceptionEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 19,
|
||||
unnamedIndexCount: 2,
|
||||
namedIndexCount: 2,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var approvedAt = runtimeEntityType.AddProperty(
|
||||
"ApprovedAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("ApprovedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<ApprovedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
approvedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
approvedAt.AddAnnotation("Relational:ColumnName", "approved_at");
|
||||
|
||||
var approvedBy = runtimeEntityType.AddProperty(
|
||||
"ApprovedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("ApprovedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<ApprovedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
approvedBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
approvedBy.AddAnnotation("Relational:ColumnName", "approved_by");
|
||||
|
||||
var artifactPattern = runtimeEntityType.AddProperty(
|
||||
"ArtifactPattern",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("ArtifactPattern", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<ArtifactPattern>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
artifactPattern.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
artifactPattern.AddAnnotation("Relational:ColumnName", "artifact_pattern");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var createdBy = runtimeEntityType.AddProperty(
|
||||
"CreatedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("CreatedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<CreatedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
createdBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdBy.AddAnnotation("Relational:ColumnName", "created_by");
|
||||
|
||||
var description = runtimeEntityType.AddProperty(
|
||||
"Description",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("Description", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<Description>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
description.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
description.AddAnnotation("Relational:ColumnName", "description");
|
||||
|
||||
var exceptionId = runtimeEntityType.AddProperty(
|
||||
"ExceptionId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("ExceptionId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<ExceptionId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
exceptionId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
exceptionId.AddAnnotation("Relational:ColumnName", "exception_id");
|
||||
|
||||
var expiresAt = runtimeEntityType.AddProperty(
|
||||
"ExpiresAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("ExpiresAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<ExpiresAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
expiresAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
expiresAt.AddAnnotation("Relational:ColumnName", "expires_at");
|
||||
|
||||
var metadata = runtimeEntityType.AddProperty(
|
||||
"Metadata",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("Metadata", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<Metadata>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
metadata.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
metadata.AddAnnotation("Relational:ColumnName", "metadata");
|
||||
metadata.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var name = runtimeEntityType.AddProperty(
|
||||
"Name",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("Name", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<Name>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
name.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
name.AddAnnotation("Relational:ColumnName", "name");
|
||||
|
||||
var projectId = runtimeEntityType.AddProperty(
|
||||
"ProjectId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("ProjectId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<ProjectId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
projectId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
projectId.AddAnnotation("Relational:ColumnName", "project_id");
|
||||
|
||||
var reason = runtimeEntityType.AddProperty(
|
||||
"Reason",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("Reason", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<Reason>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
reason.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
reason.AddAnnotation("Relational:ColumnName", "reason");
|
||||
|
||||
var resourcePattern = runtimeEntityType.AddProperty(
|
||||
"ResourcePattern",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("ResourcePattern", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<ResourcePattern>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
resourcePattern.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
resourcePattern.AddAnnotation("Relational:ColumnName", "resource_pattern");
|
||||
|
||||
var revokedAt = runtimeEntityType.AddProperty(
|
||||
"RevokedAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("RevokedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<RevokedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
revokedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
revokedAt.AddAnnotation("Relational:ColumnName", "revoked_at");
|
||||
|
||||
var revokedBy = runtimeEntityType.AddProperty(
|
||||
"RevokedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("RevokedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<RevokedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
revokedBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
revokedBy.AddAnnotation("Relational:ColumnName", "revoked_by");
|
||||
|
||||
var rulePattern = runtimeEntityType.AddProperty(
|
||||
"RulePattern",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("RulePattern", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<RulePattern>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
rulePattern.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
rulePattern.AddAnnotation("Relational:ColumnName", "rule_pattern");
|
||||
|
||||
var status = runtimeEntityType.AddProperty(
|
||||
"Status",
|
||||
typeof(ExceptionStatus),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("Status", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<Status>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
status.SetValueConverter(new ValueConverter<ExceptionStatus, string>(
|
||||
string (ExceptionStatus v) => ((object)v).ToString().ToLowerInvariant(),
|
||||
ExceptionStatus (string v) => Enum.Parse<ExceptionStatus>(v, true)));
|
||||
status.SetSentinelFromProviderValue("active");
|
||||
status.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
status.AddAnnotation("Relational:ColumnName", "status");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExceptionEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExceptionEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "exceptions_pkey");
|
||||
|
||||
var index = runtimeEntityType.AddIndex(
|
||||
new[] { exceptionId },
|
||||
unique: true);
|
||||
|
||||
var index0 = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, name },
|
||||
unique: true);
|
||||
|
||||
var idx_exceptions_status = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, status },
|
||||
name: "idx_exceptions_status");
|
||||
|
||||
var idx_exceptions_tenant = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId },
|
||||
name: "idx_exceptions_tenant");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "exceptions");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class ExplanationEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.ExplanationEntity",
|
||||
typeof(ExplanationEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 12,
|
||||
namedIndexCount: 2,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(ExplanationEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExplanationEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(ExplanationEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExplanationEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var details = runtimeEntityType.AddProperty(
|
||||
"Details",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExplanationEntity).GetProperty("Details", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExplanationEntity).GetField("<Details>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
details.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
details.AddAnnotation("Relational:ColumnName", "details");
|
||||
details.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var evaluationRunId = runtimeEntityType.AddProperty(
|
||||
"EvaluationRunId",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(ExplanationEntity).GetProperty("EvaluationRunId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExplanationEntity).GetField("<EvaluationRunId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
evaluationRunId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
evaluationRunId.AddAnnotation("Relational:ColumnName", "evaluation_run_id");
|
||||
|
||||
var lineNumber = runtimeEntityType.AddProperty(
|
||||
"LineNumber",
|
||||
typeof(int?),
|
||||
propertyInfo: typeof(ExplanationEntity).GetProperty("LineNumber", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExplanationEntity).GetField("<LineNumber>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
lineNumber.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
lineNumber.AddAnnotation("Relational:ColumnName", "line_number");
|
||||
|
||||
var message = runtimeEntityType.AddProperty(
|
||||
"Message",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExplanationEntity).GetProperty("Message", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExplanationEntity).GetField("<Message>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
message.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
message.AddAnnotation("Relational:ColumnName", "message");
|
||||
|
||||
var remediation = runtimeEntityType.AddProperty(
|
||||
"Remediation",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExplanationEntity).GetProperty("Remediation", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExplanationEntity).GetField("<Remediation>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
remediation.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
remediation.AddAnnotation("Relational:ColumnName", "remediation");
|
||||
|
||||
var resourcePath = runtimeEntityType.AddProperty(
|
||||
"ResourcePath",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExplanationEntity).GetProperty("ResourcePath", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExplanationEntity).GetField("<ResourcePath>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
resourcePath.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
resourcePath.AddAnnotation("Relational:ColumnName", "resource_path");
|
||||
|
||||
var result = runtimeEntityType.AddProperty(
|
||||
"Result",
|
||||
typeof(RuleResult),
|
||||
propertyInfo: typeof(ExplanationEntity).GetProperty("Result", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExplanationEntity).GetField("<Result>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
result.SetValueConverter(new ValueConverter<RuleResult, string>(
|
||||
string (RuleResult v) => ((object)v).ToString().ToLowerInvariant(),
|
||||
RuleResult (string v) => Enum.Parse<RuleResult>(v, true)));
|
||||
result.SetSentinelFromProviderValue("pass");
|
||||
result.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
result.AddAnnotation("Relational:ColumnName", "result");
|
||||
|
||||
var ruleId = runtimeEntityType.AddProperty(
|
||||
"RuleId",
|
||||
typeof(Guid?),
|
||||
propertyInfo: typeof(ExplanationEntity).GetProperty("RuleId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExplanationEntity).GetField("<RuleId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
ruleId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
ruleId.AddAnnotation("Relational:ColumnName", "rule_id");
|
||||
|
||||
var ruleName = runtimeEntityType.AddProperty(
|
||||
"RuleName",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExplanationEntity).GetProperty("RuleName", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExplanationEntity).GetField("<RuleName>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
ruleName.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
ruleName.AddAnnotation("Relational:ColumnName", "rule_name");
|
||||
|
||||
var severity = runtimeEntityType.AddProperty(
|
||||
"Severity",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ExplanationEntity).GetProperty("Severity", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ExplanationEntity).GetField("<Severity>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
severity.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
severity.AddAnnotation("Relational:ColumnName", "severity");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "explanations_pkey");
|
||||
|
||||
var idx_explanations_result = runtimeEntityType.AddIndex(
|
||||
new[] { evaluationRunId, result },
|
||||
name: "idx_explanations_result");
|
||||
|
||||
var idx_explanations_run = runtimeEntityType.AddIndex(
|
||||
new[] { evaluationRunId },
|
||||
name: "idx_explanations_run");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "explanations");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,278 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class GateBypassAuditEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.GateBypassAuditEntity",
|
||||
typeof(GateBypassAuditEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 25,
|
||||
namedIndexCount: 1,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var actor = runtimeEntityType.AddProperty(
|
||||
"Actor",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("Actor", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<Actor>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
actor.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
actor.AddAnnotation("Relational:ColumnName", "actor");
|
||||
|
||||
var actorEmail = runtimeEntityType.AddProperty(
|
||||
"ActorEmail",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("ActorEmail", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<ActorEmail>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
actorEmail.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
actorEmail.AddAnnotation("Relational:ColumnName", "actor_email");
|
||||
|
||||
var actorIpAddress = runtimeEntityType.AddProperty(
|
||||
"ActorIpAddress",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("ActorIpAddress", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<ActorIpAddress>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
actorIpAddress.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
actorIpAddress.AddAnnotation("Relational:ColumnName", "actor_ip_address");
|
||||
|
||||
var actorSubject = runtimeEntityType.AddProperty(
|
||||
"ActorSubject",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("ActorSubject", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<ActorSubject>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
actorSubject.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
actorSubject.AddAnnotation("Relational:ColumnName", "actor_subject");
|
||||
|
||||
var attestationDigest = runtimeEntityType.AddProperty(
|
||||
"AttestationDigest",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("AttestationDigest", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<AttestationDigest>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
attestationDigest.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
attestationDigest.AddAnnotation("Relational:ColumnName", "attestation_digest");
|
||||
|
||||
var baselineRef = runtimeEntityType.AddProperty(
|
||||
"BaselineRef",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("BaselineRef", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<BaselineRef>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
baselineRef.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
baselineRef.AddAnnotation("Relational:ColumnName", "baseline_ref");
|
||||
|
||||
var bypassType = runtimeEntityType.AddProperty(
|
||||
"BypassType",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("BypassType", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<BypassType>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
bypassType.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
bypassType.AddAnnotation("Relational:ColumnName", "bypass_type");
|
||||
|
||||
var bypassedGates = runtimeEntityType.AddProperty(
|
||||
"BypassedGates",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("BypassedGates", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<BypassedGates>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
bypassedGates.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
bypassedGates.AddAnnotation("Relational:ColumnName", "bypassed_gates");
|
||||
bypassedGates.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var ciContext = runtimeEntityType.AddProperty(
|
||||
"CiContext",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("CiContext", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<CiContext>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
ciContext.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
ciContext.AddAnnotation("Relational:ColumnName", "ci_context");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var decisionId = runtimeEntityType.AddProperty(
|
||||
"DecisionId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("DecisionId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<DecisionId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
decisionId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
decisionId.AddAnnotation("Relational:ColumnName", "decision_id");
|
||||
|
||||
var expiresAt = runtimeEntityType.AddProperty(
|
||||
"ExpiresAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("ExpiresAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<ExpiresAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
expiresAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
expiresAt.AddAnnotation("Relational:ColumnName", "expires_at");
|
||||
|
||||
var finalDecision = runtimeEntityType.AddProperty(
|
||||
"FinalDecision",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("FinalDecision", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<FinalDecision>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
finalDecision.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
finalDecision.AddAnnotation("Relational:ColumnName", "final_decision");
|
||||
|
||||
var imageDigest = runtimeEntityType.AddProperty(
|
||||
"ImageDigest",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("ImageDigest", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<ImageDigest>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
imageDigest.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
imageDigest.AddAnnotation("Relational:ColumnName", "image_digest");
|
||||
|
||||
var justification = runtimeEntityType.AddProperty(
|
||||
"Justification",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("Justification", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<Justification>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
justification.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
justification.AddAnnotation("Relational:ColumnName", "justification");
|
||||
|
||||
var metadata = runtimeEntityType.AddProperty(
|
||||
"Metadata",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("Metadata", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<Metadata>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
metadata.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
metadata.AddAnnotation("Relational:ColumnName", "metadata");
|
||||
metadata.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var originalDecision = runtimeEntityType.AddProperty(
|
||||
"OriginalDecision",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("OriginalDecision", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<OriginalDecision>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
originalDecision.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
originalDecision.AddAnnotation("Relational:ColumnName", "original_decision");
|
||||
|
||||
var policyId = runtimeEntityType.AddProperty(
|
||||
"PolicyId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("PolicyId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<PolicyId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
policyId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
policyId.AddAnnotation("Relational:ColumnName", "policy_id");
|
||||
|
||||
var rekorUuid = runtimeEntityType.AddProperty(
|
||||
"RekorUuid",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("RekorUuid", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<RekorUuid>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
rekorUuid.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
rekorUuid.AddAnnotation("Relational:ColumnName", "rekor_uuid");
|
||||
|
||||
var repository = runtimeEntityType.AddProperty(
|
||||
"Repository",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("Repository", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<Repository>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
repository.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
repository.AddAnnotation("Relational:ColumnName", "repository");
|
||||
|
||||
var source = runtimeEntityType.AddProperty(
|
||||
"Source",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("Source", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<Source>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
source.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
source.AddAnnotation("Relational:ColumnName", "source");
|
||||
|
||||
var tag = runtimeEntityType.AddProperty(
|
||||
"Tag",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("Tag", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<Tag>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
tag.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tag.AddAnnotation("Relational:ColumnName", "tag");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var timestamp = runtimeEntityType.AddProperty(
|
||||
"Timestamp",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(GateBypassAuditEntity).GetProperty("Timestamp", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateBypassAuditEntity).GetField("<Timestamp>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
timestamp.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
timestamp.AddAnnotation("Relational:ColumnName", "timestamp");
|
||||
timestamp.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "gate_bypass_audit_pkey");
|
||||
|
||||
var idx_gate_bypass_audit_tenant_timestamp = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, timestamp },
|
||||
name: "idx_gate_bypass_audit_tenant_timestamp");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "gate_bypass_audit");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,198 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class GateDecisionEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.GateDecisionEntity",
|
||||
typeof(GateDecisionEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 15,
|
||||
namedIndexCount: 2,
|
||||
keyCount: 1);
|
||||
|
||||
var decisionId = runtimeEntityType.AddProperty(
|
||||
"DecisionId",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("DecisionId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<DecisionId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
decisionId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
decisionId.AddAnnotation("Relational:ColumnName", "decision_id");
|
||||
decisionId.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var actor = runtimeEntityType.AddProperty(
|
||||
"Actor",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("Actor", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<Actor>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
actor.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
actor.AddAnnotation("Relational:ColumnName", "actor");
|
||||
|
||||
var blockingUnknownIds = runtimeEntityType.AddProperty(
|
||||
"BlockingUnknownIds",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("BlockingUnknownIds", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<BlockingUnknownIds>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
blockingUnknownIds.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
blockingUnknownIds.AddAnnotation("Relational:ColumnName", "blocking_unknown_ids");
|
||||
blockingUnknownIds.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var bomRef = runtimeEntityType.AddProperty(
|
||||
"BomRef",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("BomRef", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<BomRef>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
bomRef.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
bomRef.AddAnnotation("Relational:ColumnName", "bom_ref");
|
||||
|
||||
var ciContext = runtimeEntityType.AddProperty(
|
||||
"CiContext",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("CiContext", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<CiContext>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
ciContext.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
ciContext.AddAnnotation("Relational:ColumnName", "ci_context");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var evaluatedAt = runtimeEntityType.AddProperty(
|
||||
"EvaluatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("EvaluatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<EvaluatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
evaluatedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
evaluatedAt.AddAnnotation("Relational:ColumnName", "evaluated_at");
|
||||
evaluatedAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var gateId = runtimeEntityType.AddProperty(
|
||||
"GateId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("GateId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<GateId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
gateId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
gateId.AddAnnotation("Relational:ColumnName", "gate_id");
|
||||
|
||||
var gateStatus = runtimeEntityType.AddProperty(
|
||||
"GateStatus",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("GateStatus", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<GateStatus>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
gateStatus.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
gateStatus.AddAnnotation("Relational:ColumnName", "gate_status");
|
||||
|
||||
var imageDigest = runtimeEntityType.AddProperty(
|
||||
"ImageDigest",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("ImageDigest", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<ImageDigest>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
imageDigest.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
imageDigest.AddAnnotation("Relational:ColumnName", "image_digest");
|
||||
|
||||
var policyBundleHash = runtimeEntityType.AddProperty(
|
||||
"PolicyBundleHash",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("PolicyBundleHash", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<PolicyBundleHash>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
policyBundleHash.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
policyBundleHash.AddAnnotation("Relational:ColumnName", "policy_bundle_hash");
|
||||
|
||||
var policyBundleId = runtimeEntityType.AddProperty(
|
||||
"PolicyBundleId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("PolicyBundleId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<PolicyBundleId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
policyBundleId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
policyBundleId.AddAnnotation("Relational:ColumnName", "policy_bundle_id");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var verdictHash = runtimeEntityType.AddProperty(
|
||||
"VerdictHash",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("VerdictHash", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<VerdictHash>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
verdictHash.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
verdictHash.AddAnnotation("Relational:ColumnName", "verdict_hash");
|
||||
|
||||
var warnings = runtimeEntityType.AddProperty(
|
||||
"Warnings",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(GateDecisionEntity).GetProperty("Warnings", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(GateDecisionEntity).GetField("<Warnings>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
warnings.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
warnings.AddAnnotation("Relational:ColumnName", "warnings");
|
||||
warnings.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { decisionId });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "gate_decisions_pkey");
|
||||
|
||||
var idx_gate_decisions_gate_evaluated = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, gateId, evaluatedAt },
|
||||
name: "idx_gate_decisions_gate_evaluated");
|
||||
|
||||
var idx_gate_decisions_tenant_evaluated = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, evaluatedAt },
|
||||
name: "idx_gate_decisions_tenant_evaluated");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "gate_decisions");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,197 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class LedgerExportEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.LedgerExportEntity",
|
||||
typeof(LedgerExportEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 15,
|
||||
namedIndexCount: 3,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var byteSize = runtimeEntityType.AddProperty(
|
||||
"ByteSize",
|
||||
typeof(long?),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("ByteSize", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<ByteSize>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
byteSize.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
byteSize.AddAnnotation("Relational:ColumnName", "byte_size");
|
||||
|
||||
var contentDigest = runtimeEntityType.AddProperty(
|
||||
"ContentDigest",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("ContentDigest", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<ContentDigest>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
contentDigest.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
contentDigest.AddAnnotation("Relational:ColumnName", "content_digest");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var createdBy = runtimeEntityType.AddProperty(
|
||||
"CreatedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("CreatedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<CreatedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
createdBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdBy.AddAnnotation("Relational:ColumnName", "created_by");
|
||||
|
||||
var endTime = runtimeEntityType.AddProperty(
|
||||
"EndTime",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("EndTime", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<EndTime>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
endTime.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
endTime.AddAnnotation("Relational:ColumnName", "end_time");
|
||||
|
||||
var errorMessage = runtimeEntityType.AddProperty(
|
||||
"ErrorMessage",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("ErrorMessage", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<ErrorMessage>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
errorMessage.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
errorMessage.AddAnnotation("Relational:ColumnName", "error_message");
|
||||
|
||||
var exportType = runtimeEntityType.AddProperty(
|
||||
"ExportType",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("ExportType", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<ExportType>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
exportType.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
exportType.AddAnnotation("Relational:ColumnName", "export_type");
|
||||
|
||||
var format = runtimeEntityType.AddProperty(
|
||||
"Format",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("Format", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<Format>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
format.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
format.AddAnnotation("Relational:ColumnName", "format");
|
||||
|
||||
var metadata = runtimeEntityType.AddProperty(
|
||||
"Metadata",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("Metadata", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<Metadata>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
metadata.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
metadata.AddAnnotation("Relational:ColumnName", "metadata");
|
||||
metadata.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var recordCount = runtimeEntityType.AddProperty(
|
||||
"RecordCount",
|
||||
typeof(int?),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("RecordCount", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<RecordCount>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
recordCount.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
recordCount.AddAnnotation("Relational:ColumnName", "record_count");
|
||||
|
||||
var startTime = runtimeEntityType.AddProperty(
|
||||
"StartTime",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("StartTime", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<StartTime>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
startTime.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
startTime.AddAnnotation("Relational:ColumnName", "start_time");
|
||||
|
||||
var status = runtimeEntityType.AddProperty(
|
||||
"Status",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("Status", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<Status>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
status.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
status.AddAnnotation("Relational:ColumnName", "status");
|
||||
|
||||
var storagePath = runtimeEntityType.AddProperty(
|
||||
"StoragePath",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("StoragePath", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<StoragePath>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
storagePath.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
storagePath.AddAnnotation("Relational:ColumnName", "storage_path");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(LedgerExportEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(LedgerExportEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "ledger_exports_pkey");
|
||||
|
||||
var idx_ledger_exports_created = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, createdAt },
|
||||
name: "idx_ledger_exports_created");
|
||||
|
||||
var idx_ledger_exports_status = runtimeEntityType.AddIndex(
|
||||
new[] { status },
|
||||
name: "idx_ledger_exports_status");
|
||||
|
||||
var idx_ledger_exports_tenant = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId },
|
||||
name: "idx_ledger_exports_tenant");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "ledger_exports");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,175 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class PackEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.PackEntity",
|
||||
typeof(PackEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 12,
|
||||
unnamedIndexCount: 1,
|
||||
namedIndexCount: 2,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(PackEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var activeVersion = runtimeEntityType.AddProperty(
|
||||
"ActiveVersion",
|
||||
typeof(int?),
|
||||
propertyInfo: typeof(PackEntity).GetProperty("ActiveVersion", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackEntity).GetField("<ActiveVersion>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
activeVersion.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
activeVersion.AddAnnotation("Relational:ColumnName", "active_version");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(PackEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var createdBy = runtimeEntityType.AddProperty(
|
||||
"CreatedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PackEntity).GetProperty("CreatedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackEntity).GetField("<CreatedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
createdBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdBy.AddAnnotation("Relational:ColumnName", "created_by");
|
||||
|
||||
var description = runtimeEntityType.AddProperty(
|
||||
"Description",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PackEntity).GetProperty("Description", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackEntity).GetField("<Description>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
description.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
description.AddAnnotation("Relational:ColumnName", "description");
|
||||
|
||||
var displayName = runtimeEntityType.AddProperty(
|
||||
"DisplayName",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PackEntity).GetProperty("DisplayName", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackEntity).GetField("<DisplayName>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
displayName.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
displayName.AddAnnotation("Relational:ColumnName", "display_name");
|
||||
|
||||
var isBuiltin = runtimeEntityType.AddProperty(
|
||||
"IsBuiltin",
|
||||
typeof(bool),
|
||||
propertyInfo: typeof(PackEntity).GetProperty("IsBuiltin", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackEntity).GetField("<IsBuiltin>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: false);
|
||||
isBuiltin.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
isBuiltin.AddAnnotation("Relational:ColumnName", "is_builtin");
|
||||
|
||||
var isDeprecated = runtimeEntityType.AddProperty(
|
||||
"IsDeprecated",
|
||||
typeof(bool),
|
||||
propertyInfo: typeof(PackEntity).GetProperty("IsDeprecated", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackEntity).GetField("<IsDeprecated>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: false);
|
||||
isDeprecated.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
isDeprecated.AddAnnotation("Relational:ColumnName", "is_deprecated");
|
||||
|
||||
var metadata = runtimeEntityType.AddProperty(
|
||||
"Metadata",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PackEntity).GetProperty("Metadata", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackEntity).GetField("<Metadata>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
metadata.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
metadata.AddAnnotation("Relational:ColumnName", "metadata");
|
||||
metadata.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var name = runtimeEntityType.AddProperty(
|
||||
"Name",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PackEntity).GetProperty("Name", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackEntity).GetField("<Name>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
name.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
name.AddAnnotation("Relational:ColumnName", "name");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PackEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var updatedAt = runtimeEntityType.AddProperty(
|
||||
"UpdatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(PackEntity).GetProperty("UpdatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackEntity).GetField("<UpdatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
updatedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
updatedAt.AddAnnotation("Relational:ColumnName", "updated_at");
|
||||
updatedAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "packs_pkey");
|
||||
|
||||
var index = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, name },
|
||||
unique: true);
|
||||
|
||||
var idx_packs_builtin = runtimeEntityType.AddIndex(
|
||||
new[] { isBuiltin },
|
||||
name: "idx_packs_builtin");
|
||||
|
||||
var idx_packs_tenant = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId },
|
||||
name: "idx_packs_tenant");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "packs");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class PackVersionEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.PackVersionEntity",
|
||||
typeof(PackVersionEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 10,
|
||||
unnamedIndexCount: 1,
|
||||
namedIndexCount: 2,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(PackVersionEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackVersionEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(PackVersionEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackVersionEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var createdBy = runtimeEntityType.AddProperty(
|
||||
"CreatedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PackVersionEntity).GetProperty("CreatedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackVersionEntity).GetField("<CreatedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
createdBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdBy.AddAnnotation("Relational:ColumnName", "created_by");
|
||||
|
||||
var description = runtimeEntityType.AddProperty(
|
||||
"Description",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PackVersionEntity).GetProperty("Description", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackVersionEntity).GetField("<Description>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
description.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
description.AddAnnotation("Relational:ColumnName", "description");
|
||||
|
||||
var isPublished = runtimeEntityType.AddProperty(
|
||||
"IsPublished",
|
||||
typeof(bool),
|
||||
propertyInfo: typeof(PackVersionEntity).GetProperty("IsPublished", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackVersionEntity).GetField("<IsPublished>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: false);
|
||||
isPublished.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
isPublished.AddAnnotation("Relational:ColumnName", "is_published");
|
||||
|
||||
var packId = runtimeEntityType.AddProperty(
|
||||
"PackId",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(PackVersionEntity).GetProperty("PackId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackVersionEntity).GetField("<PackId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
packId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
packId.AddAnnotation("Relational:ColumnName", "pack_id");
|
||||
|
||||
var publishedAt = runtimeEntityType.AddProperty(
|
||||
"PublishedAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(PackVersionEntity).GetProperty("PublishedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackVersionEntity).GetField("<PublishedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
publishedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
publishedAt.AddAnnotation("Relational:ColumnName", "published_at");
|
||||
|
||||
var publishedBy = runtimeEntityType.AddProperty(
|
||||
"PublishedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PackVersionEntity).GetProperty("PublishedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackVersionEntity).GetField("<PublishedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
publishedBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
publishedBy.AddAnnotation("Relational:ColumnName", "published_by");
|
||||
|
||||
var rulesHash = runtimeEntityType.AddProperty(
|
||||
"RulesHash",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PackVersionEntity).GetProperty("RulesHash", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackVersionEntity).GetField("<RulesHash>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
rulesHash.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
rulesHash.AddAnnotation("Relational:ColumnName", "rules_hash");
|
||||
|
||||
var version = runtimeEntityType.AddProperty(
|
||||
"Version",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(PackVersionEntity).GetProperty("Version", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PackVersionEntity).GetField("<Version>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
version.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
version.AddAnnotation("Relational:ColumnName", "version");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "pack_versions_pkey");
|
||||
|
||||
var index = runtimeEntityType.AddIndex(
|
||||
new[] { packId, version },
|
||||
unique: true);
|
||||
|
||||
var idx_pack_versions_pack = runtimeEntityType.AddIndex(
|
||||
new[] { packId },
|
||||
name: "idx_pack_versions_pack");
|
||||
|
||||
var idx_pack_versions_published = runtimeEntityType.AddIndex(
|
||||
new[] { packId, isPublished },
|
||||
name: "idx_pack_versions_published");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "pack_versions");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,226 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class PolicyAuditEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.PolicyAuditEntity",
|
||||
typeof(PolicyAuditEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 18,
|
||||
namedIndexCount: 3,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(long),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: 0L);
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
|
||||
var action = runtimeEntityType.AddProperty(
|
||||
"Action",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("Action", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<Action>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
action.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
action.AddAnnotation("Relational:ColumnName", "action");
|
||||
|
||||
var correlationId = runtimeEntityType.AddProperty(
|
||||
"CorrelationId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("CorrelationId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<CorrelationId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
correlationId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
correlationId.AddAnnotation("Relational:ColumnName", "correlation_id");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var newValue = runtimeEntityType.AddProperty(
|
||||
"NewValue",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("NewValue", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<NewValue>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
newValue.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
newValue.AddAnnotation("Relational:ColumnName", "new_value");
|
||||
newValue.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var oldValue = runtimeEntityType.AddProperty(
|
||||
"OldValue",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("OldValue", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<OldValue>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
oldValue.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
oldValue.AddAnnotation("Relational:ColumnName", "old_value");
|
||||
oldValue.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var resourceId = runtimeEntityType.AddProperty(
|
||||
"ResourceId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("ResourceId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<ResourceId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
resourceId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
resourceId.AddAnnotation("Relational:ColumnName", "resource_id");
|
||||
|
||||
var resourceType = runtimeEntityType.AddProperty(
|
||||
"ResourceType",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("ResourceType", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<ResourceType>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
resourceType.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
resourceType.AddAnnotation("Relational:ColumnName", "resource_type");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var userId = runtimeEntityType.AddProperty(
|
||||
"UserId",
|
||||
typeof(Guid?),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("UserId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<UserId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
userId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
userId.AddAnnotation("Relational:ColumnName", "user_id");
|
||||
|
||||
var vexIssuerId = runtimeEntityType.AddProperty(
|
||||
"VexIssuerId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("VexIssuerId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<VexIssuerId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
vexIssuerId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
vexIssuerId.AddAnnotation("Relational:ColumnName", "vex_issuer_id");
|
||||
|
||||
var vexIssuerName = runtimeEntityType.AddProperty(
|
||||
"VexIssuerName",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("VexIssuerName", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<VexIssuerName>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
vexIssuerName.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
vexIssuerName.AddAnnotation("Relational:ColumnName", "vex_issuer_name");
|
||||
|
||||
var vexSignatureMethod = runtimeEntityType.AddProperty(
|
||||
"VexSignatureMethod",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("VexSignatureMethod", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<VexSignatureMethod>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
vexSignatureMethod.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
vexSignatureMethod.AddAnnotation("Relational:ColumnName", "vex_signature_method");
|
||||
|
||||
var vexSignatureVerified = runtimeEntityType.AddProperty(
|
||||
"VexSignatureVerified",
|
||||
typeof(bool?),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("VexSignatureVerified", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<VexSignatureVerified>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
vexSignatureVerified.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
vexSignatureVerified.AddAnnotation("Relational:ColumnName", "vex_signature_verified");
|
||||
|
||||
var vexTrustGateReason = runtimeEntityType.AddProperty(
|
||||
"VexTrustGateReason",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("VexTrustGateReason", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<VexTrustGateReason>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
vexTrustGateReason.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
vexTrustGateReason.AddAnnotation("Relational:ColumnName", "vex_trust_gate_reason");
|
||||
|
||||
var vexTrustGateResult = runtimeEntityType.AddProperty(
|
||||
"VexTrustGateResult",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("VexTrustGateResult", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<VexTrustGateResult>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
vexTrustGateResult.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
vexTrustGateResult.AddAnnotation("Relational:ColumnName", "vex_trust_gate_result");
|
||||
|
||||
var vexTrustScore = runtimeEntityType.AddProperty(
|
||||
"VexTrustScore",
|
||||
typeof(decimal?),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("VexTrustScore", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<VexTrustScore>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
vexTrustScore.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
vexTrustScore.AddAnnotation("Relational:ColumnName", "vex_trust_score");
|
||||
|
||||
var vexTrustTier = runtimeEntityType.AddProperty(
|
||||
"VexTrustTier",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(PolicyAuditEntity).GetProperty("VexTrustTier", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(PolicyAuditEntity).GetField("<VexTrustTier>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
vexTrustTier.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
vexTrustTier.AddAnnotation("Relational:ColumnName", "vex_trust_tier");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "audit_pkey");
|
||||
|
||||
var idx_audit_created = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, createdAt },
|
||||
name: "idx_audit_created");
|
||||
|
||||
var idx_audit_resource = runtimeEntityType.AddIndex(
|
||||
new[] { resourceType, resourceId },
|
||||
name: "idx_audit_resource");
|
||||
|
||||
var idx_audit_tenant = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId },
|
||||
name: "idx_audit_tenant");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "audit");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
// <auto-generated />
|
||||
// <auto-generated />
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using StellaOps.Policy.Persistence.EfCore.CompiledModels;
|
||||
using StellaOps.Policy.Persistence.EfCore.Context;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// <auto-generated />
|
||||
// <auto-generated />
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using StellaOps.Policy.Persistence.EfCore.Context;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// <auto-generated />
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
@@ -12,16 +12,62 @@ namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
public partial class PolicyDbContextModel
|
||||
{
|
||||
private PolicyDbContextModel()
|
||||
: base(skipDetectChanges: false, modelId: new Guid("a7b2c1d0-3e4f-5a6b-8c9d-0e1f2a3b4c5d"), entityTypeCount: 20)
|
||||
: base(skipDetectChanges: false, modelId: new Guid("e6cf4405-6883-4d8c-9125-ef2fd84f1268"), entityTypeCount: 24)
|
||||
{
|
||||
}
|
||||
|
||||
partial void Initialize()
|
||||
{
|
||||
// Entity types are registered through the DbContext OnModelCreating.
|
||||
// This compiled model delegates to the runtime model builder for Policy entities.
|
||||
// When dotnet ef dbcontext optimize is run against a live schema,
|
||||
// this file will be regenerated with per-entity type registrations.
|
||||
var advisorySourceConflictEntity = AdvisorySourceConflictEntityEntityType.Create(this);
|
||||
var advisorySourceImpactEntity = AdvisorySourceImpactEntityEntityType.Create(this);
|
||||
var budgetEntryEntity = BudgetEntryEntityEntityType.Create(this);
|
||||
var budgetLedgerEntity = BudgetLedgerEntityEntityType.Create(this);
|
||||
var conflictEntity = ConflictEntityEntityType.Create(this);
|
||||
var evaluationRunEntity = EvaluationRunEntityEntityType.Create(this);
|
||||
var exceptionApprovalAuditEntity = ExceptionApprovalAuditEntityEntityType.Create(this);
|
||||
var exceptionApprovalRequestEntity = ExceptionApprovalRequestEntityEntityType.Create(this);
|
||||
var exceptionApprovalRuleEntity = ExceptionApprovalRuleEntityEntityType.Create(this);
|
||||
var exceptionEntity = ExceptionEntityEntityType.Create(this);
|
||||
var explanationEntity = ExplanationEntityEntityType.Create(this);
|
||||
var gateBypassAuditEntity = GateBypassAuditEntityEntityType.Create(this);
|
||||
var gateDecisionEntity = GateDecisionEntityEntityType.Create(this);
|
||||
var ledgerExportEntity = LedgerExportEntityEntityType.Create(this);
|
||||
var packEntity = PackEntityEntityType.Create(this);
|
||||
var packVersionEntity = PackVersionEntityEntityType.Create(this);
|
||||
var policyAuditEntity = PolicyAuditEntityEntityType.Create(this);
|
||||
var replayAuditEntity = ReplayAuditEntityEntityType.Create(this);
|
||||
var riskProfileEntity = RiskProfileEntityEntityType.Create(this);
|
||||
var ruleEntity = RuleEntityEntityType.Create(this);
|
||||
var snapshotEntity = SnapshotEntityEntityType.Create(this);
|
||||
var trustedKeyEntity = TrustedKeyEntityEntityType.Create(this);
|
||||
var violationEventEntity = ViolationEventEntityEntityType.Create(this);
|
||||
var workerResultEntity = WorkerResultEntityEntityType.Create(this);
|
||||
|
||||
AdvisorySourceConflictEntityEntityType.CreateAnnotations(advisorySourceConflictEntity);
|
||||
AdvisorySourceImpactEntityEntityType.CreateAnnotations(advisorySourceImpactEntity);
|
||||
BudgetEntryEntityEntityType.CreateAnnotations(budgetEntryEntity);
|
||||
BudgetLedgerEntityEntityType.CreateAnnotations(budgetLedgerEntity);
|
||||
ConflictEntityEntityType.CreateAnnotations(conflictEntity);
|
||||
EvaluationRunEntityEntityType.CreateAnnotations(evaluationRunEntity);
|
||||
ExceptionApprovalAuditEntityEntityType.CreateAnnotations(exceptionApprovalAuditEntity);
|
||||
ExceptionApprovalRequestEntityEntityType.CreateAnnotations(exceptionApprovalRequestEntity);
|
||||
ExceptionApprovalRuleEntityEntityType.CreateAnnotations(exceptionApprovalRuleEntity);
|
||||
ExceptionEntityEntityType.CreateAnnotations(exceptionEntity);
|
||||
ExplanationEntityEntityType.CreateAnnotations(explanationEntity);
|
||||
GateBypassAuditEntityEntityType.CreateAnnotations(gateBypassAuditEntity);
|
||||
GateDecisionEntityEntityType.CreateAnnotations(gateDecisionEntity);
|
||||
LedgerExportEntityEntityType.CreateAnnotations(ledgerExportEntity);
|
||||
PackEntityEntityType.CreateAnnotations(packEntity);
|
||||
PackVersionEntityEntityType.CreateAnnotations(packVersionEntity);
|
||||
PolicyAuditEntityEntityType.CreateAnnotations(policyAuditEntity);
|
||||
ReplayAuditEntityEntityType.CreateAnnotations(replayAuditEntity);
|
||||
RiskProfileEntityEntityType.CreateAnnotations(riskProfileEntity);
|
||||
RuleEntityEntityType.CreateAnnotations(ruleEntity);
|
||||
SnapshotEntityEntityType.CreateAnnotations(snapshotEntity);
|
||||
TrustedKeyEntityEntityType.CreateAnnotations(trustedKeyEntity);
|
||||
ViolationEventEntityEntityType.CreateAnnotations(violationEventEntity);
|
||||
WorkerResultEntityEntityType.CreateAnnotations(workerResultEntity);
|
||||
|
||||
AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
|
||||
AddAnnotation("ProductVersion", "10.0.0");
|
||||
AddAnnotation("Relational:MaxIdentifierLength", 63);
|
||||
|
||||
@@ -0,0 +1,234 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class ReplayAuditEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.ReplayAuditEntity",
|
||||
typeof(ReplayAuditEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 18,
|
||||
namedIndexCount: 2,
|
||||
keyCount: 1);
|
||||
|
||||
var replayId = runtimeEntityType.AddProperty(
|
||||
"ReplayId",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("ReplayId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<ReplayId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
replayId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
replayId.AddAnnotation("Relational:ColumnName", "replay_id");
|
||||
replayId.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var actor = runtimeEntityType.AddProperty(
|
||||
"Actor",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("Actor", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<Actor>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true,
|
||||
maxLength: 256);
|
||||
actor.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
actor.AddAnnotation("Relational:ColumnName", "actor");
|
||||
|
||||
var bomRef = runtimeEntityType.AddProperty(
|
||||
"BomRef",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("BomRef", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<BomRef>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
maxLength: 512);
|
||||
bomRef.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
bomRef.AddAnnotation("Relational:ColumnName", "bom_ref");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var durationMs = runtimeEntityType.AddProperty(
|
||||
"DurationMs",
|
||||
typeof(int?),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("DurationMs", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<DurationMs>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
durationMs.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
durationMs.AddAnnotation("Relational:ColumnName", "duration_ms");
|
||||
|
||||
var match = runtimeEntityType.AddProperty(
|
||||
"Match",
|
||||
typeof(bool),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("Match", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<Match>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: false);
|
||||
match.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
match.AddAnnotation("Relational:ColumnName", "match");
|
||||
|
||||
var mismatchReason = runtimeEntityType.AddProperty(
|
||||
"MismatchReason",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("MismatchReason", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<MismatchReason>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
mismatchReason.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
mismatchReason.AddAnnotation("Relational:ColumnName", "mismatch_reason");
|
||||
|
||||
var originalHash = runtimeEntityType.AddProperty(
|
||||
"OriginalHash",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("OriginalHash", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<OriginalHash>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true,
|
||||
maxLength: 128);
|
||||
originalHash.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
originalHash.AddAnnotation("Relational:ColumnName", "original_hash");
|
||||
|
||||
var policyBundleHash = runtimeEntityType.AddProperty(
|
||||
"PolicyBundleHash",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("PolicyBundleHash", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<PolicyBundleHash>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true,
|
||||
maxLength: 128);
|
||||
policyBundleHash.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
policyBundleHash.AddAnnotation("Relational:ColumnName", "policy_bundle_hash");
|
||||
|
||||
var policyBundleId = runtimeEntityType.AddProperty(
|
||||
"PolicyBundleId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("PolicyBundleId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<PolicyBundleId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
policyBundleId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
policyBundleId.AddAnnotation("Relational:ColumnName", "policy_bundle_id");
|
||||
|
||||
var rekorUuid = runtimeEntityType.AddProperty(
|
||||
"RekorUuid",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("RekorUuid", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<RekorUuid>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true,
|
||||
maxLength: 128);
|
||||
rekorUuid.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
rekorUuid.AddAnnotation("Relational:ColumnName", "rekor_uuid");
|
||||
|
||||
var replayedAt = runtimeEntityType.AddProperty(
|
||||
"ReplayedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("ReplayedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<ReplayedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
replayedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
replayedAt.AddAnnotation("Relational:ColumnName", "replayed_at");
|
||||
replayedAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var replayedHash = runtimeEntityType.AddProperty(
|
||||
"ReplayedHash",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("ReplayedHash", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<ReplayedHash>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true,
|
||||
maxLength: 128);
|
||||
replayedHash.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
replayedHash.AddAnnotation("Relational:ColumnName", "replayed_hash");
|
||||
|
||||
var requestContext = runtimeEntityType.AddProperty(
|
||||
"RequestContext",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("RequestContext", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<RequestContext>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
requestContext.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
requestContext.AddAnnotation("Relational:ColumnName", "request_context");
|
||||
requestContext.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var source = runtimeEntityType.AddProperty(
|
||||
"Source",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("Source", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<Source>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true,
|
||||
maxLength: 64);
|
||||
source.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
source.AddAnnotation("Relational:ColumnName", "source");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var verdictHash = runtimeEntityType.AddProperty(
|
||||
"VerdictHash",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("VerdictHash", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<VerdictHash>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
maxLength: 128);
|
||||
verdictHash.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
verdictHash.AddAnnotation("Relational:ColumnName", "verdict_hash");
|
||||
|
||||
var verifierDigest = runtimeEntityType.AddProperty(
|
||||
"VerifierDigest",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ReplayAuditEntity).GetProperty("VerifierDigest", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ReplayAuditEntity).GetField("<VerifierDigest>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true,
|
||||
maxLength: 128);
|
||||
verifierDigest.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
verifierDigest.AddAnnotation("Relational:ColumnName", "verifier_digest");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { replayId });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "replay_audit_pkey");
|
||||
|
||||
var idx_replay_audit_bom_ref = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, bomRef, replayedAt },
|
||||
name: "idx_replay_audit_bom_ref");
|
||||
|
||||
var idx_replay_audit_tenant_replayed = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, replayedAt },
|
||||
name: "idx_replay_audit_tenant_replayed");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "replay_audit");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,189 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class RiskProfileEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.RiskProfileEntity",
|
||||
typeof(RiskProfileEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 14,
|
||||
unnamedIndexCount: 1,
|
||||
namedIndexCount: 1,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(RiskProfileEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RiskProfileEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(RiskProfileEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RiskProfileEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var createdBy = runtimeEntityType.AddProperty(
|
||||
"CreatedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RiskProfileEntity).GetProperty("CreatedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RiskProfileEntity).GetField("<CreatedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
createdBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdBy.AddAnnotation("Relational:ColumnName", "created_by");
|
||||
|
||||
var description = runtimeEntityType.AddProperty(
|
||||
"Description",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RiskProfileEntity).GetProperty("Description", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RiskProfileEntity).GetField("<Description>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
description.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
description.AddAnnotation("Relational:ColumnName", "description");
|
||||
|
||||
var displayName = runtimeEntityType.AddProperty(
|
||||
"DisplayName",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RiskProfileEntity).GetProperty("DisplayName", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RiskProfileEntity).GetField("<DisplayName>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
displayName.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
displayName.AddAnnotation("Relational:ColumnName", "display_name");
|
||||
|
||||
var exemptions = runtimeEntityType.AddProperty(
|
||||
"Exemptions",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RiskProfileEntity).GetProperty("Exemptions", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RiskProfileEntity).GetField("<Exemptions>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
exemptions.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
exemptions.AddAnnotation("Relational:ColumnName", "exemptions");
|
||||
exemptions.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var isActive = runtimeEntityType.AddProperty(
|
||||
"IsActive",
|
||||
typeof(bool),
|
||||
propertyInfo: typeof(RiskProfileEntity).GetProperty("IsActive", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RiskProfileEntity).GetField("<IsActive>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: false);
|
||||
isActive.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
isActive.AddAnnotation("Relational:ColumnName", "is_active");
|
||||
|
||||
var metadata = runtimeEntityType.AddProperty(
|
||||
"Metadata",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RiskProfileEntity).GetProperty("Metadata", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RiskProfileEntity).GetField("<Metadata>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
metadata.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
metadata.AddAnnotation("Relational:ColumnName", "metadata");
|
||||
metadata.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var name = runtimeEntityType.AddProperty(
|
||||
"Name",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RiskProfileEntity).GetProperty("Name", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RiskProfileEntity).GetField("<Name>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
name.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
name.AddAnnotation("Relational:ColumnName", "name");
|
||||
|
||||
var scoringWeights = runtimeEntityType.AddProperty(
|
||||
"ScoringWeights",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RiskProfileEntity).GetProperty("ScoringWeights", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RiskProfileEntity).GetField("<ScoringWeights>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
scoringWeights.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
scoringWeights.AddAnnotation("Relational:ColumnName", "scoring_weights");
|
||||
scoringWeights.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RiskProfileEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RiskProfileEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var thresholds = runtimeEntityType.AddProperty(
|
||||
"Thresholds",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RiskProfileEntity).GetProperty("Thresholds", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RiskProfileEntity).GetField("<Thresholds>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
thresholds.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
thresholds.AddAnnotation("Relational:ColumnName", "thresholds");
|
||||
thresholds.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var updatedAt = runtimeEntityType.AddProperty(
|
||||
"UpdatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(RiskProfileEntity).GetProperty("UpdatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RiskProfileEntity).GetField("<UpdatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
updatedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
updatedAt.AddAnnotation("Relational:ColumnName", "updated_at");
|
||||
updatedAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var version = runtimeEntityType.AddProperty(
|
||||
"Version",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(RiskProfileEntity).GetProperty("Version", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RiskProfileEntity).GetField("<Version>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
version.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
version.AddAnnotation("Relational:ColumnName", "version");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "risk_profiles_pkey");
|
||||
|
||||
var index = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, name, version },
|
||||
unique: true);
|
||||
|
||||
var idx_risk_profiles_tenant = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId },
|
||||
name: "idx_risk_profiles_tenant");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "risk_profiles");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,175 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class RuleEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.RuleEntity",
|
||||
typeof(RuleEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 12,
|
||||
unnamedIndexCount: 1,
|
||||
namedIndexCount: 1,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(RuleEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RuleEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var category = runtimeEntityType.AddProperty(
|
||||
"Category",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RuleEntity).GetProperty("Category", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RuleEntity).GetField("<Category>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
category.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
category.AddAnnotation("Relational:ColumnName", "category");
|
||||
|
||||
var content = runtimeEntityType.AddProperty(
|
||||
"Content",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RuleEntity).GetProperty("Content", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RuleEntity).GetField("<Content>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
content.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
content.AddAnnotation("Relational:ColumnName", "content");
|
||||
|
||||
var contentHash = runtimeEntityType.AddProperty(
|
||||
"ContentHash",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RuleEntity).GetProperty("ContentHash", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RuleEntity).GetField("<ContentHash>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
contentHash.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
contentHash.AddAnnotation("Relational:ColumnName", "content_hash");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(RuleEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RuleEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var description = runtimeEntityType.AddProperty(
|
||||
"Description",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RuleEntity).GetProperty("Description", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RuleEntity).GetField("<Description>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
description.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
description.AddAnnotation("Relational:ColumnName", "description");
|
||||
|
||||
var metadata = runtimeEntityType.AddProperty(
|
||||
"Metadata",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RuleEntity).GetProperty("Metadata", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RuleEntity).GetField("<Metadata>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
metadata.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
metadata.AddAnnotation("Relational:ColumnName", "metadata");
|
||||
metadata.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var name = runtimeEntityType.AddProperty(
|
||||
"Name",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(RuleEntity).GetProperty("Name", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RuleEntity).GetField("<Name>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
name.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
name.AddAnnotation("Relational:ColumnName", "name");
|
||||
|
||||
var packVersionId = runtimeEntityType.AddProperty(
|
||||
"PackVersionId",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(RuleEntity).GetProperty("PackVersionId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RuleEntity).GetField("<PackVersionId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
packVersionId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
packVersionId.AddAnnotation("Relational:ColumnName", "pack_version_id");
|
||||
|
||||
var ruleType = runtimeEntityType.AddProperty(
|
||||
"RuleType",
|
||||
typeof(RuleType),
|
||||
propertyInfo: typeof(RuleEntity).GetProperty("RuleType", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RuleEntity).GetField("<RuleType>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
ruleType.SetValueConverter(new ValueConverter<RuleType, string>(
|
||||
string (RuleType v) => ((object)v).ToString().ToLowerInvariant(),
|
||||
RuleType (string v) => Enum.Parse<RuleType>(v, true)));
|
||||
ruleType.SetSentinelFromProviderValue("rego");
|
||||
ruleType.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
ruleType.AddAnnotation("Relational:ColumnName", "rule_type");
|
||||
|
||||
var severity = runtimeEntityType.AddProperty(
|
||||
"Severity",
|
||||
typeof(RuleSeverity),
|
||||
propertyInfo: typeof(RuleEntity).GetProperty("Severity", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RuleEntity).GetField("<Severity>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
severity.SetValueConverter(new ValueConverter<RuleSeverity, string>(
|
||||
string (RuleSeverity v) => ((object)v).ToString().ToLowerInvariant(),
|
||||
RuleSeverity (string v) => Enum.Parse<RuleSeverity>(v, true)));
|
||||
severity.SetSentinelFromProviderValue("critical");
|
||||
severity.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
severity.AddAnnotation("Relational:ColumnName", "severity");
|
||||
|
||||
var tags = runtimeEntityType.AddProperty(
|
||||
"Tags",
|
||||
typeof(string[]),
|
||||
propertyInfo: typeof(RuleEntity).GetProperty("Tags", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(RuleEntity).GetField("<Tags>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
var tagsElementType = tags.SetElementType(typeof(string));
|
||||
tags.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tags.AddAnnotation("Relational:ColumnName", "tags");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "rules_pkey");
|
||||
|
||||
var index = runtimeEntityType.AddIndex(
|
||||
new[] { packVersionId, name },
|
||||
unique: true);
|
||||
|
||||
var idx_rules_pack_version = runtimeEntityType.AddIndex(
|
||||
new[] { packVersionId },
|
||||
name: "idx_rules_pack_version");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "rules");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,149 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class SnapshotEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.SnapshotEntity",
|
||||
typeof(SnapshotEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 9,
|
||||
unnamedIndexCount: 1,
|
||||
namedIndexCount: 3,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(SnapshotEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(SnapshotEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var content = runtimeEntityType.AddProperty(
|
||||
"Content",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(SnapshotEntity).GetProperty("Content", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(SnapshotEntity).GetField("<Content>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
content.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
content.AddAnnotation("Relational:ColumnName", "content");
|
||||
content.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var contentDigest = runtimeEntityType.AddProperty(
|
||||
"ContentDigest",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(SnapshotEntity).GetProperty("ContentDigest", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(SnapshotEntity).GetField("<ContentDigest>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
contentDigest.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
contentDigest.AddAnnotation("Relational:ColumnName", "content_digest");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(SnapshotEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(SnapshotEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var createdBy = runtimeEntityType.AddProperty(
|
||||
"CreatedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(SnapshotEntity).GetProperty("CreatedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(SnapshotEntity).GetField("<CreatedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
createdBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdBy.AddAnnotation("Relational:ColumnName", "created_by");
|
||||
|
||||
var metadata = runtimeEntityType.AddProperty(
|
||||
"Metadata",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(SnapshotEntity).GetProperty("Metadata", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(SnapshotEntity).GetField("<Metadata>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
metadata.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
metadata.AddAnnotation("Relational:ColumnName", "metadata");
|
||||
metadata.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var policyId = runtimeEntityType.AddProperty(
|
||||
"PolicyId",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(SnapshotEntity).GetProperty("PolicyId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(SnapshotEntity).GetField("<PolicyId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
policyId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
policyId.AddAnnotation("Relational:ColumnName", "policy_id");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(SnapshotEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(SnapshotEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var version = runtimeEntityType.AddProperty(
|
||||
"Version",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(SnapshotEntity).GetProperty("Version", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(SnapshotEntity).GetField("<Version>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
version.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
version.AddAnnotation("Relational:ColumnName", "version");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "snapshots_pkey");
|
||||
|
||||
var index = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, policyId, version },
|
||||
unique: true);
|
||||
|
||||
var idx_snapshots_digest = runtimeEntityType.AddIndex(
|
||||
new[] { contentDigest },
|
||||
name: "idx_snapshots_digest");
|
||||
|
||||
var idx_snapshots_policy = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, policyId },
|
||||
name: "idx_snapshots_policy");
|
||||
|
||||
var idx_snapshots_tenant = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId },
|
||||
name: "idx_snapshots_tenant");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "snapshots");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,231 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class TrustedKeyEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.TrustedKeyEntity",
|
||||
typeof(TrustedKeyEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 18,
|
||||
unnamedIndexCount: 2,
|
||||
namedIndexCount: 1,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var algorithm = runtimeEntityType.AddProperty(
|
||||
"Algorithm",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("Algorithm", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<Algorithm>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
algorithm.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
algorithm.AddAnnotation("Relational:ColumnName", "algorithm");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var createdBy = runtimeEntityType.AddProperty(
|
||||
"CreatedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("CreatedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<CreatedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
createdBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdBy.AddAnnotation("Relational:ColumnName", "created_by");
|
||||
|
||||
var fingerprint = runtimeEntityType.AddProperty(
|
||||
"Fingerprint",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("Fingerprint", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<Fingerprint>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
fingerprint.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
fingerprint.AddAnnotation("Relational:ColumnName", "fingerprint");
|
||||
|
||||
var isActive = runtimeEntityType.AddProperty(
|
||||
"IsActive",
|
||||
typeof(bool),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("IsActive", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<IsActive>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: false);
|
||||
isActive.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
isActive.AddAnnotation("Relational:ColumnName", "is_active");
|
||||
|
||||
var issuerPattern = runtimeEntityType.AddProperty(
|
||||
"IssuerPattern",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("IssuerPattern", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<IssuerPattern>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
issuerPattern.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
issuerPattern.AddAnnotation("Relational:ColumnName", "issuer_pattern");
|
||||
|
||||
var keyId = runtimeEntityType.AddProperty(
|
||||
"KeyId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("KeyId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<KeyId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
keyId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
keyId.AddAnnotation("Relational:ColumnName", "key_id");
|
||||
|
||||
var metadata = runtimeEntityType.AddProperty(
|
||||
"Metadata",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("Metadata", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<Metadata>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
metadata.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
metadata.AddAnnotation("Relational:ColumnName", "metadata");
|
||||
metadata.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var owner = runtimeEntityType.AddProperty(
|
||||
"Owner",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("Owner", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<Owner>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
owner.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
owner.AddAnnotation("Relational:ColumnName", "owner");
|
||||
|
||||
var publicKeyPem = runtimeEntityType.AddProperty(
|
||||
"PublicKeyPem",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("PublicKeyPem", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<PublicKeyPem>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
publicKeyPem.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
publicKeyPem.AddAnnotation("Relational:ColumnName", "public_key_pem");
|
||||
|
||||
var purposes = runtimeEntityType.AddProperty(
|
||||
"Purposes",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("Purposes", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<Purposes>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
purposes.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
purposes.AddAnnotation("Relational:ColumnName", "purposes");
|
||||
purposes.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var revokedAt = runtimeEntityType.AddProperty(
|
||||
"RevokedAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("RevokedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<RevokedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
revokedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
revokedAt.AddAnnotation("Relational:ColumnName", "revoked_at");
|
||||
|
||||
var revokedReason = runtimeEntityType.AddProperty(
|
||||
"RevokedReason",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("RevokedReason", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<RevokedReason>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
revokedReason.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
revokedReason.AddAnnotation("Relational:ColumnName", "revoked_reason");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var updatedAt = runtimeEntityType.AddProperty(
|
||||
"UpdatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("UpdatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<UpdatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
updatedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
updatedAt.AddAnnotation("Relational:ColumnName", "updated_at");
|
||||
updatedAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var validFrom = runtimeEntityType.AddProperty(
|
||||
"ValidFrom",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("ValidFrom", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<ValidFrom>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
validFrom.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
validFrom.AddAnnotation("Relational:ColumnName", "valid_from");
|
||||
validFrom.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var validUntil = runtimeEntityType.AddProperty(
|
||||
"ValidUntil",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(TrustedKeyEntity).GetProperty("ValidUntil", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(TrustedKeyEntity).GetField("<ValidUntil>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
validUntil.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
validUntil.AddAnnotation("Relational:ColumnName", "valid_until");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "trusted_keys_pkey");
|
||||
|
||||
var index = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, fingerprint },
|
||||
unique: true);
|
||||
|
||||
var index0 = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, keyId },
|
||||
unique: true);
|
||||
|
||||
var idx_trusted_keys_tenant = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId },
|
||||
name: "idx_trusted_keys_tenant");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "trusted_keys");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,171 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class ViolationEventEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.ViolationEventEntity",
|
||||
typeof(ViolationEventEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 12,
|
||||
namedIndexCount: 3,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(ViolationEventEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ViolationEventEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var correlationId = runtimeEntityType.AddProperty(
|
||||
"CorrelationId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ViolationEventEntity).GetProperty("CorrelationId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ViolationEventEntity).GetField("<CorrelationId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
correlationId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
correlationId.AddAnnotation("Relational:ColumnName", "correlation_id");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(ViolationEventEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ViolationEventEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var details = runtimeEntityType.AddProperty(
|
||||
"Details",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ViolationEventEntity).GetProperty("Details", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ViolationEventEntity).GetField("<Details>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
details.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
details.AddAnnotation("Relational:ColumnName", "details");
|
||||
details.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var occurredAt = runtimeEntityType.AddProperty(
|
||||
"OccurredAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(ViolationEventEntity).GetProperty("OccurredAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ViolationEventEntity).GetField("<OccurredAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
occurredAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
occurredAt.AddAnnotation("Relational:ColumnName", "occurred_at");
|
||||
|
||||
var policyId = runtimeEntityType.AddProperty(
|
||||
"PolicyId",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(ViolationEventEntity).GetProperty("PolicyId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ViolationEventEntity).GetField("<PolicyId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
policyId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
policyId.AddAnnotation("Relational:ColumnName", "policy_id");
|
||||
|
||||
var remediation = runtimeEntityType.AddProperty(
|
||||
"Remediation",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ViolationEventEntity).GetProperty("Remediation", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ViolationEventEntity).GetField("<Remediation>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
remediation.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
remediation.AddAnnotation("Relational:ColumnName", "remediation");
|
||||
|
||||
var ruleId = runtimeEntityType.AddProperty(
|
||||
"RuleId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ViolationEventEntity).GetProperty("RuleId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ViolationEventEntity).GetField("<RuleId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
ruleId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
ruleId.AddAnnotation("Relational:ColumnName", "rule_id");
|
||||
|
||||
var severity = runtimeEntityType.AddProperty(
|
||||
"Severity",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ViolationEventEntity).GetProperty("Severity", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ViolationEventEntity).GetField("<Severity>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
severity.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
severity.AddAnnotation("Relational:ColumnName", "severity");
|
||||
|
||||
var subjectCve = runtimeEntityType.AddProperty(
|
||||
"SubjectCve",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ViolationEventEntity).GetProperty("SubjectCve", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ViolationEventEntity).GetField("<SubjectCve>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
subjectCve.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
subjectCve.AddAnnotation("Relational:ColumnName", "subject_cve");
|
||||
|
||||
var subjectPurl = runtimeEntityType.AddProperty(
|
||||
"SubjectPurl",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ViolationEventEntity).GetProperty("SubjectPurl", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ViolationEventEntity).GetField("<SubjectPurl>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
subjectPurl.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
subjectPurl.AddAnnotation("Relational:ColumnName", "subject_purl");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(ViolationEventEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(ViolationEventEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "violation_events_pkey");
|
||||
|
||||
var idx_violation_events_occurred = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, occurredAt },
|
||||
name: "idx_violation_events_occurred");
|
||||
|
||||
var idx_violation_events_policy = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, policyId },
|
||||
name: "idx_violation_events_policy");
|
||||
|
||||
var idx_violation_events_tenant = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId },
|
||||
name: "idx_violation_events_tenant");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "violation_events");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,226 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
#pragma warning disable 219, 612, 618
|
||||
#nullable disable
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.CompiledModels
|
||||
{
|
||||
[EntityFrameworkInternal]
|
||||
public partial class WorkerResultEntityEntityType
|
||||
{
|
||||
public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null)
|
||||
{
|
||||
var runtimeEntityType = model.AddEntityType(
|
||||
"StellaOps.Policy.Persistence.Postgres.Models.WorkerResultEntity",
|
||||
typeof(WorkerResultEntity),
|
||||
baseEntityType,
|
||||
propertyCount: 18,
|
||||
unnamedIndexCount: 1,
|
||||
namedIndexCount: 2,
|
||||
keyCount: 1);
|
||||
|
||||
var id = runtimeEntityType.AddProperty(
|
||||
"Id",
|
||||
typeof(Guid),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("Id", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<Id>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
afterSaveBehavior: PropertySaveBehavior.Throw,
|
||||
sentinel: new Guid("00000000-0000-0000-0000-000000000000"));
|
||||
id.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
id.AddAnnotation("Relational:ColumnName", "id");
|
||||
id.AddAnnotation("Relational:DefaultValueSql", "gen_random_uuid()");
|
||||
|
||||
var completedAt = runtimeEntityType.AddProperty(
|
||||
"CompletedAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("CompletedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<CompletedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
completedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
completedAt.AddAnnotation("Relational:ColumnName", "completed_at");
|
||||
|
||||
var createdAt = runtimeEntityType.AddProperty(
|
||||
"CreatedAt",
|
||||
typeof(DateTimeOffset),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("CreatedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<CreatedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
valueGenerated: ValueGenerated.OnAdd,
|
||||
sentinel: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)));
|
||||
createdAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdAt.AddAnnotation("Relational:ColumnName", "created_at");
|
||||
createdAt.AddAnnotation("Relational:DefaultValueSql", "now()");
|
||||
|
||||
var createdBy = runtimeEntityType.AddProperty(
|
||||
"CreatedBy",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("CreatedBy", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<CreatedBy>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
createdBy.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
createdBy.AddAnnotation("Relational:ColumnName", "created_by");
|
||||
|
||||
var errorMessage = runtimeEntityType.AddProperty(
|
||||
"ErrorMessage",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("ErrorMessage", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<ErrorMessage>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
errorMessage.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
errorMessage.AddAnnotation("Relational:ColumnName", "error_message");
|
||||
|
||||
var inputHash = runtimeEntityType.AddProperty(
|
||||
"InputHash",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("InputHash", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<InputHash>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
inputHash.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
inputHash.AddAnnotation("Relational:ColumnName", "input_hash");
|
||||
|
||||
var jobId = runtimeEntityType.AddProperty(
|
||||
"JobId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("JobId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<JobId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
jobId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
jobId.AddAnnotation("Relational:ColumnName", "job_id");
|
||||
|
||||
var jobType = runtimeEntityType.AddProperty(
|
||||
"JobType",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("JobType", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<JobType>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
jobType.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
jobType.AddAnnotation("Relational:ColumnName", "job_type");
|
||||
|
||||
var maxRetries = runtimeEntityType.AddProperty(
|
||||
"MaxRetries",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("MaxRetries", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<MaxRetries>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
maxRetries.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
maxRetries.AddAnnotation("Relational:ColumnName", "max_retries");
|
||||
|
||||
var metadata = runtimeEntityType.AddProperty(
|
||||
"Metadata",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("Metadata", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<Metadata>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
metadata.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
metadata.AddAnnotation("Relational:ColumnName", "metadata");
|
||||
metadata.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var outputHash = runtimeEntityType.AddProperty(
|
||||
"OutputHash",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("OutputHash", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<OutputHash>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
outputHash.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
outputHash.AddAnnotation("Relational:ColumnName", "output_hash");
|
||||
|
||||
var progress = runtimeEntityType.AddProperty(
|
||||
"Progress",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("Progress", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<Progress>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
progress.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
progress.AddAnnotation("Relational:ColumnName", "progress");
|
||||
|
||||
var result = runtimeEntityType.AddProperty(
|
||||
"Result",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("Result", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<Result>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
result.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
result.AddAnnotation("Relational:ColumnName", "result");
|
||||
result.AddAnnotation("Relational:ColumnType", "jsonb");
|
||||
|
||||
var retryCount = runtimeEntityType.AddProperty(
|
||||
"RetryCount",
|
||||
typeof(int),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("RetryCount", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<RetryCount>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
sentinel: 0);
|
||||
retryCount.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
retryCount.AddAnnotation("Relational:ColumnName", "retry_count");
|
||||
|
||||
var scheduledAt = runtimeEntityType.AddProperty(
|
||||
"ScheduledAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("ScheduledAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<ScheduledAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
scheduledAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
scheduledAt.AddAnnotation("Relational:ColumnName", "scheduled_at");
|
||||
|
||||
var startedAt = runtimeEntityType.AddProperty(
|
||||
"StartedAt",
|
||||
typeof(DateTimeOffset?),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("StartedAt", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<StartedAt>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
nullable: true);
|
||||
startedAt.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
startedAt.AddAnnotation("Relational:ColumnName", "started_at");
|
||||
|
||||
var status = runtimeEntityType.AddProperty(
|
||||
"Status",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("Status", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<Status>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
status.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
status.AddAnnotation("Relational:ColumnName", "status");
|
||||
|
||||
var tenantId = runtimeEntityType.AddProperty(
|
||||
"TenantId",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(WorkerResultEntity).GetProperty("TenantId", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: typeof(WorkerResultEntity).GetField("<TenantId>k__BackingField", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly));
|
||||
tenantId.AddAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.None);
|
||||
tenantId.AddAnnotation("Relational:ColumnName", "tenant_id");
|
||||
|
||||
var key = runtimeEntityType.AddKey(
|
||||
new[] { id });
|
||||
runtimeEntityType.SetPrimaryKey(key);
|
||||
key.AddAnnotation("Relational:Name", "worker_results_pkey");
|
||||
|
||||
var index = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId, jobType, jobId },
|
||||
unique: true);
|
||||
|
||||
var idx_worker_results_status = runtimeEntityType.AddIndex(
|
||||
new[] { status },
|
||||
name: "idx_worker_results_status");
|
||||
|
||||
var idx_worker_results_tenant = runtimeEntityType.AddIndex(
|
||||
new[] { tenantId },
|
||||
name: "idx_worker_results_tenant");
|
||||
|
||||
return runtimeEntityType;
|
||||
}
|
||||
|
||||
public static void CreateAnnotations(RuntimeEntityType runtimeEntityType)
|
||||
{
|
||||
runtimeEntityType.AddAnnotation("Relational:FunctionName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:Schema", "policy");
|
||||
runtimeEntityType.AddAnnotation("Relational:SqlQuery", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:TableName", "worker_results");
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewName", null);
|
||||
runtimeEntityType.AddAnnotation("Relational:ViewSchema", null);
|
||||
|
||||
Customize(runtimeEntityType);
|
||||
}
|
||||
|
||||
static partial void Customize(RuntimeEntityType runtimeEntityType);
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
|
||||
namespace StellaOps.Policy.Persistence.EfCore.Context;
|
||||
@@ -130,10 +131,10 @@ public partial class PolicyDbContext : DbContext
|
||||
entity.Property(e => e.PackVersionId).HasColumnName("pack_version_id");
|
||||
entity.Property(e => e.Name).HasColumnName("name");
|
||||
entity.Property(e => e.Description).HasColumnName("description");
|
||||
entity.Property(e => e.RuleType).HasConversion<string>().HasColumnName("rule_type");
|
||||
entity.Property(e => e.RuleType).HasConversion(new ValueConverter<RuleType, string>(v => v.ToString()!.ToLowerInvariant(), v => Enum.Parse<RuleType>(v, true))).HasColumnName("rule_type");
|
||||
entity.Property(e => e.Content).HasColumnName("content");
|
||||
entity.Property(e => e.ContentHash).HasColumnName("content_hash");
|
||||
entity.Property(e => e.Severity).HasConversion<string>().HasColumnName("severity");
|
||||
entity.Property(e => e.Severity).HasConversion(new ValueConverter<RuleSeverity, string>(v => v.ToString()!.ToLowerInvariant(), v => Enum.Parse<RuleSeverity>(v, true))).HasColumnName("severity");
|
||||
entity.Property(e => e.Category).HasColumnName("category");
|
||||
entity.Property(e => e.Tags).HasColumnName("tags");
|
||||
entity.Property(e => e.Metadata).HasColumnType("jsonb").HasColumnName("metadata");
|
||||
@@ -184,8 +185,8 @@ public partial class PolicyDbContext : DbContext
|
||||
entity.Property(e => e.PackId).HasColumnName("pack_id");
|
||||
entity.Property(e => e.PackVersion).HasColumnName("pack_version");
|
||||
entity.Property(e => e.RiskProfileId).HasColumnName("risk_profile_id");
|
||||
entity.Property(e => e.Status).HasConversion<string>().HasColumnName("status");
|
||||
entity.Property(e => e.Result).HasConversion<string>().HasColumnName("result");
|
||||
entity.Property(e => e.Status).HasConversion(new ValueConverter<EvaluationStatus, string>(v => v.ToString()!.ToLowerInvariant(), v => Enum.Parse<EvaluationStatus>(v, true))).HasColumnName("status");
|
||||
entity.Property(e => e.Result).HasConversion(new ValueConverter<EvaluationResult, string>(v => v.ToString()!.ToLowerInvariant(), v => Enum.Parse<EvaluationResult>(v, true))).HasColumnName("result");
|
||||
entity.Property(e => e.Score).HasColumnName("score");
|
||||
entity.Property(e => e.FindingsCount).HasColumnName("findings_count");
|
||||
entity.Property(e => e.CriticalCount).HasColumnName("critical_count");
|
||||
@@ -215,7 +216,7 @@ public partial class PolicyDbContext : DbContext
|
||||
entity.Property(e => e.EvaluationRunId).HasColumnName("evaluation_run_id");
|
||||
entity.Property(e => e.RuleId).HasColumnName("rule_id");
|
||||
entity.Property(e => e.RuleName).HasColumnName("rule_name");
|
||||
entity.Property(e => e.Result).HasConversion<string>().HasColumnName("result");
|
||||
entity.Property(e => e.Result).HasConversion(new ValueConverter<RuleResult, string>(v => v.ToString()!.ToLowerInvariant(), v => Enum.Parse<RuleResult>(v, true))).HasColumnName("result");
|
||||
entity.Property(e => e.Severity).HasColumnName("severity");
|
||||
entity.Property(e => e.Message).HasColumnName("message");
|
||||
entity.Property(e => e.Details).HasColumnType("jsonb").HasColumnName("details");
|
||||
@@ -376,7 +377,7 @@ public partial class PolicyDbContext : DbContext
|
||||
entity.Property(e => e.ArtifactPattern).HasColumnName("artifact_pattern");
|
||||
entity.Property(e => e.ProjectId).HasColumnName("project_id");
|
||||
entity.Property(e => e.Reason).HasColumnName("reason");
|
||||
entity.Property(e => e.Status).HasConversion<string>().HasColumnName("status");
|
||||
entity.Property(e => e.Status).HasConversion(new ValueConverter<ExceptionStatus, string>(v => v.ToString()!.ToLowerInvariant(), v => Enum.Parse<ExceptionStatus>(v, true))).HasColumnName("status");
|
||||
entity.Property(e => e.ExpiresAt).HasColumnName("expires_at");
|
||||
entity.Property(e => e.ApprovedBy).HasColumnName("approved_by");
|
||||
entity.Property(e => e.ApprovedAt).HasColumnName("approved_at");
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
-- Policy Schema Migration 006: Add VEX trust columns to audit table
|
||||
-- Sprint: DAL consolidation — EF Core entity-schema alignment
|
||||
-- Description: Adds VEX trust scoring and issuer columns to the audit table
|
||||
-- to match the PolicyAuditEntity model.
|
||||
|
||||
ALTER TABLE policy.audit ADD COLUMN IF NOT EXISTS vex_trust_score NUMERIC;
|
||||
ALTER TABLE policy.audit ADD COLUMN IF NOT EXISTS vex_trust_tier TEXT;
|
||||
ALTER TABLE policy.audit ADD COLUMN IF NOT EXISTS vex_signature_verified BOOLEAN;
|
||||
ALTER TABLE policy.audit ADD COLUMN IF NOT EXISTS vex_issuer_id TEXT;
|
||||
ALTER TABLE policy.audit ADD COLUMN IF NOT EXISTS vex_issuer_name TEXT;
|
||||
ALTER TABLE policy.audit ADD COLUMN IF NOT EXISTS vex_trust_gate_result TEXT;
|
||||
ALTER TABLE policy.audit ADD COLUMN IF NOT EXISTS vex_trust_gate_reason TEXT;
|
||||
ALTER TABLE policy.audit ADD COLUMN IF NOT EXISTS vex_signature_method TEXT;
|
||||
@@ -21,7 +21,6 @@ internal static class PolicyDbContextFactory
|
||||
var optionsBuilder = new DbContextOptionsBuilder<PolicyDbContext>()
|
||||
.UseNpgsql(connection, npgsql => npgsql.CommandTimeout(commandTimeoutSeconds));
|
||||
|
||||
// Use the static compiled model only when schema matches the default.
|
||||
if (string.Equals(normalizedSchema, PolicyDataSource.DefaultSchemaName, StringComparison.Ordinal))
|
||||
{
|
||||
optionsBuilder.UseModel(PolicyDbContextModel.Instance);
|
||||
|
||||
@@ -13,12 +13,15 @@ namespace StellaOps.Policy.Persistence.Postgres.Repositories;
|
||||
/// </summary>
|
||||
public sealed class ConflictRepository : RepositoryBase<PolicyDataSource>, IConflictRepository
|
||||
{
|
||||
private readonly TimeProvider _timeProvider;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new conflict repository.
|
||||
/// </summary>
|
||||
public ConflictRepository(PolicyDataSource dataSource, ILogger<ConflictRepository> logger)
|
||||
public ConflictRepository(PolicyDataSource dataSource, ILogger<ConflictRepository> logger, TimeProvider? timeProvider = null)
|
||||
: base(dataSource, logger)
|
||||
{
|
||||
_timeProvider = timeProvider ?? TimeProvider.System;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -118,13 +121,15 @@ public sealed class ConflictRepository : RepositoryBase<PolicyDataSource>, IConf
|
||||
string resolvedBy,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: conditional update WHERE status = 'open' with NOW()
|
||||
// Keep raw SQL for conditional update WHERE status = 'open'
|
||||
const string sql = """
|
||||
UPDATE policy.conflicts
|
||||
SET status = 'resolved', resolution = @resolution, resolved_by = @resolved_by, resolved_at = NOW()
|
||||
SET status = 'resolved', resolution = @resolution, resolved_by = @resolved_by, resolved_at = @now
|
||||
WHERE tenant_id = @tenant_id AND id = @id AND status = 'open'
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
var rows = await ExecuteAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
@@ -134,6 +139,7 @@ public sealed class ConflictRepository : RepositoryBase<PolicyDataSource>, IConf
|
||||
AddParameter(cmd, "id", id);
|
||||
AddParameter(cmd, "resolution", resolution);
|
||||
AddParameter(cmd, "resolved_by", resolvedBy);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
|
||||
@@ -147,13 +153,15 @@ public sealed class ConflictRepository : RepositoryBase<PolicyDataSource>, IConf
|
||||
string dismissedBy,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: conditional update WHERE status = 'open' with NOW()
|
||||
// Keep raw SQL for conditional update WHERE status = 'open'
|
||||
const string sql = """
|
||||
UPDATE policy.conflicts
|
||||
SET status = 'dismissed', resolved_by = @dismissed_by, resolved_at = NOW()
|
||||
SET status = 'dismissed', resolved_by = @dismissed_by, resolved_at = @now
|
||||
WHERE tenant_id = @tenant_id AND id = @id AND status = 'open'
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
var rows = await ExecuteAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
@@ -162,6 +170,7 @@ public sealed class ConflictRepository : RepositoryBase<PolicyDataSource>, IConf
|
||||
AddParameter(cmd, "tenant_id", tenantId);
|
||||
AddParameter(cmd, "id", id);
|
||||
AddParameter(cmd, "dismissed_by", dismissedBy);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
|
||||
|
||||
@@ -13,12 +13,15 @@ namespace StellaOps.Policy.Persistence.Postgres.Repositories;
|
||||
/// </summary>
|
||||
public sealed class EvaluationRunRepository : RepositoryBase<PolicyDataSource>, IEvaluationRunRepository
|
||||
{
|
||||
private readonly TimeProvider _timeProvider;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new evaluation run repository.
|
||||
/// </summary>
|
||||
public EvaluationRunRepository(PolicyDataSource dataSource, ILogger<EvaluationRunRepository> logger)
|
||||
public EvaluationRunRepository(PolicyDataSource dataSource, ILogger<EvaluationRunRepository> logger, TimeProvider? timeProvider = null)
|
||||
: base(dataSource, logger)
|
||||
{
|
||||
_timeProvider = timeProvider ?? TimeProvider.System;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -131,14 +134,16 @@ public sealed class EvaluationRunRepository : RepositoryBase<PolicyDataSource>,
|
||||
/// <inheritdoc />
|
||||
public async Task<bool> MarkStartedAsync(string tenantId, Guid id, CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: conditional status transition WHERE status = 'pending' with NOW()
|
||||
// Keep raw SQL for conditional status transition WHERE status = 'pending'
|
||||
const string sql = """
|
||||
UPDATE policy.evaluation_runs
|
||||
SET status = 'running',
|
||||
started_at = NOW()
|
||||
started_at = @now
|
||||
WHERE tenant_id = @tenant_id AND id = @id AND status = 'pending'
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
var rows = await ExecuteAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
@@ -146,6 +151,7 @@ public sealed class EvaluationRunRepository : RepositoryBase<PolicyDataSource>,
|
||||
{
|
||||
AddParameter(cmd, "tenant_id", tenantId);
|
||||
AddParameter(cmd, "id", id);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
|
||||
@@ -166,7 +172,7 @@ public sealed class EvaluationRunRepository : RepositoryBase<PolicyDataSource>,
|
||||
int durationMs,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: conditional status transition WHERE status = 'running' with NOW() and multi-column update
|
||||
// Keep raw SQL for conditional status transition WHERE status = 'running' and multi-column update
|
||||
const string sql = """
|
||||
UPDATE policy.evaluation_runs
|
||||
SET status = 'completed',
|
||||
@@ -178,10 +184,12 @@ public sealed class EvaluationRunRepository : RepositoryBase<PolicyDataSource>,
|
||||
medium_count = @medium_count,
|
||||
low_count = @low_count,
|
||||
duration_ms = @duration_ms,
|
||||
completed_at = NOW()
|
||||
completed_at = @now
|
||||
WHERE tenant_id = @tenant_id AND id = @id AND status = 'running'
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
var rows = await ExecuteAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
@@ -197,6 +205,7 @@ public sealed class EvaluationRunRepository : RepositoryBase<PolicyDataSource>,
|
||||
AddParameter(cmd, "medium_count", mediumCount);
|
||||
AddParameter(cmd, "low_count", lowCount);
|
||||
AddParameter(cmd, "duration_ms", durationMs);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
|
||||
@@ -210,16 +219,18 @@ public sealed class EvaluationRunRepository : RepositoryBase<PolicyDataSource>,
|
||||
string errorMessage,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: conditional status transition WHERE status IN ('pending', 'running')
|
||||
// Keep raw SQL for conditional status transition WHERE status IN ('pending', 'running')
|
||||
const string sql = """
|
||||
UPDATE policy.evaluation_runs
|
||||
SET status = 'failed',
|
||||
result = 'error',
|
||||
error_message = @error_message,
|
||||
completed_at = NOW()
|
||||
completed_at = @now
|
||||
WHERE tenant_id = @tenant_id AND id = @id AND status IN ('pending', 'running')
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
var rows = await ExecuteAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
@@ -228,6 +239,7 @@ public sealed class EvaluationRunRepository : RepositoryBase<PolicyDataSource>,
|
||||
AddParameter(cmd, "tenant_id", tenantId);
|
||||
AddParameter(cmd, "id", id);
|
||||
AddParameter(cmd, "error_message", errorMessage);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
|
||||
|
||||
@@ -13,12 +13,15 @@ namespace StellaOps.Policy.Persistence.Postgres.Repositories;
|
||||
/// </summary>
|
||||
public sealed class ExceptionRepository : RepositoryBase<PolicyDataSource>, IExceptionRepository
|
||||
{
|
||||
private readonly TimeProvider _timeProvider;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new exception repository.
|
||||
/// </summary>
|
||||
public ExceptionRepository(PolicyDataSource dataSource, ILogger<ExceptionRepository> logger)
|
||||
public ExceptionRepository(PolicyDataSource dataSource, ILogger<ExceptionRepository> logger, TimeProvider? timeProvider = null)
|
||||
: base(dataSource, logger)
|
||||
{
|
||||
_timeProvider = timeProvider ?? TimeProvider.System;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -114,11 +117,13 @@ public sealed class ExceptionRepository : RepositoryBase<PolicyDataSource>, IExc
|
||||
SELECT * FROM policy.exceptions
|
||||
WHERE tenant_id = @tenant_id
|
||||
AND status = 'active'
|
||||
AND (expires_at IS NULL OR expires_at > NOW())
|
||||
AND (expires_at IS NULL OR expires_at > @now)
|
||||
AND (project_id IS NULL OR project_id = @project_id)
|
||||
ORDER BY name, id
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
return await QueryAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
@@ -126,6 +131,7 @@ public sealed class ExceptionRepository : RepositoryBase<PolicyDataSource>, IExc
|
||||
{
|
||||
AddParameter(cmd, "tenant_id", tenantId);
|
||||
AddParameter(cmd, "project_id", projectId);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
MapException,
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
@@ -141,11 +147,13 @@ public sealed class ExceptionRepository : RepositoryBase<PolicyDataSource>, IExc
|
||||
SELECT * FROM policy.exceptions
|
||||
WHERE tenant_id = @tenant_id
|
||||
AND status = 'active'
|
||||
AND (expires_at IS NULL OR expires_at > NOW())
|
||||
AND (expires_at IS NULL OR expires_at > @now)
|
||||
AND (rule_pattern IS NULL OR @rule_name ~ rule_pattern)
|
||||
ORDER BY name, id
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
return await QueryAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
@@ -153,6 +161,7 @@ public sealed class ExceptionRepository : RepositoryBase<PolicyDataSource>, IExc
|
||||
{
|
||||
AddParameter(cmd, "tenant_id", tenantId);
|
||||
AddParameter(cmd, "rule_name", ruleName);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
MapException,
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
@@ -203,10 +212,12 @@ public sealed class ExceptionRepository : RepositoryBase<PolicyDataSource>, IExc
|
||||
const string sql = """
|
||||
UPDATE policy.exceptions
|
||||
SET approved_by = @approved_by,
|
||||
approved_at = NOW()
|
||||
approved_at = @now
|
||||
WHERE tenant_id = @tenant_id AND id = @id AND status = 'active'
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
var rows = await ExecuteAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
@@ -215,6 +226,7 @@ public sealed class ExceptionRepository : RepositoryBase<PolicyDataSource>, IExc
|
||||
AddParameter(cmd, "tenant_id", tenantId);
|
||||
AddParameter(cmd, "id", id);
|
||||
AddParameter(cmd, "approved_by", approvedBy);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
|
||||
@@ -228,10 +240,12 @@ public sealed class ExceptionRepository : RepositoryBase<PolicyDataSource>, IExc
|
||||
UPDATE policy.exceptions
|
||||
SET status = 'revoked',
|
||||
revoked_by = @revoked_by,
|
||||
revoked_at = NOW()
|
||||
revoked_at = @now
|
||||
WHERE tenant_id = @tenant_id AND id = @id AND status = 'active'
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
var rows = await ExecuteAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
@@ -240,6 +254,7 @@ public sealed class ExceptionRepository : RepositoryBase<PolicyDataSource>, IExc
|
||||
AddParameter(cmd, "tenant_id", tenantId);
|
||||
AddParameter(cmd, "id", id);
|
||||
AddParameter(cmd, "revoked_by", revokedBy);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
|
||||
@@ -255,13 +270,19 @@ public sealed class ExceptionRepository : RepositoryBase<PolicyDataSource>, IExc
|
||||
WHERE tenant_id = @tenant_id
|
||||
AND status = 'active'
|
||||
AND expires_at IS NOT NULL
|
||||
AND expires_at <= NOW()
|
||||
AND expires_at <= @now
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
return await ExecuteAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
cmd => AddParameter(cmd, "tenant_id", tenantId),
|
||||
cmd =>
|
||||
{
|
||||
AddParameter(cmd, "tenant_id", tenantId);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,12 +13,15 @@ namespace StellaOps.Policy.Persistence.Postgres.Repositories;
|
||||
/// </summary>
|
||||
public sealed class LedgerExportRepository : RepositoryBase<PolicyDataSource>, ILedgerExportRepository
|
||||
{
|
||||
private readonly TimeProvider _timeProvider;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new ledger export repository.
|
||||
/// </summary>
|
||||
public LedgerExportRepository(PolicyDataSource dataSource, ILogger<LedgerExportRepository> logger)
|
||||
public LedgerExportRepository(PolicyDataSource dataSource, ILogger<LedgerExportRepository> logger, TimeProvider? timeProvider = null)
|
||||
: base(dataSource, logger)
|
||||
{
|
||||
_timeProvider = timeProvider ?? TimeProvider.System;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -94,14 +97,16 @@ public sealed class LedgerExportRepository : RepositoryBase<PolicyDataSource>, I
|
||||
string? errorMessage = null,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: CASE conditional update for start_time cannot be expressed in EF Core
|
||||
// Keep raw SQL for CASE conditional update for start_time
|
||||
const string sql = """
|
||||
UPDATE policy.ledger_exports
|
||||
SET status = @status, error_message = @error_message,
|
||||
start_time = CASE WHEN @status = 'running' AND start_time IS NULL THEN NOW() ELSE start_time END
|
||||
start_time = CASE WHEN @status = 'running' AND start_time IS NULL THEN @now ELSE start_time END
|
||||
WHERE tenant_id = @tenant_id AND id = @id
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
var rows = await ExecuteAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
@@ -111,6 +116,7 @@ public sealed class LedgerExportRepository : RepositoryBase<PolicyDataSource>, I
|
||||
AddParameter(cmd, "id", id);
|
||||
AddParameter(cmd, "status", status);
|
||||
AddParameter(cmd, "error_message", errorMessage as object ?? DBNull.Value);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
|
||||
@@ -127,7 +133,7 @@ public sealed class LedgerExportRepository : RepositoryBase<PolicyDataSource>, I
|
||||
string? storagePath,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: multi-column update with NOW()
|
||||
// Keep raw SQL for multi-column update
|
||||
const string sql = """
|
||||
UPDATE policy.ledger_exports
|
||||
SET status = 'completed',
|
||||
@@ -135,10 +141,12 @@ public sealed class LedgerExportRepository : RepositoryBase<PolicyDataSource>, I
|
||||
record_count = @record_count,
|
||||
byte_size = @byte_size,
|
||||
storage_path = @storage_path,
|
||||
end_time = NOW()
|
||||
end_time = @now
|
||||
WHERE tenant_id = @tenant_id AND id = @id
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
var rows = await ExecuteAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
@@ -150,6 +158,7 @@ public sealed class LedgerExportRepository : RepositoryBase<PolicyDataSource>, I
|
||||
AddParameter(cmd, "record_count", recordCount);
|
||||
AddParameter(cmd, "byte_size", byteSize);
|
||||
AddParameter(cmd, "storage_path", storagePath as object ?? DBNull.Value);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
|
||||
|
||||
@@ -13,12 +13,15 @@ namespace StellaOps.Policy.Persistence.Postgres.Repositories;
|
||||
/// </summary>
|
||||
public sealed class PackVersionRepository : RepositoryBase<PolicyDataSource>, IPackVersionRepository
|
||||
{
|
||||
private readonly TimeProvider _timeProvider;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new pack version repository.
|
||||
/// </summary>
|
||||
public PackVersionRepository(PolicyDataSource dataSource, ILogger<PackVersionRepository> logger)
|
||||
public PackVersionRepository(PolicyDataSource dataSource, ILogger<PackVersionRepository> logger, TimeProvider? timeProvider = null)
|
||||
: base(dataSource, logger)
|
||||
{
|
||||
_timeProvider = timeProvider ?? TimeProvider.System;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -104,21 +107,24 @@ public sealed class PackVersionRepository : RepositoryBase<PolicyDataSource>, IP
|
||||
/// <inheritdoc />
|
||||
public async Task<bool> PublishAsync(Guid id, string? publishedBy, CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: conditional update WHERE is_published = FALSE with NOW()
|
||||
// Keep raw SQL for conditional update WHERE is_published = FALSE
|
||||
const string sql = """
|
||||
UPDATE policy.pack_versions
|
||||
SET is_published = TRUE,
|
||||
published_at = NOW(),
|
||||
published_at = @now,
|
||||
published_by = @published_by
|
||||
WHERE id = @id AND is_published = FALSE
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
await using var connection = await DataSource.OpenSystemConnectionAsync(cancellationToken)
|
||||
.ConfigureAwait(false);
|
||||
await using var command = CreateCommand(sql, connection);
|
||||
|
||||
AddParameter(command, "id", id);
|
||||
AddParameter(command, "published_by", publishedBy);
|
||||
AddParameter(command, "now", now);
|
||||
|
||||
var rows = await command.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false);
|
||||
return rows > 0;
|
||||
|
||||
@@ -18,12 +18,15 @@ namespace StellaOps.Policy.Persistence.Postgres.Repositories;
|
||||
/// </summary>
|
||||
public sealed class PostgresBudgetStore : RepositoryBase<PolicyDataSource>, IBudgetStore
|
||||
{
|
||||
private readonly TimeProvider _timeProvider;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new PostgreSQL budget store.
|
||||
/// </summary>
|
||||
public PostgresBudgetStore(PolicyDataSource dataSource, ILogger<PostgresBudgetStore> logger)
|
||||
public PostgresBudgetStore(PolicyDataSource dataSource, ILogger<PostgresBudgetStore> logger, TimeProvider? timeProvider = null)
|
||||
: base(dataSource, logger)
|
||||
{
|
||||
_timeProvider = timeProvider ?? TimeProvider.System;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -276,8 +279,8 @@ public sealed class PostgresBudgetStore : RepositoryBase<PolicyDataSource>, IBud
|
||||
allocated, -- Same allocation as previous window
|
||||
0, -- Reset consumed to 0
|
||||
'green', -- Reset status to green
|
||||
NOW(),
|
||||
NOW()
|
||||
@now,
|
||||
@now
|
||||
FROM policy.budget_ledger
|
||||
WHERE window = (
|
||||
SELECT MAX(window) FROM policy.budget_ledger WHERE window < @new_window
|
||||
@@ -285,10 +288,16 @@ public sealed class PostgresBudgetStore : RepositoryBase<PolicyDataSource>, IBud
|
||||
ON CONFLICT (service_id, window) DO NOTHING
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
return await ExecuteAsync(
|
||||
null!,
|
||||
sql,
|
||||
cmd => AddParameter(cmd, "new_window", newWindow),
|
||||
cmd =>
|
||||
{
|
||||
AddParameter(cmd, "new_window", newWindow);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
ct).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
|
||||
@@ -321,10 +321,12 @@ public sealed class PostgresExceptionObjectRepository : RepositoryBase<PolicyDat
|
||||
? $"AND ({string.Join(" AND ", conditions)})"
|
||||
: "";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
var sql = $"""
|
||||
SELECT * FROM policy.exceptions
|
||||
WHERE status = 'active'
|
||||
AND expires_at > NOW()
|
||||
AND expires_at > @now
|
||||
{scopeCondition}
|
||||
ORDER BY created_at DESC, exception_id
|
||||
""";
|
||||
@@ -338,6 +340,7 @@ public sealed class PostgresExceptionObjectRepository : RepositoryBase<PolicyDat
|
||||
{
|
||||
AddParameter(cmd, name, value);
|
||||
}
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
MapException,
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
@@ -351,15 +354,21 @@ public sealed class PostgresExceptionObjectRepository : RepositoryBase<PolicyDat
|
||||
const string sql = """
|
||||
SELECT * FROM policy.exceptions
|
||||
WHERE status = 'active'
|
||||
AND expires_at > NOW()
|
||||
AND expires_at <= NOW() + @horizon
|
||||
AND expires_at > @now
|
||||
AND expires_at <= @now + @horizon
|
||||
ORDER BY expires_at ASC, exception_id
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
return await QueryAsync(
|
||||
"default",
|
||||
sql,
|
||||
cmd => AddParameter(cmd, "horizon", horizon),
|
||||
cmd =>
|
||||
{
|
||||
AddParameter(cmd, "now", now);
|
||||
AddParameter(cmd, "horizon", horizon);
|
||||
},
|
||||
MapException,
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
@@ -371,14 +380,16 @@ public sealed class PostgresExceptionObjectRepository : RepositoryBase<PolicyDat
|
||||
const string sql = """
|
||||
SELECT * FROM policy.exceptions
|
||||
WHERE status = 'active'
|
||||
AND expires_at <= NOW()
|
||||
AND expires_at <= @now
|
||||
ORDER BY expires_at ASC, exception_id
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
return await QueryAsync(
|
||||
"default",
|
||||
sql,
|
||||
null,
|
||||
cmd => AddParameter(cmd, "now", now),
|
||||
MapException,
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
@@ -425,15 +436,18 @@ public sealed class PostgresExceptionObjectRepository : RepositoryBase<PolicyDat
|
||||
COUNT(*) FILTER (WHERE status = 'active') AS active,
|
||||
COUNT(*) FILTER (WHERE status = 'expired') AS expired,
|
||||
COUNT(*) FILTER (WHERE status = 'revoked') AS revoked,
|
||||
COUNT(*) FILTER (WHERE status = 'active' AND expires_at <= NOW() + INTERVAL '7 days') AS expiring_soon
|
||||
COUNT(*) FILTER (WHERE status = 'active' AND expires_at <= @now + INTERVAL '7 days') AS expiring_soon
|
||||
FROM policy.exceptions
|
||||
{tenantCondition}
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
await using var connection = await DataSource.OpenConnectionAsync(
|
||||
tenantId?.ToString() ?? "default", "reader", cancellationToken).ConfigureAwait(false);
|
||||
await using var command = CreateCommand(sql, connection);
|
||||
|
||||
AddParameter(command, "now", now);
|
||||
if (tenantId.HasValue)
|
||||
{
|
||||
AddParameter(command, "tenant_id", tenantId.Value);
|
||||
|
||||
@@ -23,8 +23,13 @@ namespace StellaOps.Policy.Persistence.Postgres.Repositories;
|
||||
/// </summary>
|
||||
public sealed class TrustedKeyRepository : RepositoryBase<PolicyDataSource>, ITrustedKeyRepository
|
||||
{
|
||||
public TrustedKeyRepository(PolicyDataSource dataSource, ILogger<TrustedKeyRepository> logger)
|
||||
: base(dataSource, logger) { }
|
||||
private readonly TimeProvider _timeProvider;
|
||||
|
||||
public TrustedKeyRepository(PolicyDataSource dataSource, ILogger<TrustedKeyRepository> logger, TimeProvider? timeProvider = null)
|
||||
: base(dataSource, logger)
|
||||
{
|
||||
_timeProvider = timeProvider ?? TimeProvider.System;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<TrustedKeyEntity?> GetByKeyIdAsync(
|
||||
@@ -73,16 +78,19 @@ public sealed class TrustedKeyRepository : RepositoryBase<PolicyDataSource>, ITr
|
||||
WHERE tenant_id = @tenant_id
|
||||
AND is_active = true
|
||||
AND revoked_at IS NULL
|
||||
AND (valid_until IS NULL OR valid_until > NOW())
|
||||
AND (valid_until IS NULL OR valid_until > @now)
|
||||
AND issuer_pattern IS NOT NULL
|
||||
AND @issuer LIKE REPLACE(REPLACE(issuer_pattern, '*', '%'), '?', '_')
|
||||
ORDER BY valid_from DESC
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
return await QueryAsync(tenantId, sql, cmd =>
|
||||
{
|
||||
AddParameter(cmd, "tenant_id", tenantId);
|
||||
AddParameter(cmd, "issuer", issuer);
|
||||
AddParameter(cmd, "now", now);
|
||||
}, MapEntity, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@@ -93,7 +101,7 @@ public sealed class TrustedKeyRepository : RepositoryBase<PolicyDataSource>, ITr
|
||||
int offset = 0,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: OR valid_until > NOW() with NULL check cannot be cleanly translated by EF Core
|
||||
// Keep raw SQL: OR valid_until > @now with NULL check cannot be cleanly translated by EF Core
|
||||
const string sql = """
|
||||
SELECT id, tenant_id, key_id, fingerprint, algorithm, public_key_pem, owner,
|
||||
issuer_pattern, purposes, valid_from, valid_until, is_active,
|
||||
@@ -102,16 +110,19 @@ public sealed class TrustedKeyRepository : RepositoryBase<PolicyDataSource>, ITr
|
||||
WHERE tenant_id = @tenant_id
|
||||
AND is_active = true
|
||||
AND revoked_at IS NULL
|
||||
AND (valid_until IS NULL OR valid_until > NOW())
|
||||
AND (valid_until IS NULL OR valid_until > @now)
|
||||
ORDER BY created_at DESC
|
||||
LIMIT @limit OFFSET @offset
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
return await QueryAsync(tenantId, sql, cmd =>
|
||||
{
|
||||
AddParameter(cmd, "tenant_id", tenantId);
|
||||
AddParameter(cmd, "limit", limit);
|
||||
AddParameter(cmd, "offset", offset);
|
||||
AddParameter(cmd, "now", now);
|
||||
}, MapEntity, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@@ -130,15 +141,18 @@ public sealed class TrustedKeyRepository : RepositoryBase<PolicyDataSource>, ITr
|
||||
WHERE tenant_id = @tenant_id
|
||||
AND is_active = true
|
||||
AND revoked_at IS NULL
|
||||
AND (valid_until IS NULL OR valid_until > NOW())
|
||||
AND (valid_until IS NULL OR valid_until > @now)
|
||||
AND purposes @> @purpose::jsonb
|
||||
ORDER BY created_at DESC
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
return await QueryAsync(tenantId, sql, cmd =>
|
||||
{
|
||||
AddParameter(cmd, "tenant_id", tenantId);
|
||||
AddJsonbParameter(cmd, "purpose", JsonSerializer.Serialize(new[] { purpose }));
|
||||
AddParameter(cmd, "now", now);
|
||||
}, MapEntity, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@@ -162,7 +176,7 @@ public sealed class TrustedKeyRepository : RepositoryBase<PolicyDataSource>, ITr
|
||||
TrustedKeyEntity key,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: targeted column update with NOW() for updated_at
|
||||
// Keep raw SQL for targeted column update
|
||||
const string sql = """
|
||||
UPDATE policy.trusted_keys
|
||||
SET public_key_pem = @public_key_pem,
|
||||
@@ -172,10 +186,12 @@ public sealed class TrustedKeyRepository : RepositoryBase<PolicyDataSource>, ITr
|
||||
valid_until = @valid_until,
|
||||
is_active = @is_active,
|
||||
metadata = @metadata::jsonb,
|
||||
updated_at = NOW()
|
||||
updated_at = @now
|
||||
WHERE tenant_id = @tenant_id AND key_id = @key_id
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
await using var connection = await DataSource.OpenConnectionAsync(key.TenantId, "writer", cancellationToken)
|
||||
.ConfigureAwait(false);
|
||||
await using var command = CreateCommand(sql, connection);
|
||||
@@ -189,6 +205,7 @@ public sealed class TrustedKeyRepository : RepositoryBase<PolicyDataSource>, ITr
|
||||
AddParameter(command, "valid_until", key.ValidUntil);
|
||||
AddParameter(command, "is_active", key.IsActive);
|
||||
AddJsonbParameter(command, "metadata", key.Metadata);
|
||||
AddParameter(command, "now", now);
|
||||
|
||||
var rowsAffected = await command.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false);
|
||||
return rowsAffected > 0;
|
||||
@@ -201,16 +218,18 @@ public sealed class TrustedKeyRepository : RepositoryBase<PolicyDataSource>, ITr
|
||||
string reason,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: conditional update WHERE revoked_at IS NULL with NOW()
|
||||
// Keep raw SQL for conditional update WHERE revoked_at IS NULL
|
||||
const string sql = """
|
||||
UPDATE policy.trusted_keys
|
||||
SET is_active = false,
|
||||
revoked_at = NOW(),
|
||||
revoked_at = @now,
|
||||
revoked_reason = @reason,
|
||||
updated_at = NOW()
|
||||
updated_at = @now
|
||||
WHERE tenant_id = @tenant_id AND key_id = @key_id AND revoked_at IS NULL
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
await using var connection = await DataSource.OpenConnectionAsync(tenantId, "writer", cancellationToken)
|
||||
.ConfigureAwait(false);
|
||||
await using var command = CreateCommand(sql, connection);
|
||||
@@ -218,6 +237,7 @@ public sealed class TrustedKeyRepository : RepositoryBase<PolicyDataSource>, ITr
|
||||
AddParameter(command, "tenant_id", tenantId);
|
||||
AddParameter(command, "key_id", keyId);
|
||||
AddParameter(command, "reason", reason);
|
||||
AddParameter(command, "now", now);
|
||||
|
||||
var rowsAffected = await command.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false);
|
||||
return rowsAffected > 0;
|
||||
@@ -246,21 +266,24 @@ public sealed class TrustedKeyRepository : RepositoryBase<PolicyDataSource>, ITr
|
||||
string tenantId,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: OR valid_until > NOW() with NULL check
|
||||
// Keep raw SQL: OR valid_until > @now with NULL check
|
||||
const string sql = """
|
||||
SELECT COUNT(*)
|
||||
FROM policy.trusted_keys
|
||||
WHERE tenant_id = @tenant_id
|
||||
AND is_active = true
|
||||
AND revoked_at IS NULL
|
||||
AND (valid_until IS NULL OR valid_until > NOW())
|
||||
AND (valid_until IS NULL OR valid_until > @now)
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
await using var connection = await DataSource.OpenConnectionAsync(tenantId, "reader", cancellationToken)
|
||||
.ConfigureAwait(false);
|
||||
await using var command = CreateCommand(sql, connection);
|
||||
|
||||
AddParameter(command, "tenant_id", tenantId);
|
||||
AddParameter(command, "now", now);
|
||||
|
||||
var result = await command.ExecuteScalarAsync(cancellationToken).ConfigureAwait(false);
|
||||
return Convert.ToInt32(result);
|
||||
|
||||
@@ -13,12 +13,15 @@ namespace StellaOps.Policy.Persistence.Postgres.Repositories;
|
||||
/// </summary>
|
||||
public sealed class WorkerResultRepository : RepositoryBase<PolicyDataSource>, IWorkerResultRepository
|
||||
{
|
||||
private readonly TimeProvider _timeProvider;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new worker result repository.
|
||||
/// </summary>
|
||||
public WorkerResultRepository(PolicyDataSource dataSource, ILogger<WorkerResultRepository> logger)
|
||||
public WorkerResultRepository(PolicyDataSource dataSource, ILogger<WorkerResultRepository> logger, TimeProvider? timeProvider = null)
|
||||
: base(dataSource, logger)
|
||||
{
|
||||
_timeProvider = timeProvider ?? TimeProvider.System;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -131,14 +134,16 @@ public sealed class WorkerResultRepository : RepositoryBase<PolicyDataSource>, I
|
||||
string? errorMessage = null,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: CASE conditional update for started_at
|
||||
// Keep raw SQL for CASE conditional update for started_at
|
||||
const string sql = """
|
||||
UPDATE policy.worker_results
|
||||
SET status = @status, progress = @progress, error_message = @error_message,
|
||||
started_at = CASE WHEN @status = 'running' AND started_at IS NULL THEN NOW() ELSE started_at END
|
||||
started_at = CASE WHEN @status = 'running' AND started_at IS NULL THEN @now ELSE started_at END
|
||||
WHERE tenant_id = @tenant_id AND id = @id
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
var rows = await ExecuteAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
@@ -149,6 +154,7 @@ public sealed class WorkerResultRepository : RepositoryBase<PolicyDataSource>, I
|
||||
AddParameter(cmd, "status", status);
|
||||
AddParameter(cmd, "progress", progress);
|
||||
AddParameter(cmd, "error_message", errorMessage as object ?? DBNull.Value);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
|
||||
@@ -163,14 +169,16 @@ public sealed class WorkerResultRepository : RepositoryBase<PolicyDataSource>, I
|
||||
string? outputHash = null,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: multi-column update with NOW() and jsonb cast
|
||||
// Keep raw SQL for multi-column update with jsonb cast
|
||||
const string sql = """
|
||||
UPDATE policy.worker_results
|
||||
SET status = 'completed', progress = 100, result = @result::jsonb,
|
||||
output_hash = @output_hash, completed_at = NOW()
|
||||
output_hash = @output_hash, completed_at = @now
|
||||
WHERE tenant_id = @tenant_id AND id = @id
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
var rows = await ExecuteAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
@@ -180,6 +188,7 @@ public sealed class WorkerResultRepository : RepositoryBase<PolicyDataSource>, I
|
||||
AddParameter(cmd, "id", id);
|
||||
AddParameter(cmd, "result", result);
|
||||
AddParameter(cmd, "output_hash", outputHash as object ?? DBNull.Value);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
|
||||
@@ -193,13 +202,15 @@ public sealed class WorkerResultRepository : RepositoryBase<PolicyDataSource>, I
|
||||
string errorMessage,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Keep raw SQL: conditional update with NOW()
|
||||
// Keep raw SQL for status update
|
||||
const string sql = """
|
||||
UPDATE policy.worker_results
|
||||
SET status = 'failed', error_message = @error_message, completed_at = NOW()
|
||||
SET status = 'failed', error_message = @error_message, completed_at = @now
|
||||
WHERE tenant_id = @tenant_id AND id = @id
|
||||
""";
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
|
||||
var rows = await ExecuteAsync(
|
||||
tenantId,
|
||||
sql,
|
||||
@@ -208,6 +219,7 @@ public sealed class WorkerResultRepository : RepositoryBase<PolicyDataSource>, I
|
||||
AddParameter(cmd, "tenant_id", tenantId);
|
||||
AddParameter(cmd, "id", id);
|
||||
AddParameter(cmd, "error_message", errorMessage);
|
||||
AddParameter(cmd, "now", now);
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Migrations\**\*.sql" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
|
||||
<EmbeddedResource Remove="Migrations\_archived\**\*.sql" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
using FluentAssertions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using StellaOps.Policy.Persistence.EfCore.CompiledModels;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
using StellaOps.TestKit;
|
||||
using Xunit;
|
||||
|
||||
namespace StellaOps.Policy.Persistence.Tests;
|
||||
|
||||
/// <summary>
|
||||
/// Guard tests ensuring the EF Core compiled model is real (not a stub)
|
||||
/// and contains all expected entity type registrations.
|
||||
/// </summary>
|
||||
public sealed class CompiledModelGuardTests
|
||||
{
|
||||
[Trait("Category", TestCategories.Unit)]
|
||||
[Fact]
|
||||
public void CompiledModel_Instance_IsNotNull()
|
||||
{
|
||||
PolicyDbContextModel.Instance.Should().NotBeNull(
|
||||
"compiled model must be generated via 'dotnet ef dbcontext optimize', not a stub");
|
||||
}
|
||||
|
||||
[Trait("Category", TestCategories.Unit)]
|
||||
[Fact]
|
||||
public void CompiledModel_HasExpectedEntityTypeCount()
|
||||
{
|
||||
var entityTypes = PolicyDbContextModel.Instance.GetEntityTypes().ToList();
|
||||
entityTypes.Should().HaveCount(24,
|
||||
"policy compiled model must contain exactly 24 entity types (regenerate with 'dotnet ef dbcontext optimize' if count differs)");
|
||||
}
|
||||
|
||||
[Trait("Category", TestCategories.Unit)]
|
||||
[Theory]
|
||||
[InlineData(typeof(PackEntity))]
|
||||
[InlineData(typeof(PackVersionEntity))]
|
||||
[InlineData(typeof(RuleEntity))]
|
||||
[InlineData(typeof(RiskProfileEntity))]
|
||||
[InlineData(typeof(EvaluationRunEntity))]
|
||||
[InlineData(typeof(ExplanationEntity))]
|
||||
[InlineData(typeof(SnapshotEntity))]
|
||||
[InlineData(typeof(ViolationEventEntity))]
|
||||
[InlineData(typeof(ConflictEntity))]
|
||||
[InlineData(typeof(LedgerExportEntity))]
|
||||
[InlineData(typeof(WorkerResultEntity))]
|
||||
[InlineData(typeof(ExceptionEntity))]
|
||||
[InlineData(typeof(BudgetLedgerEntity))]
|
||||
[InlineData(typeof(BudgetEntryEntity))]
|
||||
[InlineData(typeof(ExceptionApprovalRequestEntity))]
|
||||
[InlineData(typeof(ExceptionApprovalAuditEntity))]
|
||||
[InlineData(typeof(ExceptionApprovalRuleEntity))]
|
||||
[InlineData(typeof(PolicyAuditEntity))]
|
||||
[InlineData(typeof(TrustedKeyEntity))]
|
||||
[InlineData(typeof(GateBypassAuditEntity))]
|
||||
[InlineData(typeof(GateDecisionEntity))]
|
||||
[InlineData(typeof(ReplayAuditEntity))]
|
||||
[InlineData(typeof(AdvisorySourceImpactEntity))]
|
||||
[InlineData(typeof(AdvisorySourceConflictEntity))]
|
||||
public void CompiledModel_ContainsEntityType(Type entityType)
|
||||
{
|
||||
var found = PolicyDbContextModel.Instance.FindEntityType(entityType);
|
||||
found.Should().NotBeNull(
|
||||
$"compiled model must contain entity type '{entityType.Name}' — regenerate if missing");
|
||||
}
|
||||
|
||||
[Trait("Category", TestCategories.Unit)]
|
||||
[Fact]
|
||||
public void CompiledModel_EntityTypes_HaveTableNames()
|
||||
{
|
||||
var entityTypes = PolicyDbContextModel.Instance.GetEntityTypes();
|
||||
foreach (var entityType in entityTypes)
|
||||
{
|
||||
var tableName = entityType.GetTableName();
|
||||
tableName.Should().NotBeNullOrWhiteSpace(
|
||||
$"entity type '{entityType.ClrType.Name}' must have a table name configured");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -303,7 +303,8 @@ public sealed class PolicyMigrationTests : IAsyncLifetime
|
||||
{
|
||||
var assembly = typeof(PolicyDataSource).Assembly;
|
||||
var resourceNames = assembly.GetManifestResourceNames()
|
||||
.Where(n => n.Contains("Migrations") && n.EndsWith(".sql"))
|
||||
.Where(n => n.EndsWith(".sql", StringComparison.OrdinalIgnoreCase)
|
||||
&& !n.Contains("_archived", StringComparison.OrdinalIgnoreCase))
|
||||
.OrderBy(n => n);
|
||||
|
||||
return resourceNames;
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
using System.Reflection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using StellaOps.Infrastructure.Postgres.Testing;
|
||||
using StellaOps.Policy.Persistence;
|
||||
using StellaOps.Policy.Persistence.Postgres;
|
||||
@@ -27,6 +28,15 @@ public sealed class PolicyPostgresFixture : PostgresIntegrationFixture, ICollect
|
||||
=> typeof(PolicyDataSource).Assembly;
|
||||
|
||||
protected override string GetModuleName() => "Policy";
|
||||
|
||||
/// <summary>
|
||||
/// Policy migration SQL hardcodes the <c>policy.</c> schema prefix on all DDL
|
||||
/// and the repositories also use <c>policy.</c> in raw SQL. Use the canonical
|
||||
/// schema name so search_path, EF Core, and raw SQL all agree.
|
||||
/// </summary>
|
||||
protected override PostgresFixture CreateFixtureInstance(
|
||||
string connectionString, string moduleName, ILogger logger)
|
||||
=> new PostgresFixture(connectionString, "policy", logger);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -0,0 +1,296 @@
|
||||
using FluentAssertions;
|
||||
using Microsoft.Extensions.Logging.Abstractions;
|
||||
using Microsoft.Extensions.Options;
|
||||
using StellaOps.Policy.Persistence.Postgres;
|
||||
using StellaOps.Policy.Persistence.Postgres.Models;
|
||||
using StellaOps.Policy.Persistence.Postgres.Repositories;
|
||||
using StellaOps.TestKit;
|
||||
using Xunit;
|
||||
|
||||
namespace StellaOps.Policy.Persistence.Tests;
|
||||
|
||||
/// <summary>
|
||||
/// Verifies that repositories correctly use the injected <see cref="TimeProvider"/>
|
||||
/// instead of SQL NOW() for timestamp columns. Each test injects a
|
||||
/// <see cref="FixedTimeProvider"/> set to a distinctive past date and asserts
|
||||
/// that persisted timestamps match the fixed time, not wall-clock time.
|
||||
/// </summary>
|
||||
[Collection(PolicyPostgresCollection.Name)]
|
||||
public sealed class TimeProviderIntegrationTests : IAsyncLifetime
|
||||
{
|
||||
/// <summary>
|
||||
/// A distinctive past date that could never be confused with wall-clock time.
|
||||
/// </summary>
|
||||
private static readonly DateTimeOffset FixedTime =
|
||||
new(2020, 6, 15, 12, 0, 0, TimeSpan.Zero);
|
||||
|
||||
private readonly PolicyPostgresFixture _fixture;
|
||||
private readonly PolicyDataSource _dataSource;
|
||||
private readonly FixedTimeProvider _fixedTimeProvider;
|
||||
|
||||
// Repositories under test (using fixed time)
|
||||
private readonly EvaluationRunRepository _evalRunRepo;
|
||||
private readonly ConflictRepository _conflictRepo;
|
||||
|
||||
// Seed repositories (using system time -- only needed for FK seeding)
|
||||
private readonly PackRepository _packRepo;
|
||||
private readonly PackVersionRepository _packVersionRepo;
|
||||
|
||||
private readonly string _tenantId = Guid.NewGuid().ToString();
|
||||
private readonly Guid _packId = Guid.NewGuid();
|
||||
private const int SeedPackVersion = 1;
|
||||
|
||||
public TimeProviderIntegrationTests(PolicyPostgresFixture fixture)
|
||||
{
|
||||
_fixture = fixture;
|
||||
_fixedTimeProvider = new FixedTimeProvider(FixedTime);
|
||||
|
||||
var options = fixture.Fixture.CreateOptions();
|
||||
options.SchemaName = fixture.SchemaName;
|
||||
_dataSource = new PolicyDataSource(Options.Create(options), NullLogger<PolicyDataSource>.Instance);
|
||||
|
||||
// Repositories that use the fixed time provider
|
||||
_evalRunRepo = new EvaluationRunRepository(_dataSource, NullLogger<EvaluationRunRepository>.Instance, _fixedTimeProvider);
|
||||
_conflictRepo = new ConflictRepository(_dataSource, NullLogger<ConflictRepository>.Instance, _fixedTimeProvider);
|
||||
|
||||
// Seed repositories -- use default (system) time; their timestamps are not under test
|
||||
_packRepo = new PackRepository(_dataSource, NullLogger<PackRepository>.Instance);
|
||||
_packVersionRepo = new PackVersionRepository(_dataSource, NullLogger<PackVersionRepository>.Instance);
|
||||
}
|
||||
|
||||
public async ValueTask InitializeAsync()
|
||||
{
|
||||
await _fixture.TruncateAllTablesAsync();
|
||||
|
||||
// Seed a pack and pack version (required FK for evaluation runs)
|
||||
var pack = new PackEntity
|
||||
{
|
||||
Id = _packId,
|
||||
TenantId = _tenantId,
|
||||
Name = "tp-pack",
|
||||
DisplayName = "TimeProvider Test Pack",
|
||||
ActiveVersion = SeedPackVersion,
|
||||
CreatedAt = DateTimeOffset.UtcNow,
|
||||
UpdatedAt = DateTimeOffset.UtcNow,
|
||||
CreatedBy = "tests"
|
||||
};
|
||||
await _packRepo.CreateAsync(pack);
|
||||
|
||||
var packVersion = new PackVersionEntity
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
PackId = _packId,
|
||||
Version = SeedPackVersion,
|
||||
RulesHash = "seed-hash",
|
||||
IsPublished = true,
|
||||
PublishedAt = DateTimeOffset.UtcNow,
|
||||
PublishedBy = "tests",
|
||||
CreatedBy = "tests"
|
||||
};
|
||||
await _packVersionRepo.CreateAsync(packVersion);
|
||||
}
|
||||
|
||||
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// EvaluationRunRepository -- MarkStartedAsync sets started_at via TimeProvider
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
[Trait("Category", TestCategories.Unit)]
|
||||
[Fact]
|
||||
public async Task MarkStarted_UsesTimeProvider_ForStartedAt()
|
||||
{
|
||||
// Arrange
|
||||
var run = CreateEvalRun();
|
||||
await _evalRunRepo.CreateAsync(run);
|
||||
|
||||
// Act
|
||||
var result = await _evalRunRepo.MarkStartedAsync(_tenantId, run.Id);
|
||||
|
||||
// Assert
|
||||
result.Should().BeTrue();
|
||||
|
||||
var fetched = await _evalRunRepo.GetByIdAsync(_tenantId, run.Id);
|
||||
fetched.Should().NotBeNull();
|
||||
fetched!.Status.Should().Be(EvaluationStatus.Running);
|
||||
fetched.StartedAt.Should().NotBeNull();
|
||||
|
||||
// The started_at timestamp must match the fixed time, not the current wall-clock time.
|
||||
fetched.StartedAt!.Value.Should().BeCloseTo(FixedTime, TimeSpan.FromSeconds(1));
|
||||
|
||||
// Guard: the fixed time is far enough in the past that it cannot be confused with "now".
|
||||
fetched.StartedAt.Value.Should().BeBefore(DateTimeOffset.UtcNow.AddYears(-1));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// EvaluationRunRepository -- MarkCompletedAsync sets completed_at via TimeProvider
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
[Trait("Category", TestCategories.Unit)]
|
||||
[Fact]
|
||||
public async Task MarkCompleted_UsesTimeProvider_ForCompletedAt()
|
||||
{
|
||||
// Arrange
|
||||
var run = CreateEvalRun();
|
||||
await _evalRunRepo.CreateAsync(run);
|
||||
await _evalRunRepo.MarkStartedAsync(_tenantId, run.Id);
|
||||
|
||||
// Act
|
||||
var result = await _evalRunRepo.MarkCompletedAsync(
|
||||
_tenantId,
|
||||
run.Id,
|
||||
EvaluationResult.Pass,
|
||||
score: 95.0m,
|
||||
findingsCount: 3,
|
||||
criticalCount: 0,
|
||||
highCount: 1,
|
||||
mediumCount: 1,
|
||||
lowCount: 1,
|
||||
durationMs: 250);
|
||||
|
||||
// Assert
|
||||
result.Should().BeTrue();
|
||||
|
||||
var fetched = await _evalRunRepo.GetByIdAsync(_tenantId, run.Id);
|
||||
fetched.Should().NotBeNull();
|
||||
fetched!.Status.Should().Be(EvaluationStatus.Completed);
|
||||
fetched.CompletedAt.Should().NotBeNull();
|
||||
|
||||
// The completed_at timestamp must match the fixed time.
|
||||
fetched.CompletedAt!.Value.Should().BeCloseTo(FixedTime, TimeSpan.FromSeconds(1));
|
||||
fetched.CompletedAt.Value.Should().BeBefore(DateTimeOffset.UtcNow.AddYears(-1));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// EvaluationRunRepository -- MarkFailedAsync sets completed_at via TimeProvider
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
[Trait("Category", TestCategories.Unit)]
|
||||
[Fact]
|
||||
public async Task MarkFailed_UsesTimeProvider_ForCompletedAt()
|
||||
{
|
||||
// Arrange
|
||||
var run = CreateEvalRun();
|
||||
await _evalRunRepo.CreateAsync(run);
|
||||
|
||||
// Act
|
||||
var result = await _evalRunRepo.MarkFailedAsync(_tenantId, run.Id, "Timeout during evaluation");
|
||||
|
||||
// Assert
|
||||
result.Should().BeTrue();
|
||||
|
||||
var fetched = await _evalRunRepo.GetByIdAsync(_tenantId, run.Id);
|
||||
fetched.Should().NotBeNull();
|
||||
fetched!.Status.Should().Be(EvaluationStatus.Failed);
|
||||
fetched.CompletedAt.Should().NotBeNull();
|
||||
|
||||
// The completed_at timestamp must match the fixed time.
|
||||
fetched.CompletedAt!.Value.Should().BeCloseTo(FixedTime, TimeSpan.FromSeconds(1));
|
||||
fetched.CompletedAt.Value.Should().BeBefore(DateTimeOffset.UtcNow.AddYears(-1));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// ConflictRepository -- ResolveAsync sets resolved_at via TimeProvider
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
[Trait("Category", TestCategories.Unit)]
|
||||
[Fact]
|
||||
public async Task Resolve_UsesTimeProvider_ForResolvedAt()
|
||||
{
|
||||
// Arrange
|
||||
var conflict = new ConflictEntity
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
TenantId = _tenantId,
|
||||
ConflictType = "rule_overlap",
|
||||
Severity = "high",
|
||||
Status = "open",
|
||||
Description = "Rules A and B overlap on scope X",
|
||||
CreatedAt = DateTimeOffset.UtcNow,
|
||||
CreatedBy = "tests"
|
||||
};
|
||||
await _conflictRepo.CreateAsync(conflict);
|
||||
|
||||
// Act
|
||||
var result = await _conflictRepo.ResolveAsync(
|
||||
_tenantId, conflict.Id, "Merged rules", "admin");
|
||||
|
||||
// Assert
|
||||
result.Should().BeTrue();
|
||||
|
||||
var fetched = await _conflictRepo.GetByIdAsync(_tenantId, conflict.Id);
|
||||
fetched.Should().NotBeNull();
|
||||
fetched!.Status.Should().Be("resolved");
|
||||
fetched.ResolvedAt.Should().NotBeNull();
|
||||
|
||||
// The resolved_at timestamp must match the fixed time.
|
||||
fetched.ResolvedAt!.Value.Should().BeCloseTo(FixedTime, TimeSpan.FromSeconds(1));
|
||||
fetched.ResolvedAt.Value.Should().BeBefore(DateTimeOffset.UtcNow.AddYears(-1));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// ConflictRepository -- DismissAsync sets resolved_at via TimeProvider
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
[Trait("Category", TestCategories.Unit)]
|
||||
[Fact]
|
||||
public async Task Dismiss_UsesTimeProvider_ForResolvedAt()
|
||||
{
|
||||
// Arrange
|
||||
var conflict = new ConflictEntity
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
TenantId = _tenantId,
|
||||
ConflictType = "precedence",
|
||||
Severity = "low",
|
||||
Status = "open",
|
||||
Description = "Rule precedence ambiguity",
|
||||
CreatedAt = DateTimeOffset.UtcNow,
|
||||
CreatedBy = "tests"
|
||||
};
|
||||
await _conflictRepo.CreateAsync(conflict);
|
||||
|
||||
// Act
|
||||
var result = await _conflictRepo.DismissAsync(_tenantId, conflict.Id, "operator");
|
||||
|
||||
// Assert
|
||||
result.Should().BeTrue();
|
||||
|
||||
var fetched = await _conflictRepo.GetByIdAsync(_tenantId, conflict.Id);
|
||||
fetched.Should().NotBeNull();
|
||||
fetched!.Status.Should().Be("dismissed");
|
||||
fetched.ResolvedAt.Should().NotBeNull();
|
||||
|
||||
// The resolved_at timestamp must match the fixed time.
|
||||
fetched.ResolvedAt!.Value.Should().BeCloseTo(FixedTime, TimeSpan.FromSeconds(1));
|
||||
fetched.ResolvedAt.Value.Should().BeBefore(DateTimeOffset.UtcNow.AddYears(-1));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// Helpers
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
private EvaluationRunEntity CreateEvalRun() => new()
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
TenantId = _tenantId,
|
||||
ProjectId = "tp-project",
|
||||
PackId = _packId,
|
||||
PackVersion = SeedPackVersion,
|
||||
Status = EvaluationStatus.Pending
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// A <see cref="TimeProvider"/> that always returns a fixed UTC time.
|
||||
/// Used to prove that repository methods obtain their timestamps from the
|
||||
/// injected provider rather than from SQL <c>NOW()</c>.
|
||||
/// </summary>
|
||||
private sealed class FixedTimeProvider : TimeProvider
|
||||
{
|
||||
private readonly DateTimeOffset _fixedTime;
|
||||
|
||||
public FixedTimeProvider(DateTimeOffset fixedTime) => _fixedTime = fixedTime;
|
||||
|
||||
public override DateTimeOffset GetUtcNow() => _fixedTime;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user