🏢 Admin Server¶
Comprehensive administrative interface and management platform
🎯 Overview¶
The Admin Server is a comprehensive administrative interface that provides centralized management capabilities for the entire Appgain platform. It handles app lifecycle management, user administration, analytics, system monitoring, and administrative functions across all platform services.
🏗️ Architecture¶
Core Components¶
- Management Interface: Web-based admin dashboard
- App Lifecycle Manager: Application deployment and management
- User Administration: User management and permissions
- Analytics Engine: Business intelligence and reporting
- System Monitor: Real-time system monitoring
- Configuration Manager: Platform configuration management
Technology Stack¶
- Backend: Flask (Python)
- Frontend: React (JavaScript)
- Database: MongoDB, Redis
- Authentication: JWT, OAuth2
- API Gateway: KONG integration
- Monitoring: Prometheus, Grafana
Infrastructure¶
- Server:
ovh-devops - Port: 5000 (HTTP), 5001 (HTTPS)
- Environment: Production, Staging, Development
- Access: Admin-only with role-based permissions
🔧 Configuration¶
Server Details¶
- Server:
ovh-devops - Port: 5000 (HTTP), 5001 (HTTPS)
- Base URL:
https://admin-dashboard.instabackend.io - Environment: Production, Staging, Development
Admin Configuration¶
# admin_server.config.py
ADMIN_CONFIG = {
'authentication': {
'jwt_secret': 'ADMIN_JWT_SECRET',
'session_timeout': 3600, # 1 hour
'max_login_attempts': 5,
'password_policy': {
'min_length': 8,
'require_special_chars': True,
'require_numbers': True
}
},
'permissions': {
'super_admin': ['*'],
'admin': ['read', 'write', 'delete'],
'manager': ['read', 'write'],
'viewer': ['read']
},
'integrations': {
'parse_server': {
'url': 'https://parse.appgain.io',
'app_id': 'PARSE_APP_ID',
'master_key': 'PARSE_MASTER_KEY'
},
'notify_service': {
'url': 'https://notify.appgain.io',
'api_key': 'NOTIFY_API_KEY'
},
'automator_engine': {
'url': 'https://automator.appgain.io',
'api_key': 'AUTOMATOR_API_KEY'
}
},
'monitoring': {
'prometheus_url': 'http://prometheus:9090',
'grafana_url': 'http://grafana:3000',
'alert_manager_url': 'http://alertmanager:9093'
}
}
API Endpoints¶
# Authentication
POST /admin/auth/login
POST /admin/auth/logout
POST /admin/auth/refresh
# User Management
GET /admin/users
POST /admin/users
PUT /admin/users/{user_id}
DELETE /admin/users/{user_id}
# App Management
GET /admin/apps
POST /admin/apps
PUT /admin/apps/{app_id}
DELETE /admin/apps/{app_id}
# Analytics
GET /admin/analytics/overview
GET /admin/analytics/users
GET /admin/analytics/revenue
GET /admin/analytics/performance
# System Monitoring
GET /admin/monitoring/health
GET /admin/monitoring/metrics
GET /admin/monitoring/alerts
📊 Management Features¶
User Administration¶
# User management operations
user_operations = {
'create_user': {
'endpoint': 'POST /admin/users',
'required_fields': ['email', 'name', 'role'],
'optional_fields': ['phone', 'department', 'permissions']
},
'update_user': {
'endpoint': 'PUT /admin/users/{user_id}',
'updatable_fields': ['name', 'role', 'permissions', 'status']
},
'delete_user': {
'endpoint': 'DELETE /admin/users/{user_id}',
'confirmation_required': True
},
'list_users': {
'endpoint': 'GET /admin/users',
'filters': ['role', 'status', 'department', 'created_date']
}
}
App Lifecycle Management¶
# App management operations
app_operations = {
'create_app': {
'endpoint': 'POST /admin/apps',
'required_fields': ['name', 'platform', 'owner_id'],
'optional_fields': ['description', 'icon', 'settings']
},
'deploy_app': {
'endpoint': 'POST /admin/apps/{app_id}/deploy',
'environments': ['development', 'staging', 'production']
},
'update_app': {
'endpoint': 'PUT /admin/apps/{app_id}',
'updatable_fields': ['name', 'description', 'settings', 'status']
},
'delete_app': {
'endpoint': 'DELETE /admin/apps/{app_id}',
'confirmation_required': True,
'cascade_delete': True
}
}
Analytics Dashboard¶
# Analytics data structure
analytics_data = {
'overview': {
'total_users': 50000,
'active_users': 35000,
'total_revenue': 150000,
'monthly_growth': 15.5
},
'user_metrics': {
'new_users': 2500,
'churned_users': 150,
'retention_rate': 85.2,
'avg_session_duration': 12.5
},
'revenue_metrics': {
'mrr': 15000,
'arr': 180000,
'ltv': 450,
'cac': 120
},
'performance_metrics': {
'uptime': 99.9,
'response_time': 250,
'error_rate': 0.1,
'throughput': 10000
}
}
🔍 Monitoring & Analytics¶
System Health Monitoring¶
# Health check endpoints
health_checks = {
'overall_health': {
'endpoint': 'GET /admin/monitoring/health',
'checks': ['database', 'redis', 'external_apis', 'services']
},
'service_health': {
'endpoint': 'GET /admin/monitoring/services',
'services': ['parse_server', 'notify_service', 'automator_engine']
},
'performance_metrics': {
'endpoint': 'GET /admin/monitoring/metrics',
'metrics': ['cpu', 'memory', 'disk', 'network']
}
}
Business Intelligence¶
# BI dashboard data
bi_data = {
'user_analytics': {
'user_growth': 'chart_data',
'user_retention': 'chart_data',
'user_segments': 'chart_data',
'user_behavior': 'chart_data'
},
'revenue_analytics': {
'revenue_growth': 'chart_data',
'revenue_by_plan': 'chart_data',
'revenue_by_region': 'chart_data',
'revenue_forecast': 'chart_data'
},
'performance_analytics': {
'system_performance': 'chart_data',
'api_performance': 'chart_data',
'error_rates': 'chart_data',
'uptime_metrics': 'chart_data'
}
}
🔒 Security¶
Authentication & Authorization¶
- Multi-Factor Authentication: 2FA support
- Role-Based Access Control: Granular permissions
- Session Management: Secure session handling
- API Security: JWT token authentication
Data Protection¶
- Data Encryption: End-to-end encryption
- Audit Logging: Complete audit trail
- GDPR Compliance: Data privacy compliance
- Backup & Recovery: Automated backup systems
📈 Performance¶
Capabilities¶
- Real-Time Monitoring: Live system metrics
- Multi-Tenant Support: Isolated tenant data
- Scalable Interface: Responsive design
- High Availability: 99.9% uptime
Limitations¶
- Admin Access Only: Restricted to authorized users
- Session Timeout: 1 hour session limit
- Rate Limiting: API rate limiting
- Data Retention: Configurable retention policies
🔗 Integration Examples¶
Parse Server Integration¶
# Parse Server management
parse_integration = {
'create_app': {
'method': 'POST',
'endpoint': '/admin/parse/apps',
'data': {
'name': 'New App',
'platform': 'ios',
'owner_id': 'user123',
'settings': {
'push_enabled': True,
'analytics_enabled': True
}
}
},
'deploy_app': {
'method': 'POST',
'endpoint': '/admin/parse/apps/{app_id}/deploy',
'data': {
'environment': 'production',
'version': '1.0.0'
}
}
}
Notify Service Integration¶
# Notify Service management
notify_integration = {
'send_notification': {
'method': 'POST',
'endpoint': '/admin/notify/send',
'data': {
'channel': 'push',
'recipients': ['user1', 'user2'],
'message': {
'title': 'Admin Notification',
'body': 'System maintenance scheduled'
}
}
},
'create_campaign': {
'method': 'POST',
'endpoint': '/admin/notify/campaigns',
'data': {
'name': 'Admin Campaign',
'channel': 'email',
'recipients': ['all_users'],
'message': {
'subject': 'Important Update',
'body': 'System update notification'
}
}
}
}
Automator Engine Integration¶
# Automator Engine management
automator_integration = {
'create_workflow': {
'method': 'POST',
'endpoint': '/admin/automator/workflows',
'data': {
'name': 'Admin Workflow',
'trigger': {
'type': 'user_signup',
'conditions': []
},
'actions': [
{
'type': 'send_email',
'template': 'admin_welcome',
'data': {}
}
]
}
},
'deploy_workflow': {
'method': 'POST',
'endpoint': '/admin/automator/workflows/{workflow_id}/deploy',
'data': {
'environment': 'production'
}
}
}
🛠️ Troubleshooting¶
Common Issues¶
Authentication Issues¶
# Check authentication status
curl -X GET "https://admin-dashboard.instabackend.io/admin/auth/status" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
# Refresh token
curl -X POST "https://admin-dashboard.instabackend.io/admin/auth/refresh" \
-H "Authorization: Bearer YOUR_REFRESH_TOKEN"
Service Health Issues¶
# Check overall health
curl -X GET "https://admin-dashboard.instabackend.io/admin/monitoring/health"
# Check specific service
curl -X GET "https://admin-dashboard.instabackend.io/admin/monitoring/services/parse_server"
Performance Issues¶
# Get performance metrics
curl -X GET "https://admin-dashboard.instabackend.io/admin/monitoring/metrics"
# Get system alerts
curl -X GET "https://admin-dashboard.instabackend.io/admin/monitoring/alerts"
Debug Commands¶
# Check service logs
tail -f /var/log/admin-server/app.log
# Check database connection
python -c "from admin_server.database import db; print(db.engine.execute('SELECT 1').fetchone())"
# Check Redis connection
redis-cli ping
# Check external API connections
curl -X GET "https://admin-dashboard.instabackend.io/admin/monitoring/external-apis"
📚 Documentation¶
External Resources¶
- Admin API: API Documentation
- User Guide: Admin User Guide
- Flask Documentation: Flask Docs
- React Documentation: React Docs
Monitoring Tools¶
- Grafana Dashboards: Real-time admin metrics
- Prometheus: Performance monitoring
- ELK Stack: Log analysis and alerting
- Custom Analytics: Admin usage tracking
Development Tools¶
- Postman Collection: API testing and documentation
- GitLab Repository: AppGain Admin Server
- Development Environment: Docker setup for local testing
- Testing Framework: Automated admin testing
🔗 Related Resources¶
- System Architecture? → System Architecture
- Parse Server? → Parse Server
- Notify Service? → Notify Service
- Automator Engine? → Automator Engine
- Learning Resources? → Learning Resources
Ask Chehab GPT