diff --git a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Post/Endpoint.cs b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Post/Endpoint.cs index de8f194e4..2a7419087 100644 --- a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Post/Endpoint.cs +++ b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Post/Endpoint.cs @@ -10,7 +10,9 @@ using JetBrains.Annotations; using Medallion.Threading; using System.Text.Json; using Elsa.Workflows.Api.Mappers; +using Elsa.Workflows.Core.Serialization.Converters; using Elsa.Workflows.Management.Contracts; +using Microsoft.AspNetCore.Http; namespace Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.Post; @@ -46,7 +48,7 @@ internal class Post : ElsaEndpoint(new { definitionId }, response, cancellation: cancellationToken); else - await SendOkAsync(response, cancellationToken); + { + // We do not want to include composite root activities in the response. + var apiSerializerOptions = _serializerOptionsProvider.CreateApiOptions(); + apiSerializerOptions.Converters.Add(new JsonIgnoreCompositeRootConverterFactory()); + + await HttpContext.Response.WriteAsJsonAsync(response, serializerOptions, cancellationToken); + } } } \ No newline at end of file diff --git a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Publish/Endpoint.cs b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Publish/Endpoint.cs index e508b4e2c..5ec4e944f 100644 --- a/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Publish/Endpoint.cs +++ b/src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Publish/Endpoint.cs @@ -2,19 +2,26 @@ using Elsa.Abstractions; using Elsa.Common.Models; using Elsa.Workflows.Api.Mappers; using Elsa.Workflows.Api.Models; +using Elsa.Workflows.Core.Serialization; +using Elsa.Workflows.Core.Serialization.Converters; using Elsa.Workflows.Management.Contracts; +using JetBrains.Annotations; +using Microsoft.AspNetCore.Http; namespace Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.Publish; +[PublicAPI] internal class Publish : ElsaEndpoint { private readonly IWorkflowDefinitionStore _store; private readonly IWorkflowDefinitionPublisher _workflowDefinitionPublisher; + private readonly SerializerOptionsProvider _serializerOptionsProvider; - public Publish(IWorkflowDefinitionStore store, IWorkflowDefinitionPublisher workflowDefinitionPublisher) + public Publish(IWorkflowDefinitionStore store, IWorkflowDefinitionPublisher workflowDefinitionPublisher, SerializerOptionsProvider serializerOptionsProvider) { _store = store; _workflowDefinitionPublisher = workflowDefinitionPublisher; + _serializerOptionsProvider = serializerOptionsProvider; } public override void Configure() @@ -30,7 +37,7 @@ internal class Publish : ElsaEndpoint