Factory Studio — shell¶
Target
This page describes intended behaviour or structure. No implementation is claimed unless a section is explicitly marked Current implementation or Evidence.
The shell is the Blazor host of every microfrontend (the Blazor shell and microfrontend library templates with ConnectSoft.Blazor.UIKit). It owns scope, navigation, search, notifications, status and preferences; screens own nothing of these.
Regions¶
flowchart TB
subgraph top [Top bar]
SC[Org › Tenant › Project › Environment switchers]
CP[Command palette]
NT[Notifications]
PR[Profile · locale · theme · motion]
end
subgraph rail [Rail]
W[Workspace] --- A[Assets] --- I[Intelligence] --- Q[Quality & releases] --- O[Operations & usage] --- G[Governance & admin] --- F[Software Factory]
end
subgraph main [Main]
BC[Breadcrumb · scope badge · freshness strip]
SCREEN[Screen composition]
end
top --> main
rail --> main
Hold "Alt" / "Option" to enable pan & zoom
| Region | Behaviour |
|---|---|
| Switchers | Change the scope the session reads under; validated server-side; grant nothing (ADR-0015); re-snapshot permissions; ask before discarding unsaved changes |
| Rail | The seven work areas filtered by the permissions catalog; badges for action-required notifications; collapses to icons |
| Command palette | Search runs, assets, projects, environments, alerts, screens under scope; run commands by name with the same forwarding and gates as buttons |
| Notifications | In-app channel of StudioNotificationService; grouped, importance first; opening re-checks permission |
| Breadcrumb and scope badge | Always visible, including while editing; the environment badge names the class (development, test, staging, production) |
| Freshness strip | Projection lag and last observation per source of the current screen; a degraded source is named, never hidden |
| Profile | Locale en, he (RTL), ru; theme light, dark, system; reduced motion; default work area |
Rules every screen inherits¶
- Outcomes, not toasts. A command renders the server's response; the persisted outcome is observed on the next read or stream; the BFF never retries.
- Exact versions. Approval cards carry the proposal version shown; a 412 re-renders the newer proposal.
- State families stay distinct. Asset readiness, deployment availability, run, approval, usage, freshness, delivery and fleet each use their own words and colour family (states catalog).
- Usage by status. Estimated, reserved, observed, reconciled and uncertain are separate figures (FUX-08).
- Identifiers are left-to-right inside RTL text; code and logs are monospace and LTR.
- Keyboard first. Every control reachable; focus visible and restored; the palette is the keyboard entry to any screen.
- Realtime resumes. Streams resume from the last sequence; overflow triggers a full refresh of the screen.