< Summary

Line coverage
87%
Covered lines: 106
Uncovered lines: 15
Coverable lines: 121
Total lines: 169
Line coverage: 87.6%
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.Secrets.Persistence.EFCore.SqlServer/Migrations/Secrets/20260825230253_SecretTenancy.cs

#LineLine coverage
 1using Microsoft.EntityFrameworkCore.Migrations;
 2
 3#nullable disable
 4
 5namespace Elsa.Secrets.Persistence.EFCore.SqlServer.Migrations.Secrets
 6{
 7    /// <inheritdoc />
 8    public partial class SecretTenancy : Migration
 9    {
 10        /// <inheritdoc />
 11        protected override void Up(MigrationBuilder migrationBuilder)
 12        {
 213            migrationBuilder.DropIndex(
 214                name: "IX_Secret_NormalizedName",
 215                schema: "Elsa",
 216                table: "Secrets");
 17
 218            migrationBuilder.AddColumn<string>(
 219                name: "TenantId",
 220                schema: "Elsa",
 221                table: "Secrets",
 222                type: "nvarchar(450)",
 223                nullable: true);
 24
 225            migrationBuilder.CreateIndex(
 226                name: "IX_Secret_TenantId_NormalizedName",
 227                schema: "Elsa",
 228                table: "Secrets",
 229                columns: new[] { "TenantId", "NormalizedName" },
 230                unique: true,
 231                filter: "[TenantId] IS NOT NULL");
 232        }
 33
 34        /// <inheritdoc />
 35        protected override void Down(MigrationBuilder migrationBuilder)
 36        {
 037            migrationBuilder.DropIndex(
 038                name: "IX_Secret_TenantId_NormalizedName",
 039                schema: "Elsa",
 040                table: "Secrets");
 41
 042            migrationBuilder.DropColumn(
 043                name: "TenantId",
 044                schema: "Elsa",
 045                table: "Secrets");
 46
 047            migrationBuilder.CreateIndex(
 048                name: "IX_Secret_NormalizedName",
 049                schema: "Elsa",
 050                table: "Secrets",
 051                column: "NormalizedName",
 052                unique: true);
 053        }
 54    }
 55}

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Secrets.Persistence.EFCore.SqlServer/Migrations/Secrets/20260825230253_SecretTenancy.Designer.cs

#LineLine coverage
 1// <auto-generated />
 2using System;
 3using Elsa.Secrets.Persistence.EFCore;
 4using Microsoft.EntityFrameworkCore;
 5using Microsoft.EntityFrameworkCore.Infrastructure;
 6using Microsoft.EntityFrameworkCore.Metadata;
 7using Microsoft.EntityFrameworkCore.Migrations;
 8using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 9
 10#nullable disable
 11
 12namespace Elsa.Secrets.Persistence.EFCore.SqlServer.Migrations.Secrets
 13{
 14    [DbContext(typeof(SecretsElsaDbContext))]
 15    [Migration("20260825230253_SecretTenancy")]
 16    partial class SecretTenancy
 17    {
 18        /// <inheritdoc />
 19        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 20        {
 21#pragma warning disable 612, 618
 222            modelBuilder
 223                .HasDefaultSchema("Elsa")
 224                .HasAnnotation("ProductVersion", "10.0.9")
 225                .HasAnnotation("Relational:MaxIdentifierLength", 128);
 26
 227            SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
 28
 229            modelBuilder.Entity("Elsa.Secrets.Models.Secret", b =>
 230                {
 231                    b.Property<string>("Id")
 232                        .HasColumnType("nvarchar(450)");
 233
 234                    b.Property<DateTimeOffset>("CreatedAt")
 235                        .HasColumnType("datetimeoffset");
 236
 237                    b.Property<string>("Description")
 238                        .HasColumnType("nvarchar(max)");
 239
 240                    b.Property<string>("DisplayName")
 241                        .IsRequired()
 242                        .HasMaxLength(200)
 243                        .HasColumnType("nvarchar(200)");
 244
 245                    b.Property<string>("Name")
 246                        .IsRequired()
 247                        .HasMaxLength(200)
 248                        .HasColumnType("nvarchar(200)");
 249
 250                    b.Property<string>("NormalizedName")
 251                        .IsRequired()
 252                        .HasMaxLength(200)
 253                        .HasColumnType("nvarchar(200)");
 254
 255                    b.Property<string>("Scope")
 256                        .HasMaxLength(200)
 257                        .HasColumnType("nvarchar(200)");
 258
 259                    b.Property<string>("SerializedTags")
 260                        .IsRequired()
 261                        .HasColumnType("nvarchar(max)")
 262                        .HasColumnName("Tags");
 263
 264                    b.Property<string>("SerializedVersions")
 265                        .IsRequired()
 266                        .HasColumnType("nvarchar(max)")
 267                        .HasColumnName("Versions");
 268
 269                    b.Property<string>("Status")
 270                        .IsRequired()
 271                        .HasMaxLength(32)
 272                        .HasColumnType("nvarchar(32)");
 273
 274                    b.Property<string>("StoreName")
 275                        .IsRequired()
 276                        .HasMaxLength(100)
 277                        .HasColumnType("nvarchar(100)");
 278
 279                    b.Property<string>("TenantId")
 280                        .HasColumnType("nvarchar(450)");
 281
 282                    b.Property<string>("TypeName")
 283                        .IsRequired()
 284                        .HasMaxLength(100)
 285                        .HasColumnType("nvarchar(100)");
 286
 287                    b.Property<DateTimeOffset?>("UpdatedAt")
 288                        .HasColumnType("datetimeoffset");
 289
 290                    b.HasKey("Id");
 291
 292                    b.HasIndex("Scope")
 293                        .HasDatabaseName("IX_Secret_Scope");
 294
 295                    b.HasIndex("Status")
 296                        .HasDatabaseName("IX_Secret_Status");
 297
 298                    b.HasIndex("StoreName")
 299                        .HasDatabaseName("IX_Secret_StoreName");
 2100
 2101                    b.HasIndex("TypeName")
 2102                        .HasDatabaseName("IX_Secret_TypeName");
 2103
 2104                    b.HasIndex("TenantId", "NormalizedName")
 2105                        .IsUnique()
 2106                        .HasDatabaseName("IX_Secret_TenantId_NormalizedName")
 2107                        .HasFilter("[TenantId] IS NOT NULL");
 2108
 2109                    b.ToTable("Secrets", "Elsa");
 4110                });
 111#pragma warning restore 612, 618
 2112        }
 113    }
 114}