From 33d291cfccd0f29cb96c520f2b6ea1dc5e81d7e3 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Sun, 23 Feb 2025 21:40:15 +0100 Subject: [PATCH] Add webhook configuration and support to Elsa Server Integrated webhook sinks via appsettings.json for handling "Run Task" events. Enabled webhook functionality in the application pipeline and added the necessary project reference for Elsa.Webhooks. This enhances event-driven capabilities and improves extensibility. --- src/apps/Elsa.Server.Web/Elsa.Server.Web.csproj | 1 + src/apps/Elsa.Server.Web/Program.cs | 3 ++- src/apps/Elsa.Server.Web/appsettings.json | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/apps/Elsa.Server.Web/Elsa.Server.Web.csproj b/src/apps/Elsa.Server.Web/Elsa.Server.Web.csproj index 7ac6ef99a..033581426 100644 --- a/src/apps/Elsa.Server.Web/Elsa.Server.Web.csproj +++ b/src/apps/Elsa.Server.Web/Elsa.Server.Web.csproj @@ -28,6 +28,7 @@ + diff --git a/src/apps/Elsa.Server.Web/Program.cs b/src/apps/Elsa.Server.Web/Program.cs index aeceb8079..b0b5bbfea 100644 --- a/src/apps/Elsa.Server.Web/Program.cs +++ b/src/apps/Elsa.Server.Web/Program.cs @@ -665,7 +665,8 @@ services tenantHttpRouting.WithTenantHeader("X-Tenant-ID"); }); } - + + elsa.UseWebhooks(webhooks => webhooks.ConfigureSinks += options => builder.Configuration.GetSection("Webhooks").Bind(options)); elsa.InstallDropIns(options => options.DropInRootDirectory = Path.Combine(Directory.GetCurrentDirectory(), "App_Data", "DropIns")); elsa.AddSwagger(); elsa.AddFastEndpointsAssembly(); diff --git a/src/apps/Elsa.Server.Web/appsettings.json b/src/apps/Elsa.Server.Web/appsettings.json index a1d35303b..d541c7d84 100644 --- a/src/apps/Elsa.Server.Web/appsettings.json +++ b/src/apps/Elsa.Server.Web/appsettings.json @@ -327,5 +327,19 @@ } } ] + }, + "Webhooks": { + "Sinks": [ + { + "Id": "1", + "Name": "Run Task", + "Filters": [ + { + "EventType": "Elsa.RunTask" + } + ], + "Url": "https://localhost:6001/webhooks/run-task" + } + ] } }