Active and Void tabs in the platform org directory

FeatureBillingService
Shipped
September 11, 2026 at 6:50 PM UTC
Author
Kamo
Commit
072ca5f

The console's Organizations tab now splits into Active and Void sub-tabs. A voided organization is orgs.is_active = FALSE (set by SecurityService's void endpoint); the directory is the one place still listing one — on the Void tab, so an operator can find it to restore. - GET /api/billing/platform/orgs takes status=void; anything else, including no status, lists live orgs only. Every older caller — the commerce wizard's target-org search among them — asks with no status, so none of them can be shown an organization that no longer exists. - Rows carry voided, voidedAt, voidedByUserId and a hydrated voidedByName (one batched lookup, only when the page has voided rows). - Aggregates follow the tab, and add activeOrgs / voidedOrgs, which ignore the tab (both tabs need both numbers) while honouring every other filter. - Sub-org counts leave out voided children. - The nightly storage snapshot and the platform storage report skip voided orgs; history is kept and the writer's gap handling catches a restored org up. Verified the generated statements read-only against the live database: Active 40 rows / counts 40 + 0, Void 0 rows.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing