elsa-core/src/modules/Elsa.Workflows.Runtime/Services
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
..
ActivityExecutionService.cs
BackgroundActivityInvoker.cs
BackgroundStimulusDispatcher.cs Isolate background workflow dispatches from caller's cancellation token (#7291) 2026-04-14 10:55:38 +02:00
BackgroundTaskDispatcher.cs
BackgroundWorkflowCancellationDispatcher.cs Isolate background workflow dispatches from caller's cancellation token (#7291) 2026-04-14 10:55:38 +02:00
BackgroundWorkflowDispatcher.cs Add workflow dispatch transactional outbox (#7517) 2026-05-22 00:13:16 +02:00
BookmarkBoundWorkflowService.cs
BookmarkPersister.cs
BookmarkQueueDeadLetterManager.cs Add bookmark queue dead-letter store (#7516) 2026-05-21 23:43:36 +02:00
BookmarkQueueProcessor.cs Fix workflow commit atomicity 2026-06-21 19:58:09 +02:00
BookmarkQueueSignaler.cs
BookmarkQueueWorker.cs Fix workflow commit atomicity 2026-06-21 19:58:09 +02:00
BookmarkResumer.cs
BookmarkUpdater.cs
DefaultActivityExecutionManager.cs
DefaultActivityExecutionMapper.cs Adds activity execution call stack support (#7271) 2026-02-24 15:23:59 +01:00
DefaultBookmarkManager.cs
DefaultBookmarkQueuePurger.cs Add bookmark queue dead-letter store (#7516) 2026-05-21 23:43:36 +02:00
DefaultCommitStateHandler.cs Fix commit notification flush edge cases 2026-06-23 02:44:06 +02:00
DefaultRegistriesPopulator.cs Avoid repeated tenant-agnostic registry population 2026-08-02 01:59:45 +02:00
DefaultWorkflowActivationStrategyEvaluator.cs
DefaultWorkflowDefinitionStorePopulator.cs Optimize workflow definition sync lookups (#7521) 2026-05-21 02:42:51 +02:00
DefaultWorkflowRegistry.cs Update multitenancy logic and improve Result handling: (#7281) 2026-02-11 10:11:12 +01:00
DefaultWorkflowRestarter.cs
DefaultWorkflowStarter.cs
DrainOrchestrator.cs Graceful shutdown for the workflow runtime (drain, pause, recover) (#7424) 2026-05-02 19:27:08 +02:00
DrainTriggerExecutor.cs Harden EF trigger persistence 2026-05-16 13:50:34 +02:00
EventPublisher.cs
ExecutionCycleAwareCommitStateHandler.cs Graceful shutdown for the workflow runtime (drain, pause, recover) (#7424) 2026-05-02 19:27:08 +02:00
ExecutionCycleRegistry.cs Graceful shutdown for the workflow runtime (drain, pause, recover) (#7424) 2026-05-02 19:27:08 +02:00
HeartbeatGenerator.cs
IngressSourceRegistry.cs Graceful shutdown for the workflow runtime (drain, pause, recover) (#7424) 2026-05-02 19:27:08 +02:00
InterruptedRecoveryScanner.cs Graceful shutdown for the workflow runtime (drain, pause, recover) (#7424) 2026-05-02 19:27:08 +02:00
KeyValueWorkflowDispatchOutboxStore.cs Add workflow dispatch transactional outbox (#7517) 2026-05-22 00:13:16 +02:00
LocalBackgroundActivityScheduler.cs
LocalWorkflowClient.cs Adds activity execution call stack support (#7271) 2026-02-24 15:23:59 +01:00
LocalWorkflowRuntime.cs
LocalWorkflowRuntime.Obsolete.cs
NoopWorkflowCommitTransaction.cs Fix workflow commit atomicity 2026-06-21 19:58:09 +02:00
ObsoleteWorkflowRuntime.cs Addresses warnings and enforces null safety (#7051) 2025-11-12 16:56:31 +01:00
QuiescenceSignal.cs Refactor QuiescenceSignal to inject IServiceScopeFactory, enhance tenant ID handling, and expand unit tests with DI capabilities. 2026-05-03 17:56:37 +02:00
StimulusProxyWorkflowInbox.cs Addresses warnings and enforces null safety (#7051) 2025-11-12 16:56:31 +01:00
StimulusSender.cs
StoreActivityExecutionLogSink.cs Address PR review comments 2026-06-23 03:07:50 +02:00
StoreBookmarkQueue.cs
StoreWorkflowExecutionLogSink.cs Fix workflow commit atomicity 2026-06-21 19:58:09 +02:00
SynchronousTaskDispatcher.cs
TaskReporter.cs
TransactionalWorkflowDispatcher.cs Add workflow dispatch transactional outbox (#7517) 2026-05-22 00:13:16 +02:00
TriggerBoundWorkflowService.cs
TriggerIndexer.cs fix(bpmn): let a process with only a plain start event publish (#8081) 2026-09-12 11:07:59 -07:00
TriggerInvoker.cs
ValidatingWorkflowDispatcher.cs Addresses warnings and enforces null safety (#7051) 2025-11-12 16:56:31 +01:00
WorkflowCanceler.cs
WorkflowCancellationService.cs
WorkflowCommitNotificationBuffer.cs fix: restore commit notification scope before flush 2026-07-31 04:50:31 +02:00
WorkflowCommitNotificationSender.cs Fix workflow commit atomicity 2026-06-21 19:58:09 +02:00
WorkflowDefinitionRefresher.cs
WorkflowDefinitionsReloader.cs Fixing workflow reload logic (#7324) 2026-02-25 19:14:08 +01:00
WorkflowDispatchOutbox.cs Add workflow dispatch transactional outbox (#7517) 2026-05-22 00:13:16 +02:00
WorkflowDispatchOutboxAccessor.cs Add workflow dispatch transactional outbox (#7517) 2026-05-22 00:13:16 +02:00
WorkflowDispatchOutboxProcessor.cs Add workflow dispatch transactional outbox (#7517) 2026-05-22 00:13:16 +02:00
WorkflowExecutionLogRecordExtractor.cs
WorkflowHeartbeatGeneratorFactory.cs
WorkflowHost.cs
WorkflowHostFactory.cs
WorkflowInvoker.cs
WorkflowMatcher.cs
WorkflowResumer.cs
WorkflowRuntimeAdminService.cs Graceful shutdown for the workflow runtime (drain, pause, recover) (#7424) 2026-05-02 19:27:08 +02:00