Add Loki and Sentinel utility classes for web API endpoints

- Implemented LokiUtils class with GET and POST endpoints for managing scripts, jobs, and payloads.
- Added SentinelUtils class with GET and POST endpoints for managing events, rules, devices, and notifications.
- Both classes include error handling and JSON response formatting.
This commit is contained in:
infinition
2026-03-14 22:33:10 +01:00
parent eb20b168a6
commit aac77a3e76
525 changed files with 29400 additions and 13136 deletions

View File

@@ -40,22 +40,40 @@
"settings.errorRestoring": "Error al restaurar valores predeterminados",
"theme.group.colors": "Colores",
"theme.group.surfaces": "Superficies",
"theme.group.borders": "Bordes",
"theme.group.controls": "Controles",
"theme.group.layout": "Diseño",
"theme.token.bg": "Fondo",
"theme.token.bg2": "Fondo Alt",
"theme.token.ink": "Color de texto",
"theme.token.muted": "Texto atenuado",
"theme.token.accent1": "Acento 1 (Ácido)",
"theme.token.accent2": "Acento 2 (Cian)",
"theme.token.accent": "Acento",
"theme.token.accentAlt": "Acento Alt",
"theme.token.danger": "Peligro",
"theme.token.warning": "Advertencia",
"theme.token.ok": "Éxito",
"theme.token.panel": "Panel",
"theme.token.panel2": "Panel Alt",
"theme.token.ctrlPanel": "Panel control",
"theme.token.ctrlPanel2": "Panel control Alt",
"theme.token.btnBg": "Fondo de botón",
"theme.token.border": "Borde",
"theme.token.borderStrong": "Borde fuerte",
"theme.token.borderHi": "Borde resaltado",
"theme.token.switchTrack": "Pista del interruptor",
"theme.token.switchOnBg": "Fondo interruptor activo",
"theme.token.scrollTrack": "Pista de la barra de desplazamiento",
"theme.token.scrollThumb": "Control de la barra de desplazamiento",
"theme.token.glass": "Superposición de cristal",
"theme.token.radius": "Radio de borde",
"theme.advanced": "CSS avanzado",
"theme.applyRaw": "Aplicar",
"theme.reset": "Restablecer",
"theme.reset": "Restablecer valores predeterminados",
"theme.export": "Exportar tema",
"theme.import": "Importar tema",
"theme.importError": "Archivo de tema no válido",
"dash.title": "Panel de control",
"dash.battery": "Batería",
"dash.internet": "Internet",
@@ -777,5 +795,137 @@
"api.timeout": "La solicitud ha expirado",
"api.failed": "La solicitud ha fallado",
"router.notFound": "Página no encontrada: {{path}}",
"router.errorLoading": "Error al cargar la página: {{message}}"
"router.errorLoading": "Error al cargar la página: {{message}}",
"nav.sentinel": "Sentinel",
"sentinel.title": "Sentinel Vigilante",
"sentinel.enabled": "Activado",
"sentinel.disabled": "Desactivado",
"sentinel.eventFeed": "Eventos",
"sentinel.ackAll": "Confirmar todos",
"sentinel.clearAll": "Borrar todos",
"sentinel.allAcked": "Todos los eventos confirmados",
"sentinel.confirmClear": "¿Borrar todos los eventos? Esta acción es irreversible.",
"sentinel.eventsCleared": "Eventos borrados",
"sentinel.noEvents": "Aún no hay eventos. Sentinel vigila tu red en busca de anomalías.",
"sentinel.rules": "Reglas",
"sentinel.devices": "Dispositivos",
"sentinel.notifiers": "Notificadores",
"sentinel.statDevices": "Dispositivos conocidos",
"sentinel.statAlive": "Activos",
"sentinel.statUnread": "Sin leer",
"sentinel.statEvents": "Eventos totales",
"sentinel.statRules": "Reglas activas",
"sentinel.addRule": "Añadir regla",
"sentinel.noRules": "No hay reglas configuradas.",
"sentinel.ruleLogic": "Lógica",
"sentinel.ruleActions": "Acciones",
"sentinel.enable": "Activar",
"sentinel.disable": "Desactivar",
"sentinel.editRule": "Editar regla",
"sentinel.deleteRule": "Eliminar regla",
"sentinel.confirmDeleteRule": "¿Eliminar esta regla?",
"sentinel.ruleDeleted": "Regla eliminada",
"sentinel.ruleUpdated": "Regla actualizada",
"sentinel.ruleCreated": "Regla creada",
"sentinel.ruleName": "Nombre de regla",
"sentinel.triggerType": "Tipo de activación",
"sentinel.cooldown": "Cooldown",
"sentinel.conditions": "Condiciones",
"sentinel.cancel": "Cancelar",
"sentinel.save": "Guardar",
"sentinel.nameRequired": "El nombre de la regla es obligatorio",
"sentinel.noDevices": "Aún no se han descubierto dispositivos.",
"sentinel.trusted": "De confianza",
"sentinel.untrusted": "No confiable",
"sentinel.alias": "Alias",
"sentinel.expectedIps": "IPs esperadas",
"sentinel.lastSeen": "Última vez visto",
"sentinel.deviceSaved": "Dispositivo actualizado",
"sentinel.discordWebhook": "Discord Webhook",
"sentinel.webhookUrl": "Webhook URL",
"sentinel.smtpHost": "SMTP Host",
"sentinel.smtpPort": "SMTP Port",
"sentinel.smtpUser": "SMTP Usuario",
"sentinel.smtpPass": "SMTP Contraseña",
"sentinel.emailFrom": "Correo remitente",
"sentinel.emailTo": "Correo destinatario",
"sentinel.saveNotifiers": "Guardar notificadores",
"sentinel.notifiersSaved": "Configuración de notificadores guardada",
"sentinel.justNow": "ahora mismo",
"sentinel.acknowledge": "Confirmar",
"nav.bifrost": "Bifrost",
"bifrost.title": "Bifrost",
"bifrost.enabled": "Activado",
"bifrost.disabled": "Desactivado",
"bifrost.activityFeed": "Feed de actividad",
"bifrost.clearActivity": "Limpiar",
"bifrost.activityCleared": "Actividad limpiada",
"bifrost.noActivity": "Sin actividad. Active Bifrost para iniciar el reconocimiento WiFi.",
"bifrost.networks": "Redes",
"bifrost.plugins": "Plugins",
"bifrost.history": "Historial",
"bifrost.mood": "Estado",
"bifrost.statNetworks": "Redes",
"bifrost.statHandshakes": "Handshakes",
"bifrost.statDeauths": "Deauths",
"bifrost.statAssocs": "Asocs",
"bifrost.statEpochs": "Épocas",
"bifrost.statPeers": "Pares",
"bifrost.noNetworks": "Aún no se han descubierto redes.",
"bifrost.noPlugins": "No hay plugins cargados.",
"bifrost.noEpochs": "Aún no se han registrado épocas.",
"bifrost.justNow": "ahora mismo",
"bifrost.confirmEnable": "¿Activar el modo Bifrost? El WiFi se pondrá en modo monitor — se perderá la conexión de red. Conéctese por USB/Bluetooth/Ethernet.",
"bifrost.monitorFailed": "Modo Monitor Fallido",
"bifrost.monitorFailedHint": "Para chips Broadcom (Pi Zero), instale nexmon. O use un adaptador WiFi USB externo.",
"bifrost.nexmonRequired": "Nexmon requerido",
"bifrost.nexmonRequiredDesc": "Su chip WiFi Broadcom necesita los parches de firmware nexmon para el modo monitor. Haga clic para auto-instalar (~15-25 min en Pi Zero 2 W).",
"bifrost.nexmonInstallBtn": "Instalar Nexmon",
"bifrost.nexmonConfirm": "¿Instalar parches de firmware nexmon? Esto descargará y compilará nexmon (~15-25 min). Requiere acceso a internet y privilegios root.",
"bifrost.nexmonStarted": "Instalación de nexmon iniciada ...",
"bifrost.nexmonInstalling": "Instalando Nexmon ...",
"nav.loki": "Loki",
"loki.title": "Loki — Suite de ataque HID",
"loki.enable": "Activar",
"loki.enabled_msg": "Modo Loki activado",
"loki.disabled_msg": "Modo Loki desactivado",
"loki.status_label": "Estado",
"loki.gadget_label": "Gadget",
"loki.layout_label": "Disposición",
"loki.jobs_label": "Trabajos",
"loki.running": "En ejecución",
"loki.running_lc": "en ejecución",
"loki.idle": "Inactivo",
"loki.ready": "Listo",
"loki.not_ready": "No listo",
"loki.run": "Ejecutar",
"loki.save": "Guardar",
"loki.new": "Nuevo",
"loki.delete": "Eliminar",
"loki.cancel": "Cancelar",
"loki.output": "Salida",
"loki.payloads": "Cargas útiles",
"loki.custom_scripts": "Scripts personalizados",
"loki.jobs": "Trabajos",
"loki.clear_completed": "Limpiar completados",
"loki.script": "Script",
"loki.status_col": "Estado",
"loki.started": "Iniciado",
"loki.actions": "Acciones",
"loki.no_payloads": "Sin cargas útiles integradas",
"loki.no_scripts": "Sin scripts guardados",
"loki.no_jobs": "Sin trabajos aún",
"loki.no_output": "Sin salida",
"loki.empty_script": "El script está vacío",
"loki.job_started": "Trabajo iniciado: {id}",
"loki.run_error": "Error al ejecutar el script",
"loki.script_name_prompt": "Nombre del script:",
"loki.saved": "Script guardado",
"loki.save_error": "Error al guardar el script",
"loki.confirm_delete": "¿Eliminar script '{name}'?",
"loki.quick_placeholder": "Escribir texto rápido aquí...",
"loki.quick_send": "Escribir",
"loki.quick_sent": "Texto enviado al objetivo",
"loki.quick_error": "Error al enviar texto"
}