CalejoControl/DASHBOARD.md

300 lines
7.2 KiB
Markdown
Raw Permalink Normal View History

# Calejo Control Adapter - Interactive Dashboard
## Overview
The Calejo Control Adapter Dashboard is a web-based interface that provides convenient configuration management, system monitoring, and operational controls for the Calejo Control Adapter system.
## Features
### 🖥️ Dashboard Interface
- **Tab-based Navigation**: Easy access to different system areas
- **Real-time Status Monitoring**: Live system status with color-coded indicators
- **Configuration Management**: Web-based configuration editor
- **System Logs**: Real-time log viewing
- **System Actions**: One-click operations for common tasks
### 📊 Status Monitoring
- **Application Status**: Overall system health
- **Database Status**: PostgreSQL connection status
- **Protocol Status**: OPC UA and Modbus server status
- **REST API Status**: API endpoint availability
- **Monitoring Status**: Health monitor and metrics collection
### ⚙️ Configuration Management
- **Database Configuration**: Connection settings for PostgreSQL
- **Protocol Configuration**: Enable/disable OPC UA and Modbus servers
- **REST API Configuration**: API host, port, and CORS settings
- **Monitoring Configuration**: Health monitor port settings
- **Validation**: Real-time configuration validation
### 📝 System Logs
- **Real-time Log Viewing**: Latest system logs with timestamps
- **Log Levels**: Color-coded log entries (INFO, WARNING, ERROR)
- **Auto-refresh**: Automatic log updates
### 🔧 System Actions
- **System Restart**: Controlled system restart
- **Backup Creation**: Manual backup initiation
- **Health Checks**: On-demand health status checks
- **Metrics Viewing**: Direct access to Prometheus metrics
## Accessing the Dashboard
### URL
```
http://localhost:8080/dashboard
```
or
```
http://localhost:8080/
```
### Default Ports
- **Dashboard**: 8080 (same as REST API)
- **Health Monitor**: 9090
- **Prometheus**: 9091
- **Grafana**: 3000
## Dashboard Tabs
### 1. Status Tab
- Real-time system status overview
- Color-coded status indicators
- Auto-refresh every 30 seconds
- Manual refresh button
### 2. Configuration Tab
- **Database Section**:
- Host, port, database name
- Username and password
- **Protocol Section**:
- OPC UA server enable/disable
- OPC UA port configuration
- Modbus server enable/disable
- Modbus port configuration
- **REST API Section**:
- API host and port
- CORS enable/disable
- **Monitoring Section**:
- Health monitor port
- **Action Buttons**:
- Load Current: Load current configuration
- Save Configuration: Apply new settings
- Validate: Check configuration validity
### 3. Logs Tab
- Real-time system log display
- Log level filtering (INFO, WARNING, ERROR)
- Timestamp information
- Manual refresh button
### 4. Actions Tab
- **System Operations**:
- Restart System (requires confirmation)
- Create Backup
- **Health Checks**:
- Run Health Check
- View Metrics (opens in new tab)
## API Endpoints
The dashboard uses the following REST API endpoints:
### Configuration Management
- `GET /api/v1/dashboard/config` - Get current configuration
- `POST /api/v1/dashboard/config` - Update configuration
### System Status
- `GET /api/v1/dashboard/status` - Get system status
### System Actions
- `POST /api/v1/dashboard/restart` - Restart system
- `GET /api/v1/dashboard/backup` - Create backup
- `GET /api/v1/dashboard/logs` - Get system logs
### Health Monitoring
- `GET /health` - Basic health check
- `GET /api/v1/health/detailed` - Detailed health status
- `GET /metrics` - Prometheus metrics
## Security Features
### Authentication
- JWT token-based authentication
- Role-based access control
- Secure credential handling
### Input Validation
- Server-side configuration validation
- Port range validation (1-65535)
- Required field validation
- Security warnings for default credentials
### Security Warnings
- Default JWT secret key detection
- Default API key detection
- Default database password detection
## Browser Compatibility
- **Chrome**: 70+
- **Firefox**: 65+
- **Safari**: 12+
- **Edge**: 79+
## Mobile Support
- Responsive design for mobile devices
- Touch-friendly interface
- Optimized for tablets and smartphones
## Development
### Frontend Technologies
- **HTML5**: Semantic markup
- **CSS3**: Modern styling with Flexbox/Grid
- **JavaScript**: Vanilla JS (no frameworks)
- **Fetch API**: Modern HTTP requests
### Backend Technologies
- **FastAPI**: REST API framework
- **Pydantic**: Data validation
- **Jinja2**: HTML templating
### File Structure
```
src/dashboard/
├── api.py # Dashboard API endpoints
├── templates.py # HTML templates
├── router.py # Main dashboard router
static/
└── dashboard.js # Frontend JavaScript
```
## Configuration Validation
The dashboard performs comprehensive validation:
### Required Fields
- Database host
- Database name
- Database user
- All port numbers
### Port Validation
- All ports must be between 1 and 65535
- No duplicate port assignments
### Security Validation
- Default credential detection
- Password strength recommendations
## Error Handling
### User-Friendly Messages
- Clear error descriptions
- Actionable suggestions
- Context-specific help
### Graceful Degradation
- API failure handling
- Network error recovery
- Partial data display
## Performance
### Optimizations
- Client-side caching
- Efficient DOM updates
- Minimal API calls
- Compressed responses
### Monitoring
- Performance metrics
- Error rate tracking
- User interaction analytics
## Troubleshooting
### Common Issues
1. **Dashboard Not Loading**
- Check if REST API is running
- Verify port 8080 is accessible
- Check browser console for errors
2. **Configuration Not Saving**
- Verify all required fields are filled
- Check port numbers are valid
- Look for validation errors
3. **Status Not Updating**
- Check network connectivity
- Verify health monitor is running
- Check browser console for API errors
### Debug Mode
Enable debug mode by opening browser developer tools and checking:
- Network tab for API calls
- Console for JavaScript errors
- Application tab for storage
## Integration with Monitoring Stack
The dashboard integrates with the existing monitoring infrastructure:
- **Prometheus**: Metrics collection
- **Grafana**: Advanced dashboards
- **Health Monitor**: System health checks
- **Alert Manager**: Notification system
## Backup and Restore
Dashboard configuration changes can be backed up using:
```bash
# Manual backup
./scripts/backup.sh
# Restore from backup
./scripts/restore.sh BACKUP_ID
```
## Security Best Practices
1. **Change Default Credentials**
- Update JWT secret key
- Change API keys
- Use strong database passwords
2. **Network Security**
- Use HTTPS in production
- Restrict dashboard access
- Implement firewall rules
3. **Access Control**
- Use role-based permissions
- Regular credential rotation
- Audit log monitoring
## Support
For dashboard-related issues:
1. **Documentation**: Check this guide and API documentation
2. **Logs**: Review system logs for errors
3. **Community**: Check project forums
4. **Support**: Contact support@calejo-control.com
---
**Dashboard Version**: 1.0
**Last Updated**: 2024-01-01
**Compatibility**: Calejo Control Adapter 2.0+