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
JavaScript
/**
* 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;