Skip to main content

MyDash — Features

MyDash is a configurable dashboard and widget system for Nextcloud. It replaces Nextcloud's built-in dashboard with a multi-dashboard, drag-and-drop interface where users manage multiple personal dashboards, administrators distribute templated layouts via group membership, and individual widgets render live content from any Nextcloud app.

MyDash maps to the BI-component within the GEMMA reference architecture.

Standards Compliance

StandardStatusDescription
Nextcloud Dashboard Widget API v1/v2BeschikbaarNative Nextcloud widget discovery and rendering
WCAG 2.1 AAVia platformAccessibility via Nextcloud and NL Design app
NL Design SystemVia platformGovernment theming via nldesign app
GDPR / AVGVia platformData subject rights via OpenRegister / Nextcloud

Features

FeatureDescriptionDocs
DashboardsMulti-dashboard management per user; one active dashboard at a time; types: personal and admin templatedashboards.md
WidgetsDiscover and place all registered Nextcloud Dashboard Widgets (v1 + v2) as grid placementswidgets.md
Grid Layout12-column drag-and-drop grid powered by GridStack 10.3.1; view mode and edit modegrid-layout.md
Custom TilesShortcut cards linking to Nextcloud apps or external URLs with icon, label, and inline-copy modeltiles.md
Permission LevelsThree-tier permission hierarchy: view_only, add_only, full — inherited from admin templatespermissions.md
Admin TemplatesPre-configured dashboards distributed to users by Nextcloud group membershipadmin-templates.md
Admin SettingsGlobal configuration: allow user dashboards, max dashboards per user, default grid columnsadmin-settings.md
Conditional VisibilityShow or hide widget placements based on time, date, group membership, or user attributesconditional-visibility.md
Prometheus MetricsMonitoring endpoint: dashboard count, widget usage, tile counts, health checkprometheus-metrics.md

Architecture

MyDash integrates with Nextcloud's widget ecosystem via OCP\Dashboard\IManager::getWidgets(). Widgets are discovered automatically — any installed Nextcloud app that registers a Dashboard Widget (v1 or v2) appears in the MyDash widget library.

Data model:

  • Dashboard — Container with grid config and permission level
  • Placement — A widget or tile positioned on a grid cell (x, y, width, height)
  • Tile — Reusable shortcut definition; inline-copied to placements (snapshot model)
  • ConditionalVisibilityRule — Include/exclude rules evaluated at render time

GEMMA Mapping

GEMMA ComponentMyDash Role
BI-componentConfigurable multi-dashboard with widget aggregation
PortaalEntry point for Nextcloud apps via tiles and widgets