SaaS products
Every app your organization builds and resells, with live provisioning health.
- Template
- CRM Pro v3
- Storage
- 18.2 / 25 GB
- Template
- Field Ops v2
- Started
- 2 min ago
Custom hostname validation did not complete. Check the domain records and retry.
Retry provisioning- Purpose
- Design & refine template packs
- Storage
- 1.4 / 5 GB (fixed)
Every SaaS product your organization has built, as cards that lead with health: live, still provisioning, or needs attention. Each product is fully isolated from the others — opening one always re-confirms it’s yours before showing anything.
Behind this page/apps · authenticated
Retrieve
sp_Builder_ListApps returns the account-scoped portfolio including provisioning state, deployment type, tenant counts, and appPurpose (Standard | TemplateWorkspace) — the Workspace chip above.Save
Read-only page. "New SaaS product" routes to the create flow (gated by CanCreateSaaS); opening a product revalidates ownership viasp_Builder_ResolveAppRouting.Success
- Leads with visual health state — cards, not a table (design review #1).
- Transient states poll and settle without a reload.
- Create beyond the plan limit returns 422 (51216) with an upgrade path.
- Template workspaces are excluded from that limit — the count gate reads
fn_CustomerBillableSaaSAppCount(Standard products only). - Workspaces: fixed 5/2/2/0 GB write-once storage (
50224), builder-plane only, no custom domains (54406).
CLI handoff
Implement this scaffold from the structured contract, then remove hard-coded preview rows. The source of truth is CLI Handoff and admin-cli-manifest.json.
Server-inject identity and scope values; never trust browser-supplied account, app, tenant, user, entitlement, price, or permission identifiers. Preserve the loading, empty, forbidden, failed, retrying, and completed states shown by the preview.