Skip to main content

Accounts

The Accounts view is the per-account command centre for Lumio operators. It lets you browse every account in the system, drill into a single account to inspect its members and plan, override numeric/boolean limits, toggle feature-flag overrides, and forcibly detach channel, bot, or StreamElements connections when something goes wrong.

Where to find it

Admin sidebar → Accounts. The list lives at /accounts; detail pages live at /accounts/\{id\}.

Quick start

  1. Open Admin → Accounts and search by account name or owner display name.
  2. Click a row to open the account detail page.
  3. Change the plan via Plan Management (Free / Pro / Enterprise) and click Update Plan.
  4. Scroll to Account Limits to override plan defaults per field. Leave a field blank to fall back to the plan default.
  5. Optionally open Feature Overrides to flip individual features ON/OFF for this account only.

Detailed walkthrough

Accounts list (/accounts)

  • Search — debounced search against name and owner display name.
  • Columns — Name, Owner, Plan (coloured badge), Members count, Created date.
  • Pagination — 25 accounts per page, "Page X of Y (N accounts)" footer.
  • Row click — navigates to /accounts/\{id\}.

Account detail (/accounts/[id])

Four cards stack on the detail page:

  1. Account Information — read-only. Name, Account ID, Owner display name, Created/Updated timestamps.
  2. Plan Management — current plan badge, a <select> with free / pro / enterprise, and Update Plan button. The button is disabled until the selection differs from the current plan.
  3. Members — table of all users in the account showing Name (linked to /users/\{user_id\}), Email, Role, Owner flag, Joined date.
  4. Account Limits — per-account overrides for numeric and boolean plan limits. Fields: max_overlays, max_storage_bytes, max_upload_size_bytes, max_integrations, chat_retention_days, custom_bot_allowed, obs_remote_allowed, copyright_detection_allowed, plus an Admin Notes free-text field ("reason for override..."). Empty fields fall back to the plan default. Save Limits persists the whole form in one PUT.

Feature overrides tab (feature-overrides.tsx)

Shown under Feature Overrides on the detail page. Each row is a feature flag:

  • Feature name.
  • OverrideON, OFF, Global OFF, or unset.
  • Resolved — the effective state after the plan and global kill-switch are applied.
  • Actions — ON / OFF buttons to set an override, plus a clear action (DELETE on /accounts/\{id\}/features/\{feature_id\}) to remove the override and fall back to plan defaults.

Connections tab (connections-tab.tsx)

Lists three groups of per-account connections with a red Delete action on each row:

  • Channel connections — platform OAuth tokens used for streaming APIs.
  • Bot connections — custom-bot identities configured by the account.
  • StreamElements tokens — linked SE accounts.

Deleting is destructive and immediate. The backend row is removed and the encrypted token discarded.

Resolved limit overrides

There is a second PUT endpoint at /accounts/\{id\}/resolved-limits used by an alternate "Resolved Limit Overrides" form component — same fields, but writes via the resolved-limits path which merges admin notes with numeric overrides in one call.

Common scenarios

  • Upgrade a customer to Enterprise manually — change the plan, then use limits to bump storage or overlay caps.
  • Investigate a chargeback — open the account, review members and connections, then disconnect SE tokens if the account is being rotated.
  • Temporarily disable a flaky integration for one customer — set a feature override to OFF without touching the global kill-switch.
  • Recovery after an OAuth leak — delete the affected channel connection on the Connections tab; the user will be prompted to reconnect.

Permissions

ActionPermission
View account list / detailaccounts:read
Change plan / limits / featuresaccounts:edit
View feature-flag detail rowsfeature-flags:read
Toggle feature-flag detail overridesfeature-flags:edit
Delete channel connectionsplatforms:edit
Delete bot connectionsbot-connections:delete
Delete SE tokensse-tokens:delete

All of these additionally require admin:access to enter the dashboard. System admins (system_admin.is_system = true) implicitly have every permission.

API

UI actionGraphQLREST
List accountsadminAccountsGET /v1/admin/accounts
Get account detailadminAccountGET /v1/admin/accounts/\{id\}
Update planadminUpdateAccountPlanPATCH /v1/admin/accounts/\{id\}/plan
Get limitsadminAccountLimitsGET /v1/admin/accounts/\{id\}/limits
Save limitsadminUpsertAccountLimits / adminSetAccountLimitsPUT /v1/admin/accounts/\{id\}/limits
Save resolved limitsadminSetAccountLimitsPUT /v1/admin/accounts/\{id\}/resolved-limits
Get feature overridesadminAccountFeaturesGET /v1/admin/accounts/\{id\}/features
Set feature overrideadminSetAccountFeaturePUT /v1/admin/accounts/\{id\}/features
Clear feature overrideadminClearAccountFeatureDELETE /v1/admin/accounts/\{id\}/features/\{feature_id\}
List channel connectionsGET /v1/admin/accounts/\{id\}/connections
Delete channel connectionadminDeleteAccountLoginConnectionDELETE /v1/admin/accounts/\{id\}/connections/\{platform\}
List bot connectionsadminAccountBotConnectionsGET /v1/admin/accounts/\{id\}/bot-connections
Delete bot connectionadminDeleteAccountBotConnectionDELETE /v1/admin/accounts/\{id\}/bot-connections/\{platform\}
List SE tokensadminSeTokensGET /v1/admin/accounts/\{id\}/se-tokens
Delete SE tokenadminDeleteSeTokenDELETE /v1/admin/accounts/\{id\}/se-tokens/\{token_id\}

Tips & gotchas

  • Empty fields in the limits form are semantically different from 0. An empty field inherits the plan default; a zero disables the feature for that account.
  • Admin Notes on the limits form is the audit trail. Fill it in with a ticket ID or Slack link when you override anything non-trivial.
  • Plan changes are immediate — there is no Stripe sync here; billing adjustments still go through the Stripe dashboard.
  • Deleting a channel connection does not revoke the token at the platform. Use it for recovery, not revocation.
  • Users — user records that own or belong to accounts
  • Plans — plan definitions and default feature grid
  • Feature Flags — global kill-switches that override everything here
  • Providers — per-platform kill-switches