Repository navigation
Release v1.4.0
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 withAddBoxOffice: 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 throughIEntitlements: 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
TenantSuspendedorTrialClosed. Commands markedAllowedWhileSuspendedstill run, andTenantReinstatedlifts the refusal immediately. TheCurrentStandingquery tells the frontend why. (#47) AssignSeatandReleaseSeat, guarded so two assignments cannot overfill the pool, withSeatTakenandSeatReleasedreported to the operator. Commands markedRequiresSeatare refused withSeatRequiredfor a user without a licensed seat, and a pool that shrinks keeps the oldest holders licensed. The product defines theBoxOffice.ManageSeatspolicy 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.