@cratis/showrunner.usher

中文文档
1.21.2发布于 2026/11/11MITTypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 3163

Generated TypeScript proxies for Usher — the Showrunner support part for issue reporting and support conversations, built on Cratis Arc.

原始使用文档
文档目录11 节
  1. Usher
  2. Box Office
  3. Marquee
  4. Notes
  5. Herald
  6. Stage Manager
  7. Packages
  8. Building
  9. Releasing
  10. Part of the Cratis ecosystem
  11. License

Showrunner

Cratis Showrunner adds support, licensing, announcements, product feedback and email to applications built on Cratis. It provides .NET libraries, TypeScript clients generated from backend commands and queries, and React components. It also includes Stage Manager, a Kubernetes operator for running applications.

Choose the part that matches what your application needs. The libraries run inside the application that hosts them; Stage Manager runs as a service in your cluster. The sections below lead to setup instructions for each part.

License: MIT Build Publish Discord

Usher

Usher lets users report issues and carry on support conversations from the application. Its backend adds commands, queries and events to the host's Arc application and Chronicle event store; its frontend packages supply the generated TypeScript clients and React components.

Usher captures errors and lets a reporter grant time-limited support access through AuthProxy's on-behalf sessions, where support acts as the reporter. Public events connect the application to a support desk. Start with the Usher documentation to connect those two sides.

Box Office

Box Office lets a managed product honor the licensing decisions its operator makes for each tenant: trials, seats, modules, compute allowances and suspension. The product receives those decisions and reports back through public events. The operator's catalog holds offers and prices; the product declares what it sells and meters compute use. Follow the Box Office documentation to separate the operator's responsibilities from the product's.

Marquee

Marquee brings product announcements to the people they concern. The people running the product choose the audience, display and time window; the product shows the announcement as a banner or dialog. Add <Marquee /> to the application shell to use its queries and commands. Follow the Marquee documentation to add announcements or host the authoring side.

Notes

Notes connects product feedback to what the user was looking at: a slice of application behavior, a screen or a single component. The people building the application receive that context as events and answer the note. The application hosts Cratis.Showrunner.Notes; the builder hosts Cratis.Showrunner.Notes.Collecting. Use the Notes documentation to connect feedback collection and replies.

Herald

Herald sends application email from templates and records what happened. The application supplies an email kind, such as an invitation, a language and its values. Herald fills the template, makes the HTML safe for email clients, embeds images and sends it over SMTP. Failed sends are queued and retried. Start with the Herald documentation to configure templates and delivery.

Stage Manager

Stage Manager runs applications in Kubernetes. Install it as a service with the cratis/showrunner-operator Helm chart. A Performance runs an application with its AuthProxy and, when onboarding is configured, its own Ante from a Cratis environment. The application is reachable only through AuthProxy. A Performance can also run a published Stage application.

Performance is reconciled: the operator acts on it to run the application. The other resources have schemas only; nothing acts on them yet. Follow the Stage Manager documentation to install the operator and run an application.

Packages

Choose the backend packages for the part you are hosting, then add its TypeScript proxies or React components if the application needs a frontend. The contract packages contain the public events exchanged between hosts. Stage Manager ships separately as a container image and Helm chart, not a NuGet package.

PackageRegistryWhat it is
Cratis.Showrunner.BoxOfficeNuGetProduct-side licensing: receives the operator's decisions and enforces tenant entitlements
Cratis.Showrunner.BoxOffice.CatalogNuGetBox Office's catalog — offers (seat plans, modules, compute packs), prices and the pricing arithmetic, published to products
Cratis.Showrunner.BoxOffice.OfferingNuGetBox Office for a product — declares what the product sells (modules, meters, seat licensing) and measures its compute per tenant and day
Cratis.Showrunner.BoxOffice.ProductNuGetBox Office for a managed product, in one call — creates the tenants the operator registers and reports them ready, answers whether a person may take a seat and whether a tenant is read-only, and reports who was active
Cratis.Showrunner.BoxOffice.ContractsNuGetBox Office's event contracts: what an operator decides about a tenant and what a product reports back
Cratis.Showrunner.Herald.ContractsNuGetHerald's event contracts: the facts recorded when an email was sent, failed or bounced
Cratis.Showrunner.HeraldNuGetHerald's backend — templates, strict rendering, images, SMTP and folder transports, queued delivery with retries, recorded in the application's Chronicle event store
cratis/showrunner-operator-image, cratis/showrunner-operatorDocker Hub, Helm (OCI)Stage Manager, the Kubernetes operator: the container image and, in a separate repository, the Helm chart released with the same version
Cratis.Showrunner.Usher.ContractsNuGetUsher's event contracts, for hosts that react to what Usher records
Cratis.Showrunner.Marquee.ContractsNuGetMarquee's event contracts: the public events a product receives announcements through
Cratis.Showrunner.Marquee.AuthoringNuGetMarquee's authoring backend — commands, query and outbox for writing announcements, built on Arc and Chronicle
Cratis.Showrunner.MarqueeNuGetMarquee's backend for products — receives announcements once, shows each tenant what its audience matches and records acknowledgements
Cratis.Showrunner.UsherNuGetUsher's backend — Arc commands and queries over Chronicle
Cratis.Showrunner.Notes.ContractsNuGetNotes' event contracts: the public events an application and the people building it exchange about product feedback
Cratis.Showrunner.NotesNuGetNotes' backend for applications — commands to give, suggest and withdraw notes, the live list of a user's notes with their status, and the outbox that publishes them
Cratis.Showrunner.Notes.CollectingNuGetNotes' receiving side for the builder of an application — reads the applications' notes into the tenant's namespace and answers them
@cratis/showrunner.boxofficenpmGenerated TypeScript proxies for the product's licensing frontend
@cratis/showrunner.boxoffice.reactnpmReact components for entitlements, module filtering, trials, suspension, seats, usage and plans
@cratis/showrunner.marqueenpmGenerated TypeScript proxies for Marquee's receiving commands and queries
@cratis/showrunner.marquee.authoringnpmGenerated TypeScript proxies for Marquee's authoring commands and query
@cratis/showrunner.marquee.reactnpmThe Marquee drop-in React component: banners and dialogs for a product's announcements, built on @cratis/arc.react and @cratis/components
@cratis/showrunner.ushernpmGenerated TypeScript proxies for Usher's commands and queries
@cratis/showrunner.usher.reactnpmReact components for Usher, built on @cratis/arc.react and @cratis/components
@cratis/showrunner.notesnpmGenerated TypeScript proxies for Notes' commands and queries
@cratis/showrunner.notes.reactnpmReact components for Notes: the feedback button with its context drop-down, the feedback dialogs, the component picker and the user's own feedback, built on @cratis/arc.react and @cratis/components

Building

To work on Showrunner, use the .NET 11 SDK selected by global.json, the .NET 10 SDK for the libraries' net10.0 targets and inline specifications, and Node.js 20 or later with Corepack enabled (corepack enable). Yarn is checked in under .yarn/releases.

Run the commands below from the repository root. The full solution test command includes container-based integration specifications, so Docker must be running.

# Backend: Debug builds compile the inline specs and regenerate the TypeScript proxies
dotnet build Showrunner.slnx --configuration Debug
dotnet test Showrunner.slnx --configuration Debug --no-build

# Release is warnings-as-errors; clearing CratisProxiesOutputPath skips proxy generation
dotnet build Showrunner.slnx --configuration Release -p:CratisProxiesOutputPath=

# Frontend
yarn install
yarn lint:ci
yarn compile
yarn test
yarn build

Specifications live beside the code they specify: for_*/when_*/ folders compiled into Debug builds only for .NET, and Vitest specs in the same layout for TypeScript. The Debug build regenerates TypeScript proxies from the backend; do not edit the generated proxies by hand. The pull request build checks that regeneration leaves the committed proxies unchanged.

For a focused integration run, Integration runs Usher and a desk against Chronicle in a container. Integration.Notes runs an application and a collecting host using the same container fixture code. For these two projects, set USHER_CHRONICLE_IMAGE to choose another kernel image and USHER_INTEGRATION_LOG to a file path to keep the hosts' logs.

Integration.Herald/ also tests against Chronicle in a container; its image override is HERALD_CHRONICLE_IMAGE. Integration.BoxOffice/ tests metering storage against MongoDB in Docker.

Releasing

Every pull request carries exactly one of the major, minor, patch or no-release labels. Merging a version-labelled pull request to main releases the NuGet and npm packages under one semantic version through cratis/release-action. Use no-release to skip publishing. Stage Manager's container image and Helm chart are released with the same version.

NuGet and npm use trusted publishing through OpenID Connect (OIDC), with provenance for npm. Build and pack jobs have no publishing rights; separate publish jobs receive short-lived publishing credentials and push the packed artifacts. The npm publisher disables lifecycle scripts when publishing the tarballs.

Part of the Cratis ecosystem

Showrunner is a Cratis project. Its application libraries use Chronicle to store changes as events. Those with commands and queries use Arc to handle writes and reads separately, the pattern called CQRS. The React components build on @cratis/components. Join the community on Discord.

License

See the MIT License for the terms covering this repository.

版本与发布记录

@cratis/showrunner.usher 共发布 20 个版本,首次发布于 2026/10/27;过去 12 个月发布了 20 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.21.2latest2026/11/11今天
1.21.12026/11/11今天
1.21.02026/11/11今天
1.20.02026/11/101 天前
1.19.02026/11/092 天前
1.18.02026/11/092 天前

其他发布通道:bootstrap → 0.0.0-bootstrap.0。

关于 @cratis/showrunner.usher 的常见问题

@cratis/showrunner.usher 是什么?

Generated TypeScript proxies for Usher — the Showrunner support part for issue reporting and support conversations, built on Cratis Arc.

如何安装 @cratis/showrunner.usher?

在项目目录运行 npm install @cratis/showrunner.usher,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@cratis/arc(^22.155.0)、@cratis/arc.react(^22.155.0)、@cratis/fundamentals(^7.27.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@cratis/showrunner.usher 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cratis/showrunner.usher 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@cratis/showrunner.usher 可以商用吗?

@cratis/showrunner.usher 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@cratis/showrunner.usher 的下载量有多少?

根据 npm 官方下载统计,@cratis/showrunner.usher 在 2026/10/11 – 2026/11/09 这 30 天内被下载 3,163 次,日均约 105 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cratis/showrunner.usher 还在维护吗?

最新版本 1.21.2 发布于 2026/11/11(今天);至今共发布 20 个版本,其中过去 12 个月发布了 20 个;首次发布于 2026/10/27。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。