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.
3.2 KiB
3.2 KiB
Architecture Decision Records
- 1. Record architecture decisions
- 2. Fault Propagation from Child to Parent Activities
- 3. Direct Bookmark Management in WorkflowExecutionContext
- 4. Activity Execution Snapshots
- 5. Token-Centric Flowchart Execution Model
- 6. Tenant Deleted Event
- 7. Adoption of Explicit Merge Modes for Flowchart Joins
- 8. Empty String as Default Tenant ID
- 9. Asterisk Sentinel Value for Tenant-Agnostic Entities
- 10. Default Admin User Bootstrap for Initial Identity Access
- 11. Output conversion occurs synchronously at the binding boundary
- 12. Output converters use explicit stable identities
- 13. Output converter discovery is server-owned
- 14. Broker external sign-in through Elsa Server
- 15. Compose a scoped connection registry
- 16. Extend authentication through deployed descriptor providers
- 17. Separate external identity from Elsa authorization
- 18. Separate provider trust from broker invariants
- 19. Bind sessions to shared state and connection revisions
- 20. Publish audit-ready security notifications
- 21. Identify host connections by logical key and use explicit overrides
- 22. Match unlinked identities with trusted user matchers
- 23. Separate authentication UI composition from security administration
- 24. Use exact OIDC discovery and deployment-derived callbacks
- 25. Two-axis authorization model with open resources and open verbs
- 26. Use identity-neutral participant references for User Tasks
- 27. Project User Tasks from committed workflow bookmarks
- 2026-08-25. Identify new ADRs by date instead of a sequential number