diff --git a/src/bundles/Elsa.WorkflowServer.Web/Program.cs b/src/bundles/Elsa.WorkflowServer.Web/Program.cs
index d7f8181d3..5d20b3b54 100644
--- a/src/bundles/Elsa.WorkflowServer.Web/Program.cs
+++ b/src/bundles/Elsa.WorkflowServer.Web/Program.cs
@@ -19,7 +19,7 @@ using Proto.Persistence.SqlServer;
const bool useMongoDb = false;
const bool useSqlServer = false;
const bool useDapper = false;
-const bool useProtoActor = true;
+const bool useProtoActor = false;
const bool useHangfire = false;
var builder = WebApplication.CreateBuilder(args);
diff --git a/src/modules/Elsa.Http/Activities/FlowSendHttpRequest.cs b/src/modules/Elsa.Http/Activities/FlowSendHttpRequest.cs
index 2f04d0d8a..2149ab64a 100644
--- a/src/modules/Elsa.Http/Activities/FlowSendHttpRequest.cs
+++ b/src/modules/Elsa.Http/Activities/FlowSendHttpRequest.cs
@@ -1,7 +1,9 @@
+using System.Reflection;
using System.Runtime.CompilerServices;
using Elsa.Extensions;
using Elsa.Workflows.Core;
using Elsa.Workflows.Core.Attributes;
+using Elsa.Workflows.Core.Contracts;
using Elsa.Workflows.Core.Models;
namespace Elsa.Http;
@@ -10,17 +12,21 @@ namespace Elsa.Http;
/// Send an HTTP request.
///
[Activity("Elsa", "HTTP", "Send an HTTP request.", DisplayName = "HTTP Request (flow)", Kind = ActivityKind.Task)]
-public class FlowSendHttpRequest : SendHttpRequestBase
+public class FlowSendHttpRequest : SendHttpRequestBase, IActivityPropertyDefaultValueProvider
{
///
public FlowSendHttpRequest([CallerFilePath] string? source = default, [CallerLineNumber] int? line = default) : base(source, line)
{
}
-
+
///
/// A list of expected status codes to handle.
///
- [Input(Description = "A list of expected status codes to handle.", UIHint = InputUIHints.MultiText)]
+ [Input(
+ Description = "A list of expected status codes to handle.",
+ UIHint = InputUIHints.MultiText,
+ DefaultValueProvider = typeof(FlowSendHttpRequest)
+ )]
public Input> ExpectedStatusCodes { get; set; } = default!;
///
@@ -45,4 +51,14 @@ public class FlowSendHttpRequest : SendHttpRequestBase
{
await context.CompleteActivityWithOutcomesAsync("Timeout");
}
+
+ object IActivityPropertyDefaultValueProvider.GetDefaultValue(PropertyInfo property)
+ {
+ if (property.Name == nameof(ExpectedStatusCodes))
+ {
+ return new List { 200 };
+ }
+
+ return default!;
+ }
}
\ No newline at end of file
diff --git a/src/modules/Elsa.Http/Activities/SendHttpRequestBase.cs b/src/modules/Elsa.Http/Activities/SendHttpRequestBase.cs
index ad7fc90d0..74a6327e1 100644
--- a/src/modules/Elsa.Http/Activities/SendHttpRequestBase.cs
+++ b/src/modules/Elsa.Http/Activities/SendHttpRequestBase.cs
@@ -11,6 +11,7 @@ namespace Elsa.Http;
///
/// Base class for activities that send HTTP requests.
///
+[Output(IsSerializable = false)]
public abstract class SendHttpRequestBase : Activity
{
///
diff --git a/src/modules/Elsa.Workflows.Core/Abstractions/Activity.cs b/src/modules/Elsa.Workflows.Core/Abstractions/Activity.cs
index aedd2e4a2..42f3d4c5f 100644
--- a/src/modules/Elsa.Workflows.Core/Abstractions/Activity.cs
+++ b/src/modules/Elsa.Workflows.Core/Abstractions/Activity.cs
@@ -78,10 +78,8 @@ public abstract class Activity : IActivity, ISignalHandler
///
[JsonIgnore]
public IDictionary SyntheticProperties { get; set; } = new Dictionary();
-
- ///
- /// Stores metadata such as x and y coordinates when created via the designer.
- ///
+
+ ///
public IDictionary Metadata { get; set; } = new Dictionary();
///
diff --git a/src/modules/Elsa.Workflows.Core/Contracts/IActivity.cs b/src/modules/Elsa.Workflows.Core/Contracts/IActivity.cs
index e216fdc44..dd0855449 100644
--- a/src/modules/Elsa.Workflows.Core/Contracts/IActivity.cs
+++ b/src/modules/Elsa.Workflows.Core/Contracts/IActivity.cs
@@ -38,6 +38,11 @@ public interface IActivity
[JsonIgnore]
IDictionary SyntheticProperties { get; set; }
+ ///
+ /// Metadata associated with the activity. This is typically used by the workflow designer to store information about the activity.
+ ///
+ IDictionary Metadata { get; set; }
+
///
/// Invoked when the activity executes.
///
diff --git a/src/modules/Elsa.Workflows.Runtime/Middleware/Workflows/PersistActivityExecutionLogMiddleware.cs b/src/modules/Elsa.Workflows.Runtime/Middleware/Workflows/PersistActivityExecutionLogMiddleware.cs
index b8359cf76..8b8d47b54 100644
--- a/src/modules/Elsa.Workflows.Runtime/Middleware/Workflows/PersistActivityExecutionLogMiddleware.cs
+++ b/src/modules/Elsa.Workflows.Runtime/Middleware/Workflows/PersistActivityExecutionLogMiddleware.cs
@@ -56,7 +56,7 @@ public class PersistActivityExecutionLogMiddleware : WorkflowExecutionMiddleware
var outputs = outputDescriptors.ToDictionary(x => x.Name, x =>
{
if(x.IsSerializable == false)
- return default;
+ return "(not serializable)";
var cachedValue = activity.GetOutput(expressionExecutionContext, x.Name);