Saltar a contenido

Módulo Web & GDPR

El módulo Web gestiona la integración con la tienda virtual, entrega de kits VIP, webhooks de pago y cumplimiento del RGPD — dando a los jugadores control sobre sus datos personales.


Cumplimiento del RGPD

Comando Descripción
/nexus gdpr Mostrar información de RGPD y configuración de consentimiento
/nexus gdpr export Exportar todos los datos personales a un archivo JSON
/nexus gdpr delete Eliminar todos los datos personales (derecho al olvido)
/nexus consent <tipo> <accept\|deny> Otorgar o denegar un tipo de consentimiento

Tipos de Consentimiento

Tipo Qué cubre
activity_tracking Datos de conexión y tiempo de juego
purchase_history Registros de transacciones
discord_notifications Acciones del jugador vinculadas a Discord
statistics Estadísticas y logros del jugador
marketing Anuncios y promociones del servidor

Seguridad

Cifrado de Datos

Con security.enable-encryption: true (predeterminado), los datos sensibles se cifran con AES-256-CBC con IV aleatorio por entrada. La clave se genera una vez y se guarda en plugins/NexusPrism/web/encryption.key.

Haz copia de seguridad de encryption.key

Si se pierde este archivo, los datos cifrados no podrán recuperarse. Inclúyelo en las copias de seguridad del servidor. Nunca lo subas a un repositorio git.

Secreto del Receiver (Stream Panel)

El plugin abre un puerto HTTP (nexus-tools.receiver-port, predeterminado 8080) para recibir eventos de Twitch del Stream Panel. Configura nexus-tools.receiver-secret con un secreto compartido y usa el mismo valor en el Stream Panel. Las solicitudes sin el header Authorization: Bearer <secret> correcto son rechazadas con 401.


Configuración (web-config.yml)

discord:
  webhook-url: ""
  server-invite: "https://discord.gg/tu-invite"
  notifications-enabled: false

api:
  enabled: false
  endpoint: "https://tu-sitio.com/api"
  key: ""                          # Generado automáticamente en el primer inicio
  rate-limit: 60

security:
  require-api-key: true
  enable-ip-whitelist: false
  whitelisted-ips:
    - "127.0.0.1"
    - "tu-ip-del-servidor"
  enable-encryption: true          # AES-256-CBC; clave en web/encryption.key

gdpr:
  enabled: true
  data-retention-days: 365
  legal-retention-years: 7
  allow-data-export: true
  allow-data-deletion: true

payments:
  enabled: false
  provider: "custom"               # stripe | paypal | mercadopago | custom
  webhook-secret: ""               # Generado automáticamente en el primer inicio
  currency: "USD"

nexus-tools:
  receiver-port: 8080              # Puerto HTTP para eventos del Stream Panel
  receiver-secret: ""              # Secreto compartido — debe coincidir con Stream Panel

vip-kits:
  enabled: true
  auto-deliver: true
  verify-payment: true

Campos de Configuración

Campo Predeterminado Descripción
api.endpoint URL base de la tienda para verificación de pedidos
api.key (auto-generado) Cópialo a la variable de entorno NEXUS_API_KEY de la tienda
security.require-api-key true Rechaza solicitudes sin API key válida — nunca deshabilites en producción
security.enable-encryption true Cifrado AES-256-CBC para datos sensibles almacenados
payments.webhook-secret (auto-generado) Debe coincidir con el secreto configurado en el panel del proveedor de pago
nexus-tools.receiver-secret `` Secreto compartido para autenticación HTTP Stream Panel → plugin
vip-kits.auto-deliver true Entrega kits pendientes automáticamente cuando el jugador se conecta
vip-kits.verify-payment true Verifica el estado del pago vía API antes de entregar el kit