How canonical/juju-dashboard works
Juju Dashboard is a web console for viewing and managing Juju/JAAS controllers, models, and deployments. A user enters through the routed application, authenticates, then inspects controller/model status or performs management tasks such as adding models, changing access, configuring applications, running actions, and upgrading models. The UI’s Juju-facing layers manage controller connections and API operations; deployment charms provide VM and Kubernetes hosting. The README documents these capabilities, while the sampled source directly confirms routing, controller summaries, connection handling, and upgrade dispatch; unsampled feature wiring is therefore shown only at subsystem level.
Main entry points: Routes.tsx Application routes · connection-manager.ts Connection manager · ControllersIndex.tsx Controller overview · ModelsIndex.tsx Models index
Components 21
Dashboard UI
- Application routes
src/components/Routes/Routes.tsx - Controller overview
src/pages/ControllersIndex/ControllersIndex.tsx - Models index
src/pages/ModelsIndex/ModelsIndex.tsx - Audit and action logs
src/pages/Logs/Logs.tsx - Advanced search
src/pages/AdvancedSearch/AdvancedSearch.tsx
Identity and Connections
- Login UI
src/components/LogIn/LogIn.tsx - Authentication
src/auth/index.ts - Connection manager
src/store/middleware/connection/connection-manager.ts - Juju API
src/juju/api.ts - JIMM APIs
src/juju/jimm/api.ts
Model Management
- Model details
src/pages/EntityDetails/Model/Model.tsx - Add model
src/pages/AddModel/AddModel.tsx - Access management
src/pages/Permissions/Permissions.tsx - Application config
src/panels/ConfigPanel/ConfigPanel.tsx - Run actions
src/panels/ActionsPanel/ActionsPanel.tsx - Upgrade model
src/panels/UpgradeModelPanel/UpgradeModelController/UpgradeModelController.tsx
Dashboard Hosting
- VM charm
charms/machine-charm/src/charm.py - Kubernetes charm
charms/k8s-charm/src/charm.py
Other components
- Juju operator
- Juju controllers
- JAAS service
Connections 27
- Juju operator → Application routes: opens dashboard
- Application routes → Login UI: routes unauthenticated
- Application routes → Controller overview: routes authenticated
- Application routes → Models index: routes authenticated
- Application routes → Model details: routes model detail
- Application routes → Add model: routes add model
- Application routes → Access management: routes JAAS access
- Application routes → Audit and action logs: routes JAAS logs
- Application routes → Advanced search: routes JAAS search
- Login UI → Authentication: authenticates
- Authentication → Connection manager: provides credentials
- Connection manager → Juju API: controller login
- Connection manager → JIMM APIs: connects JIMM
- Juju API → Juju controllers: calls controller API
- JIMM APIs → JAAS service: calls service API
- Controller overview → Juju controllers: displays status
- Models index → Juju controllers: lists models
- Model details → Juju controllers: reads deployment
- Add model → Juju controllers: creates model
- Access management → JAAS service: manages access
- Application config → Juju controllers: updates config
- Run actions → Juju controllers: runs actions
- Upgrade model → Juju controllers: dispatches upgrade
- Audit and action logs → Juju controllers: reads logs
- Advanced search → JAAS service: searches environment
- Juju operator → VM charm: deploys dashboard
- Juju operator → Kubernetes charm: deploys dashboard