Runs one suite unchanged against every implementation of IUserTaskRepository, IUserTaskGuestSessionIssuer, and IUserTaskInvitationOutbox, plus a fault-injection suite driving the real DefaultUserTaskManager and DefaultUserTaskInvitationService against a real store. Gated providers report as skipped with a reason rather than passing vacuously; ConformanceCoverageTests fails when a provider that must run is unreachable or its variable is set but empty. The suite found three defects, fixed here: - VNextUserTaskRepository supplied no index values for WorkflowDefinitionId, WorkflowInstanceId, ActivityInstanceId, CreatedAt, or CompletedAt, all declared by its own schema provider, so every write through the VNext provider threw. - The same provider resolved invitation token hashes by scanning on Status alone, which matched no declared index, so anonymous invitation verification always threw. - EFCoreUserTaskInvitationOutbox persisted the delivery recipient but never read it back, so durably queued invitations reached the dispatcher with no address. Also switches new ADRs to date-prefixed identifiers and generates doc/adr/toc.md via scripts/adr/generate-toc.sh, with a --check mode and pull-request workflow so the index is never hand-edited again.
33 lines
3.2 KiB
Markdown
33 lines
3.2 KiB
Markdown
# Architecture Decision Records
|
|
|
|
<!-- Generated by scripts/adr/generate-toc.sh. Do not edit by hand. -->
|
|
|
|
* [1. Record architecture decisions](0001-record-architecture-decisions.md)
|
|
* [2. Fault Propagation from Child to Parent Activities](0002-fault-propagation-from-child-to-parent-activities.md)
|
|
* [3. Direct Bookmark Management in WorkflowExecutionContext](0003-direct-bookmark-management-in-workflowexecutioncontext.md)
|
|
* [4. Activity Execution Snapshots](0004-activity-execution-snapshots.md)
|
|
* [5. Token-Centric Flowchart Execution Model](0005-token-centric-flowchart-execution-model.md)
|
|
* [6. Tenant Deleted Event](0006-tenant-deleted-event.md)
|
|
* [7. Adoption of Explicit Merge Modes for Flowchart Joins](0007-adoption-of-explicit-merge-modes-for-flowchart-joins.md)
|
|
* [8. Empty String as Default Tenant ID](0008-empty-string-as-default-tenant-id.md)
|
|
* [9. Asterisk Sentinel Value for Tenant-Agnostic Entities](0009-asterisk-sentinel-value-for-tenant-agnostic-entities.md)
|
|
* [10. Default Admin User Bootstrap for Initial Identity Access](0010-default-admin-user-bootstrap-for-initial-identity-access.md)
|
|
* [11. Output conversion occurs synchronously at the binding boundary](0011-output-conversion-at-binding-is-synchronous.md)
|
|
* [12. Output converters use explicit stable identities](0012-output-converters-use-explicit-stable-identities.md)
|
|
* [13. Output converter discovery is server-owned](0013-output-converter-discovery-is-server-owned.md)
|
|
* [14. Broker external sign-in through Elsa Server](0014-broker-external-sign-in-through-elsa-server.md)
|
|
* [15. Compose a scoped connection registry](0015-compose-a-scoped-connection-registry.md)
|
|
* [16. Extend authentication through deployed descriptor providers](0016-extend-authentication-through-deployed-descriptor-providers.md)
|
|
* [17. Separate external identity from Elsa authorization](0017-separate-external-identity-from-elsa-authorization.md)
|
|
* [18. Separate provider trust from broker invariants](0018-separate-provider-trust-from-broker-invariants.md)
|
|
* [19. Bind sessions to shared state and connection revisions](0019-bind-sessions-to-shared-state-and-connection-revisions.md)
|
|
* [20. Publish audit-ready security notifications](0020-publish-audit-ready-security-notifications.md)
|
|
* [21. Identify host connections by logical key and use explicit overrides](0021-identify-host-connections-by-logical-key-and-use-explicit-overrides.md)
|
|
* [22. Match unlinked identities with trusted user matchers](0022-match-unlinked-identities-with-trusted-user-matchers.md)
|
|
* [23. Separate authentication UI composition from security administration](0023-separate-authentication-ui-composition-from-security-administration.md)
|
|
* [24. Use exact OIDC discovery and deployment-derived callbacks](0024-use-exact-oidc-discovery-and-deployment-derived-callbacks.md)
|
|
* [25. Two-axis authorization model with open resources and open verbs](0025-two-axis-authorization-model.md)
|
|
* [26. Use identity-neutral participant references for User Tasks](0026-identity-neutral-user-task-participants.md)
|
|
* [27. Project User Tasks from committed workflow bookmarks](0027-project-user-tasks-from-committed-bookmarks.md)
|
|
* [2026-08-25. Identify new ADRs by date instead of a sequential number](2026-08-25-date-prefixed-adr-identifiers.md)
|