< Summary

Line coverage
80%
Covered lines: 169
Uncovered lines: 41
Coverable lines: 210
Total lines: 269
Line coverage: 80.4%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
File 1: Up(...)100%11100%
File 1: Down(...)100%210%
File 2: BuildTargetModel(...)100%11100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Persistence.EFCore.SqlServer/Migrations/Identity/20260823231421_PerTenantIdentityUniqueness.cs

#LineLine coverage
 1using Microsoft.EntityFrameworkCore.Migrations;
 2
 3#nullable disable
 4
 5namespace Elsa.Persistence.EFCore.SqlServer.Migrations.Identity
 6{
 7    /// <inheritdoc />
 8    public partial class PerTenantIdentityUniqueness : Migration
 9    {
 10        /// <inheritdoc />
 11        protected override void Up(MigrationBuilder migrationBuilder)
 12        {
 113            migrationBuilder.DropIndex(
 114                name: "IX_User_Name",
 115                schema: "Elsa",
 116                table: "Users");
 17
 118            migrationBuilder.DropIndex(
 119                name: "IX_Role_Name",
 120                schema: "Elsa",
 121                table: "Roles");
 22
 123            migrationBuilder.DropIndex(
 124                name: "IX_Application_ClientId",
 125                schema: "Elsa",
 126                table: "Applications");
 27
 128            migrationBuilder.DropIndex(
 129                name: "IX_Application_Name",
 130                schema: "Elsa",
 131                table: "Applications");
 32
 133            migrationBuilder.CreateIndex(
 134                name: "IX_User_TenantId_Name",
 135                schema: "Elsa",
 136                table: "Users",
 137                columns: new[] { "TenantId", "Name" },
 138                unique: true,
 139                filter: "[TenantId] IS NOT NULL");
 40
 141            migrationBuilder.CreateIndex(
 142                name: "IX_Role_TenantId_Name",
 143                schema: "Elsa",
 144                table: "Roles",
 145                columns: new[] { "TenantId", "Name" },
 146                unique: true,
 147                filter: "[TenantId] IS NOT NULL");
 48
 149            migrationBuilder.CreateIndex(
 150                name: "IX_Application_TenantId_ClientId",
 151                schema: "Elsa",
 152                table: "Applications",
 153                columns: new[] { "TenantId", "ClientId" },
 154                unique: true,
 155                filter: "[TenantId] IS NOT NULL");
 56
 157            migrationBuilder.CreateIndex(
 158                name: "IX_Application_TenantId_Name",
 159                schema: "Elsa",
 160                table: "Applications",
 161                columns: new[] { "TenantId", "Name" },
 162                unique: true,
 163                filter: "[TenantId] IS NOT NULL");
 164        }
 65
 66        /// <inheritdoc />
 67        protected override void Down(MigrationBuilder migrationBuilder)
 68        {
 069            migrationBuilder.DropIndex(
 070                name: "IX_User_TenantId_Name",
 071                schema: "Elsa",
 072                table: "Users");
 73
 074            migrationBuilder.DropIndex(
 075                name: "IX_Role_TenantId_Name",
 076                schema: "Elsa",
 077                table: "Roles");
 78
 079            migrationBuilder.DropIndex(
 080                name: "IX_Application_TenantId_ClientId",
 081                schema: "Elsa",
 082                table: "Applications");
 83
 084            migrationBuilder.DropIndex(
 085                name: "IX_Application_TenantId_Name",
 086                schema: "Elsa",
 087                table: "Applications");
 88
 089            migrationBuilder.CreateIndex(
 090                name: "IX_User_Name",
 091                schema: "Elsa",
 092                table: "Users",
 093                column: "Name",
 094                unique: true);
 95
 096            migrationBuilder.CreateIndex(
 097                name: "IX_Role_Name",
 098                schema: "Elsa",
 099                table: "Roles",
 0100                column: "Name",
 0101                unique: true);
 102
 0103            migrationBuilder.CreateIndex(
 0104                name: "IX_Application_ClientId",
 0105                schema: "Elsa",
 0106                table: "Applications",
 0107                column: "ClientId",
 0108                unique: true);
 109
 0110            migrationBuilder.CreateIndex(
 0111                name: "IX_Application_Name",
 0112                schema: "Elsa",
 0113                table: "Applications",
 0114                column: "Name",
 0115                unique: true);
 0116        }
 117    }
 118}

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Persistence.EFCore.SqlServer/Migrations/Identity/20260823231421_PerTenantIdentityUniqueness.Designer.cs

#LineLine coverage
 1// <auto-generated />
 2using Elsa.Persistence.EFCore.Modules.Identity;
 3using Microsoft.EntityFrameworkCore;
 4using Microsoft.EntityFrameworkCore.Infrastructure;
 5using Microsoft.EntityFrameworkCore.Metadata;
 6using Microsoft.EntityFrameworkCore.Migrations;
 7using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 8
 9#nullable disable
 10
 11namespace Elsa.Persistence.EFCore.SqlServer.Migrations.Identity
 12{
 13    [DbContext(typeof(IdentityElsaDbContext))]
 14    [Migration("20260823231421_PerTenantIdentityUniqueness")]
 15    partial class PerTenantIdentityUniqueness
 16    {
 17        /// <inheritdoc />
 18        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 19        {
 20#pragma warning disable 612, 618
 121            modelBuilder
 122                .HasDefaultSchema("Elsa")
 123                .HasAnnotation("ProductVersion", "9.0.17")
 124                .HasAnnotation("Relational:MaxIdentifierLength", 128);
 25
 126            SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
 27
 128            modelBuilder.Entity("Elsa.Identity.Entities.Application", b =>
 129                {
 130                    b.Property<string>("Id")
 131                        .HasColumnType("nvarchar(450)");
 132
 133                    b.Property<string>("ClientId")
 134                        .IsRequired()
 135                        .HasColumnType("nvarchar(450)");
 136
 137                    b.Property<string>("HashedApiKey")
 138                        .IsRequired()
 139                        .HasColumnType("nvarchar(max)");
 140
 141                    b.Property<string>("HashedApiKeySalt")
 142                        .IsRequired()
 143                        .HasColumnType("nvarchar(max)");
 144
 145                    b.Property<string>("HashedClientSecret")
 146                        .IsRequired()
 147                        .HasColumnType("nvarchar(max)");
 148
 149                    b.Property<string>("HashedClientSecretSalt")
 150                        .IsRequired()
 151                        .HasColumnType("nvarchar(max)");
 152
 153                    b.Property<string>("Name")
 154                        .IsRequired()
 155                        .HasColumnType("nvarchar(450)");
 156
 157                    b.Property<string>("Roles")
 158                        .IsRequired()
 159                        .HasColumnType("nvarchar(max)")
 160                        .HasColumnName("Roles");
 161
 162                    b.Property<string>("TenantId")
 163                        .HasColumnType("nvarchar(450)");
 164
 165                    b.HasKey("Id");
 166
 167                    b.HasIndex("TenantId")
 168                        .HasDatabaseName("IX_Application_TenantId");
 169
 170                    b.HasIndex("TenantId", "ClientId")
 171                        .IsUnique()
 172                        .HasDatabaseName("IX_Application_TenantId_ClientId")
 173                        .HasFilter("[TenantId] IS NOT NULL");
 174
 175                    b.HasIndex("TenantId", "Name")
 176                        .IsUnique()
 177                        .HasDatabaseName("IX_Application_TenantId_Name")
 178                        .HasFilter("[TenantId] IS NOT NULL");
 179
 180                    b.ToTable("Applications", "Elsa");
 281                });
 82
 183            modelBuilder.Entity("Elsa.Identity.Entities.Role", b =>
 184                {
 185                    b.Property<string>("Id")
 186                        .HasColumnType("nvarchar(450)");
 187
 188                    b.Property<string>("Name")
 189                        .IsRequired()
 190                        .HasColumnType("nvarchar(450)");
 191
 192                    b.Property<string>("Permissions")
 193                        .IsRequired()
 194                        .HasColumnType("nvarchar(max)")
 195                        .HasColumnName("Permissions");
 196
 197                    b.Property<string>("TenantId")
 198                        .HasColumnType("nvarchar(450)");
 199
 1100                    b.HasKey("Id");
 1101
 1102                    b.HasIndex("TenantId")
 1103                        .HasDatabaseName("IX_Role_TenantId");
 1104
 1105                    b.HasIndex("TenantId", "Name")
 1106                        .IsUnique()
 1107                        .HasDatabaseName("IX_Role_TenantId_Name")
 1108                        .HasFilter("[TenantId] IS NOT NULL");
 1109
 1110                    b.ToTable("Roles", "Elsa");
 2111                });
 112
 1113            modelBuilder.Entity("Elsa.Identity.Entities.User", b =>
 1114                {
 1115                    b.Property<string>("Id")
 1116                        .HasColumnType("nvarchar(450)");
 1117
 1118                    b.Property<string>("HashedPassword")
 1119                        .HasColumnType("nvarchar(max)");
 1120
 1121                    b.Property<string>("HashedPasswordSalt")
 1122                        .HasColumnType("nvarchar(max)");
 1123
 1124                    b.Property<string>("Name")
 1125                        .IsRequired()
 1126                        .HasColumnType("nvarchar(450)");
 1127
 1128                    b.Property<string>("Roles")
 1129                        .IsRequired()
 1130                        .HasColumnType("nvarchar(max)")
 1131                        .HasColumnName("Roles");
 1132
 1133                    b.Property<string>("TenantId")
 1134                        .HasColumnType("nvarchar(450)");
 1135
 1136                    b.HasKey("Id");
 1137
 1138                    b.HasIndex("TenantId")
 1139                        .HasDatabaseName("IX_User_TenantId");
 1140
 1141                    b.HasIndex("TenantId", "Name")
 1142                        .IsUnique()
 1143                        .HasDatabaseName("IX_User_TenantId_Name")
 1144                        .HasFilter("[TenantId] IS NOT NULL");
 1145
 1146                    b.ToTable("Users", "Elsa");
 2147                });
 148#pragma warning restore 612, 618
 1149        }
 150    }
 151}