elsa-core/src/modules/Elsa.Workflows.Core/Contracts
Sipke Schoorstra 091e3bc0e4
fix(bpmn): let a process with only a plain start event publish (#8081)
* fix(bpmn): let a process with only a plain start event publish (#8078)

An imported root BpmnProcess is an ITrigger with CanStartWorkflow set
(IsRootScope). For a process whose start events carry no event definition
it rightly returns no payloads, but TriggerIndexer then stored a
null-payload placeholder row and ValidateWorkflowRequestHandler refused
publication with "Trigger should have a payload". That blocked import,
bind, publish and run for most Camunda models.

Adds an additive, opt-in seam: TriggerIndexingContext.RegistersNoTriggers.
A trigger that sets it and returns no payloads gets no row. It has no
effect when the trigger returns payloads, and a trigger that throws still
gets the placeholder, so a failure is never read as a deliberate decline.
Every other ITrigger indexes exactly as before.

BpmnProcess sets it only for a root scope none of whose start events
carries an event definition. A declared start that resolves to nothing,
such as a process whose only start is a refused timer, keeps the
placeholder and still fails publication. Nested scopes are opted out
before that check and are unchanged, and IsRootScope/CanStartWorkflow
semantics are untouched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* test(bpmn): publish for real in the stale-after-publish tests

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* test(bpmn): name the publish helper for what it does

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 11:07:59 -07:00
..
IActivity.cs
IActivityDescriber.cs
IActivityDescriptorModifier.cs
IActivityExecutionContextSchedulerStrategy.cs Feat/unit test coverage sendhttprequest (#6961) 2025-10-20 20:11:46 +02:00
IActivityExecutionMiddleware.cs
IActivityExecutionPipeline.cs
IActivityExecutionPipelineBuilder.cs
IActivityExecutionPipelineContributor.cs Enhance console logging with improved context and lifecycle (#7536) 2026-05-27 00:14:28 +02:00
IActivityFactory.cs Mark IActivityFactory and related methods as obsolete; add ActivityFactoryExtensions for backward compatibility 2025-12-14 19:43:24 +01:00
IActivityInputEvaluator.cs Merge 3.5.1 into 3.6.0 (#6907) 2025-09-13 13:05:52 +02:00
IActivityInvoker.cs Implement Activity Testing API (#6719) 2025-06-23 10:03:10 +02:00
IActivityPropertyDefaultValueProvider.cs
IActivityPropertyOptionsProvider.cs
IActivityProvider.cs
IActivityRegistry.cs Avoid repeated tenant-agnostic registry population 2026-08-02 01:59:45 +02:00
IActivityRegistryLookupService.cs
IActivityResolver.cs
IActivityScheduler.cs feat(core): let a container withdraw work it scheduled but must not run (#7967) 2026-08-20 23:29:46 +02:00
IActivitySchedulerFactory.cs
IActivitySerializer.cs
IActivityStateFilter.cs
IActivityStateFilterManager.cs
IActivityTestRunner.cs Implement Activity Testing API (#6719) 2025-06-23 10:03:10 +02:00
IActivityVisitor.cs
IActivityWithResult.cs
IApiSerializer.cs
IBehavior.cs
IBookmarkPayloadSerializer.cs
IComposite.cs
IEventGenerator.cs
IExecutionContext.cs Refactor activity context management and state handling. 2025-01-28 20:24:53 +01:00
IHasher.cs
IIdentityGenerator.cs
IIdentityGraphService.cs
IIncidentStrategy.cs
IIncidentStrategyResolver.cs
IInitializable.cs
ILoggerStateGenerator.cs
IMissingActivityTypesRegistry.cs
IOutputBindingDestinationResolver.cs Add output converter support at binding boundaries 2026-07-31 04:10:48 +02:00
IOutputConverter.cs Add output converter support at binding boundaries 2026-07-31 04:10:48 +02:00
IOutputConverterInvoker.cs Add output converter support at binding boundaries 2026-07-31 04:10:48 +02:00
IOutputConverterRegistry.cs Add output converter support at binding boundaries 2026-07-31 04:10:48 +02:00
IOutputConverterSettingsValidator.cs Add output converter support at binding boundaries 2026-07-31 04:10:48 +02:00
IPayloadSerializer.cs
IPropertyDefaultValueResolver.cs
IPropertyUIHandler.cs Refactor UI handler hierarchy and remove sample workflows. 2025-05-26 20:06:39 +02:00
IPropertyUIHandlerResolver.cs
ISafeExceptionMetadataProvider.cs Add output converter support at binding boundaries 2026-07-31 04:10:48 +02:00
ISafeSerializer.cs
ISignalHandler.cs
IStandardInStreamProvider.cs
IStandardOutStreamProvider.cs
IStartNode.cs
IStimulusHasher.cs Support for Writing Custom Trigger Activities Using Existing Trigger Infrastructure (#6527) 2025-03-21 23:16:56 +01:00
IStorageDriver.cs
IStorageDriverManager.cs
ITenantAgnosticActivityProvider.cs Avoid repeated tenant-agnostic registry population 2026-08-02 01:59:45 +02:00
ITerminalNode.cs
ITrigger.cs fix(bpmn): let a process with only a plain start event publish (#8081) 2026-09-12 11:07:59 -07:00
IUIHintHandler.cs
IVariableContainer.cs
IVariablePersistenceManager.cs Enhanced Delete of variable persistence manager to allow drivers filtering with tags (#6558) (#6559) 2025-04-04 11:52:58 +02:00
IWorkflow.cs Fix duplicate words in XML comments (#6655) 2025-05-20 11:52:23 +02:00
IWorkflowActivationStrategy.cs
IWorkflowBuilder.cs Add named WithVariable overload (#7701) 2026-06-08 10:42:59 +02:00
IWorkflowBuilderFactory.cs
IWorkflowExecutionContextSchedulerStrategy.cs Feat/unit test coverage sendhttprequest (#6961) 2025-10-20 20:11:46 +02:00
IWorkflowExecutionMiddleware.cs
IWorkflowExecutionPipeline.cs
IWorkflowExecutionPipelineBuilder.cs
IWorkflowExecutionPipelineContributor.cs Enhance console logging with improved context and lifecycle (#7536) 2026-05-27 00:14:28 +02:00
IWorkflowGraphBuilder.cs
IWorkflowInstanceVariableReader.cs
IWorkflowInstanceVariableWriter.cs
IWorkflowRunner.cs Implement Activity Testing API (#6719) 2025-06-23 10:03:10 +02:00
IWorkflowStateExtractor.cs
IWorkflowStateSerializer.cs Addresses warnings and enforces null safety (#7050) 2025-11-12 15:53:23 +01:00