This dashboard is not built yet.
DateNWed was generated from the OTROTL site template. Sign-in, the dashboard shell around this page and its menus are live shared services; the content that belongs here has not been written. This page stands in for it and says where to start.
These three open here, in this workspace frame.
Where the tiles come from
-
Tiles are rows, not code. Each tile in the sidebar is a row in
dashboard.apps, seeded bydb/migrations/CUSTOM/V315__dashboard__seed_template.sql. Its category comes fromdashboard.app_category_mapping(a tile with no category is invisible). -
Roles decide who sees a tile.
dashboard.role_app_accessgrants each role inauthz.site_default_rolesa tile. The seed gives ADMIN every tile and USER the non-admin ones. -
app_typedecides where a tile opens.PAGEloadsapp_urlinto this workspace frame;EXTERNALopens it in a new tab. APAGEmust be a page this site serves and allows its own origin to frame, or the workspace stays empty. -
Add or repoint a tile with a new migration. Never edit an
applied file. Claim the next number, add a file under
db/migrations/CUSTOM/, and write one guarded, re-runnable statement, asV500__dashboard__tools_embed_tiles.sqlandV906__dashboard__home_tile_start_page.sqldo. Record its checksum indb/migration_manifest.json. -
Replace this page. It is
frontend/dashboard/dashboard-start.html, served at/dashboard-startbybackend/app/dashboard_placeholders.py. Build the real home there, or point thehometile somewhere else.
Where the contract is written down
backend/app/shared_dashboard_integration.py: how this site mounts the shared dashboard.tools/SHARED_DASHBOARD/docs/INTEGRATION.mdandtools/SHARED_DASHBOARD/docs/contracts/navigation-contract.md: the shell's side of the contract.docs/EMBEDDING_GUIDE.md: embedding a shared tool in this workspace.CHARTER.md: what the template owns and what it imports.
A tile whose target is not set up on this site shows a page like this one.