diff --git a/src/bundles/Elsa.Server.Web/Program.cs b/src/bundles/Elsa.Server.Web/Program.cs
index 7dc88b704..2c8ec0f96 100644
--- a/src/bundles/Elsa.Server.Web/Program.cs
+++ b/src/bundles/Elsa.Server.Web/Program.cs
@@ -87,6 +87,7 @@ services
identity.IdentityOptions = options => identitySection.Bind(options);
identity.TokenOptions = options => identityTokenSection.Bind(options);
+ identity.UseStoreBasedApplicationProvider();
identity.UseConfigurationBasedUserProvider(options => identitySection.Bind(options));
identity.UseConfigurationBasedApplicationProvider(options => identitySection.Bind(options));
identity.UseConfigurationBasedRoleProvider(options => identitySection.Bind(options));
diff --git a/src/clients/Elsa.Api.Client/Contracts/IHttpMessageHandlerProvider.cs b/src/clients/Elsa.Api.Client/Contracts/IHttpMessageHandlerProvider.cs
deleted file mode 100644
index 1eea665d4..000000000
--- a/src/clients/Elsa.Api.Client/Contracts/IHttpMessageHandlerProvider.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-namespace Elsa.Api.Client.Contracts;
-
-///
-/// Provides an instance.
-///
-public interface IHttpMessageHandlerProvider
-{
- ///
- /// Returns an instance.
- ///
- HttpMessageHandler GetHandler();
-}
\ No newline at end of file
diff --git a/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Models/ActivityExecutionRecord.cs b/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Models/ActivityExecutionRecord.cs
index f0c03f6ca..6102fc078 100644
--- a/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Models/ActivityExecutionRecord.cs
+++ b/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Models/ActivityExecutionRecord.cs
@@ -1,11 +1,13 @@
using Elsa.Api.Client.Resources.WorkflowInstances.Models;
using Elsa.Api.Client.Shared.Models;
+using JetBrains.Annotations;
namespace Elsa.Api.Client.Resources.ActivityExecutions.Models;
///
/// Represents a single workflow execution, associated with an individual activity instance.
///
+[UsedImplicitly]
public class ActivityExecutionRecord : Entity
{
///
diff --git a/src/modules/Elsa.Email/Activities/SendEmail.cs b/src/modules/Elsa.Email/Activities/SendEmail.cs
index 546f7f26a..aa9657d44 100644
--- a/src/modules/Elsa.Email/Activities/SendEmail.cs
+++ b/src/modules/Elsa.Email/Activities/SendEmail.cs
@@ -120,7 +120,7 @@ public class SendEmail : Activity
catch (Exception e)
{
logger.LogWarning(e, "Error while sending email message");
- context.AddExecutionLogEntry("Error", e.Message, payload: new { e.StackTrace }, includeActivityState: true);
+ context.AddExecutionLogEntry("Error", e.Message, payload: new { e.StackTrace });
await context.ScheduleActivityAsync(Error, OnErrorCompletedAsync);
}
}
diff --git a/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.Cancel.cs b/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.Cancel.cs
index 19882ba13..082935672 100644
--- a/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.Cancel.cs
+++ b/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.Cancel.cs
@@ -34,7 +34,7 @@ public partial class ActivityExecutionContext
WorkflowExecutionContext.Bookmarks.RemoveWhere(x => x.ActivityNodeId == NodeId);
// Add an execution log entry.
- AddExecutionLogEntry("Canceled", payload: JournalData, includeActivityState: true);
+ AddExecutionLogEntry("Canceled", payload: JournalData);
await _cancellationRegistration.DisposeAsync();
await this.SendSignalAsync(new CancelSignal());
diff --git a/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.ExecutionLogEntry.cs b/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.ExecutionLogEntry.cs
index a7ce2cffb..e05a262c6 100644
--- a/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.ExecutionLogEntry.cs
+++ b/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.ExecutionLogEntry.cs
@@ -12,12 +12,9 @@ public partial class ActivityExecutionContext
/// The message of the event.
/// The source of the activity. For example, the source file name and line number in case of composite activities.
/// Any contextual data related to this event.
- /// True to include activity state with this event, false otherwise.
/// Returns the created .
- public WorkflowExecutionLogEntry AddExecutionLogEntry(string eventName, string? message = default, string? source = default, object? payload = default, bool includeActivityState = false)
+ public WorkflowExecutionLogEntry AddExecutionLogEntry(string eventName, string? message = default, string? source = default, object? payload = default)
{
- var activityState = includeActivityState ? ActivityState : default;
-
var logEntry = new WorkflowExecutionLogEntry(
Id,
ParentActivityExecutionContext?.Id,
@@ -26,7 +23,7 @@ public partial class ActivityExecutionContext
Activity.Version,
Activity.Name,
NodeId,
- activityState,
+ null,
_systemClock.UtcNow,
WorkflowExecutionContext.ExecutionLogSequence++,
eventName,
diff --git a/src/modules/Elsa.Workflows.Core/Extensions/ActivityExecutionContextExtensions.cs b/src/modules/Elsa.Workflows.Core/Extensions/ActivityExecutionContextExtensions.cs
index 6a5ef5c36..4d934abcf 100644
--- a/src/modules/Elsa.Workflows.Core/Extensions/ActivityExecutionContextExtensions.cs
+++ b/src/modules/Elsa.Workflows.Core/Extensions/ActivityExecutionContextExtensions.cs
@@ -469,7 +469,7 @@ public static class ActivityExecutionContextExtensions
}
// Add an execution log entry.
- context.AddExecutionLogEntry("Completed", payload: context.JournalData, includeActivityState: true);
+ context.AddExecutionLogEntry("Completed", payload: context.JournalData);
// Send a signal.
await context.SendSignalAsync(new ActivityCompleted(result));
@@ -563,7 +563,7 @@ public static class ActivityExecutionContextExtensions
context.WorkflowExecutionContext.Bookmarks.RemoveWhere(x => x.ActivityNodeId == context.NodeId);
// Add an execution log entry.
- context.AddExecutionLogEntry("Canceled", payload: context.JournalData, includeActivityState: true);
+ context.AddExecutionLogEntry("Canceled", payload: context.JournalData);
await context.SendSignalAsync(new CancelSignal());
await publisher.SendAsync(new ActivityCancelled(context));
diff --git a/src/modules/Elsa.Workflows.Core/Middleware/Activities/ExecutionLogMiddleware.cs b/src/modules/Elsa.Workflows.Core/Middleware/Activities/ExecutionLogMiddleware.cs
index fc5a2405c..db14fe43c 100644
--- a/src/modules/Elsa.Workflows.Core/Middleware/Activities/ExecutionLogMiddleware.cs
+++ b/src/modules/Elsa.Workflows.Core/Middleware/Activities/ExecutionLogMiddleware.cs
@@ -2,6 +2,7 @@ using Elsa.Extensions;
using Elsa.Workflows.Contracts;
using Elsa.Workflows.Models;
using Elsa.Workflows.Pipelines.ActivityExecution;
+using JetBrains.Annotations;
namespace Elsa.Workflows.Middleware.Activities;
@@ -19,6 +20,7 @@ public static class ExecutionLogMiddlewareExtensions
///
/// An activity execution middleware component that extracts execution details as objects.
///
+[UsedImplicitly]
public class ExecutionLogMiddleware : IActivityExecutionMiddleware
{
private readonly ActivityMiddlewareDelegate _next;
@@ -34,7 +36,7 @@ public class ExecutionLogMiddleware : IActivityExecutionMiddleware
///
public async ValueTask InvokeAsync(ActivityExecutionContext context)
{
- context.AddExecutionLogEntry(IsActivityBookmarked(context) ? "Resumed" : "Started", includeActivityState: true);
+ context.AddExecutionLogEntry(IsActivityBookmarked(context) ? "Resumed" : "Started");
try
{
@@ -43,13 +45,12 @@ public class ExecutionLogMiddleware : IActivityExecutionMiddleware
if (context.Status == ActivityStatus.Running)
{
if (IsActivityBookmarked(context))
- context.AddExecutionLogEntry("Suspended", payload: context.JournalData, includeActivityState: true);
+ context.AddExecutionLogEntry("Suspended", payload: context.JournalData);
}
}
catch (Exception exception)
{
context.AddExecutionLogEntry("Faulted",
- includeActivityState: true,
message: exception.Message,
payload: new
{
diff --git a/src/modules/Elsa.Workflows.Core/Models/WorkflowExecutionLogEntry.cs b/src/modules/Elsa.Workflows.Core/Models/WorkflowExecutionLogEntry.cs
index db3983d75..dcad33b5b 100644
--- a/src/modules/Elsa.Workflows.Core/Models/WorkflowExecutionLogEntry.cs
+++ b/src/modules/Elsa.Workflows.Core/Models/WorkflowExecutionLogEntry.cs
@@ -11,7 +11,7 @@ public record WorkflowExecutionLogEntry(
int ActivityTypeVersion,
string? ActivityName,
string NodeId,
- IDictionary? ActivityState,
+ [property: Obsolete("USe ActivityInstanceId instead to locate activity state from ActivityExecutionLog")]IDictionary? ActivityState,
DateTimeOffset Timestamp,
long Sequence,
string? EventName,
diff --git a/src/modules/Elsa.Workflows.Runtime/Providers/ClrWorkflowProvider.cs b/src/modules/Elsa.Workflows.Runtime/Providers/ClrWorkflowProvider.cs
index 26f2334f0..c20d8cbdd 100644
--- a/src/modules/Elsa.Workflows.Runtime/Providers/ClrWorkflowProvider.cs
+++ b/src/modules/Elsa.Workflows.Runtime/Providers/ClrWorkflowProvider.cs
@@ -4,6 +4,7 @@ using Elsa.Workflows.Runtime.Contracts;
using Elsa.Workflows.Runtime.Features;
using Elsa.Workflows.Runtime.Models;
using Elsa.Workflows.Runtime.Options;
+using JetBrains.Annotations;
using Microsoft.Extensions.Options;
namespace Elsa.Workflows.Runtime.Providers;
@@ -11,6 +12,7 @@ namespace Elsa.Workflows.Runtime.Providers;
///
/// Provides workflows to the system that are registered with
///
+[UsedImplicitly]
public class ClrWorkflowProvider : IWorkflowProvider
{
private readonly IWorkflowBuilderFactory _workflowBuilderFactory;
@@ -18,7 +20,7 @@ public class ClrWorkflowProvider : IWorkflowProvider
private readonly RuntimeOptions _options;
///
- /// Constructor.
+ /// Initializes a new instance of the class.
///
public ClrWorkflowProvider(
IOptions options,