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,