diff --git a/IdentityServer/v8/Configuration/IdentityServerHost/Migrations/ConfigurationDb/20260610193411_UpdateV8.Designer.cs b/IdentityServer/v8/Configuration/IdentityServerHost/Migrations/ConfigurationDb/20260610193411_UpdateV8.Designer.cs
new file mode 100644
index 00000000..7cf0ab26
--- /dev/null
+++ b/IdentityServer/v8/Configuration/IdentityServerHost/Migrations/ConfigurationDb/20260610193411_UpdateV8.Designer.cs
@@ -0,0 +1,1417 @@
+//
+using System;
+using Duende.IdentityServer.EntityFramework.DbContexts;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace IdentityServer.Migrations.ConfigurationDb
+{
+ [DbContext(typeof(ConfigurationDbContext))]
+ [Migration("20260610193411_UpdateV8")]
+ partial class UpdateV8
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder.HasAnnotation("ProductVersion", "10.0.9");
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiResource", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("AllowedAccessTokenSigningAlgorithms")
+ .HasMaxLength(100)
+ .HasColumnType("TEXT");
+
+ b.Property("Created")
+ .HasColumnType("TEXT");
+
+ b.Property("Description")
+ .HasMaxLength(1000)
+ .HasColumnType("TEXT");
+
+ b.Property("DisplayName")
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("Enabled")
+ .HasColumnType("INTEGER");
+
+ b.Property("LastAccessed")
+ .HasColumnType("TEXT");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("NonEditable")
+ .HasColumnType("INTEGER");
+
+ b.Property("RequireResourceIndicator")
+ .HasColumnType("INTEGER");
+
+ b.Property("ShowInDiscoveryDocument")
+ .HasColumnType("INTEGER");
+
+ b.Property("Updated")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("ApiResources", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiResourceClaim", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ApiResourceId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Type")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApiResourceId", "Type")
+ .IsUnique();
+
+ b.ToTable("ApiResourceClaims", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiResourceProperty", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ApiResourceId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Key")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("TEXT");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasMaxLength(2000)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApiResourceId", "Key")
+ .IsUnique();
+
+ b.ToTable("ApiResourceProperties", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiResourceScope", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ApiResourceId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Scope")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApiResourceId", "Scope")
+ .IsUnique();
+
+ b.ToTable("ApiResourceScopes", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiResourceSecret", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ApiResourceId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Created")
+ .HasColumnType("TEXT");
+
+ b.Property("Description")
+ .HasMaxLength(1000)
+ .HasColumnType("TEXT");
+
+ b.Property("Expiration")
+ .HasColumnType("TEXT");
+
+ b.Property("Type")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("TEXT");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasMaxLength(4000)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApiResourceId");
+
+ b.ToTable("ApiResourceSecrets", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiScope", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Created")
+ .HasColumnType("TEXT");
+
+ b.Property("Description")
+ .HasMaxLength(1000)
+ .HasColumnType("TEXT");
+
+ b.Property("DisplayName")
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("Emphasize")
+ .HasColumnType("INTEGER");
+
+ b.Property("Enabled")
+ .HasColumnType("INTEGER");
+
+ b.Property("LastAccessed")
+ .HasColumnType("TEXT");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("NonEditable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Required")
+ .HasColumnType("INTEGER");
+
+ b.Property("ShowInDiscoveryDocument")
+ .HasColumnType("INTEGER");
+
+ b.Property("Updated")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("ApiScopes", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiScopeClaim", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ScopeId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Type")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ScopeId", "Type")
+ .IsUnique();
+
+ b.ToTable("ApiScopeClaims", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiScopeProperty", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Key")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("TEXT");
+
+ b.Property("ScopeId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasMaxLength(2000)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ScopeId", "Key")
+ .IsUnique();
+
+ b.ToTable("ApiScopeProperties", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.Client", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("AbsoluteRefreshTokenLifetime")
+ .HasColumnType("INTEGER");
+
+ b.Property("AccessTokenLifetime")
+ .HasColumnType("INTEGER");
+
+ b.Property("AccessTokenType")
+ .HasColumnType("INTEGER");
+
+ b.Property("AllowAccessTokensViaBrowser")
+ .HasColumnType("INTEGER");
+
+ b.Property("AllowOfflineAccess")
+ .HasColumnType("INTEGER");
+
+ b.Property("AllowPlainTextPkce")
+ .HasColumnType("INTEGER");
+
+ b.Property("AllowRememberConsent")
+ .HasColumnType("INTEGER");
+
+ b.Property("AllowedIdentityTokenSigningAlgorithms")
+ .HasMaxLength(100)
+ .HasColumnType("TEXT");
+
+ b.Property("AlwaysIncludeUserClaimsInIdToken")
+ .HasColumnType("INTEGER");
+
+ b.Property("AlwaysSendClientClaims")
+ .HasColumnType("INTEGER");
+
+ b.Property("AuthorizationCodeLifetime")
+ .HasColumnType("INTEGER");
+
+ b.Property("BackChannelLogoutSessionRequired")
+ .HasColumnType("INTEGER");
+
+ b.Property("BackChannelLogoutUri")
+ .HasMaxLength(2000)
+ .HasColumnType("TEXT");
+
+ b.Property("CibaLifetime")
+ .HasColumnType("INTEGER");
+
+ b.Property("ClientClaimsPrefix")
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("ClientId")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("ClientName")
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("ClientUri")
+ .HasMaxLength(2000)
+ .HasColumnType("TEXT");
+
+ b.Property("ConsentLifetime")
+ .HasColumnType("INTEGER");
+
+ b.Property("CoordinateLifetimeWithUserSession")
+ .HasColumnType("INTEGER");
+
+ b.Property("Created")
+ .HasColumnType("TEXT");
+
+ b.Property("DPoPClockSkew")
+ .HasColumnType("TEXT");
+
+ b.Property("DPoPValidationMode")
+ .HasColumnType("INTEGER");
+
+ b.Property("Description")
+ .HasMaxLength(1000)
+ .HasColumnType("TEXT");
+
+ b.Property("DeviceCodeLifetime")
+ .HasColumnType("INTEGER");
+
+ b.Property("EnableLocalLogin")
+ .HasColumnType("INTEGER");
+
+ b.Property("Enabled")
+ .HasColumnType("INTEGER");
+
+ b.Property("FrontChannelLogoutSessionRequired")
+ .HasColumnType("INTEGER");
+
+ b.Property("FrontChannelLogoutUri")
+ .HasMaxLength(2000)
+ .HasColumnType("TEXT");
+
+ b.Property("IdentityTokenLifetime")
+ .HasColumnType("INTEGER");
+
+ b.Property("IncludeJwtId")
+ .HasColumnType("INTEGER");
+
+ b.Property("InitiateLoginUri")
+ .HasMaxLength(2000)
+ .HasColumnType("TEXT");
+
+ b.Property("LastAccessed")
+ .HasColumnType("TEXT");
+
+ b.Property("LogoUri")
+ .HasMaxLength(2000)
+ .HasColumnType("TEXT");
+
+ b.Property("NonEditable")
+ .HasColumnType("INTEGER");
+
+ b.Property("PairWiseSubjectSalt")
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("PollingInterval")
+ .HasColumnType("INTEGER");
+
+ b.Property("ProtocolType")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("PushedAuthorizationLifetime")
+ .HasColumnType("INTEGER");
+
+ b.Property("RefreshTokenExpiration")
+ .HasColumnType("INTEGER");
+
+ b.Property("RefreshTokenUsage")
+ .HasColumnType("INTEGER");
+
+ b.Property("RequireClientSecret")
+ .HasColumnType("INTEGER");
+
+ b.Property("RequireConsent")
+ .HasColumnType("INTEGER");
+
+ b.Property("RequireDPoP")
+ .HasColumnType("INTEGER");
+
+ b.Property("RequirePkce")
+ .HasColumnType("INTEGER");
+
+ b.Property("RequirePushedAuthorization")
+ .HasColumnType("INTEGER");
+
+ b.Property("RequireRequestObject")
+ .HasColumnType("INTEGER");
+
+ b.Property("SlidingRefreshTokenLifetime")
+ .HasColumnType("INTEGER");
+
+ b.Property("UpdateAccessTokenClaimsOnRefresh")
+ .HasColumnType("INTEGER");
+
+ b.Property("Updated")
+ .HasColumnType("TEXT");
+
+ b.Property("UserCodeType")
+ .HasMaxLength(100)
+ .HasColumnType("TEXT");
+
+ b.Property("UserSsoLifetime")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ClientId")
+ .IsUnique();
+
+ b.ToTable("Clients", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientClaim", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ClientId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Type")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("TEXT");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ClientId", "Type", "Value")
+ .IsUnique();
+
+ b.ToTable("ClientClaims", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientCorsOrigin", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ClientId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Origin")
+ .IsRequired()
+ .HasMaxLength(150)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ClientId", "Origin")
+ .IsUnique();
+
+ b.ToTable("ClientCorsOrigins", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientGrantType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ClientId")
+ .HasColumnType("INTEGER");
+
+ b.Property("GrantType")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ClientId", "GrantType")
+ .IsUnique();
+
+ b.ToTable("ClientGrantTypes", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientIdPRestriction", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ClientId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Provider")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ClientId", "Provider")
+ .IsUnique();
+
+ b.ToTable("ClientIdPRestrictions", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientPostLogoutRedirectUri", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ClientId")
+ .HasColumnType("INTEGER");
+
+ b.Property("PostLogoutRedirectUri")
+ .IsRequired()
+ .HasMaxLength(400)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ClientId", "PostLogoutRedirectUri")
+ .IsUnique();
+
+ b.ToTable("ClientPostLogoutRedirectUris", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientProperty", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ClientId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Key")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("TEXT");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasMaxLength(2000)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ClientId", "Key")
+ .IsUnique();
+
+ b.ToTable("ClientProperties", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientRedirectUri", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ClientId")
+ .HasColumnType("INTEGER");
+
+ b.Property("RedirectUri")
+ .IsRequired()
+ .HasMaxLength(400)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ClientId", "RedirectUri")
+ .IsUnique();
+
+ b.ToTable("ClientRedirectUris", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientScope", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ClientId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Scope")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ClientId", "Scope")
+ .IsUnique();
+
+ b.ToTable("ClientScopes", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientSecret", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ClientId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Created")
+ .HasColumnType("TEXT");
+
+ b.Property("Description")
+ .HasMaxLength(2000)
+ .HasColumnType("TEXT");
+
+ b.Property("Expiration")
+ .HasColumnType("TEXT");
+
+ b.Property("Type")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("TEXT");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasMaxLength(4000)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ClientId");
+
+ b.ToTable("ClientSecrets", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.IdentityProvider", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Created")
+ .HasColumnType("TEXT");
+
+ b.Property("DisplayName")
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("Enabled")
+ .HasColumnType("INTEGER");
+
+ b.Property("LastAccessed")
+ .HasColumnType("TEXT");
+
+ b.Property("NonEditable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Properties")
+ .HasColumnType("TEXT");
+
+ b.Property("Scheme")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("Type")
+ .IsRequired()
+ .HasMaxLength(20)
+ .HasColumnType("TEXT");
+
+ b.Property("Updated")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Scheme")
+ .IsUnique();
+
+ b.ToTable("IdentityProviders", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.IdentityResource", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Created")
+ .HasColumnType("TEXT");
+
+ b.Property("Description")
+ .HasMaxLength(1000)
+ .HasColumnType("TEXT");
+
+ b.Property("DisplayName")
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("Emphasize")
+ .HasColumnType("INTEGER");
+
+ b.Property("Enabled")
+ .HasColumnType("INTEGER");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("NonEditable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Required")
+ .HasColumnType("INTEGER");
+
+ b.Property("ShowInDiscoveryDocument")
+ .HasColumnType("INTEGER");
+
+ b.Property("Updated")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("IdentityResources", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.IdentityResourceClaim", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("IdentityResourceId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Type")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdentityResourceId", "Type")
+ .IsUnique();
+
+ b.ToTable("IdentityResourceClaims", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.IdentityResourceProperty", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("IdentityResourceId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Key")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("TEXT");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasMaxLength(2000)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdentityResourceId", "Key")
+ .IsUnique();
+
+ b.ToTable("IdentityResourceProperties", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlAllowedScope", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("SamlServiceProviderId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Scope")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SamlServiceProviderId", "Scope")
+ .IsUnique();
+
+ b.ToTable("SamlAllowedScopes", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlAssertionConsumerService", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Binding")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("Index")
+ .HasColumnType("INTEGER");
+
+ b.Property("IsDefault")
+ .HasColumnType("INTEGER");
+
+ b.Property("Location")
+ .IsRequired()
+ .HasMaxLength(400)
+ .HasColumnType("TEXT");
+
+ b.Property("SamlServiceProviderId")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SamlServiceProviderId", "Location")
+ .IsUnique();
+
+ b.ToTable("SamlAssertionConsumerServices", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlAuthnContextMapping", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("OidcValue")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("TEXT");
+
+ b.Property("SamlAuthnContextClassRef")
+ .IsRequired()
+ .HasMaxLength(500)
+ .HasColumnType("TEXT");
+
+ b.Property("SamlServiceProviderId")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SamlServiceProviderId", "OidcValue")
+ .IsUnique();
+
+ b.ToTable("SamlAuthnContextMappings", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlCertificate", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Data")
+ .IsRequired()
+ .HasMaxLength(4000)
+ .HasColumnType("TEXT");
+
+ b.Property("SamlServiceProviderId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Use")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SamlServiceProviderId");
+
+ b.ToTable("SamlCertificates", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlClaimMapping", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ClaimType")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("TEXT");
+
+ b.Property("SamlAttributeName")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("TEXT");
+
+ b.Property("SamlServiceProviderId")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SamlServiceProviderId", "ClaimType")
+ .IsUnique();
+
+ b.ToTable("SamlClaimMappings", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlRequestedClaimType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ClaimType")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("TEXT");
+
+ b.Property("SamlServiceProviderId")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SamlServiceProviderId", "ClaimType")
+ .IsUnique();
+
+ b.ToTable("SamlRequestedClaimTypes", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlServiceProvider", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("AllowIdpInitiated")
+ .HasColumnType("INTEGER");
+
+ b.PrimitiveCollection("AllowedSignatureAlgorithms")
+ .HasColumnType("TEXT");
+
+ b.Property("AssertionLifetimeSeconds")
+ .HasColumnType("REAL");
+
+ b.Property("ClockSkewSeconds")
+ .HasColumnType("REAL");
+
+ b.Property("Created")
+ .HasColumnType("TEXT");
+
+ b.Property("DefaultNameIdFormat")
+ .HasMaxLength(2000)
+ .HasColumnType("TEXT");
+
+ b.Property("Description")
+ .HasMaxLength(1000)
+ .HasColumnType("TEXT");
+
+ b.Property("DisplayName")
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("EmailNameIdClaimType")
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("Enabled")
+ .HasColumnType("INTEGER");
+
+ b.Property("EntityId")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("LastAccessed")
+ .HasColumnType("TEXT");
+
+ b.Property("NonEditable")
+ .HasColumnType("INTEGER");
+
+ b.Property("RequestMaxAgeSeconds")
+ .HasColumnType("REAL");
+
+ b.Property("RequireSignedAuthnRequests")
+ .HasColumnType("INTEGER");
+
+ b.Property("RequireSignedLogoutResponses")
+ .HasColumnType("INTEGER");
+
+ b.Property("SigningBehavior")
+ .HasColumnType("INTEGER");
+
+ b.Property("Updated")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EntityId")
+ .IsUnique();
+
+ b.ToTable("SamlServiceProviders", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlSingleLogoutService", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Binding")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("TEXT");
+
+ b.Property("Location")
+ .IsRequired()
+ .HasMaxLength(400)
+ .HasColumnType("TEXT");
+
+ b.Property("SamlServiceProviderId")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SamlServiceProviderId", "Binding")
+ .IsUnique();
+
+ b.ToTable("SamlSingleLogoutServices", (string)null);
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiResourceClaim", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.ApiResource", "ApiResource")
+ .WithMany("UserClaims")
+ .HasForeignKey("ApiResourceId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ApiResource");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiResourceProperty", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.ApiResource", "ApiResource")
+ .WithMany("Properties")
+ .HasForeignKey("ApiResourceId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ApiResource");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiResourceScope", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.ApiResource", "ApiResource")
+ .WithMany("Scopes")
+ .HasForeignKey("ApiResourceId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ApiResource");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiResourceSecret", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.ApiResource", "ApiResource")
+ .WithMany("Secrets")
+ .HasForeignKey("ApiResourceId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ApiResource");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiScopeClaim", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.ApiScope", "Scope")
+ .WithMany("UserClaims")
+ .HasForeignKey("ScopeId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Scope");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiScopeProperty", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.ApiScope", "Scope")
+ .WithMany("Properties")
+ .HasForeignKey("ScopeId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Scope");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientClaim", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.Client", "Client")
+ .WithMany("Claims")
+ .HasForeignKey("ClientId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Client");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientCorsOrigin", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.Client", "Client")
+ .WithMany("AllowedCorsOrigins")
+ .HasForeignKey("ClientId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Client");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientGrantType", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.Client", "Client")
+ .WithMany("AllowedGrantTypes")
+ .HasForeignKey("ClientId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Client");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientIdPRestriction", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.Client", "Client")
+ .WithMany("IdentityProviderRestrictions")
+ .HasForeignKey("ClientId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Client");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientPostLogoutRedirectUri", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.Client", "Client")
+ .WithMany("PostLogoutRedirectUris")
+ .HasForeignKey("ClientId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Client");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientProperty", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.Client", "Client")
+ .WithMany("Properties")
+ .HasForeignKey("ClientId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Client");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientRedirectUri", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.Client", "Client")
+ .WithMany("RedirectUris")
+ .HasForeignKey("ClientId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Client");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientScope", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.Client", "Client")
+ .WithMany("AllowedScopes")
+ .HasForeignKey("ClientId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Client");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ClientSecret", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.Client", "Client")
+ .WithMany("ClientSecrets")
+ .HasForeignKey("ClientId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Client");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.IdentityResourceClaim", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.IdentityResource", "IdentityResource")
+ .WithMany("UserClaims")
+ .HasForeignKey("IdentityResourceId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("IdentityResource");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.IdentityResourceProperty", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.IdentityResource", "IdentityResource")
+ .WithMany("Properties")
+ .HasForeignKey("IdentityResourceId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("IdentityResource");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlAllowedScope", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.SamlServiceProvider", "SamlServiceProvider")
+ .WithMany("AllowedScopes")
+ .HasForeignKey("SamlServiceProviderId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("SamlServiceProvider");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlAssertionConsumerService", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.SamlServiceProvider", "SamlServiceProvider")
+ .WithMany("AssertionConsumerServiceUrls")
+ .HasForeignKey("SamlServiceProviderId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("SamlServiceProvider");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlAuthnContextMapping", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.SamlServiceProvider", "SamlServiceProvider")
+ .WithMany("AuthnContextMappings")
+ .HasForeignKey("SamlServiceProviderId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("SamlServiceProvider");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlCertificate", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.SamlServiceProvider", "SamlServiceProvider")
+ .WithMany("Certificates")
+ .HasForeignKey("SamlServiceProviderId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("SamlServiceProvider");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlClaimMapping", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.SamlServiceProvider", "SamlServiceProvider")
+ .WithMany("ClaimMappings")
+ .HasForeignKey("SamlServiceProviderId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("SamlServiceProvider");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlRequestedClaimType", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.SamlServiceProvider", "SamlServiceProvider")
+ .WithMany("RequestedClaimTypes")
+ .HasForeignKey("SamlServiceProviderId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("SamlServiceProvider");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlSingleLogoutService", b =>
+ {
+ b.HasOne("Duende.IdentityServer.EntityFramework.Entities.SamlServiceProvider", "SamlServiceProvider")
+ .WithMany("SingleLogoutServiceUrls")
+ .HasForeignKey("SamlServiceProviderId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("SamlServiceProvider");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiResource", b =>
+ {
+ b.Navigation("Properties");
+
+ b.Navigation("Scopes");
+
+ b.Navigation("Secrets");
+
+ b.Navigation("UserClaims");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.ApiScope", b =>
+ {
+ b.Navigation("Properties");
+
+ b.Navigation("UserClaims");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.Client", b =>
+ {
+ b.Navigation("AllowedCorsOrigins");
+
+ b.Navigation("AllowedGrantTypes");
+
+ b.Navigation("AllowedScopes");
+
+ b.Navigation("Claims");
+
+ b.Navigation("ClientSecrets");
+
+ b.Navigation("IdentityProviderRestrictions");
+
+ b.Navigation("PostLogoutRedirectUris");
+
+ b.Navigation("Properties");
+
+ b.Navigation("RedirectUris");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.IdentityResource", b =>
+ {
+ b.Navigation("Properties");
+
+ b.Navigation("UserClaims");
+ });
+
+ modelBuilder.Entity("Duende.IdentityServer.EntityFramework.Entities.SamlServiceProvider", b =>
+ {
+ b.Navigation("AllowedScopes");
+
+ b.Navigation("AssertionConsumerServiceUrls");
+
+ b.Navigation("AuthnContextMappings");
+
+ b.Navigation("Certificates");
+
+ b.Navigation("ClaimMappings");
+
+ b.Navigation("RequestedClaimTypes");
+
+ b.Navigation("SingleLogoutServiceUrls");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/IdentityServer/v8/Configuration/IdentityServerHost/Migrations/ConfigurationDb/20260610193411_UpdateV8.cs b/IdentityServer/v8/Configuration/IdentityServerHost/Migrations/ConfigurationDb/20260610193411_UpdateV8.cs
new file mode 100644
index 00000000..18d10775
--- /dev/null
+++ b/IdentityServer/v8/Configuration/IdentityServerHost/Migrations/ConfigurationDb/20260610193411_UpdateV8.cs
@@ -0,0 +1,267 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace IdentityServer.Migrations.ConfigurationDb
+{
+ ///
+ public partial class UpdateV8 : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateTable(
+ name: "SamlServiceProviders",
+ columns: table => new
+ {
+ Id = table.Column(type: "INTEGER", nullable: false)
+ .Annotation("Sqlite:Autoincrement", true),
+ EntityId = table.Column(type: "TEXT", maxLength: 200, nullable: false),
+ DisplayName = table.Column(type: "TEXT", maxLength: 200, nullable: true),
+ Description = table.Column(type: "TEXT", maxLength: 1000, nullable: true),
+ Enabled = table.Column(type: "INTEGER", nullable: false),
+ ClockSkewSeconds = table.Column(type: "REAL", nullable: true),
+ RequestMaxAgeSeconds = table.Column(type: "REAL", nullable: true),
+ AssertionLifetimeSeconds = table.Column(type: "REAL", nullable: true),
+ RequireSignedAuthnRequests = table.Column(type: "INTEGER", nullable: true),
+ RequireSignedLogoutResponses = table.Column(type: "INTEGER", nullable: true),
+ AllowIdpInitiated = table.Column(type: "INTEGER", nullable: false),
+ DefaultNameIdFormat = table.Column(type: "TEXT", maxLength: 2000, nullable: true),
+ EmailNameIdClaimType = table.Column(type: "TEXT", maxLength: 200, nullable: true),
+ SigningBehavior = table.Column(type: "INTEGER", nullable: true),
+ AllowedSignatureAlgorithms = table.Column(type: "TEXT", nullable: true),
+ Created = table.Column(type: "TEXT", nullable: false),
+ Updated = table.Column(type: "TEXT", nullable: true),
+ LastAccessed = table.Column(type: "TEXT", nullable: true),
+ NonEditable = table.Column(type: "INTEGER", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_SamlServiceProviders", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "SamlAllowedScopes",
+ columns: table => new
+ {
+ Id = table.Column(type: "INTEGER", nullable: false)
+ .Annotation("Sqlite:Autoincrement", true),
+ Scope = table.Column(type: "TEXT", maxLength: 200, nullable: false),
+ SamlServiceProviderId = table.Column(type: "INTEGER", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_SamlAllowedScopes", x => x.Id);
+ table.ForeignKey(
+ name: "FK_SamlAllowedScopes_SamlServiceProviders_SamlServiceProviderId",
+ column: x => x.SamlServiceProviderId,
+ principalTable: "SamlServiceProviders",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "SamlAssertionConsumerServices",
+ columns: table => new
+ {
+ Id = table.Column(type: "INTEGER", nullable: false)
+ .Annotation("Sqlite:Autoincrement", true),
+ Location = table.Column(type: "TEXT", maxLength: 400, nullable: false),
+ Binding = table.Column(type: "TEXT", maxLength: 200, nullable: false),
+ Index = table.Column(type: "INTEGER", nullable: false),
+ IsDefault = table.Column(type: "INTEGER", nullable: false),
+ SamlServiceProviderId = table.Column(type: "INTEGER", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_SamlAssertionConsumerServices", x => x.Id);
+ table.ForeignKey(
+ name: "FK_SamlAssertionConsumerServices_SamlServiceProviders_SamlServiceProviderId",
+ column: x => x.SamlServiceProviderId,
+ principalTable: "SamlServiceProviders",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "SamlAuthnContextMappings",
+ columns: table => new
+ {
+ Id = table.Column(type: "INTEGER", nullable: false)
+ .Annotation("Sqlite:Autoincrement", true),
+ OidcValue = table.Column(type: "TEXT", maxLength: 250, nullable: false),
+ SamlAuthnContextClassRef = table.Column(type: "TEXT", maxLength: 500, nullable: false),
+ SamlServiceProviderId = table.Column(type: "INTEGER", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_SamlAuthnContextMappings", x => x.Id);
+ table.ForeignKey(
+ name: "FK_SamlAuthnContextMappings_SamlServiceProviders_SamlServiceProviderId",
+ column: x => x.SamlServiceProviderId,
+ principalTable: "SamlServiceProviders",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "SamlCertificates",
+ columns: table => new
+ {
+ Id = table.Column(type: "INTEGER", nullable: false)
+ .Annotation("Sqlite:Autoincrement", true),
+ Data = table.Column(type: "TEXT", maxLength: 4000, nullable: false),
+ Use = table.Column(type: "INTEGER", nullable: false),
+ SamlServiceProviderId = table.Column(type: "INTEGER", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_SamlCertificates", x => x.Id);
+ table.ForeignKey(
+ name: "FK_SamlCertificates_SamlServiceProviders_SamlServiceProviderId",
+ column: x => x.SamlServiceProviderId,
+ principalTable: "SamlServiceProviders",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "SamlClaimMappings",
+ columns: table => new
+ {
+ Id = table.Column(type: "INTEGER", nullable: false)
+ .Annotation("Sqlite:Autoincrement", true),
+ ClaimType = table.Column(type: "TEXT", maxLength: 250, nullable: false),
+ SamlAttributeName = table.Column(type: "TEXT", maxLength: 250, nullable: false),
+ SamlServiceProviderId = table.Column(type: "INTEGER", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_SamlClaimMappings", x => x.Id);
+ table.ForeignKey(
+ name: "FK_SamlClaimMappings_SamlServiceProviders_SamlServiceProviderId",
+ column: x => x.SamlServiceProviderId,
+ principalTable: "SamlServiceProviders",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "SamlRequestedClaimTypes",
+ columns: table => new
+ {
+ Id = table.Column(type: "INTEGER", nullable: false)
+ .Annotation("Sqlite:Autoincrement", true),
+ ClaimType = table.Column(type: "TEXT", maxLength: 250, nullable: false),
+ SamlServiceProviderId = table.Column(type: "INTEGER", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_SamlRequestedClaimTypes", x => x.Id);
+ table.ForeignKey(
+ name: "FK_SamlRequestedClaimTypes_SamlServiceProviders_SamlServiceProviderId",
+ column: x => x.SamlServiceProviderId,
+ principalTable: "SamlServiceProviders",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "SamlSingleLogoutServices",
+ columns: table => new
+ {
+ Id = table.Column(type: "INTEGER", nullable: false)
+ .Annotation("Sqlite:Autoincrement", true),
+ Location = table.Column(type: "TEXT", maxLength: 400, nullable: false),
+ Binding = table.Column