Skip to content

🏢 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

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
Ask Chehab GPT