Extending the dashboard
Overview
How a custom frontend module plugs into the DMS dashboard — the registration model and the catalog of extension points.
Start with the built-in components. When something is missing, choose the smallest extension that supplies it:
| You need to… | Start here |
|---|---|
| Add a block to another module's page | Page extensions; no frontend layer is needed for built-in blocks. |
| Add a message across dashboard pages | Layout banners, registered on the backend. |
| Change the logo, colors, or fonts | Theming & branding. |
| Add a header button, panel, or menu group | A frontend layer using the shell registries below. |
| Render UI the existing blocks cannot express | One custom component, composed with the existing blocks. |
The table below lists the frontend extension points. Frontend composables covers the APIs your Vue components call after registration.
What you can extend
| Extension | Adds | Chapter |
|---|---|---|
| Dashboard chrome | Header buttons, layout banners, command-palette groups and assistant, sidebar widgets, app widgets and overlays, footer links, auth-page links | Dashboard chrome |
| Theming & branding | Your logo, palette, fonts, and design-token overrides | Theming & branding |
| Custom data types | A new field/column type (the Vue behind a backend @RegisterDataType) | Custom data types |
| TableView displays | An alternate table body renderer (kanban, cards, calendar…) | TableView displays |
| Component events | Cross-component reactivity — one component reacts to another's events | Component events |
| Period filtering | Link widgets to a shared date-range via a scope id | Period filtering |
Next steps
File storage
Configure native file and image fields, understand page/component authorization, and handle staged uploads and save retries.
Dashboard chrome
The registries a frontend layer calls to add header buttons, command-palette groups and an assistant mode, app widgets, sidebar widgets, docked side panels, global overlays, footer links, and auth-page links to the dashboard shell, and the backend registry behind layout banners.