Drexo v0.2.0 — Unified sharing + meter readability
Personal dashboards are now shareable, public location URLs render the location's dashboard, meter heatmap colours scale to each meter's peak, and 'awaiting next reading' cells finally stand apart from real data gaps.
Drexo v0.2.0 — Unified sharing + meter readability
Two large strands in two days: the water-meter detail page gets a heatmap that finally adapts to each meter, and the sharing system becomes unified — a dashboard or a location is now shared and rendered the same way, whether as an authenticated grant or as a public link.
Highlights
- Shareable personal dashboards: share one of your dashboards with another user or via a public link. The recipient sees the same widget grid as you, read-only.
- Public location view: the
/p/<token>page for a zone no longer shows a flat list of devices. It now renders the location's dashboard (the widgets you configured for that location), using the same UI as a shared personal dashboard. - Automatic cascade: sharing a dashboard or a location automatically grants access to the underlying devices — for the ones you own. Devices belonging to other organisations stay hidden from the recipient, who sees a clear message explaining why.
- Proportional meter heatmap: the colour palette scales to the meter's 90-day hourly peak instead of a hard-coded 15 000 L/h ceiling. Residential meters get a readable gradient back; large installations keep their full dynamic range.
- "Awaiting next reading": hours with no data inside the 24 h window after the last reading now show a distinct dotted pattern, instead of being conflated with genuine data gaps.
What's new
Sharing
- New
dashboardscope on every share table (grants, public links, invitations, history). One unified schema across the three share-able resource types. - New "Dashboards shared with me" section on
/partages— visible when at least one dashboard has been shared with you. Clicking a row opens the read-only view at/dashboards/<id>. - "M devices not available in this share" banner on every shared surface (public link + authenticated recipient) when the sharer isn't the owner of the organisation that owns some of the referenced devices.
- The recipient of a dashboard or location share can only revoke the primary share. Underlying device accesses are removed via cascade — no more "I clicked Refuse and nothing happened."
- "Allow recipient to organise in their tenant" option (server- side): a location grant can now let the recipient place the received devices inside their own location tree. The UI surfaces for this option will ship in the next increment.
Water-meter detail
- The "Hourly heat map" panel was renamed "Hourly consumption detail" — more natural for water than a "heat" metaphor borrowed from temperature visualisations.
- The "corrupt frame" legend entry only shows when at least one cell in the current window is actually flagged. Healthy meters = cleaner legend.
- New "awaiting next reading" legend entry explaining the dotted pattern on cells that fall in the 24 h window after the meter's last uplink.
Fixes
- The recipient of a derived device grant inside a location share can no longer "cancel" individual device rows — a click that appeared to work without any effect (the dashboard cell stayed visible via the location cascade).
Migration
No manual action required. Existing shares (devices and locations)
keep working unchanged. Existing public location links now render
the new DashboardView — if the location has no widgets configured,
the page shows an explicit message inviting the owner to add some
via /tenants/<id>/locations/<lid>.