UNPKG

backend-mcp

Version:

Generador automático de backends con Node.js, Express, Prisma y módulos configurables. Servidor MCP compatible con npx para agentes IA. Soporta PostgreSQL, MySQL, MongoDB y SQLite.

220 lines (199 loc) 6.5 kB
/** * Configuración del sistema de autenticación JWT para Backend MCP */ module.exports = { // Configuración de JWT jwt: { secret: process.env.JWT_SECRET || 'backend-mcp-secret-key-2024', issuer: 'backend-mcp-auth', algorithm: 'HS256', expiresIn: '30d' }, // URLs de la API de autenticación api: { // URL base de la API de autenticación baseUrl: process.env.AUTH_API_URL || 'https://backend-mcp-auth.vercel.app', // Endpoints específicos endpoints: { validate: '/api/auth/validate', refresh: '/api/auth/refresh', revoke: '/api/auth/revoke', plans: '/api/plans', purchase: '/api/purchase' }, // Configuración de timeouts timeout: 5000, // 5 segundos retries: 2 }, // Configuración de caché cache: { enabled: true, ttl: 300000, // 5 minutos en millisegundos maxSize: 1000 // máximo 1000 tokens en caché }, // Planes y precios plans: { basic: { name: 'Básico', price: 5, // USD por mes currency: 'USD', period: 'monthly', features: [ 'Acceso a todas las herramientas básicas', 'Generación de proyectos completos', 'Configuración de bases de datos', 'Soporte por email' ], limits: { toolCalls: 1000, // por mes projects: 10, // proyectos activos databases: 3 // conexiones de BD }, permissions: ['basic'] }, premium: { name: 'Premium', price: 15, // USD por mes currency: 'USD', period: 'monthly', features: [ 'Todo lo del plan Básico', 'Herramientas avanzadas de optimización', 'Configuración de Docker y CI/CD', 'Análisis de rendimiento', 'Soporte prioritario' ], limits: { toolCalls: 5000, // por mes projects: 50, // proyectos activos databases: 10 // conexiones de BD }, permissions: ['basic', 'premium'] }, enterprise: { name: 'Enterprise', price: 50, // USD por mes currency: 'USD', period: 'monthly', features: [ 'Todo lo del plan Premium', 'Herramientas de arquitectura empresarial', 'Configuración de microservicios', 'Monitoreo y logging avanzado', 'Soporte 24/7', 'Consultoría técnica' ], limits: { toolCalls: -1, // ilimitado projects: -1, // ilimitado databases: -1 // ilimitado }, permissions: ['basic', 'premium', 'enterprise'] } }, // Mapeo de herramientas por plan toolPermissions: { // Herramientas básicas (disponibles en todos los planes) basic: [ 'configure_project', 'create_endpoint', 'configure_database', 'setup_auth', 'create_model', 'create_controller', 'create_service', 'create_middleware', 'setup_validation', 'create_migration' ], // Herramientas premium (requieren plan Premium o superior) premium: [ 'setup_docker', 'setup_ci_cd', 'optimize_performance', 'setup_caching', 'setup_monitoring', 'create_tests', 'setup_security', 'analyze_code' ], // Herramientas enterprise (requieren plan Enterprise) enterprise: [ 'setup_microservices', 'setup_load_balancer', 'setup_message_queue', 'setup_distributed_cache', 'setup_api_gateway', 'setup_service_mesh', 'setup_observability', 'setup_disaster_recovery' ] }, // Mensajes de error messages: { noToken: { es: '🔐 Autenticación requerida. Obtén tu token JWT en https://backend-mcp.com/pricing por solo $5 USD/mes.', en: '🔐 Authentication required. Get your JWT token at https://backend-mcp.com/pricing for only $5 USD/month.' }, invalidToken: { es: '❌ Token JWT inválido o expirado. Verifica tu token o renuévalo en https://backend-mcp.com/dashboard', en: '❌ Invalid or expired JWT token. Check your token or renew it at https://backend-mcp.com/dashboard' }, insufficientPermissions: { es: '🚫 Permisos insuficientes. Esta herramienta requiere un plan superior. Actualiza en https://backend-mcp.com/upgrade', en: '🚫 Insufficient permissions. This tool requires a higher plan. Upgrade at https://backend-mcp.com/upgrade' }, networkError: { es: '🌐 Error de conexión con el servidor de autenticación. Verifica tu conexión a internet.', en: '🌐 Connection error with authentication server. Check your internet connection.' }, rateLimitExceeded: { es: '⏱️ Límite de uso excedido para tu plan. Actualiza o espera al próximo período.', en: '⏱️ Usage limit exceeded for your plan. Upgrade or wait for the next period.' } }, // Configuración de desarrollo development: { // Tokens de demostración (solo para desarrollo) demoTokens: { basic: 'demo_basic_token_2024', premium: 'demo_premium_token_2024', enterprise: 'demo_enterprise_token_2024' }, // Bypass de autenticación en desarrollo bypassAuth: process.env.NODE_ENV === 'development' && process.env.BYPASS_AUTH === 'true', // Logging detallado verboseLogging: process.env.NODE_ENV === 'development' }, // URLs importantes urls: { pricing: 'https://backend-mcp.com/pricing', dashboard: 'https://backend-mcp.com/dashboard', upgrade: 'https://backend-mcp.com/upgrade', support: 'https://backend-mcp.com/support', docs: 'https://backend-mcp.com/docs/authentication' } }; // Función helper para obtener el mensaje en el idioma correcto function getMessage(key, lang = 'es') { const config = module.exports; return config.messages[key] && config.messages[key][lang] ? config.messages[key][lang] : config.messages[key]['en'] || 'Error message not found'; } // Función helper para verificar si una herramienta requiere cierto plan function getRequiredPlan(toolName) { const config = module.exports; if (config.toolPermissions.enterprise.includes(toolName)) { return 'enterprise'; } if (config.toolPermissions.premium.includes(toolName)) { return 'premium'; } if (config.toolPermissions.basic.includes(toolName)) { return 'basic'; } return 'basic'; // por defecto } module.exports.getMessage = getMessage; module.exports.getRequiredPlan = getRequiredPlan;