From 576a0e50e8fce28568e17f76b0542feddaa452f2 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Mon, 26 Apr 2021 10:09:46 +0200 Subject: [PATCH] Add Tag property --- .../Elsa.Client/Models/WorkflowBlueprint.cs | 16 +++++++++++----- .../Elsa.Client/Models/WorkflowDefinition.cs | 11 +++++++++-- .../Models/WorkflowDefinition.cs | 6 ++++++ .../WorkflowDefinitionConfiguration.cs | 1 + ...ner.cs => 20210426080827_Initial.Designer.cs} | 8 +++++++- ...1700_Initial.cs => 20210426080827_Initial.cs} | 6 ++++++ .../Migrations/ElsaContextModelSnapshot.cs | 6 ++++++ ...ner.cs => 20210426080934_Initial.Designer.cs} | 8 +++++++- ...1809_Initial.cs => 20210426080934_Initial.cs} | 6 ++++++ .../Migrations/ElsaContextModelSnapshot.cs | 6 ++++++ ...ner.cs => 20210426080912_Initial.Designer.cs} | 8 +++++++- ...1738_Initial.cs => 20210426080912_Initial.cs} | 6 ++++++ .../Migrations/ElsaContextModelSnapshot.cs | 6 ++++++ .../Services/DatabaseInitializer.cs | 3 ++- .../Documents/WorkflowDefinitionDocument.cs | 1 + .../Indexes/WorkflowDefinitionIndex.cs | 4 +++- .../Elsa.Persistence.YesSql/Migrations.cs | 3 ++- 17 files changed, 92 insertions(+), 13 deletions(-) rename src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/{20210420081700_Initial.Designer.cs => 20210426080827_Initial.Designer.cs} (97%) rename src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/{20210420081700_Initial.cs => 20210426080827_Initial.cs} (97%) rename src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/{20210420081809_Initial.Designer.cs => 20210426080934_Initial.Designer.cs} (97%) rename src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/{20210420081809_Initial.cs => 20210426080934_Initial.cs} (97%) rename src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/{20210420081738_Initial.Designer.cs => 20210426080912_Initial.Designer.cs} (97%) rename src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/{20210420081738_Initial.cs => 20210426080912_Initial.cs} (97%) diff --git a/src/clients/Elsa.Client/Models/WorkflowBlueprint.cs b/src/clients/Elsa.Client/Models/WorkflowBlueprint.cs index 41c5f6c31..c575ccf48 100644 --- a/src/clients/Elsa.Client/Models/WorkflowBlueprint.cs +++ b/src/clients/Elsa.Client/Models/WorkflowBlueprint.cs @@ -13,24 +13,30 @@ namespace Elsa.Client.Models [DataMember(Order = 6)] public bool IsLatest { get; set; } /// - /// An initial set of variables available to workflow instances. + /// Allows for applications to store an application-specific, queryable value to associate with the workflow. /// [DataMember(Order = 7)] + public string? Tag { get; set; } + + /// + /// An initial set of variables available to workflow instances. + /// + [DataMember(Order = 8)] public Variables Variables { get; set; } = new(); /// /// An optional context type around which this workflow revolves. For example, a document, a leave request or a job application. /// - [DataMember(Order = 8)] + [DataMember(Order = 9)] public WorkflowContextOptions? ContextOptions { get; set; } - [DataMember(Order = 9)] public WorkflowPersistenceBehavior PersistenceBehavior { get; set; } - [DataMember(Order = 10)] public bool DeleteCompletedInstances { get; set; } + [DataMember(Order = 10)] public WorkflowPersistenceBehavior PersistenceBehavior { get; set; } + [DataMember(Order = 11)] public bool DeleteCompletedInstances { get; set; } /// /// A dictionary to store application-specific properties for a given workflow. /// - [DataMember(Order = 11)] + [DataMember(Order = 12)] public Variables CustomAttributes { get; set; } = new(); } } \ No newline at end of file diff --git a/src/clients/Elsa.Client/Models/WorkflowDefinition.cs b/src/clients/Elsa.Client/Models/WorkflowDefinition.cs index a71026fbc..9b926d84e 100644 --- a/src/clients/Elsa.Client/Models/WorkflowDefinition.cs +++ b/src/clients/Elsa.Client/Models/WorkflowDefinition.cs @@ -27,7 +27,14 @@ namespace Elsa.Client.Models [DataMember(Order = 12)] public bool DeleteCompletedInstances { get; set; } [DataMember(Order = 13)] public bool IsPublished { get; set; } [DataMember(Order = 14)] public bool IsLatest { get; set; } - [DataMember(Order = 15)] public ICollection Activities { get; set; } - [DataMember(Order = 16)] public ICollection Connections { get; set; } + + /// + /// Allows for applications to store an application-specific, queryable value to associate with the workflow. + /// + [DataMember(Order = 15)] + public string? Tag { get; set; } + + [DataMember(Order = 16)] public ICollection Activities { get; set; } + [DataMember(Order = 17)] public ICollection Connections { get; set; } } } \ No newline at end of file diff --git a/src/core/Elsa.Abstractions/Models/WorkflowDefinition.cs b/src/core/Elsa.Abstractions/Models/WorkflowDefinition.cs index 105b87345..9d84d5818 100644 --- a/src/core/Elsa.Abstractions/Models/WorkflowDefinition.cs +++ b/src/core/Elsa.Abstractions/Models/WorkflowDefinition.cs @@ -29,6 +29,12 @@ namespace Elsa.Models public bool DeleteCompletedInstances { get; set; } public bool IsPublished { get; set; } public bool IsLatest { get; set; } + + /// + /// Allows for applications to store an application-specific, queryable value to associate with the workflow. + /// + public string? Tag { get; set; } + public ICollection Activities { get; set; } public ICollection Connections { get; set; } } diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Core/Configuration/WorkflowDefinitionConfiguration.cs b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Core/Configuration/WorkflowDefinitionConfiguration.cs index 4d57e540c..bf180f065 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Core/Configuration/WorkflowDefinitionConfiguration.cs +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Core/Configuration/WorkflowDefinitionConfiguration.cs @@ -20,6 +20,7 @@ namespace Elsa.Persistence.EntityFramework.Core.Configuration builder.HasIndex(x => x.Name).HasDatabaseName($"IX_{nameof(WorkflowDefinition)}_{nameof(WorkflowDefinition.Name)}"); builder.HasIndex(x => x.IsLatest).HasDatabaseName($"IX_{nameof(WorkflowDefinition)}_{nameof(WorkflowDefinition.IsLatest)}"); builder.HasIndex(x => x.IsPublished).HasDatabaseName($"IX_{nameof(WorkflowDefinition)}_{nameof(WorkflowDefinition.IsPublished)}"); + builder.HasIndex(x => x.Tag).HasDatabaseName($"IX_{nameof(WorkflowDefinition)}_{nameof(WorkflowDefinition.Tag)}"); } } } \ No newline at end of file diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/20210420081700_Initial.Designer.cs b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/20210426080827_Initial.Designer.cs similarity index 97% rename from src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/20210420081700_Initial.Designer.cs rename to src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/20210426080827_Initial.Designer.cs index 23539a34d..c9923d4f7 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/20210420081700_Initial.Designer.cs +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/20210426080827_Initial.Designer.cs @@ -10,7 +10,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace Elsa.Persistence.EntityFramework.PostgreSql.Migrations { [DbContext(typeof(ElsaContext))] - [Migration("20210420081700_Initial")] + [Migration("20210426080827_Initial")] partial class Initial { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -112,6 +112,9 @@ namespace Elsa.Persistence.EntityFramework.PostgreSql.Migrations b.Property("PersistenceBehavior") .HasColumnType("integer"); + b.Property("Tag") + .HasColumnType("text"); + b.Property("TenantId") .HasColumnType("text"); @@ -129,6 +132,9 @@ namespace Elsa.Persistence.EntityFramework.PostgreSql.Migrations b.HasIndex("Name") .HasDatabaseName("IX_WorkflowDefinition_Name"); + b.HasIndex("Tag") + .HasDatabaseName("IX_WorkflowDefinition_Tag"); + b.HasIndex("TenantId") .HasDatabaseName("IX_WorkflowDefinition_TenantId"); diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/20210420081700_Initial.cs b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/20210426080827_Initial.cs similarity index 97% rename from src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/20210420081700_Initial.cs rename to src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/20210426080827_Initial.cs index 6114e2ddd..af5f6629c 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/20210420081700_Initial.cs +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/20210426080827_Initial.cs @@ -41,6 +41,7 @@ namespace Elsa.Persistence.EntityFramework.PostgreSql.Migrations DeleteCompletedInstances = table.Column(type: "boolean", nullable: false), IsPublished = table.Column(type: "boolean", nullable: false), IsLatest = table.Column(type: "boolean", nullable: false), + Tag = table.Column(type: "text", nullable: true), Data = table.Column(type: "text", nullable: true) }, constraints: table => @@ -143,6 +144,11 @@ namespace Elsa.Persistence.EntityFramework.PostgreSql.Migrations table: "WorkflowDefinitions", column: "Name"); + migrationBuilder.CreateIndex( + name: "IX_WorkflowDefinition_Tag", + table: "WorkflowDefinitions", + column: "Tag"); + migrationBuilder.CreateIndex( name: "IX_WorkflowDefinition_TenantId", table: "WorkflowDefinitions", diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/ElsaContextModelSnapshot.cs b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/ElsaContextModelSnapshot.cs index 555264b23..29f424c0c 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/ElsaContextModelSnapshot.cs +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Migrations/ElsaContextModelSnapshot.cs @@ -110,6 +110,9 @@ namespace Elsa.Persistence.EntityFramework.PostgreSql.Migrations b.Property("PersistenceBehavior") .HasColumnType("integer"); + b.Property("Tag") + .HasColumnType("text"); + b.Property("TenantId") .HasColumnType("text"); @@ -127,6 +130,9 @@ namespace Elsa.Persistence.EntityFramework.PostgreSql.Migrations b.HasIndex("Name") .HasDatabaseName("IX_WorkflowDefinition_Name"); + b.HasIndex("Tag") + .HasDatabaseName("IX_WorkflowDefinition_Tag"); + b.HasIndex("TenantId") .HasDatabaseName("IX_WorkflowDefinition_TenantId"); diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/20210420081809_Initial.Designer.cs b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/20210426080934_Initial.Designer.cs similarity index 97% rename from src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/20210420081809_Initial.Designer.cs rename to src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/20210426080934_Initial.Designer.cs index f8a882fad..47ae06f2c 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/20210420081809_Initial.Designer.cs +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/20210426080934_Initial.Designer.cs @@ -10,7 +10,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace Elsa.Persistence.EntityFramework.SqlServer.Migrations { [DbContext(typeof(ElsaContext))] - [Migration("20210420081809_Initial")] + [Migration("20210426080934_Initial")] partial class Initial { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -112,6 +112,9 @@ namespace Elsa.Persistence.EntityFramework.SqlServer.Migrations b.Property("PersistenceBehavior") .HasColumnType("int"); + b.Property("Tag") + .HasColumnType("nvarchar(450)"); + b.Property("TenantId") .HasColumnType("nvarchar(450)"); @@ -129,6 +132,9 @@ namespace Elsa.Persistence.EntityFramework.SqlServer.Migrations b.HasIndex("Name") .HasDatabaseName("IX_WorkflowDefinition_Name"); + b.HasIndex("Tag") + .HasDatabaseName("IX_WorkflowDefinition_Tag"); + b.HasIndex("TenantId") .HasDatabaseName("IX_WorkflowDefinition_TenantId"); diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/20210420081809_Initial.cs b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/20210426080934_Initial.cs similarity index 97% rename from src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/20210420081809_Initial.cs rename to src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/20210426080934_Initial.cs index 86efec5e0..2e3e08b9b 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/20210420081809_Initial.cs +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/20210426080934_Initial.cs @@ -41,6 +41,7 @@ namespace Elsa.Persistence.EntityFramework.SqlServer.Migrations DeleteCompletedInstances = table.Column(type: "bit", nullable: false), IsPublished = table.Column(type: "bit", nullable: false), IsLatest = table.Column(type: "bit", nullable: false), + Tag = table.Column(type: "nvarchar(450)", nullable: true), Data = table.Column(type: "nvarchar(max)", nullable: true) }, constraints: table => @@ -143,6 +144,11 @@ namespace Elsa.Persistence.EntityFramework.SqlServer.Migrations table: "WorkflowDefinitions", column: "Name"); + migrationBuilder.CreateIndex( + name: "IX_WorkflowDefinition_Tag", + table: "WorkflowDefinitions", + column: "Tag"); + migrationBuilder.CreateIndex( name: "IX_WorkflowDefinition_TenantId", table: "WorkflowDefinitions", diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/ElsaContextModelSnapshot.cs b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/ElsaContextModelSnapshot.cs index 0e86f17bd..5dda568f1 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/ElsaContextModelSnapshot.cs +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Migrations/ElsaContextModelSnapshot.cs @@ -110,6 +110,9 @@ namespace Elsa.Persistence.EntityFramework.SqlServer.Migrations b.Property("PersistenceBehavior") .HasColumnType("int"); + b.Property("Tag") + .HasColumnType("nvarchar(450)"); + b.Property("TenantId") .HasColumnType("nvarchar(450)"); @@ -127,6 +130,9 @@ namespace Elsa.Persistence.EntityFramework.SqlServer.Migrations b.HasIndex("Name") .HasDatabaseName("IX_WorkflowDefinition_Name"); + b.HasIndex("Tag") + .HasDatabaseName("IX_WorkflowDefinition_Tag"); + b.HasIndex("TenantId") .HasDatabaseName("IX_WorkflowDefinition_TenantId"); diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/20210420081738_Initial.Designer.cs b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/20210426080912_Initial.Designer.cs similarity index 97% rename from src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/20210420081738_Initial.Designer.cs rename to src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/20210426080912_Initial.Designer.cs index 9e40c0999..b7849980d 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/20210420081738_Initial.Designer.cs +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/20210426080912_Initial.Designer.cs @@ -9,7 +9,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace Elsa.Persistence.EntityFramework.Sqlite.Migrations { [DbContext(typeof(ElsaContext))] - [Migration("20210420081738_Initial")] + [Migration("20210426080912_Initial")] partial class Initial { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -109,6 +109,9 @@ namespace Elsa.Persistence.EntityFramework.Sqlite.Migrations b.Property("PersistenceBehavior") .HasColumnType("INTEGER"); + b.Property("Tag") + .HasColumnType("TEXT"); + b.Property("TenantId") .HasColumnType("TEXT"); @@ -126,6 +129,9 @@ namespace Elsa.Persistence.EntityFramework.Sqlite.Migrations b.HasIndex("Name") .HasDatabaseName("IX_WorkflowDefinition_Name"); + b.HasIndex("Tag") + .HasDatabaseName("IX_WorkflowDefinition_Tag"); + b.HasIndex("TenantId") .HasDatabaseName("IX_WorkflowDefinition_TenantId"); diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/20210420081738_Initial.cs b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/20210426080912_Initial.cs similarity index 97% rename from src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/20210420081738_Initial.cs rename to src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/20210426080912_Initial.cs index e71c745d9..02e77876d 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/20210420081738_Initial.cs +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/20210426080912_Initial.cs @@ -41,6 +41,7 @@ namespace Elsa.Persistence.EntityFramework.Sqlite.Migrations DeleteCompletedInstances = table.Column(type: "INTEGER", nullable: false), IsPublished = table.Column(type: "INTEGER", nullable: false), IsLatest = table.Column(type: "INTEGER", nullable: false), + Tag = table.Column(type: "TEXT", nullable: true), Data = table.Column(type: "TEXT", nullable: true) }, constraints: table => @@ -143,6 +144,11 @@ namespace Elsa.Persistence.EntityFramework.Sqlite.Migrations table: "WorkflowDefinitions", column: "Name"); + migrationBuilder.CreateIndex( + name: "IX_WorkflowDefinition_Tag", + table: "WorkflowDefinitions", + column: "Tag"); + migrationBuilder.CreateIndex( name: "IX_WorkflowDefinition_TenantId", table: "WorkflowDefinitions", diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/ElsaContextModelSnapshot.cs b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/ElsaContextModelSnapshot.cs index 7d2fb170d..9eccfd9ca 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/ElsaContextModelSnapshot.cs +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Migrations/ElsaContextModelSnapshot.cs @@ -107,6 +107,9 @@ namespace Elsa.Persistence.EntityFramework.Sqlite.Migrations b.Property("PersistenceBehavior") .HasColumnType("INTEGER"); + b.Property("Tag") + .HasColumnType("TEXT"); + b.Property("TenantId") .HasColumnType("TEXT"); @@ -124,6 +127,9 @@ namespace Elsa.Persistence.EntityFramework.Sqlite.Migrations b.HasIndex("Name") .HasDatabaseName("IX_WorkflowDefinition_Name"); + b.HasIndex("Tag") + .HasDatabaseName("IX_WorkflowDefinition_Tag"); + b.HasIndex("TenantId") .HasDatabaseName("IX_WorkflowDefinition_TenantId"); diff --git a/src/persistence/Elsa.Persistence.MongoDb/Services/DatabaseInitializer.cs b/src/persistence/Elsa.Persistence.MongoDb/Services/DatabaseInitializer.cs index 35c7baff6..4cb36738e 100644 --- a/src/persistence/Elsa.Persistence.MongoDb/Services/DatabaseInitializer.cs +++ b/src/persistence/Elsa.Persistence.MongoDb/Services/DatabaseInitializer.cs @@ -42,8 +42,9 @@ namespace Elsa.Persistence.MongoDb.Services var definitionIdKeysDefinition = Builders.IndexKeys.Ascending(x => x.DefinitionId); var versionKeysDefinition = Builders.IndexKeys.Ascending(x => x.Version); var nameKeysDefinition = Builders.IndexKeys.Ascending(x => x.Name); + var tagKeysDefinition = Builders.IndexKeys.Ascending(x => x.Tag); - await CreateIndexesAsync(_mongoContext.WorkflowDefinitions, cancellationToken, tenantKeysDefinition, definitionIdKeysDefinition, versionKeysDefinition, nameKeysDefinition); + await CreateIndexesAsync(_mongoContext.WorkflowDefinitions, cancellationToken, tenantKeysDefinition, definitionIdKeysDefinition, versionKeysDefinition, nameKeysDefinition, tagKeysDefinition); } private async Task CreateWorkflowExecutionLogIndexes(CancellationToken cancellationToken) diff --git a/src/persistence/Elsa.Persistence.YesSql/Documents/WorkflowDefinitionDocument.cs b/src/persistence/Elsa.Persistence.YesSql/Documents/WorkflowDefinitionDocument.cs index 33ab0c096..a194040c2 100644 --- a/src/persistence/Elsa.Persistence.YesSql/Documents/WorkflowDefinitionDocument.cs +++ b/src/persistence/Elsa.Persistence.YesSql/Documents/WorkflowDefinitionDocument.cs @@ -20,6 +20,7 @@ namespace Elsa.Persistence.YesSql.Documents public bool DeleteCompletedInstances { get; set; } public bool IsPublished { get; set; } public bool IsLatest { get; set; } + public string? Tag { get; set; } public ICollection Activities { get; set; } = new List(); public ICollection Connections { get; set; } = new List(); } diff --git a/src/persistence/Elsa.Persistence.YesSql/Indexes/WorkflowDefinitionIndex.cs b/src/persistence/Elsa.Persistence.YesSql/Indexes/WorkflowDefinitionIndex.cs index 8f406e863..9cf259aa2 100644 --- a/src/persistence/Elsa.Persistence.YesSql/Indexes/WorkflowDefinitionIndex.cs +++ b/src/persistence/Elsa.Persistence.YesSql/Indexes/WorkflowDefinitionIndex.cs @@ -12,6 +12,7 @@ namespace Elsa.Persistence.YesSql.Indexes public int Version { get; set; } public bool IsLatest { get; set; } public bool IsPublished { get; set; } + public string? Tag { get; set; } } public class WorkflowDefinitionIndexProvider : IndexProvider @@ -29,7 +30,8 @@ namespace Elsa.Persistence.YesSql.Indexes DefinitionVersionId = workflowDefinition.DefinitionVersionId, Version = workflowDefinition.Version, IsPublished = workflowDefinition.IsPublished, - IsLatest = workflowDefinition.IsLatest + IsLatest = workflowDefinition.IsLatest, + Tag = workflowDefinition.Tag } ); } diff --git a/src/persistence/Elsa.Persistence.YesSql/Migrations.cs b/src/persistence/Elsa.Persistence.YesSql/Migrations.cs index 5e3fe9d59..dd5ffdd2e 100644 --- a/src/persistence/Elsa.Persistence.YesSql/Migrations.cs +++ b/src/persistence/Elsa.Persistence.YesSql/Migrations.cs @@ -17,7 +17,8 @@ namespace Elsa.Persistence.YesSql .Column(nameof(WorkflowDefinitionIndex.DefinitionVersionId)) .Column(nameof(WorkflowDefinitionIndex.Version)) .Column(nameof(WorkflowDefinitionIndex.IsLatest)) - .Column(nameof(WorkflowDefinitionIndex.IsPublished)), + .Column(nameof(WorkflowDefinitionIndex.IsPublished)) + .Column(nameof(WorkflowDefinitionIndex.Tag)), CollectionNames.WorkflowDefinitions); SchemaBuilder.CreateMapIndexTable(