Documentation
Open app

Admin pages

An admin page is the same native page primitive placed in workspace administration. Use it for app configuration and operational controls, not ordinary member workflow.

YAML
contributes:
  ui:
    - id: reports-admin
      kind: nativeModule
      surface: page
      slot: admin.workspace.tab
      sectionId: reports
      label: Reports settings
      route: /admin/reports/*
      roles: [OWNER, ADMIN]
      module:
        entry: dist/ui/app.js
        export: ReportsAdmin
        styles: dist/ui/app.css

slot decides where Core mounts the page. Core passes route/subroute just as it does for a workspace page; the rendered content remains app-owned. Declare roles for the intended administrators and still enforce authorization in the app backend. UI visibility is not a security boundary.

TSX
import { useAppFetch } from '@sota/platform';

export function ReportsAdmin() {
  const appFetch = useAppFetch();
  async function save() {
    const response = await appFetch('/settings', {
      method: 'PUT',
      headers: { 'content-type': 'application/json' },
      body: JSON.stringify({ enabled: true }),
    });
    if (!response.ok) throw new Error('Could not save settings');
  }
  return <button type="button" onClick={save}>Enable reports</button>;
}

Contents

Esc

Search titles and body text across every chapter.