diff --git a/aspnet-core/Directory.Build.props b/aspnet-core/Directory.Build.props
index 67526e060..4ffa4af0a 100644
--- a/aspnet-core/Directory.Build.props
+++ b/aspnet-core/Directory.Build.props
@@ -5,7 +5,7 @@
1.8.0
1.0.2
6.2.0
- 2.8.2
+ 2.9.0
1.5.10
2.13.0
3.0.434
diff --git a/aspnet-core/LINGYUN.MicroService.Workflow.sln b/aspnet-core/LINGYUN.MicroService.Workflow.sln
index 62d97309e..22781a14e 100644
--- a/aspnet-core/LINGYUN.MicroService.Workflow.sln
+++ b/aspnet-core/LINGYUN.MicroService.Workflow.sln
@@ -55,7 +55,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa", "modules
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Server", "modules\elsa\LINGYUN.Abp.Elsa.Server\LINGYUN.Abp.Elsa.Server.csproj", "{88AA0D46-597E-4969-8382-A3F8054B9409}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.EntityFramework.Core", "modules\elsa\LINGYUN.Abp.Elsa.EntityFramework.Core\LINGYUN.Abp.Elsa.EntityFramework.Core.csproj", "{CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.EntityFrameworkCore", "modules\elsa\LINGYUN.Abp.Elsa.EntityFrameworkCore\LINGYUN.Abp.Elsa.EntityFrameworkCore.csproj", "{CAC0D3A2-8BFA-4A84-A7FA-550A3BB16288}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.BlobStoring", "modules\elsa\LINGYUN.Abp.Elsa.Activities.BlobStoring\LINGYUN.Abp.Elsa.Activities.BlobStoring.csproj", "{81CB5141-4FC5-413A-A516-CD65F40465C0}"
EndProject
@@ -79,7 +79,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Core", "modules\common\LINGYUN.Abp.Notifications.Core\LINGYUN.Abp.Notifications.Core.csproj", "{CE1B9AD0-7CDA-4459-86A3-A3162C1095D9}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Elsa.Activities.Webhooks", "modules\elsa\LINGYUN.Abp.Elsa.Activities.Webhooks\LINGYUN.Abp.Elsa.Activities.Webhooks.csproj", "{2CA34976-4A80-485C-8572-6004829BB727}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elsa.Activities.Webhooks", "modules\elsa\LINGYUN.Abp.Elsa.Activities.Webhooks\LINGYUN.Abp.Elsa.Activities.Webhooks.csproj", "{2CA34976-4A80-485C-8572-6004829BB727}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Webhooks.Core", "modules\webhooks\LINGYUN.Abp.Webhooks.Core\LINGYUN.Abp.Webhooks.Core.csproj", "{44E4EBFA-6F25-4FD7-A4B3-536C3A42677C}"
EndProject
@@ -87,6 +87,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Webhooks", "mod
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Webhooks.EventBus", "modules\webhooks\LINGYUN.Abp.Webhooks.EventBus\LINGYUN.Abp.Webhooks.EventBus.csproj", "{B6246B7A-4095-433A-B981-5D1E43CDF712}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql", "modules\elsa\LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql\LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql.csproj", "{4B20572A-10E7-4414-943A-974F275677B4}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -229,6 +231,10 @@ Global
{B6246B7A-4095-433A-B981-5D1E43CDF712}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B6246B7A-4095-433A-B981-5D1E43CDF712}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B6246B7A-4095-433A-B981-5D1E43CDF712}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4B20572A-10E7-4414-943A-974F275677B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4B20572A-10E7-4414-943A-974F275677B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4B20572A-10E7-4414-943A-974F275677B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4B20572A-10E7-4414-943A-974F275677B4}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -271,6 +277,7 @@ Global
{44E4EBFA-6F25-4FD7-A4B3-536C3A42677C} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
{6489B162-2B28-42B9-9AD4-EB5CCBB8AE85} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
{B6246B7A-4095-433A-B981-5D1E43CDF712} = {6DA78E72-BA55-4ECF-97DB-6258174D3E2A}
+ {4B20572A-10E7-4414-943A-974F275677B4} = {F1CCBEC7-ACAB-4DC5-909E-D8CC2E1B7EEC}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6BB7A5DE-DA12-44DC-BC9B-0F6CA524346F}
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities/LINGYUN/Abp/Elsa/Activities/AbpElsaActivitiesModule.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities/LINGYUN/Abp/Elsa/Activities/AbpElsaActivitiesModule.cs
index 77df108b3..ef68b940e 100644
--- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities/LINGYUN/Abp/Elsa/Activities/AbpElsaActivitiesModule.cs
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.Activities/LINGYUN/Abp/Elsa/Activities/AbpElsaActivitiesModule.cs
@@ -5,7 +5,6 @@ using LINGYUN.Abp.Elsa.Activities.Emailing;
using LINGYUN.Abp.Elsa.Activities.IM;
using LINGYUN.Abp.Elsa.Activities.Notifications;
using LINGYUN.Abp.Elsa.Activities.Sms;
-using LINGYUN.Abp.Elsa.Activities.Webhooks;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Modularity;
@@ -23,7 +22,6 @@ public class AbpElsaActivitiesModule : AbpModule
public override void PreConfigureServices(ServiceConfigurationContext context)
{
var configuration = context.Services.GetConfiguration();
- var elsaSection = configuration.GetSection("Elsa");
var startups = new[]
{
typeof(Emailing.Startup),
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFramework.Core/FodyWeavers.xml b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/FodyWeavers.xml
similarity index 100%
rename from aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFramework.Core/FodyWeavers.xml
rename to aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/FodyWeavers.xml
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql.csproj b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql.csproj
new file mode 100644
index 000000000..d5eb83291
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql.csproj
@@ -0,0 +1,19 @@
+
+
+
+ net6.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN/Abp/Elsa/EntityFrameworkCore/MySql/AbpElsaEntityFrameworkCoreMySqlModule.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN/Abp/Elsa/EntityFrameworkCore/MySql/AbpElsaEntityFrameworkCoreMySqlModule.cs
new file mode 100644
index 000000000..45069e0a8
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN/Abp/Elsa/EntityFrameworkCore/MySql/AbpElsaEntityFrameworkCoreMySqlModule.cs
@@ -0,0 +1,29 @@
+using Elsa;
+using Elsa.Options;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.EntityFrameworkCore.MySQL;
+using Volo.Abp.Modularity;
+
+namespace LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql;
+
+[DependsOn(
+ typeof(AbpElsaEntityFrameworkCoreModule),
+ typeof(AbpEntityFrameworkCoreMySQLModule))]
+public class AbpElsaEntityFrameworkCoreMySqlModule : AbpModule
+{
+ public override void PreConfigureServices(ServiceConfigurationContext context)
+ {
+ var configuration = context.Services.GetConfiguration();
+ var startups = new[]
+ {
+ typeof(PersistenceStartup),
+ typeof(WebhooksStartup),
+ typeof(WorkflowSettingsStartup),
+ };
+
+ PreConfigure(elsa =>
+ {
+ elsa.AddFeatures(startups, configuration);
+ });
+ }
+}
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN/Abp/Elsa/EntityFrameworkCore/MySql/PersistenceStartup.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN/Abp/Elsa/EntityFrameworkCore/MySql/PersistenceStartup.cs
new file mode 100644
index 000000000..48f1efde2
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN/Abp/Elsa/EntityFrameworkCore/MySql/PersistenceStartup.cs
@@ -0,0 +1,16 @@
+using Elsa.Attributes;
+using Elsa.Persistence.EntityFramework.MySql;
+using Microsoft.EntityFrameworkCore;
+
+namespace LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql;
+
+[Feature("DefaultPersistence:EntityFrameworkCore:MySql")]
+public class PersistenceStartup : PersistenceStartupBase
+{
+ protected override string ProviderName => "MySql";
+
+ protected override void Configure(DbContextOptionsBuilder options, string connectionString)
+ {
+ options.UseMySql(connectionString);
+ }
+}
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN/Abp/Elsa/EntityFrameworkCore/MySql/WebhooksStartup.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN/Abp/Elsa/EntityFrameworkCore/MySql/WebhooksStartup.cs
new file mode 100644
index 000000000..05c4a76c9
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN/Abp/Elsa/EntityFrameworkCore/MySql/WebhooksStartup.cs
@@ -0,0 +1,18 @@
+using Elsa.Attributes;
+using Microsoft.EntityFrameworkCore;
+
+namespace LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql;
+
+[Feature("Webhooks:EntityFrameworkCore:MySql")]
+public class WebhooksStartup : WebhooksStartupBase
+{
+ protected override string ProviderName => "MySql";
+
+ protected override void Configure(DbContextOptionsBuilder options, string connectionString)
+ {
+ options.UseMySql(
+ connectionString,
+ ServerVersion.AutoDetect(connectionString),
+ x => x.MigrationsHistoryTable("__EFMigrationsHistory_Webhooks"));
+ }
+}
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN/Abp/Elsa/EntityFrameworkCore/MySql/WorkflowSettingsStartup.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN/Abp/Elsa/EntityFrameworkCore/MySql/WorkflowSettingsStartup.cs
new file mode 100644
index 000000000..70b6c68e5
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql/LINGYUN/Abp/Elsa/EntityFrameworkCore/MySql/WorkflowSettingsStartup.cs
@@ -0,0 +1,18 @@
+using Elsa.Attributes;
+using Microsoft.EntityFrameworkCore;
+
+namespace LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql;
+
+[Feature("WorkflowSettings:EntityFrameworkCore:MySql")]
+public class WorkflowSettingsStartup : WorkflowSettingsStartupBase
+{
+ protected override string ProviderName => "MySql";
+
+ protected override void Configure(DbContextOptionsBuilder options, string connectionString)
+ {
+ options.UseMySql(
+ connectionString,
+ ServerVersion.AutoDetect(connectionString),
+ x => x.MigrationsHistoryTable("__EFMigrationsHistory_WorkflowSettings"));
+ }
+}
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/FodyWeavers.xml b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/FodyWeavers.xml
new file mode 100644
index 000000000..c485a4548
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFramework.Core/LINGYUN.Abp.Elsa.EntityFramework.Core.csproj b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/LINGYUN.Abp.Elsa.EntityFrameworkCore.csproj
similarity index 100%
rename from aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFramework.Core/LINGYUN.Abp.Elsa.EntityFramework.Core.csproj
rename to aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/LINGYUN.Abp.Elsa.EntityFrameworkCore.csproj
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFramework.Core/LINGYUN/Abp/Elsa/EntityFramework.Core/AbpElsaEntityFrameworkCoreModule.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/LINGYUN/Abp/Elsa/EntityFrameworkCore/AbpElsaEntityFrameworkCoreModule.cs
similarity index 57%
rename from aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFramework.Core/LINGYUN/Abp/Elsa/EntityFramework.Core/AbpElsaEntityFrameworkCoreModule.cs
rename to aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/LINGYUN/Abp/Elsa/EntityFrameworkCore/AbpElsaEntityFrameworkCoreModule.cs
index 5120b9cdf..8d5ba8a20 100644
--- a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFramework.Core/LINGYUN/Abp/Elsa/EntityFramework.Core/AbpElsaEntityFrameworkCoreModule.cs
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/LINGYUN/Abp/Elsa/EntityFrameworkCore/AbpElsaEntityFrameworkCoreModule.cs
@@ -1,15 +1,11 @@
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Modularity;
-namespace LINGYUN.Abp.Elsa.EntityFramework.Core;
+namespace LINGYUN.Abp.Elsa.EntityFrameworkCore;
[DependsOn(
typeof(AbpElsaModule),
typeof(AbpEntityFrameworkCoreModule))]
public class AbpElsaEntityFrameworkCoreModule : AbpModule
{
- public override void ConfigureServices(ServiceConfigurationContext context)
- {
-
- }
}
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/LINGYUN/Abp/Elsa/EntityFrameworkCore/PersistenceStartupBase.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/LINGYUN/Abp/Elsa/EntityFrameworkCore/PersistenceStartupBase.cs
new file mode 100644
index 000000000..1a98e3dde
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/LINGYUN/Abp/Elsa/EntityFrameworkCore/PersistenceStartupBase.cs
@@ -0,0 +1,37 @@
+using Elsa.Options;
+using Elsa.Persistence.EntityFramework.Core;
+using Elsa.Persistence.EntityFramework.Core.Extensions;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Configuration;
+using System;
+
+namespace LINGYUN.Abp.Elsa.EntityFrameworkCore;
+
+public abstract class PersistenceStartupBase : EntityFrameworkCoreStartupBase
+{
+ public override void ConfigureElsa(ElsaOptionsBuilder elsa, IConfiguration configuration)
+ {
+ var section = configuration.GetSection("Elsa:Features:DefaultPersistence");
+ var connectionStringName = section.GetValue("ConnectionStringIdentifier");
+ var connectionString = section.GetValue("ConnectionString");
+ if (connectionString.IsNullOrWhiteSpace())
+ {
+ if (connectionStringName.IsNullOrWhiteSpace())
+ {
+ connectionStringName = ProviderName;
+ }
+
+ connectionString = configuration.GetConnectionString(connectionStringName);
+ }
+
+ if (connectionString.IsNullOrWhiteSpace())
+ {
+ connectionString = GetDefaultConnectionString();
+ }
+
+ elsa.UseEntityFrameworkPersistence(options =>
+ {
+ Configure(options, connectionString);
+ }, autoRunMigrations: false);
+ }
+}
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/LINGYUN/Abp/Elsa/EntityFrameworkCore/WebhooksStartupBase.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/LINGYUN/Abp/Elsa/EntityFrameworkCore/WebhooksStartupBase.cs
new file mode 100644
index 000000000..e622616d2
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/LINGYUN/Abp/Elsa/EntityFrameworkCore/WebhooksStartupBase.cs
@@ -0,0 +1,41 @@
+using Elsa.Activities.Webhooks;
+using Elsa.Options;
+using Elsa.Webhooks.Persistence.EntityFramework.Core;
+using Elsa.Webhooks.Persistence.EntityFramework.Core.Extensions;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using System;
+
+namespace LINGYUN.Abp.Elsa.EntityFrameworkCore;
+
+public abstract class WebhooksStartupBase : EntityFrameworkWebhookStartupBase
+{
+ public override void ConfigureElsa(ElsaOptionsBuilder elsa, IConfiguration configuration)
+ {
+ var section = configuration.GetSection("Elsa:Features:Webhooks");
+ var connectionStringName = section.GetValue("ConnectionStringIdentifier");
+ var connectionString = section.GetValue("ConnectionString");
+ if (connectionStringName.IsNullOrWhiteSpace())
+ {
+ connectionStringName = ProviderName;
+ }
+
+ if (connectionString.IsNullOrWhiteSpace())
+ {
+ connectionString = configuration.GetConnectionString(connectionStringName);
+ }
+
+ if (connectionString.IsNullOrWhiteSpace())
+ {
+ connectionString = GetDefaultConnectionString();
+ }
+
+ var webhookOptionsBuilder = new WebhookOptionsBuilder(elsa.Services);
+ webhookOptionsBuilder.UseEntityFrameworkPersistence(options =>
+ {
+ Configure(options, connectionString);
+ }, autoRunMigrations: false);
+ elsa.Services.AddSingleton(webhookOptionsBuilder.WebhookOptions);
+ }
+}
diff --git a/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/LINGYUN/Abp/Elsa/EntityFrameworkCore/WorkflowSettingsStartupBase.cs b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/LINGYUN/Abp/Elsa/EntityFrameworkCore/WorkflowSettingsStartupBase.cs
new file mode 100644
index 000000000..edb703939
--- /dev/null
+++ b/aspnet-core/modules/elsa/LINGYUN.Abp.Elsa.EntityFrameworkCore/LINGYUN/Abp/Elsa/EntityFrameworkCore/WorkflowSettingsStartupBase.cs
@@ -0,0 +1,43 @@
+using Elsa.Options;
+using Elsa.WorkflowSettings;
+using Elsa.WorkflowSettings.Extensions;
+using Elsa.WorkflowSettings.Persistence.EntityFramework.Core;
+using Elsa.WorkflowSettings.Persistence.EntityFramework.Core.Extensions;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using System;
+
+namespace LINGYUN.Abp.Elsa.EntityFrameworkCore;
+
+public abstract class WorkflowSettingsStartupBase : EntityFrameworkWorkflowSettingsStartupBase
+{
+ public override void ConfigureElsa(ElsaOptionsBuilder elsa, IConfiguration configuration)
+ {
+ var section = configuration.GetSection("Elsa:Features:WorkflowSettings");
+ var connectionStringName = section.GetValue("ConnectionStringIdentifier");
+ var connectionString = section.GetValue("ConnectionString");
+ if (connectionString.IsNullOrWhiteSpace())
+ {
+ if (connectionStringName.IsNullOrWhiteSpace())
+ {
+ connectionStringName = ProviderName;
+ }
+
+ connectionString = configuration.GetConnectionString(connectionStringName);
+ }
+
+ if (connectionString.IsNullOrWhiteSpace())
+ {
+ connectionString = GetDefaultConnectionString();
+ }
+
+ var workflowSettingsOptionsBuilder = new WorkflowSettingsOptionsBuilder(elsa.Services);
+ workflowSettingsOptionsBuilder.UseEntityFrameworkPersistence(options =>
+ {
+ Configure(options, connectionString);
+ }, autoRunMigrations: false);
+ elsa.Services.AddScoped((provider) => workflowSettingsOptionsBuilder.WorkflowSettingsOptions.WorkflowSettingsStoreFactory(provider));
+ elsa.AddWorkflowSettings();
+ }
+}
diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/LY.MicroService.WorkflowManagement.HttpApi.Host.csproj b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/LY.MicroService.WorkflowManagement.HttpApi.Host.csproj
index 35ef0c1c9..96a3cde97 100644
--- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/LY.MicroService.WorkflowManagement.HttpApi.Host.csproj
+++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/LY.MicroService.WorkflowManagement.HttpApi.Host.csproj
@@ -15,11 +15,9 @@
-
-
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -54,6 +52,7 @@
+
diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Pages/_Host.cshtml b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Pages/_Host.cshtml
index c1a99ee89..7c6eba682 100644
--- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Pages/_Host.cshtml
+++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Pages/_Host.cshtml
@@ -24,7 +24,7 @@
diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Properties/launchSettings.json b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Properties/launchSettings.json
index cdb3a8756..b928a38e2 100644
--- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Properties/launchSettings.json
+++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Properties/launchSettings.json
@@ -11,11 +11,11 @@
"LINGYUN.Abp.WorkflowManagement.HttpApi.Host": {
"commandName": "Project",
"launchBrowser": false,
+ "dotnetRunMessages": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
- "applicationUrl": "http://127.0.0.1:30035",
- "dotnetRunMessages": "true"
+ "applicationUrl": "http://127.0.0.1:30035"
}
}
}
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs
index b178cbdc4..9ec46f885 100644
--- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs
+++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs
@@ -127,11 +127,8 @@ public partial class WorkflowManagementHttpApiHostModule
typeof(Elsa.Activities.UserTask.Startup),
typeof(Elsa.Activities.Temporal.Quartz.Startup),
typeof(Elsa.Activities.Email.Startup),
- typeof(Elsa.Persistence.EntityFramework.MySql.Startup),
typeof(Elsa.Scripting.JavaScript.Startup),
typeof(Elsa.Activities.Webhooks.Startup),
- typeof(Elsa.Webhooks.Persistence.EntityFramework.MySql.Startup),
- typeof(Elsa.WorkflowSettings.Persistence.EntityFramework.MySql.Startup),
};
PreConfigure(elsa =>
@@ -153,6 +150,11 @@ public partial class WorkflowManagementHttpApiHostModule
});
services.AddNotificationHandlersFrom();
+
+ PreConfigure(mvcBuilder =>
+ {
+ mvcBuilder.AddApplicationPartIfNotExists(typeof(Elsa.Webhooks.Api.Endpoints.List).Assembly);
+ });
}
private void ConfigureEndpoints()
@@ -378,6 +380,10 @@ public partial class WorkflowManagementHttpApiHostModule
options.Audience = configuration["AuthServer:ApiName"];
});
+ //services.AddElsaJwtBearerAuthentication(options =>
+ //{
+ //});
+
if (isDevelopment)
{
services.AddAlwaysAllowAuthorization();
diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs
index 2da1d0e44..7dbe348f3 100644
--- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs
+++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs
@@ -11,6 +11,7 @@ using LINGYUN.Abp.BlobStoring.OssManagement;
using LINGYUN.Abp.Data.DbMigrator;
using LINGYUN.Abp.Elsa;
using LINGYUN.Abp.Elsa.Activities;
+using LINGYUN.Abp.Elsa.EntityFrameworkCore.MySql;
using LINGYUN.Abp.EventBus.CAP;
using LINGYUN.Abp.ExceptionHandling.Emailing;
using LINGYUN.Abp.Http.Client.Wrapper;
@@ -65,6 +66,7 @@ namespace LY.MicroService.WorkflowManagement;
typeof(AbpSaasEntityFrameworkCoreModule),
typeof(AbpLocalizationManagementEntityFrameworkCoreModule),
typeof(AbpEntityFrameworkCoreMySQLModule),
+ typeof(AbpElsaEntityFrameworkCoreMySqlModule),
typeof(AbpAuthorizationOrganizationUnitsModule),
typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
typeof(AbpTextTemplatingScribanModule),
diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/appsettings.Development.json b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/appsettings.Development.json
index 7cdb2d4b6..5bf47d644 100644
--- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/appsettings.Development.json
+++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/appsettings.Development.json
@@ -1,6 +1,6 @@
{
"AgileConfig": {
- "IsEnabled": true,
+ "IsEnabled": false,
"env": "DEV",
"appId": "LINGYUN.Abp.Workflow",
"secret": "1q2w3E*",
@@ -51,6 +51,7 @@
"Elsa": {
"Features": {
"DefaultPersistence": {
+ "Enabled": true,
"ConnectionStringIdentifier": "Workflow",
"EntityFrameworkCore": {
"MySql": {
@@ -155,6 +156,7 @@
"AuthServer": {
"Authority": "http://127.0.0.1:44385/",
"ApiName": "lingyun-abp-application",
+ "ElsaClientId": "InternalServiceClient",
"SwaggerClientId": "InternalServiceClient",
"SwaggerClientSecret": "1q2w3E*"
},
diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/create-migrations-initial.sql b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/create-migrations-initial.sql
new file mode 100644
index 000000000..e3d96aa4b
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/create-migrations-initial.sql
@@ -0,0 +1,313 @@
+-- basic script
+
+CREATE TABLE IF NOT EXISTS `__EFMigrationsHistory` (
+ `MigrationId` varchar(150) CHARACTER SET utf8mb4 NOT NULL,
+ `ProductVersion` varchar(32) CHARACTER SET utf8mb4 NOT NULL,
+ CONSTRAINT `PK___EFMigrationsHistory` PRIMARY KEY (`MigrationId`)
+) CHARACTER SET utf8mb4;
+
+START TRANSACTION;
+
+ALTER DATABASE CHARACTER SET utf8mb4;
+
+CREATE TABLE `Bookmarks` (
+ `Id` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `TenantId` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `Hash` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `Model` longtext CHARACTER SET utf8mb4 NOT NULL,
+ `ModelType` longtext CHARACTER SET utf8mb4 NOT NULL,
+ `ActivityType` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `ActivityId` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `WorkflowInstanceId` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `CorrelationId` varchar(255) CHARACTER SET utf8mb4 NULL,
+ CONSTRAINT `PK_Bookmarks` PRIMARY KEY (`Id`)
+) CHARACTER SET utf8mb4;
+
+CREATE TABLE `WorkflowDefinitions` (
+ `Id` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `DefinitionId` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `TenantId` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `Name` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `DisplayName` longtext CHARACTER SET utf8mb4 NULL,
+ `Description` longtext CHARACTER SET utf8mb4 NULL,
+ `Version` int NOT NULL,
+ `IsSingleton` tinyint(1) NOT NULL,
+ `PersistenceBehavior` int NOT NULL,
+ `DeleteCompletedInstances` tinyint(1) NOT NULL,
+ `IsPublished` tinyint(1) NOT NULL,
+ `IsLatest` tinyint(1) NOT NULL,
+ `Tag` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `Data` longtext CHARACTER SET utf8mb4 NULL,
+ CONSTRAINT `PK_WorkflowDefinitions` PRIMARY KEY (`Id`)
+) CHARACTER SET utf8mb4;
+
+CREATE TABLE `WorkflowExecutionLogRecords` (
+ `Id` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `TenantId` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `WorkflowInstanceId` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `ActivityId` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `ActivityType` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `Timestamp` datetime(6) NOT NULL,
+ `EventName` longtext CHARACTER SET utf8mb4 NULL,
+ `Message` longtext CHARACTER SET utf8mb4 NULL,
+ `Source` longtext CHARACTER SET utf8mb4 NULL,
+ `Data` longtext CHARACTER SET utf8mb4 NULL,
+ CONSTRAINT `PK_WorkflowExecutionLogRecords` PRIMARY KEY (`Id`)
+) CHARACTER SET utf8mb4;
+
+CREATE TABLE `WorkflowInstances` (
+ `Id` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `DefinitionId` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `TenantId` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `Version` int NOT NULL,
+ `WorkflowStatus` int NOT NULL,
+ `CorrelationId` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `ContextType` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `ContextId` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `Name` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `CreatedAt` datetime(6) NOT NULL,
+ `LastExecutedAt` datetime(6) NULL,
+ `FinishedAt` datetime(6) NULL,
+ `CancelledAt` datetime(6) NULL,
+ `FaultedAt` datetime(6) NULL,
+ `Data` longtext CHARACTER SET utf8mb4 NULL,
+ CONSTRAINT `PK_WorkflowInstances` PRIMARY KEY (`Id`)
+) CHARACTER SET utf8mb4;
+
+CREATE INDEX `IX_Bookmark_ActivityId` ON `Bookmarks` (`ActivityId`);
+
+CREATE INDEX `IX_Bookmark_ActivityType` ON `Bookmarks` (`ActivityType`);
+
+CREATE INDEX `IX_Bookmark_ActivityType_TenantId_Hash` ON `Bookmarks` (`ActivityType`, `TenantId`, `Hash`);
+
+CREATE INDEX `IX_Bookmark_CorrelationId` ON `Bookmarks` (`CorrelationId`);
+
+CREATE INDEX `IX_Bookmark_Hash` ON `Bookmarks` (`Hash`);
+
+CREATE INDEX `IX_Bookmark_Hash_CorrelationId_TenantId` ON `Bookmarks` (`Hash`, `CorrelationId`, `TenantId`);
+
+CREATE INDEX `IX_Bookmark_TenantId` ON `Bookmarks` (`TenantId`);
+
+CREATE INDEX `IX_Bookmark_WorkflowInstanceId` ON `Bookmarks` (`WorkflowInstanceId`);
+
+CREATE UNIQUE INDEX `IX_WorkflowDefinition_DefinitionId_VersionId` ON `WorkflowDefinitions` (`DefinitionId`, `Version`);
+
+CREATE INDEX `IX_WorkflowDefinition_IsLatest` ON `WorkflowDefinitions` (`IsLatest`);
+
+CREATE INDEX `IX_WorkflowDefinition_IsPublished` ON `WorkflowDefinitions` (`IsPublished`);
+
+CREATE INDEX `IX_WorkflowDefinition_Name` ON `WorkflowDefinitions` (`Name`);
+
+CREATE INDEX `IX_WorkflowDefinition_Tag` ON `WorkflowDefinitions` (`Tag`);
+
+CREATE INDEX `IX_WorkflowDefinition_TenantId` ON `WorkflowDefinitions` (`TenantId`);
+
+CREATE INDEX `IX_WorkflowDefinition_Version` ON `WorkflowDefinitions` (`Version`);
+
+CREATE INDEX `IX_WorkflowExecutionLogRecord_ActivityId` ON `WorkflowExecutionLogRecords` (`ActivityId`);
+
+CREATE INDEX `IX_WorkflowExecutionLogRecord_ActivityType` ON `WorkflowExecutionLogRecords` (`ActivityType`);
+
+CREATE INDEX `IX_WorkflowExecutionLogRecord_TenantId` ON `WorkflowExecutionLogRecords` (`TenantId`);
+
+CREATE INDEX `IX_WorkflowExecutionLogRecord_Timestamp` ON `WorkflowExecutionLogRecords` (`Timestamp`);
+
+CREATE INDEX `IX_WorkflowExecutionLogRecord_WorkflowInstanceId` ON `WorkflowExecutionLogRecords` (`WorkflowInstanceId`);
+
+CREATE INDEX `IX_WorkflowInstance_ContextId` ON `WorkflowInstances` (`ContextId`);
+
+CREATE INDEX `IX_WorkflowInstance_ContextType` ON `WorkflowInstances` (`ContextType`);
+
+CREATE INDEX `IX_WorkflowInstance_CorrelationId` ON `WorkflowInstances` (`CorrelationId`);
+
+CREATE INDEX `IX_WorkflowInstance_CreatedAt` ON `WorkflowInstances` (`CreatedAt`);
+
+CREATE INDEX `IX_WorkflowInstance_DefinitionId` ON `WorkflowInstances` (`DefinitionId`);
+
+CREATE INDEX `IX_WorkflowInstance_FaultedAt` ON `WorkflowInstances` (`FaultedAt`);
+
+CREATE INDEX `IX_WorkflowInstance_FinishedAt` ON `WorkflowInstances` (`FinishedAt`);
+
+CREATE INDEX `IX_WorkflowInstance_LastExecutedAt` ON `WorkflowInstances` (`LastExecutedAt`);
+
+CREATE INDEX `IX_WorkflowInstance_Name` ON `WorkflowInstances` (`Name`);
+
+CREATE INDEX `IX_WorkflowInstance_TenantId` ON `WorkflowInstances` (`TenantId`);
+
+CREATE INDEX `IX_WorkflowInstance_WorkflowStatus` ON `WorkflowInstances` (`WorkflowStatus`);
+
+CREATE INDEX `IX_WorkflowInstance_WorkflowStatus_DefinitionId` ON `WorkflowInstances` (`WorkflowStatus`, `DefinitionId`);
+
+CREATE INDEX `IX_WorkflowInstance_WorkflowStatus_DefinitionId_Version` ON `WorkflowInstances` (`WorkflowStatus`, `DefinitionId`, `Version`);
+
+INSERT INTO `__EFMigrationsHistory` (`MigrationId`, `ProductVersion`)
+VALUES ('20210523093427_Initial', '5.0.10');
+
+COMMIT;
+
+START TRANSACTION;
+
+ALTER TABLE `WorkflowInstances` MODIFY COLUMN `CorrelationId` varchar(255) CHARACTER SET utf8mb4 NOT NULL DEFAULT '';
+
+ALTER TABLE `WorkflowInstances` ADD `LastExecutedActivityId` longtext CHARACTER SET utf8mb4 NULL;
+
+ALTER TABLE `WorkflowDefinitions` ADD `OutputStorageProviderName` longtext CHARACTER SET utf8mb4 NULL;
+
+INSERT INTO `__EFMigrationsHistory` (`MigrationId`, `ProductVersion`)
+VALUES ('20210611200027_Update21', '5.0.10');
+
+COMMIT;
+
+START TRANSACTION;
+
+ALTER TABLE `WorkflowDefinitions` DROP COLUMN `OutputStorageProviderName`;
+
+ALTER TABLE `WorkflowInstances` RENAME `WorkflowInstances`;
+
+ALTER TABLE `WorkflowExecutionLogRecords` RENAME `WorkflowExecutionLogRecords`;
+
+ALTER TABLE `WorkflowDefinitions` RENAME `WorkflowDefinitions`;
+
+ALTER TABLE `Bookmarks` RENAME `Bookmarks`;
+
+INSERT INTO `__EFMigrationsHistory` (`MigrationId`, `ProductVersion`)
+VALUES ('20210923112211_Update23', '5.0.10');
+
+COMMIT;
+
+START TRANSACTION;
+
+ALTER TABLE `WorkflowInstances` ADD `DefinitionVersionId` longtext CHARACTER SET utf8mb4 NOT NULL;
+
+ALTER TABLE `Bookmarks` MODIFY COLUMN `CorrelationId` varchar(255) CHARACTER SET utf8mb4 NOT NULL DEFAULT '';
+
+INSERT INTO `__EFMigrationsHistory` (`MigrationId`, `ProductVersion`)
+VALUES ('20211215100204_Update24', '5.0.10');
+
+COMMIT;
+
+START TRANSACTION;
+
+ALTER TABLE `WorkflowInstances` MODIFY COLUMN `DefinitionVersionId` varchar(255) CHARACTER SET utf8mb4 NOT NULL;
+
+CREATE INDEX `IX_WorkflowInstance_DefinitionVersionId` ON `WorkflowInstances` (`DefinitionVersionId`);
+
+INSERT INTO `__EFMigrationsHistory` (`MigrationId`, `ProductVersion`)
+VALUES ('20220120170050_Update241', '5.0.10');
+
+COMMIT;
+
+START TRANSACTION;
+
+CREATE TABLE `Triggers` (
+ `Id` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `TenantId` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `Hash` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `Model` longtext CHARACTER SET utf8mb4 NOT NULL,
+ `ModelType` longtext CHARACTER SET utf8mb4 NOT NULL,
+ `ActivityType` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `ActivityId` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `WorkflowDefinitionId` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ CONSTRAINT `PK_Triggers` PRIMARY KEY (`Id`)
+) CHARACTER SET utf8mb4;
+
+CREATE INDEX `IX_Trigger_ActivityId` ON `Triggers` (`ActivityId`);
+
+CREATE INDEX `IX_Trigger_ActivityType` ON `Triggers` (`ActivityType`);
+
+CREATE INDEX `IX_Trigger_ActivityType_TenantId_Hash` ON `Triggers` (`ActivityType`, `TenantId`, `Hash`);
+
+CREATE INDEX `IX_Trigger_Hash` ON `Triggers` (`Hash`);
+
+CREATE INDEX `IX_Trigger_Hash_TenantId` ON `Triggers` (`Hash`, `TenantId`);
+
+CREATE INDEX `IX_Trigger_TenantId` ON `Triggers` (`TenantId`);
+
+CREATE INDEX `IX_Trigger_WorkflowDefinitionId` ON `Triggers` (`WorkflowDefinitionId`);
+
+INSERT INTO `__EFMigrationsHistory` (`MigrationId`, `ProductVersion`)
+VALUES ('20220120204150_Update25', '5.0.10');
+
+COMMIT;
+
+START TRANSACTION;
+
+ALTER TABLE `WorkflowDefinitions` ADD `CreatedAt` datetime(6) NOT NULL DEFAULT '0001-01-01 00:00:00';
+
+INSERT INTO `__EFMigrationsHistory` (`MigrationId`, `ProductVersion`)
+VALUES ('20220512203646_Update28', '5.0.10');
+
+COMMIT;
+
+
+-- webhooks
+
+CREATE TABLE IF NOT EXISTS `__EFMigrationsHistory` (
+ `MigrationId` varchar(150) CHARACTER SET utf8mb4 NOT NULL,
+ `ProductVersion` varchar(32) CHARACTER SET utf8mb4 NOT NULL,
+ CONSTRAINT `PK___EFMigrationsHistory` PRIMARY KEY (`MigrationId`)
+) CHARACTER SET utf8mb4;
+
+START TRANSACTION;
+
+ALTER DATABASE CHARACTER SET utf8mb4;
+
+CREATE TABLE `WebhookDefinitions` (
+ `Id` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `TenantId` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `Name` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `Path` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `Description` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `PayloadTypeName` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `IsEnabled` tinyint(1) NOT NULL,
+ CONSTRAINT `PK_WebhookDefinitions` PRIMARY KEY (`Id`)
+) CHARACTER SET utf8mb4;
+
+CREATE INDEX `IX_WebhookDefinition_Description` ON `WebhookDefinitions` (`Description`);
+
+CREATE INDEX `IX_WebhookDefinition_IsEnabled` ON `WebhookDefinitions` (`IsEnabled`);
+
+CREATE INDEX `IX_WebhookDefinition_Name` ON `WebhookDefinitions` (`Name`);
+
+CREATE INDEX `IX_WebhookDefinition_Path` ON `WebhookDefinitions` (`Path`);
+
+CREATE INDEX `IX_WebhookDefinition_PayloadTypeName` ON `WebhookDefinitions` (`PayloadTypeName`);
+
+CREATE INDEX `IX_WebhookDefinition_TenantId` ON `WebhookDefinitions` (`TenantId`);
+
+INSERT INTO `__EFMigrationsHistory` (`MigrationId`, `ProductVersion`)
+VALUES ('20210604065041_Initial', '5.0.10');
+
+COMMIT;
+
+
+-- workflow-settings
+
+CREATE TABLE IF NOT EXISTS `__EFMigrationsHistory` (
+ `MigrationId` varchar(150) CHARACTER SET utf8mb4 NOT NULL,
+ `ProductVersion` varchar(32) CHARACTER SET utf8mb4 NOT NULL,
+ CONSTRAINT `PK___EFMigrationsHistory` PRIMARY KEY (`MigrationId`)
+) CHARACTER SET utf8mb4;
+
+START TRANSACTION;
+
+ALTER DATABASE CHARACTER SET utf8mb4;
+
+CREATE TABLE `WorkflowSettings` (
+ `Id` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
+ `WorkflowBlueprintId` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `Key` varchar(255) CHARACTER SET utf8mb4 NULL,
+ `Value` varchar(255) CHARACTER SET utf8mb4 NULL,
+ CONSTRAINT `PK_WorkflowSettings` PRIMARY KEY (`Id`)
+) CHARACTER SET utf8mb4;
+
+CREATE INDEX `IX_WorkflowSetting_Key` ON `WorkflowSettings` (`Key`);
+
+CREATE INDEX `IX_WorkflowSetting_Value` ON `WorkflowSettings` (`Value`);
+
+CREATE INDEX `IX_WorkflowSetting_WorkflowBlueprintId` ON `WorkflowSettings` (`WorkflowBlueprintId`);
+
+INSERT INTO `__EFMigrationsHistory` (`MigrationId`, `ProductVersion`)
+VALUES ('20210730112043_Initial', '5.0.10');
+
+COMMIT;