< Summary

Line coverage
0%
Covered lines: 0
Uncovered lines: 202
Coverable lines: 202
Total lines: 261
Line coverage: 0%
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%210%
File 1: Down(...)100%210%
File 2: BuildTargetModel(...)100%210%

File(s)

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

#LineLine coverage
 1using Microsoft.EntityFrameworkCore.Migrations;
 2
 3#nullable disable
 4
 5namespace Elsa.Persistence.EFCore.PostgreSql.Migrations.Identity
 6{
 7    /// <inheritdoc />
 8    public partial class PerTenantIdentityUniqueness : Migration
 9    {
 10        /// <inheritdoc />
 11        protected override void Up(MigrationBuilder migrationBuilder)
 12        {
 013            migrationBuilder.DropIndex(
 014                name: "IX_User_Name",
 015                schema: "Elsa",
 016                table: "Users");
 17
 018            migrationBuilder.DropIndex(
 019                name: "IX_Role_Name",
 020                schema: "Elsa",
 021                table: "Roles");
 22
 023            migrationBuilder.DropIndex(
 024                name: "IX_Application_ClientId",
 025                schema: "Elsa",
 026                table: "Applications");
 27
 028            migrationBuilder.DropIndex(
 029                name: "IX_Application_Name",
 030                schema: "Elsa",
 031                table: "Applications");
 32
 033            migrationBuilder.CreateIndex(
 034                name: "IX_User_TenantId_Name",
 035                schema: "Elsa",
 036                table: "Users",
 037                columns: new[] { "TenantId", "Name" },
 038                unique: true);
 39
 040            migrationBuilder.CreateIndex(
 041                name: "IX_Role_TenantId_Name",
 042                schema: "Elsa",
 043                table: "Roles",
 044                columns: new[] { "TenantId", "Name" },
 045                unique: true);
 46
 047            migrationBuilder.CreateIndex(
 048                name: "IX_Application_TenantId_ClientId",
 049                schema: "Elsa",
 050                table: "Applications",
 051                columns: new[] { "TenantId", "ClientId" },
 052                unique: true);
 53
 054            migrationBuilder.CreateIndex(
 055                name: "IX_Application_TenantId_Name",
 056                schema: "Elsa",
 057                table: "Applications",
 058                columns: new[] { "TenantId", "Name" },
 059                unique: true);
 060        }
 61
 62        /// <inheritdoc />
 63        protected override void Down(MigrationBuilder migrationBuilder)
 64        {
 065            migrationBuilder.DropIndex(
 066                name: "IX_User_TenantId_Name",
 067                schema: "Elsa",
 068                table: "Users");
 69
 070            migrationBuilder.DropIndex(
 071                name: "IX_Role_TenantId_Name",
 072                schema: "Elsa",
 073                table: "Roles");
 74
 075            migrationBuilder.DropIndex(
 076                name: "IX_Application_TenantId_ClientId",
 077                schema: "Elsa",
 078                table: "Applications");
 79
 080            migrationBuilder.DropIndex(
 081                name: "IX_Application_TenantId_Name",
 082                schema: "Elsa",
 083                table: "Applications");
 84
 085            migrationBuilder.CreateIndex(
 086                name: "IX_User_Name",
 087                schema: "Elsa",
 088                table: "Users",
 089                column: "Name",
 090                unique: true);
 91
 092            migrationBuilder.CreateIndex(
 093                name: "IX_Role_Name",
 094                schema: "Elsa",
 095                table: "Roles",
 096                column: "Name",
 097                unique: true);
 98
 099            migrationBuilder.CreateIndex(
 0100                name: "IX_Application_ClientId",
 0101                schema: "Elsa",
 0102                table: "Applications",
 0103                column: "ClientId",
 0104                unique: true);
 105
 0106            migrationBuilder.CreateIndex(
 0107                name: "IX_Application_Name",
 0108                schema: "Elsa",
 0109                table: "Applications",
 0110                column: "Name",
 0111                unique: true);
 0112        }
 113    }
 114}

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

#LineLine coverage
 1// <auto-generated />
 2using Elsa.Persistence.EFCore.Modules.Identity;
 3using Microsoft.EntityFrameworkCore;
 4using Microsoft.EntityFrameworkCore.Infrastructure;
 5using Microsoft.EntityFrameworkCore.Migrations;
 6using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 7using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 8
 9#nullable disable
 10
 11namespace Elsa.Persistence.EFCore.PostgreSql.Migrations.Identity
 12{
 13    [DbContext(typeof(IdentityElsaDbContext))]
 14    [Migration("20260823231437_PerTenantIdentityUniqueness")]
 15    partial class PerTenantIdentityUniqueness
 16    {
 17        /// <inheritdoc />
 18        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 19        {
 20#pragma warning disable 612, 618
 021            modelBuilder
 022                .HasDefaultSchema("Elsa")
 023                .HasAnnotation("ProductVersion", "9.0.17")
 024                .HasAnnotation("Relational:MaxIdentifierLength", 63);
 25
 026            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
 27
 028            modelBuilder.Entity("Elsa.Identity.Entities.Application", b =>
 029                {
 030                    b.Property<string>("Id")
 031                        .HasColumnType("text");
 032
 033                    b.Property<string>("ClientId")
 034                        .IsRequired()
 035                        .HasColumnType("text");
 036
 037                    b.Property<string>("HashedApiKey")
 038                        .IsRequired()
 039                        .HasColumnType("text");
 040
 041                    b.Property<string>("HashedApiKeySalt")
 042                        .IsRequired()
 043                        .HasColumnType("text");
 044
 045                    b.Property<string>("HashedClientSecret")
 046                        .IsRequired()
 047                        .HasColumnType("text");
 048
 049                    b.Property<string>("HashedClientSecretSalt")
 050                        .IsRequired()
 051                        .HasColumnType("text");
 052
 053                    b.Property<string>("Name")
 054                        .IsRequired()
 055                        .HasColumnType("text");
 056
 057                    b.Property<string>("Roles")
 058                        .IsRequired()
 059                        .HasColumnType("text")
 060                        .HasColumnName("Roles");
 061
 062                    b.Property<string>("TenantId")
 063                        .HasColumnType("text");
 064
 065                    b.HasKey("Id");
 066
 067                    b.HasIndex("TenantId")
 068                        .HasDatabaseName("IX_Application_TenantId");
 069
 070                    b.HasIndex("TenantId", "ClientId")
 071                        .IsUnique()
 072                        .HasDatabaseName("IX_Application_TenantId_ClientId");
 073
 074                    b.HasIndex("TenantId", "Name")
 075                        .IsUnique()
 076                        .HasDatabaseName("IX_Application_TenantId_Name");
 077
 078                    b.ToTable("Applications", "Elsa");
 079                });
 80
 081            modelBuilder.Entity("Elsa.Identity.Entities.Role", b =>
 082                {
 083                    b.Property<string>("Id")
 084                        .HasColumnType("text");
 085
 086                    b.Property<string>("Name")
 087                        .IsRequired()
 088                        .HasColumnType("text");
 089
 090                    b.Property<string>("Permissions")
 091                        .IsRequired()
 092                        .HasColumnType("text")
 093                        .HasColumnName("Permissions");
 094
 095                    b.Property<string>("TenantId")
 096                        .HasColumnType("text");
 097
 098                    b.HasKey("Id");
 099
 0100                    b.HasIndex("TenantId")
 0101                        .HasDatabaseName("IX_Role_TenantId");
 0102
 0103                    b.HasIndex("TenantId", "Name")
 0104                        .IsUnique()
 0105                        .HasDatabaseName("IX_Role_TenantId_Name");
 0106
 0107                    b.ToTable("Roles", "Elsa");
 0108                });
 109
 0110            modelBuilder.Entity("Elsa.Identity.Entities.User", b =>
 0111                {
 0112                    b.Property<string>("Id")
 0113                        .HasColumnType("text");
 0114
 0115                    b.Property<string>("HashedPassword")
 0116                        .HasColumnType("text");
 0117
 0118                    b.Property<string>("HashedPasswordSalt")
 0119                        .HasColumnType("text");
 0120
 0121                    b.Property<string>("Name")
 0122                        .IsRequired()
 0123                        .HasColumnType("text");
 0124
 0125                    b.Property<string>("Roles")
 0126                        .IsRequired()
 0127                        .HasColumnType("text")
 0128                        .HasColumnName("Roles");
 0129
 0130                    b.Property<string>("TenantId")
 0131                        .HasColumnType("text");
 0132
 0133                    b.HasKey("Id");
 0134
 0135                    b.HasIndex("TenantId")
 0136                        .HasDatabaseName("IX_User_TenantId");
 0137
 0138                    b.HasIndex("TenantId", "Name")
 0139                        .IsUnique()
 0140                        .HasDatabaseName("IX_User_TenantId_Name");
 0141
 0142                    b.ToTable("Users", "Elsa");
 0143                });
 144#pragma warning restore 612, 618
 0145        }
 146    }
 147}