Changelog
View SourceAll notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
- Initial release of
ex_esdb_dashboardas a separate package - Real-time cluster dashboard with Phoenix LiveView
ExESDBDashboardmain module for cluster data aggregationExESDBDashboard.ClusterLive- Main dashboard LiveView componentExESDBDashboard.ClusterStatus- Embeddable cluster status widget- Real-time updates via Phoenix PubSub integration
- Cluster health monitoring and visualization
- Node status tracking and display
- Event store statistics and monitoring
- Stream count and subscription monitoring
- Responsive dashboard UI components
- Automatic refresh capabilities with manual refresh option
- Support for both secure and unsecured message handling
- Integration with ExESDBGater structured messaging system
Dependencies
- Phoenix LiveView (~> 1.0)
- Phoenix HTML (~> 4.0)
- ExESDBGater (~> 0.5.0) for core cluster functionality
- Jason (~> 1.0) for JSON encoding/decoding
Features
- Real-time Dashboard: Live updates of cluster state via PubSub
- Cluster Health: Visual health indicators with emoji and status text
- Node Monitoring: Track connected nodes, uptime, and node types
- Store Statistics: Monitor event stores, streams, and subscriptions
- Embeddable Components: Standalone widgets for integration into existing Phoenix apps
- Responsive Design: Works on desktop and mobile interfaces
- Message Validation: Secure message handling with signature validation
- Legacy Support: Backward compatibility with existing message formats
Technical Notes
- Extracted from
ex_esdb_gaterv0.4.x dashboard modules - Renamed from
ExESDBGater.Dashboard.*toExESDBDashboard.* - Removed conditional compilation guards (Phoenix LiveView now explicit dependency)
- Clean separation of concerns between core logic and UI components
- Maintains compatibility with existing ExESDBGater clusters
Migration Notes
If migrating from ex_esdb_gater v0.4.x dashboard:
- Replace
{:ex_esdb_gater, "~> 0.4.0"}with separate dependencies:{:ex_esdb_gater, "~> 0.5.0"}{:ex_esdb_dashboard, "~> 0.1.0"}
- Update module references:
ExESDBGater.Dashboard→ExESDBDashboardExESDBGater.Dashboard.ClusterLive→ExESDBDashboard.ClusterLiveExESDBGater.Dashboard.ClusterStatus→ExESDBDashboard.ClusterStatus
- Update function calls:
ExESDBGater.Dashboard.get_cluster_data()→ExESDBDashboard.get_cluster_data()