diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Internal/RecreateInitialMigrationCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Internal/RecreateInitialMigrationCommand.cs
index 857edf6bd7..2b65b9d00b 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Internal/RecreateInitialMigrationCommand.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Internal/RecreateInitialMigrationCommand.cs
@@ -47,6 +47,7 @@ public class RecreateInitialMigrationCommand : IConsoleCommand, ITransientDepend
Directory.Delete(Path.Combine(projectDir, "Migrations"), true);
}
+ CmdHelper.RunCmd($"dotnet build", workingDirectory: projectDir);
var separateDbContext = false;
if (Directory.Exists(Path.Combine(projectDir, "TenantMigrations")))
{
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20251020063503_Initial.Designer.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20251218020112_Initial.Designer.cs
similarity index 94%
rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20251020063503_Initial.Designer.cs
rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20251218020112_Initial.Designer.cs
index 6a2f32045a..decbedad69 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20251020063503_Initial.Designer.cs
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20251218020112_Initial.Designer.cs
@@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
{
[DbContext(typeof(MyProjectNameDbContext))]
- [Migration("20251020063503_Initial")]
+ [Migration("20251218020112_Initial")]
partial class Initial
{
///
@@ -22,7 +22,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
- .HasAnnotation("ProductVersion", "10.0.0-rc.2.25502.107")
+ .HasAnnotation("ProductVersion", "10.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
@@ -821,6 +821,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
b.Property("LastPasswordChangeTime")
.HasColumnType("datetimeoffset");
+ b.Property("LastSignInTime")
+ .HasColumnType("datetimeoffset");
+
b.Property("LockoutEnabled")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
@@ -1017,6 +1020,26 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
b.ToTable("AbpUserOrganizationUnits", (string)null);
});
+ modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b =>
+ {
+ b.Property("CredentialId")
+ .HasMaxLength(1024)
+ .HasColumnType("varbinary(1024)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("UserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("CredentialId");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("AbpUserPasskeys", (string)null);
+ });
+
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b =>
{
b.Property("UserId")
@@ -1506,13 +1529,16 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
.HasColumnName("ExtraProperties");
b.Property("GroupName")
- .IsRequired()
.HasMaxLength(128)
.HasColumnType("nvarchar(128)");
b.Property("IsEnabled")
.HasColumnType("bit");
+ b.Property("ManagementPermissionName")
+ .HasMaxLength(128)
+ .HasColumnType("nvarchar(128)");
+
b.Property("MultiTenancySide")
.HasColumnType("tinyint");
@@ -1529,6 +1555,10 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
.HasMaxLength(128)
.HasColumnType("nvarchar(128)");
+ b.Property("ResourceName")
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
b.Property("StateCheckers")
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
@@ -1537,8 +1567,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
b.HasIndex("GroupName");
- b.HasIndex("Name")
- .IsUnique();
+ b.HasIndex("ResourceName", "Name")
+ .IsUnique()
+ .HasFilter("[ResourceName] IS NOT NULL");
b.ToTable("AbpPermissions", (string)null);
});
@@ -1605,6 +1636,50 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
b.ToTable("AbpPermissionGroups", (string)null);
});
+ modelBuilder.Entity("Volo.Abp.PermissionManagement.ResourcePermissionGrant", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("nvarchar(128)");
+
+ b.Property("ProviderKey")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ProviderName")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ResourceKey")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("ResourceName")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId", "Name", "ResourceName", "ResourceKey", "ProviderName", "ProviderKey")
+ .IsUnique()
+ .HasFilter("[TenantId] IS NOT NULL");
+
+ b.ToTable("AbpResourcePermissionGrants", (string)null);
+ });
+
modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b =>
{
b.Property("Id")
@@ -1845,6 +1920,51 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
.IsRequired();
});
+ modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b =>
+ {
+ b.HasOne("Volo.Abp.Identity.IdentityUser", null)
+ .WithMany("Passkeys")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.OwnsOne("Volo.Abp.Identity.IdentityPasskeyData", "Data", b1 =>
+ {
+ b1.Property("IdentityUserPasskeyCredentialId");
+
+ b1.Property("AttestationObject");
+
+ b1.Property("ClientDataJson");
+
+ b1.Property("CreatedAt");
+
+ b1.Property("IsBackedUp");
+
+ b1.Property("IsBackupEligible");
+
+ b1.Property("IsUserVerified");
+
+ b1.Property("Name");
+
+ b1.Property("PublicKey");
+
+ b1.Property("SignCount");
+
+ b1.PrimitiveCollection("Transports");
+
+ b1.HasKey("IdentityUserPasskeyCredentialId");
+
+ b1.ToTable("AbpUserPasskeys");
+
+ b1.ToJson("Data");
+
+ b1.WithOwner()
+ .HasForeignKey("IdentityUserPasskeyCredentialId");
+ });
+
+ b.Navigation("Data");
+ });
+
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b =>
{
b.HasOne("Volo.Abp.Identity.IdentityUser", null)
@@ -1952,6 +2072,8 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
b.Navigation("OrganizationUnits");
+ b.Navigation("Passkeys");
+
b.Navigation("PasswordHistories");
b.Navigation("Roles");
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20251020063503_Initial.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20251218020112_Initial.cs
similarity index 94%
rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20251020063503_Initial.cs
rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20251218020112_Initial.cs
index 8538b6a79a..15dc0c422b 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20251020063503_Initial.cs
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20251218020112_Initial.cs
@@ -211,8 +211,10 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
columns: table => new
{
Id = table.Column(type: "uniqueidentifier", nullable: false),
- GroupName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false),
+ GroupName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true),
Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false),
+ ResourceName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true),
+ ManagementPermissionName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true),
ParentName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true),
DisplayName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false),
IsEnabled = table.Column(type: "bit", nullable: false),
@@ -226,6 +228,23 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
table.PrimaryKey("PK_AbpPermissions", x => x.Id);
});
+ migrationBuilder.CreateTable(
+ name: "AbpResourcePermissionGrants",
+ columns: table => new
+ {
+ Id = table.Column(type: "uniqueidentifier", nullable: false),
+ TenantId = table.Column(type: "uniqueidentifier", nullable: true),
+ Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false),
+ ProviderName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false),
+ ProviderKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false),
+ ResourceName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false),
+ ResourceKey = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_AbpResourcePermissionGrants", x => x.Id);
+ });
+
migrationBuilder.CreateTable(
name: "AbpRoles",
columns: table => new
@@ -393,6 +412,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
ShouldChangePasswordOnNextLogin = table.Column(type: "bit", nullable: false),
EntityVersion = table.Column(type: "int", nullable: false),
LastPasswordChangeTime = table.Column(type: "datetimeoffset", nullable: true),
+ LastSignInTime = table.Column(type: "datetimeoffset", nullable: true),
ExtraProperties = table.Column(type: "nvarchar(max)", nullable: false),
ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false),
CreationTime = table.Column(type: "datetime2", nullable: false),
@@ -658,6 +678,26 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
onDelete: ReferentialAction.Cascade);
});
+ migrationBuilder.CreateTable(
+ name: "AbpUserPasskeys",
+ columns: table => new
+ {
+ CredentialId = table.Column(type: "varbinary(1024)", maxLength: 1024, nullable: false),
+ TenantId = table.Column(type: "uniqueidentifier", nullable: true),
+ UserId = table.Column(type: "uniqueidentifier", nullable: false),
+ Data = table.Column(type: "nvarchar(max)", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_AbpUserPasskeys", x => x.CredentialId);
+ table.ForeignKey(
+ name: "FK_AbpUserPasskeys_AbpUsers_UserId",
+ column: x => x.UserId,
+ principalTable: "AbpUsers",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
migrationBuilder.CreateTable(
name: "AbpUserPasswordHistories",
columns: table => new
@@ -906,10 +946,18 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
column: "GroupName");
migrationBuilder.CreateIndex(
- name: "IX_AbpPermissions_Name",
+ name: "IX_AbpPermissions_ResourceName_Name",
table: "AbpPermissions",
- column: "Name",
- unique: true);
+ columns: new[] { "ResourceName", "Name" },
+ unique: true,
+ filter: "[ResourceName] IS NOT NULL");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_AbpResourcePermissionGrants_TenantId_Name_ResourceName_ResourceKey_ProviderName_ProviderKey",
+ table: "AbpResourcePermissionGrants",
+ columns: new[] { "TenantId", "Name", "ResourceName", "ResourceKey", "ProviderName", "ProviderKey" },
+ unique: true,
+ filter: "[TenantId] IS NOT NULL");
migrationBuilder.CreateIndex(
name: "IX_AbpRoleClaims_RoleId",
@@ -994,6 +1042,11 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
table: "AbpUserOrganizationUnits",
columns: new[] { "UserId", "OrganizationUnitId" });
+ migrationBuilder.CreateIndex(
+ name: "IX_AbpUserPasskeys_UserId",
+ table: "AbpUserPasskeys",
+ column: "UserId");
+
migrationBuilder.CreateIndex(
name: "IX_AbpUserRoles_RoleId_UserId",
table: "AbpUserRoles",
@@ -1089,6 +1142,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
migrationBuilder.DropTable(
name: "AbpPermissions");
+ migrationBuilder.DropTable(
+ name: "AbpResourcePermissionGrants");
+
migrationBuilder.DropTable(
name: "AbpRoleClaims");
@@ -1119,6 +1175,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
migrationBuilder.DropTable(
name: "AbpUserOrganizationUnits");
+ migrationBuilder.DropTable(
+ name: "AbpUserPasskeys");
+
migrationBuilder.DropTable(
name: "AbpUserPasswordHistories");
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs
index 1925f69fb3..d6e1ddae45 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs
@@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
- .HasAnnotation("ProductVersion", "10.0.0-rc.2.25502.107")
+ .HasAnnotation("ProductVersion", "10.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
@@ -818,6 +818,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
b.Property("LastPasswordChangeTime")
.HasColumnType("datetimeoffset");
+ b.Property("LastSignInTime")
+ .HasColumnType("datetimeoffset");
+
b.Property("LockoutEnabled")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
@@ -1014,6 +1017,26 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
b.ToTable("AbpUserOrganizationUnits", (string)null);
});
+ modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b =>
+ {
+ b.Property("CredentialId")
+ .HasMaxLength(1024)
+ .HasColumnType("varbinary(1024)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("UserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("CredentialId");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("AbpUserPasskeys", (string)null);
+ });
+
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b =>
{
b.Property("UserId")
@@ -1503,13 +1526,16 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
.HasColumnName("ExtraProperties");
b.Property("GroupName")
- .IsRequired()
.HasMaxLength(128)
.HasColumnType("nvarchar(128)");
b.Property("IsEnabled")
.HasColumnType("bit");
+ b.Property("ManagementPermissionName")
+ .HasMaxLength(128)
+ .HasColumnType("nvarchar(128)");
+
b.Property("MultiTenancySide")
.HasColumnType("tinyint");
@@ -1526,6 +1552,10 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
.HasMaxLength(128)
.HasColumnType("nvarchar(128)");
+ b.Property("ResourceName")
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
b.Property("StateCheckers")
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
@@ -1534,8 +1564,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
b.HasIndex("GroupName");
- b.HasIndex("Name")
- .IsUnique();
+ b.HasIndex("ResourceName", "Name")
+ .IsUnique()
+ .HasFilter("[ResourceName] IS NOT NULL");
b.ToTable("AbpPermissions", (string)null);
});
@@ -1602,6 +1633,50 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
b.ToTable("AbpPermissionGroups", (string)null);
});
+ modelBuilder.Entity("Volo.Abp.PermissionManagement.ResourcePermissionGrant", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("nvarchar(128)");
+
+ b.Property("ProviderKey")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ProviderName")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ResourceKey")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("ResourceName")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId", "Name", "ResourceName", "ResourceKey", "ProviderName", "ProviderKey")
+ .IsUnique()
+ .HasFilter("[TenantId] IS NOT NULL");
+
+ b.ToTable("AbpResourcePermissionGrants", (string)null);
+ });
+
modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b =>
{
b.Property("Id")
@@ -1842,6 +1917,51 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
.IsRequired();
});
+ modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b =>
+ {
+ b.HasOne("Volo.Abp.Identity.IdentityUser", null)
+ .WithMany("Passkeys")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.OwnsOne("Volo.Abp.Identity.IdentityPasskeyData", "Data", b1 =>
+ {
+ b1.Property("IdentityUserPasskeyCredentialId");
+
+ b1.Property("AttestationObject");
+
+ b1.Property("ClientDataJson");
+
+ b1.Property("CreatedAt");
+
+ b1.Property("IsBackedUp");
+
+ b1.Property("IsBackupEligible");
+
+ b1.Property("IsUserVerified");
+
+ b1.Property("Name");
+
+ b1.Property("PublicKey");
+
+ b1.Property("SignCount");
+
+ b1.PrimitiveCollection("Transports");
+
+ b1.HasKey("IdentityUserPasskeyCredentialId");
+
+ b1.ToTable("AbpUserPasskeys");
+
+ b1.ToJson("Data");
+
+ b1.WithOwner()
+ .HasForeignKey("IdentityUserPasskeyCredentialId");
+ });
+
+ b.Navigation("Data");
+ });
+
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b =>
{
b.HasOne("Volo.Abp.Identity.IdentityUser", null)
@@ -1949,6 +2069,8 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
b.Navigation("OrganizationUnits");
+ b.Navigation("Passkeys");
+
b.Navigation("PasswordHistories");
b.Navigation("Roles");
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20251020063514_Initial.Designer.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20251218020330_Initial.Designer.cs
similarity index 94%
rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20251020063514_Initial.Designer.cs
rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20251218020330_Initial.Designer.cs
index 873b170642..90e5f9a3cd 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20251020063514_Initial.Designer.cs
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20251218020330_Initial.Designer.cs
@@ -5,7 +5,7 @@ using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using MyCompanyName.MyProjectName.EntityFrameworkCore;
+using MyCompanyName.MyProjectName.Data;
using Volo.Abp.EntityFrameworkCore;
#nullable disable
@@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace MyCompanyName.MyProjectName.Migrations
{
[DbContext(typeof(MyProjectNameDbContext))]
- [Migration("20251020063514_Initial")]
+ [Migration("20251218020330_Initial")]
partial class Initial
{
///
@@ -22,7 +22,7 @@ namespace MyCompanyName.MyProjectName.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
- .HasAnnotation("ProductVersion", "10.0.0-rc.2.25502.107")
+ .HasAnnotation("ProductVersion", "10.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
@@ -318,70 +318,6 @@ namespace MyCompanyName.MyProjectName.Migrations
b.ToTable("AbpEntityPropertyChanges", (string)null);
});
- modelBuilder.Entity("Volo.Abp.BackgroundJobs.BackgroundJobRecord", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("uniqueidentifier");
-
- b.Property("ApplicationName")
- .HasMaxLength(96)
- .HasColumnType("nvarchar(96)");
-
- b.Property("ConcurrencyStamp")
- .IsConcurrencyToken()
- .IsRequired()
- .HasMaxLength(40)
- .HasColumnType("nvarchar(40)")
- .HasColumnName("ConcurrencyStamp");
-
- b.Property("CreationTime")
- .HasColumnType("datetime2")
- .HasColumnName("CreationTime");
-
- b.Property("ExtraProperties")
- .IsRequired()
- .HasColumnType("nvarchar(max)")
- .HasColumnName("ExtraProperties");
-
- b.Property("IsAbandoned")
- .ValueGeneratedOnAdd()
- .HasColumnType("bit")
- .HasDefaultValue(false);
-
- b.Property("JobArgs")
- .IsRequired()
- .HasMaxLength(1048576)
- .HasColumnType("nvarchar(max)");
-
- b.Property("JobName")
- .IsRequired()
- .HasMaxLength(128)
- .HasColumnType("nvarchar(128)");
-
- b.Property("LastTryTime")
- .HasColumnType("datetime2");
-
- b.Property("NextTryTime")
- .HasColumnType("datetime2");
-
- b.Property("Priority")
- .ValueGeneratedOnAdd()
- .HasColumnType("tinyint")
- .HasDefaultValue((byte)15);
-
- b.Property("TryCount")
- .ValueGeneratedOnAdd()
- .HasColumnType("smallint")
- .HasDefaultValue((short)0);
-
- b.HasKey("Id");
-
- b.HasIndex("IsAbandoned", "NextTryTime");
-
- b.ToTable("AbpBackgroundJobs", (string)null);
- });
-
modelBuilder.Entity("Volo.Abp.FeatureManagement.FeatureDefinitionRecord", b =>
{
b.Property("Id")
@@ -507,6 +443,7 @@ namespace MyCompanyName.MyProjectName.Migrations
modelBuilder.Entity("Volo.Abp.Identity.IdentityClaimType", b =>
{
b.Property("Id")
+ .ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("ConcurrencyStamp")
@@ -559,6 +496,7 @@ namespace MyCompanyName.MyProjectName.Migrations
modelBuilder.Entity("Volo.Abp.Identity.IdentityLinkUser", b =>
{
b.Property("Id")
+ .ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("SourceTenantId")
@@ -585,6 +523,7 @@ namespace MyCompanyName.MyProjectName.Migrations
modelBuilder.Entity("Volo.Abp.Identity.IdentityRole", b =>
{
b.Property("Id")
+ .ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("ConcurrencyStamp")
@@ -670,6 +609,7 @@ namespace MyCompanyName.MyProjectName.Migrations
modelBuilder.Entity("Volo.Abp.Identity.IdentitySecurityLog", b =>
{
b.Property("Id")
+ .ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("Action")
@@ -746,6 +686,7 @@ namespace MyCompanyName.MyProjectName.Migrations
modelBuilder.Entity("Volo.Abp.Identity.IdentitySession", b =>
{
b.Property("Id")
+ .ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("ClientId")
@@ -801,6 +742,7 @@ namespace MyCompanyName.MyProjectName.Migrations
modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b =>
{
b.Property("Id")
+ .ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("AccessFailedCount")
@@ -879,6 +821,9 @@ namespace MyCompanyName.MyProjectName.Migrations
b.Property("LastPasswordChangeTime")
.HasColumnType("datetimeoffset");
+ b.Property("LastSignInTime")
+ .HasColumnType("datetimeoffset");
+
b.Property("LockoutEnabled")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
@@ -995,6 +940,7 @@ namespace MyCompanyName.MyProjectName.Migrations
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserDelegation", b =>
{
b.Property("Id")
+ .ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("EndTime")
@@ -1074,6 +1020,26 @@ namespace MyCompanyName.MyProjectName.Migrations
b.ToTable("AbpUserOrganizationUnits", (string)null);
});
+ modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b =>
+ {
+ b.Property("CredentialId")
+ .HasMaxLength(1024)
+ .HasColumnType("varbinary(1024)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("UserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("CredentialId");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("AbpUserPasskeys", (string)null);
+ });
+
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b =>
{
b.Property("UserId")
@@ -1142,6 +1108,7 @@ namespace MyCompanyName.MyProjectName.Migrations
modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnit", b =>
{
b.Property("Id")
+ .ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("Code")
@@ -1562,13 +1529,16 @@ namespace MyCompanyName.MyProjectName.Migrations
.HasColumnName("ExtraProperties");
b.Property("GroupName")
- .IsRequired()
.HasMaxLength(128)
.HasColumnType("nvarchar(128)");
b.Property("IsEnabled")
.HasColumnType("bit");
+ b.Property("ManagementPermissionName")
+ .HasMaxLength(128)
+ .HasColumnType("nvarchar(128)");
+
b.Property("MultiTenancySide")
.HasColumnType("tinyint");
@@ -1585,6 +1555,10 @@ namespace MyCompanyName.MyProjectName.Migrations
.HasMaxLength(128)
.HasColumnType("nvarchar(128)");
+ b.Property("ResourceName")
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
b.Property("StateCheckers")
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
@@ -1593,8 +1567,9 @@ namespace MyCompanyName.MyProjectName.Migrations
b.HasIndex("GroupName");
- b.HasIndex("Name")
- .IsUnique();
+ b.HasIndex("ResourceName", "Name")
+ .IsUnique()
+ .HasFilter("[ResourceName] IS NOT NULL");
b.ToTable("AbpPermissions", (string)null);
});
@@ -1661,6 +1636,50 @@ namespace MyCompanyName.MyProjectName.Migrations
b.ToTable("AbpPermissionGroups", (string)null);
});
+ modelBuilder.Entity("Volo.Abp.PermissionManagement.ResourcePermissionGrant", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("nvarchar(128)");
+
+ b.Property("ProviderKey")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ProviderName")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ResourceKey")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("ResourceName")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId", "Name", "ResourceName", "ResourceKey", "ProviderName", "ProviderKey")
+ .IsUnique()
+ .HasFilter("[TenantId] IS NOT NULL");
+
+ b.ToTable("AbpResourcePermissionGrants", (string)null);
+ });
+
modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b =>
{
b.Property("Id")
@@ -1746,6 +1765,7 @@ namespace MyCompanyName.MyProjectName.Migrations
modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b =>
{
b.Property("Id")
+ .ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("ConcurrencyStamp")
@@ -1900,6 +1920,51 @@ namespace MyCompanyName.MyProjectName.Migrations
.IsRequired();
});
+ modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b =>
+ {
+ b.HasOne("Volo.Abp.Identity.IdentityUser", null)
+ .WithMany("Passkeys")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.OwnsOne("Volo.Abp.Identity.IdentityPasskeyData", "Data", b1 =>
+ {
+ b1.Property("IdentityUserPasskeyCredentialId");
+
+ b1.Property("AttestationObject");
+
+ b1.Property("ClientDataJson");
+
+ b1.Property("CreatedAt");
+
+ b1.Property("IsBackedUp");
+
+ b1.Property("IsBackupEligible");
+
+ b1.Property("IsUserVerified");
+
+ b1.Property("Name");
+
+ b1.Property("PublicKey");
+
+ b1.Property("SignCount");
+
+ b1.PrimitiveCollection("Transports");
+
+ b1.HasKey("IdentityUserPasskeyCredentialId");
+
+ b1.ToTable("AbpUserPasskeys");
+
+ b1.ToJson("Data");
+
+ b1.WithOwner()
+ .HasForeignKey("IdentityUserPasskeyCredentialId");
+ });
+
+ b.Navigation("Data");
+ });
+
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b =>
{
b.HasOne("Volo.Abp.Identity.IdentityUser", null)
@@ -2007,6 +2072,8 @@ namespace MyCompanyName.MyProjectName.Migrations
b.Navigation("OrganizationUnits");
+ b.Navigation("Passkeys");
+
b.Navigation("PasswordHistories");
b.Navigation("Roles");
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20251020063514_Initial.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20251218020330_Initial.cs
similarity index 95%
rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20251020063514_Initial.cs
rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20251218020330_Initial.cs
index c1814d92ad..3ba2c09d6f 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20251020063514_Initial.cs
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20251218020330_Initial.cs
@@ -60,28 +60,6 @@ namespace MyCompanyName.MyProjectName.Migrations
table.PrimaryKey("PK_AbpAuditLogs", x => x.Id);
});
- migrationBuilder.CreateTable(
- name: "AbpBackgroundJobs",
- columns: table => new
- {
- Id = table.Column(type: "uniqueidentifier", nullable: false),
- ApplicationName = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true),
- JobName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false),
- JobArgs = table.Column(type: "nvarchar(max)", maxLength: 1048576, nullable: false),
- TryCount = table.Column(type: "smallint", nullable: false, defaultValue: (short)0),
- CreationTime = table.Column(type: "datetime2", nullable: false),
- NextTryTime = table.Column(type: "datetime2", nullable: false),
- LastTryTime = table.Column(type: "datetime2", nullable: true),
- IsAbandoned = table.Column(type: "bit", nullable: false, defaultValue: false),
- Priority = table.Column(type: "tinyint", nullable: false, defaultValue: (byte)15),
- ExtraProperties = table.Column(type: "nvarchar(max)", nullable: false),
- ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpBackgroundJobs", x => x.Id);
- });
-
migrationBuilder.CreateTable(
name: "AbpClaimTypes",
columns: table => new
@@ -233,8 +211,10 @@ namespace MyCompanyName.MyProjectName.Migrations
columns: table => new
{
Id = table.Column(type: "uniqueidentifier", nullable: false),
- GroupName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false),
+ GroupName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true),
Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false),
+ ResourceName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true),
+ ManagementPermissionName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true),
ParentName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true),
DisplayName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false),
IsEnabled = table.Column(type: "bit", nullable: false),
@@ -248,6 +228,23 @@ namespace MyCompanyName.MyProjectName.Migrations
table.PrimaryKey("PK_AbpPermissions", x => x.Id);
});
+ migrationBuilder.CreateTable(
+ name: "AbpResourcePermissionGrants",
+ columns: table => new
+ {
+ Id = table.Column(type: "uniqueidentifier", nullable: false),
+ TenantId = table.Column(type: "uniqueidentifier", nullable: true),
+ Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false),
+ ProviderName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false),
+ ProviderKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false),
+ ResourceName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false),
+ ResourceKey = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_AbpResourcePermissionGrants", x => x.Id);
+ });
+
migrationBuilder.CreateTable(
name: "AbpRoles",
columns: table => new
@@ -415,6 +412,7 @@ namespace MyCompanyName.MyProjectName.Migrations
ShouldChangePasswordOnNextLogin = table.Column(type: "bit", nullable: false),
EntityVersion = table.Column(type: "int", nullable: false),
LastPasswordChangeTime = table.Column(type: "datetimeoffset", nullable: true),
+ LastSignInTime = table.Column(type: "datetimeoffset", nullable: true),
ExtraProperties = table.Column(type: "nvarchar(max)", nullable: false),
ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false),
CreationTime = table.Column(type: "datetime2", nullable: false),
@@ -680,6 +678,26 @@ namespace MyCompanyName.MyProjectName.Migrations
onDelete: ReferentialAction.Cascade);
});
+ migrationBuilder.CreateTable(
+ name: "AbpUserPasskeys",
+ columns: table => new
+ {
+ CredentialId = table.Column(type: "varbinary(1024)", maxLength: 1024, nullable: false),
+ TenantId = table.Column(type: "uniqueidentifier", nullable: true),
+ UserId = table.Column(type: "uniqueidentifier", nullable: false),
+ Data = table.Column(type: "nvarchar(max)", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_AbpUserPasskeys", x => x.CredentialId);
+ table.ForeignKey(
+ name: "FK_AbpUserPasskeys_AbpUsers_UserId",
+ column: x => x.UserId,
+ principalTable: "AbpUsers",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
migrationBuilder.CreateTable(
name: "AbpUserPasswordHistories",
columns: table => new
@@ -848,11 +866,6 @@ namespace MyCompanyName.MyProjectName.Migrations
table: "AbpAuditLogs",
columns: new[] { "TenantId", "UserId", "ExecutionTime" });
- migrationBuilder.CreateIndex(
- name: "IX_AbpBackgroundJobs_IsAbandoned_NextTryTime",
- table: "AbpBackgroundJobs",
- columns: new[] { "IsAbandoned", "NextTryTime" });
-
migrationBuilder.CreateIndex(
name: "IX_AbpEntityChanges_AuditLogId",
table: "AbpEntityChanges",
@@ -933,10 +946,18 @@ namespace MyCompanyName.MyProjectName.Migrations
column: "GroupName");
migrationBuilder.CreateIndex(
- name: "IX_AbpPermissions_Name",
+ name: "IX_AbpPermissions_ResourceName_Name",
table: "AbpPermissions",
- column: "Name",
- unique: true);
+ columns: new[] { "ResourceName", "Name" },
+ unique: true,
+ filter: "[ResourceName] IS NOT NULL");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_AbpResourcePermissionGrants_TenantId_Name_ResourceName_ResourceKey_ProviderName_ProviderKey",
+ table: "AbpResourcePermissionGrants",
+ columns: new[] { "TenantId", "Name", "ResourceName", "ResourceKey", "ProviderName", "ProviderKey" },
+ unique: true,
+ filter: "[TenantId] IS NOT NULL");
migrationBuilder.CreateIndex(
name: "IX_AbpRoleClaims_RoleId",
@@ -1021,6 +1042,11 @@ namespace MyCompanyName.MyProjectName.Migrations
table: "AbpUserOrganizationUnits",
columns: new[] { "UserId", "OrganizationUnitId" });
+ migrationBuilder.CreateIndex(
+ name: "IX_AbpUserPasskeys_UserId",
+ table: "AbpUserPasskeys",
+ column: "UserId");
+
migrationBuilder.CreateIndex(
name: "IX_AbpUserRoles_RoleId_UserId",
table: "AbpUserRoles",
@@ -1086,9 +1112,6 @@ namespace MyCompanyName.MyProjectName.Migrations
migrationBuilder.DropTable(
name: "AbpAuditLogExcelFiles");
- migrationBuilder.DropTable(
- name: "AbpBackgroundJobs");
-
migrationBuilder.DropTable(
name: "AbpClaimTypes");
@@ -1119,6 +1142,9 @@ namespace MyCompanyName.MyProjectName.Migrations
migrationBuilder.DropTable(
name: "AbpPermissions");
+ migrationBuilder.DropTable(
+ name: "AbpResourcePermissionGrants");
+
migrationBuilder.DropTable(
name: "AbpRoleClaims");
@@ -1149,6 +1175,9 @@ namespace MyCompanyName.MyProjectName.Migrations
migrationBuilder.DropTable(
name: "AbpUserOrganizationUnits");
+ migrationBuilder.DropTable(
+ name: "AbpUserPasskeys");
+
migrationBuilder.DropTable(
name: "AbpUserPasswordHistories");
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/MyProjectNameDbContextModelSnapshot.cs
index 18f4b1628f..71ca921e11 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/MyProjectNameDbContextModelSnapshot.cs
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/MyProjectNameDbContextModelSnapshot.cs
@@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
- .HasAnnotation("ProductVersion", "10.0.0-rc.2.25502.107")
+ .HasAnnotation("ProductVersion", "10.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
@@ -818,6 +818,9 @@ namespace MyCompanyName.MyProjectName.Migrations
b.Property("LastPasswordChangeTime")
.HasColumnType("datetimeoffset");
+ b.Property("LastSignInTime")
+ .HasColumnType("datetimeoffset");
+
b.Property("LockoutEnabled")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
@@ -1014,6 +1017,26 @@ namespace MyCompanyName.MyProjectName.Migrations
b.ToTable("AbpUserOrganizationUnits", (string)null);
});
+ modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b =>
+ {
+ b.Property("CredentialId")
+ .HasMaxLength(1024)
+ .HasColumnType("varbinary(1024)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("UserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("CredentialId");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("AbpUserPasskeys", (string)null);
+ });
+
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b =>
{
b.Property("UserId")
@@ -1503,13 +1526,16 @@ namespace MyCompanyName.MyProjectName.Migrations
.HasColumnName("ExtraProperties");
b.Property("GroupName")
- .IsRequired()
.HasMaxLength(128)
.HasColumnType("nvarchar(128)");
b.Property("IsEnabled")
.HasColumnType("bit");
+ b.Property("ManagementPermissionName")
+ .HasMaxLength(128)
+ .HasColumnType("nvarchar(128)");
+
b.Property("MultiTenancySide")
.HasColumnType("tinyint");
@@ -1526,6 +1552,10 @@ namespace MyCompanyName.MyProjectName.Migrations
.HasMaxLength(128)
.HasColumnType("nvarchar(128)");
+ b.Property("ResourceName")
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
b.Property("StateCheckers")
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
@@ -1534,8 +1564,9 @@ namespace MyCompanyName.MyProjectName.Migrations
b.HasIndex("GroupName");
- b.HasIndex("Name")
- .IsUnique();
+ b.HasIndex("ResourceName", "Name")
+ .IsUnique()
+ .HasFilter("[ResourceName] IS NOT NULL");
b.ToTable("AbpPermissions", (string)null);
});
@@ -1602,6 +1633,50 @@ namespace MyCompanyName.MyProjectName.Migrations
b.ToTable("AbpPermissionGroups", (string)null);
});
+ modelBuilder.Entity("Volo.Abp.PermissionManagement.ResourcePermissionGrant", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("nvarchar(128)");
+
+ b.Property("ProviderKey")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ProviderName")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ResourceKey")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("ResourceName")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId", "Name", "ResourceName", "ResourceKey", "ProviderName", "ProviderKey")
+ .IsUnique()
+ .HasFilter("[TenantId] IS NOT NULL");
+
+ b.ToTable("AbpResourcePermissionGrants", (string)null);
+ });
+
modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b =>
{
b.Property("Id")
@@ -1842,6 +1917,51 @@ namespace MyCompanyName.MyProjectName.Migrations
.IsRequired();
});
+ modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b =>
+ {
+ b.HasOne("Volo.Abp.Identity.IdentityUser", null)
+ .WithMany("Passkeys")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.OwnsOne("Volo.Abp.Identity.IdentityPasskeyData", "Data", b1 =>
+ {
+ b1.Property("IdentityUserPasskeyCredentialId");
+
+ b1.Property("AttestationObject");
+
+ b1.Property("ClientDataJson");
+
+ b1.Property("CreatedAt");
+
+ b1.Property("IsBackedUp");
+
+ b1.Property("IsBackupEligible");
+
+ b1.Property("IsUserVerified");
+
+ b1.Property("Name");
+
+ b1.Property("PublicKey");
+
+ b1.Property("SignCount");
+
+ b1.PrimitiveCollection("Transports");
+
+ b1.HasKey("IdentityUserPasskeyCredentialId");
+
+ b1.ToTable("AbpUserPasskeys");
+
+ b1.ToJson("Data");
+
+ b1.WithOwner()
+ .HasForeignKey("IdentityUserPasskeyCredentialId");
+ });
+
+ b.Navigation("Data");
+ });
+
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b =>
{
b.HasOne("Volo.Abp.Identity.IdentityUser", null)
@@ -1949,6 +2069,8 @@ namespace MyCompanyName.MyProjectName.Migrations
b.Navigation("OrganizationUnits");
+ b.Navigation("Passkeys");
+
b.Navigation("PasswordHistories");
b.Navigation("Roles");
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20251020063409_Initial.Designer.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20251218020004_Initial.Designer.cs
similarity index 94%
rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20251020063409_Initial.Designer.cs
rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20251218020004_Initial.Designer.cs
index 878de122df..80872149d8 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20251020063409_Initial.Designer.cs
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20251218020004_Initial.Designer.cs
@@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace MyCompanyName.MyProjectName.Host.Migrations
{
[DbContext(typeof(MyProjectNameDbContext))]
- [Migration("20251020063409_Initial")]
+ [Migration("20251218020004_Initial")]
partial class Initial
{
///
@@ -22,7 +22,7 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
- .HasAnnotation("ProductVersion", "10.0.0-rc.2.25502.107")
+ .HasAnnotation("ProductVersion", "10.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
@@ -821,6 +821,9 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
b.Property("LastPasswordChangeTime")
.HasColumnType("datetimeoffset");
+ b.Property("LastSignInTime")
+ .HasColumnType("datetimeoffset");
+
b.Property("LockoutEnabled")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
@@ -1017,6 +1020,26 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
b.ToTable("AbpUserOrganizationUnits", (string)null);
});
+ modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b =>
+ {
+ b.Property("CredentialId")
+ .HasMaxLength(1024)
+ .HasColumnType("varbinary(1024)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.Property("UserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("CredentialId");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("AbpUserPasskeys", (string)null);
+ });
+
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b =>
{
b.Property("UserId")
@@ -1506,13 +1529,16 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
.HasColumnName("ExtraProperties");
b.Property("GroupName")
- .IsRequired()
.HasMaxLength(128)
.HasColumnType("nvarchar(128)");
b.Property("IsEnabled")
.HasColumnType("bit");
+ b.Property("ManagementPermissionName")
+ .HasMaxLength(128)
+ .HasColumnType("nvarchar(128)");
+
b.Property("MultiTenancySide")
.HasColumnType("tinyint");
@@ -1529,6 +1555,10 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
.HasMaxLength(128)
.HasColumnType("nvarchar(128)");
+ b.Property("ResourceName")
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
b.Property("StateCheckers")
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
@@ -1537,8 +1567,9 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
b.HasIndex("GroupName");
- b.HasIndex("Name")
- .IsUnique();
+ b.HasIndex("ResourceName", "Name")
+ .IsUnique()
+ .HasFilter("[ResourceName] IS NOT NULL");
b.ToTable("AbpPermissions", (string)null);
});
@@ -1605,6 +1636,50 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
b.ToTable("AbpPermissionGroups", (string)null);
});
+ modelBuilder.Entity("Volo.Abp.PermissionManagement.ResourcePermissionGrant", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("nvarchar(128)");
+
+ b.Property("ProviderKey")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ProviderName")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("ResourceKey")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("ResourceName")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("TenantId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("TenantId");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId", "Name", "ResourceName", "ResourceKey", "ProviderName", "ProviderKey")
+ .IsUnique()
+ .HasFilter("[TenantId] IS NOT NULL");
+
+ b.ToTable("AbpResourcePermissionGrants", (string)null);
+ });
+
modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b =>
{
b.Property("Id")
@@ -1845,6 +1920,51 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
.IsRequired();
});
+ modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b =>
+ {
+ b.HasOne("Volo.Abp.Identity.IdentityUser", null)
+ .WithMany("Passkeys")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.OwnsOne("Volo.Abp.Identity.IdentityPasskeyData", "Data", b1 =>
+ {
+ b1.Property("IdentityUserPasskeyCredentialId");
+
+ b1.Property("AttestationObject");
+
+ b1.Property("ClientDataJson");
+
+ b1.Property("CreatedAt");
+
+ b1.Property("IsBackedUp");
+
+ b1.Property("IsBackupEligible");
+
+ b1.Property("IsUserVerified");
+
+ b1.Property("Name");
+
+ b1.Property