Skip to content

Admin workspace

The admin panel at /admin is a three-pane browser for the structure of the deployment. It is where you pick a profile and a table before carrying out an action; the actions themselves live on dedicated table-definition pages.

  1. Profiles — lists Global (the shared tables) followed by every profile the caller can see, with its owned-table count. Global tables are browsed under the Global scope rather than repeated under each profile.
  2. Tables — the tables of the selected profile or scope, showing each table’s dependencies (one entry per link, named by the column carrying it) and its row-display columns. System tables are marked and offer no structural actions.
  3. Columns — the selected table’s columns in backend order. User columns come first, system columns trail. Each column shows badges for system, primary key, nullable/required, and quantity ledger.

Choose a profile, then a table. Once a non-system table is selected, the panel links to the actions that apply to it:

  • add columns, rename a column, and delete the table (table-scoped);
  • copy the profile and generate tables from an invoice template (profile-scoped);
  • read the rename history.

The selection travels to those pages in the query string as ?profile=...& table=..., and each page links back to the panel it came from. See How table definitions work for the whole area.

The Global scope (__global) is the table catalog’s answer, not the profile tree’s. The tree repeats global tables under every profile; the panel instead browses them once under Global, using the catalog for profile_name: None. This keeps the two pages that derive tables from the tree from hiding shared tables when no profile exists in the tree.

/admin/workspace renders the same data as an alternate workspace view. POST /logout is owned by this module and clears the session cookie.