strataDocs

Platform Administration

The /admin panel provides platform-wide management of users, organizations, and projects. Access is restricted to users with a platform role.

Platform roles

Strata has three platform roles, stored on the user record independently of any organization membership:

RoleDescription
userRegular user. No admin panel access. This is the default for all accounts.
platform_adminCan access the admin panel. Can view all data, suspend/unsuspend users, force-logout users, and archive/unarchive projects.
superadminFull platform control. Everything a platform_admin can do, plus: change platform roles, override org plans, delete users, delete projects, and move projects between organizations.

Platform roles are separate from organization roles. A user can be a platform_admin while being a regular member in their organization, or vice versa.

Admin panel

The admin panel at /admin provides a tabbed interface with four sections:

  • Overview — platform statistics including total users, organizations, projects, and a breakdown of organizations by plan tier
  • Users — all users on the platform with name, email, platform role, suspension status, creation date, and organization count
  • Organizations — all organizations with name, slug, plan, Stripe status, member count, and project count
  • Projects — all projects with name, slug, status, owning organization, and creation date

Each row has a three-dot dropdown menu with the available actions for that item. The current user's own row has no action controls — self-actions are blocked both in the UI and server-side.

User management

Suspend / Unsuspend

Available to platform_admin and superadmin. Suspending a user sets their account as banned and immediately deletes all their active sessions (force-logout). The user cannot sign in until unsuspended.

Safety rules:

  • You cannot suspend yourself
  • Only a superadmin can suspend another superadmin

Force logout

Available to platform_admin and superadmin. Deletes all active sessions for a user, forcing them to re-authenticate on their next visit. Does not ban the account — they can sign back in immediately.

Change platform role

superadmin only. Promotes or demotes a user between user, platform_admin, and superadmin. You cannot change your own platform role.

Delete user

superadmin only. Permanently deletes a user account. This cascades to delete their sessions, account records, and organization memberships. You cannot delete yourself, and you cannot delete another superadmin.

Destructive actions require confirmation by typing the user's name.

Organization management

Override plan

superadmin only. Directly sets an organization's plan to any tier (Free, Team, Business, or Enterprise), bypassing Stripe billing. Useful for granting enterprise access to partners or correcting billing issues.

Project management

Archive / Unarchive

Available to platform_admin and superadmin. Archived projects are hidden from the project list but not deleted. They can be unarchived to restore visibility.

Move between organizations

superadmin only. Transfers a project from one organization to another. The operation validates that the target organization exists and checks for slug collisions — if the target org already has a project with the same slug, the move is rejected and the project must be renamed first.

Delete project

superadmin only. Permanently deletes a project and all associated data (entries, changesets, tabs, registry entries, etc.) via database cascades. Requires typing the project name to confirm.

Capability summary

Actionplatform_adminsuperadmin
View all users / orgs / projects
View platform statistics
Suspend / unsuspend users
Force-logout users
Archive / unarchive projects
Change platform roles
Override organization plans
Move projects between orgs
Delete projects
Delete users

Safety measures

All admin actions include safety rails:

  • Self-action blocking — you cannot suspend, delete, or change the role of your own account
  • Superadmin protection — only a superadmin can act on another superadmin
  • Confirmation dialogs — destructive actions (delete) require typing the target's name
  • Typed error handling — all actions are wrapped in withActionResult and return structured { success, error? } results
  • Slug collision checks — moving a project validates no slug conflict exists in the target org