Rework Orchestra notifications into a channel-neutral concern, fully separate from the audit log, and add a visible Notify node plus task-completer capture.

  • Kernel: a neutral OrchestraNotificationEvent (recipients, type, params, instance, token, context), a NotificationAudience resolver, and an OrchestraNotification emitter that stamps each event with the instance variables and current node. The audit event is never used to notify.
  • orchestra_mail becomes a dumb default channel: one subscriber, one hook_mail template per type, no triggers, no recipient resolution, no inbox dependency.
  • Dispatcher modules named *_notification own the trigger and audience: orchestra_interaction_notification (park-on-arrival link) now emits the neutral event, and a new orchestra_inbox_notification emits task assigned, reassigned and reminder off a dedicated non-audit WorkItemEvent and TaskTimedOutEvent. orchestra_interaction_mail and InteractionNotificationEvent are removed (folded into orchestra_mail and the neutral event).
  • New orchestra_notification submodule: a Notify workflow node, a visible step the flow routes to conditionally. It renders nothing, resolves its recipients with the reused assignment-row widget, dispatches the event, then advances.
  • Task completer capture: a completer variable on the human-task config and an optional actor on complete(), passed by the inbox and the task-interaction resumer, so a later step can address the validator.
  • The submission-validation example closes with a Notify node that mails the original poster and the validator once the request is processed. ECA with Easy Email can replace orchestra_mail by subscribing to the same event.

Tests green (kernel and functional), phpcs/phpstan/cspell clean. MR to follow.

Issue fork orchestra-3607272

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

mably created an issue. See original summary.

mably’s picture

Status: Active » Needs review

  • mably committed 92af31b8 on 1.x
    feat: #3607272 Channel-neutral notifications: neutral event, dumb mail...
mably’s picture

Status: Needs review » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

mably’s picture

Heads-up for anyone updating an existing install: this change removes the orchestra_interaction_mail submodule and moves task notifications to the new orchestra_inbox_notification dispatcher. orchestra_mail no longer listens to the audit event; it is now a dumb delivery channel.

After updating, on a site that had orchestra_interaction_mail enabled (or relied on orchestra_mail for task-assigned emails):

  • uninstall orchestra_interaction_mail;
  • enable orchestra_inbox_notification for task assigned, reassigned and reminder notifications;
  • enable orchestra_notification if you want the new Notify workflow node.

Orchestra is pre-1.0 with no update hooks, so this is a manual step. Follow-up for account-less recipients (external email, phone, Slack): #3607367.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.