← All frames
Portal-admin · Frame (i) · routes /portal/admin/*

Portal-admin states

The states the portal-admin console must render — the ones that decide whether the UI is safe. Loading and empty for users and catalog; the two fail-closed authz cases that keep a tenant inside its own walls (a suspended portal and an invite into a portal you don't own); and the Stripe Connect onboarding state machine, including the case where a false "active" would be a money bug.

(i1) Users · loading

Users

Loading…

(i2) Users · just you — newly provisioned portal

Users

1 in this portal

It's just you so far

You're the admin of this portal. Invite your team to give them access to the apps in your catalog.

(i3) Catalog · nothing enabled yet

Your catalog

0 apps enabled

No apps in your portal yet

Your launcher is empty. Add apps from the FuzeFront catalog to make them available to your users — you choose which appear and in what order.

(i4) Couldn't load

Users

(i5) Portal suspended — 403, fail-closed for the whole console

Northwind · Console

Suspended
Contact support
(i6) Invite into a portal you don't own — 403, no cross-tenant leak
(i7) Billing · Connect not started — the entry CTA

Reseller payouts · Connect

Charge your own customers

Not started

Start billing your customers

Onboard a Stripe Connect account to charge your own customers and receive payouts. It takes a few minutes on Stripe's secure onboarding — you'll come right back here.

(i8) Billing · onboarding in progress — never a false "active"

Reseller payouts · Connect

In progress
Account created
2
Business details needed
Stripe still needs identity or bank information before you can accept charges.
3
Charges & payouts
charges_enabled is still false — not active yet.
(i9) Billing · restricted or return failed — actionable, never blank

Reseller payouts · Connect

Restricted
(i10) Billing · add-price blocked until charges enabled — fail-closed

Contract. (i1–i4) cover in-flight / empty / non-2xx for the real @fuzefront/security-client member surface and the anticipated portal_apps catalog. (i5) a suspended portal returns 403 PORTAL_SUSPENDED for the whole console — shown in place, not a redirect. (i6) the portal is always resolved from the session; a request against a portal you don't administer is 403 FORBIDDEN_PORTAL with zero cross-tenant data. (i7–i10) the Connect state machine (anticipated, FF-EPIC-15): status derives from charges_enabled /payouts_enabled /onboarding_status — an account is "active" only when both flags are true, so an in-progress or restricted account is never rendered as active, and a price cannot be published while charges are disabled.

Review · portal-admin-consoles approve or reject each flow ↓
master-admin-portalspendingApproveReject
portal-consolependingApproveReject
portal-billingpendingApproveReject