Skip to content

Release v1.4.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 10:48
29f3771

Box Office now runs inside a managed product: it receives the operator's decisions about a tenant, refuses changes from a tenant that is suspended or read-only, and licenses seats.

Added

  • Cratis.Showrunner.BoxOffice, added with AddBoxOffice: it subscribes the application to each operator's outbox, records the operator's decisions about a tenant in the tenant's own namespace, and answers what the tenant may use through IEntitlements: trial, seats, modules, previews and allowances. A trial, module or seat that has an end stops counting the day after it, without an event. (#44)
  • A command filter that refuses every command from a suspended tenant, or one whose trial closed without seats, with TenantSuspended or TrialClosed. Commands marked AllowedWhileSuspended still run, and TenantReinstated lifts the refusal immediately. The CurrentStanding query tells the frontend why. (#47)
  • AssignSeat and ReleaseSeat, guarded so two assignments cannot overfill the pool, with SeatTaken and SeatReleased reported to the operator. Commands marked RequiresSeat are refused with SeatRequired for a user without a licensed seat, and a pool that shrinks keeps the oldest holders licensed. The product defines the BoxOffice.ManageSeats policy for who may assign seats. (#46)
  • @cratis/showrunner.boxoffice, the generated TypeScript proxies for the product's frontend.
  • Documentation for Receiving and entitlements, Suspension and Seat licensing.