The states the installations surface must render: loading, no installations yet, a load failure, read-only for a caller who can't manage scopes, the orphaned-target edge case (target portal removed/suspended → status, not crash), the remove confirmation, and the cross-tenant add denial.
Loading…
0 scopes
This app isn't scoped to any organization, portal or user. Add an installation to make it available to a target you administer.
| Target | Scope level | Status |
|---|---|---|
Northwind Inc. |
organization | Active |
| Target | Scope level | Status | |
|---|---|---|---|
Legacy portal
prt_legacy · target no longer resolvable |
portal | Target removed |
Northwind CRM will no longer be available to the Sales portal. Members there lose access immediately. You can re-add the installation later.
Contract (anticipated). (g1) in-flight GET …/installations. (g2) empty is a
real state — an app installed nowhere. (g3) non-2xx with retry. (g4) read-only is
fail-closed: no Add/Remove rendered. (g5) is the edge the epic calls out: an installation
whose target portal was removed/suspended renders data-installation-status="orphaned"
from its own record and stays removable — it must not crash or blank the list. (g6) remove is
DELETE …/installations/{id} behind a confirm. (g7) add authorizes the target via
Permit; a target outside the caller's authority is 403 FORBIDDEN_TARGET, in place.