Skip to content

Release v1.0.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 04:48
5878781

The first release of Showrunner brings Usher: issue reporting and support conversations for applications built on Cratis, hosted as a library inside the application and exchanging events with a support desk.

Added

  • Cratis.Showrunner.Usher.Contracts with the public events an application and a support desk exchange about issues, in both directions. See Contracts. (#1) (part of #8)
  • Cratis.Showrunner.Usher, added with AddUsher, with commands to report an issue or an error, share identity, add details, answer questions, reopen, withdraw, and grant or revoke support access, and the observable ReportedIssue.MyIssues() and IssueConversation.ForIssue(issueId) queries, all recorded as private events in the tenant's own namespace. See Backend. (#2)
  • Reporters only see and act on their own issues, and everything they send is bounded by ReportLimits and classified as personal data of that reporter.
  • Usher publishes the reporter's facts to the outbox for the desks named in DeskStores, records the desk's answers as private Support… facts in the tenant the event names, and lapses grants of access on their exact end, in every tenant namespace. See Exchanging events with a desk. (#3)
  • Failing commands are captured on the server with their slice location, error and stack frames, so a report of that error records what the backend saw, fingerprinted to group repeats. Configure it with the ErrorCapture options. (#4)
  • @cratis/showrunner.usher with the generated TypeScript proxies for Usher's commands and queries, carrying their slice location, and helpers that turn an error into what a report sends. It requires @cratis/arc, @cratis/arc.react and @cratis/fundamentals. See Frontend proxies. (part of #5)
  • @cratis/showrunner.usher.react with UsherProvider, ReportButton and MyIssuesButton, and the ReportIssueDialog, ReportErrorDialog and MyIssuesDialog built on @cratis/components, with replaceable texts and correlation-id tracking. See React components. (#6)
  • Slot-in report a problem, report this error and my issues dialogs that an application adds with AddUsher, UsherProvider and a button, and can open from its own menus. (#10)
  • Access grants and support sessions: a reporter grants support access to one issue for a fixed time, and MapUsher maps the grant check and session notification endpoints for Cratis AuthProxy's on-behalf sessions, so support can act as the reporter on that issue only while the grant is live. The reporter sees each session and what support did in it. See Access and support sessions. (part of #7)
  • Requires the Cratis Arc release that adds slice location metadata and on-behalf forwarding (Cratis/Arc#3533, Cratis/Arc#3534, Cratis/Arc#3535).