up
Some checks failed
Build Test Deploy / build-test (push) Has been cancelled
Build Test Deploy / authority-container (push) Has been cancelled
Build Test Deploy / docs (push) Has been cancelled
Build Test Deploy / deploy (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled

This commit is contained in:
root
2025-10-10 06:53:40 +00:00
parent 3aed135fb5
commit df5984d07e
1081 changed files with 97764 additions and 61389 deletions

View File

@@ -0,0 +1,78 @@
using System;
using System.Collections.Generic;
using System.IO;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Migrations.Internal;
using Microsoft.Extensions.Configuration;
using OpenIddict.EntityFrameworkCore.Models;
namespace Ablera.Serdica.DBModels.Oidc;
public class OidcDbContext : DbContext
{
public OidcDbContext(DbContextOptions<OidcDbContext> options)
: base(options)
{
}
public virtual DbSet<OpenIddictEntityFrameworkCoreApplication> OpenIddictApplications { get; set; }
public virtual DbSet<OpenIddictEntityFrameworkCoreAuthorization> OpenIddictAuthorizations { get; set; }
public virtual DbSet<OpenIddictEntityFrameworkCoreScope> OpenIddictScopes { get; set; }
public virtual DbSet<OpenIddictEntityFrameworkCoreToken> OpenIddictTokens { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
builder.HasAnnotation("Relational:DefaultStringType", "NVARCHAR2(4000)");
base.OnModelCreating(builder);
builder.UseOpenIddict();
// Configure the OpenIddict Applications table.
builder.Entity<OpenIddictEntityFrameworkCoreApplication>(entity =>
{
// Map to table with prefix "OIDC_" in the "SRD_SYS" schema.
entity.ToTable("OIDC_APPLICATIONS", "SRD_SYS");
// Ensure that ClientId is unique.
entity.HasIndex(e => e.ClientId)
.IsUnique();
// Optionally configure column size for ClientSecret (Oracle commonly uses VARCHAR2).
entity.Property(e => e.ClientSecret)
.HasMaxLength(256);
// Additional tuning: you might also constrain DisplayName or ConsentType here.
});
// Configure the OpenIddict Authorizations table.
builder.Entity<OpenIddictEntityFrameworkCoreAuthorization>(entity =>
{
entity.ToTable("OIDC_AUTHORIZATIONS", "SRD_SYS");
});
// Configure the OpenIddict Scopes table.
builder.Entity<OpenIddictEntityFrameworkCoreScope>(entity =>
{
entity.ToTable("OIDC_SCOPES", "SRD_SYS");
// Typically, scopes have a unique name.
entity.HasIndex(e => e.Name)
.IsUnique();
});
// Configure the OpenIddict Tokens table.
builder.Entity<OpenIddictEntityFrameworkCoreToken>(entity =>
{
entity.ToTable("OIDC_TOKENS", "SRD_SYS");
// Create an index on ReferenceId for quick lookups.
entity.HasIndex(e => e.ReferenceId)
.IsUnique();
// Optionally, you can configure the max length for certain token fields.
// For example, if ReferenceId should be a VARCHAR2(100):
entity.Property(e => e.ReferenceId)
.HasMaxLength(100);
});
}
}