Skip to content

Preview a screen as a chosen caller and state #1390

Closed

Description

@einari

Part of the epic #1387.

Scenario this serves. An application sells a plan per asset (a vessel in a fleet, a site, a workspace), not per customer. Which views, API operations and tools a caller may use depends on the plan of the specific asset they act on. Today a policy decides from the caller (role, claim) and from the arguments of the command or query. It cannot decide from state the application has recorded, such as the asset's plan.

Problem

A prototype of a screen shows every element. With caller-aware availability (Cratis/Screenplay#335) and state-reading policies, what is shown depends on who looks and on the state of what they look at.

Proposal

In the preview and on the board, let the person choose a caller and some state (for example an asset on a given plan) and see the screen as that caller would: gated actions hidden or unavailable, with the reason on hover. The server still decides; the preview is a design aid, not a test of enforcement.

Depends on

Cratis/Screenplay#335 and the generated-application work in Cratis/Stage (same epic).

Done when

Switching the chosen plan in the preview shows and hides the plan-gated elements, and the reason shown matches the policy that gates them.


Epic: #1387.
Siblings: Cratis/Screenplay#1230, Cratis/Screenplay#1231, Cratis/Screenplay#1232, Cratis/Screenplay#1233, Cratis/Screenplay#1234, Cratis/Arc#3764, Cratis/Arc#3765, Cratis/Arc#3766, Cratis/Chronicle#5765, Cratis/Stage#1048, Cratis/Stage#1049, Cratis/Stage#1050, #1388, #1389, #1390.

Activity

  1. added
    authorizationCaller-aware authorization: visibility and availability driven by who may act
    screensScreens release delivery
    on Nov 9, 2026
  2. einari commented on Nov 10, 2026

    @einari
    ContributorAuthor

    Delivered in Cratis/Studio#2632: the See as a caller panel on the board shows, for a chosen caller, asset and recorded state, which actions and data each screen offers, with the gating policy and the reason.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    authorizationCaller-aware authorization: visibility and availability driven by who may actscreensScreens release deliverytype: feature

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions