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": "Fehler beim Wiederherstellen der Standardwerte",
"theme.group.colors": "Farben",
"theme.group.surfaces": "Oberflächen",
"theme.group.borders": "Rahmen",
"theme.group.controls": "Steuerelemente",
"theme.group.layout": "Layout",
"theme.token.bg": "Hintergrund",
"theme.token.bg2": "Hintergrund Alt",
"theme.token.ink": "Textfarbe",
"theme.token.muted": "Gedämpfter Text",
"theme.token.accent1": "Akzent 1 (Acid)",
"theme.token.accent2": "Akzent 2 (Cyan)",
"theme.token.accent": "Akzent",
"theme.token.accentAlt": "Akzent Alt",
"theme.token.danger": "Gefahr",
"theme.token.warning": "Warnung",
"theme.token.ok": "Erfolg",
"theme.token.panel": "Panel",
"theme.token.panel2": "Panel Alt",
"theme.token.ctrlPanel": "Steuerpanel",
"theme.token.ctrlPanel2": "Steuerpanel Alt",
"theme.token.btnBg": "Schaltflächenhintergrund",
"theme.token.border": "Rahmen",
"theme.token.borderStrong": "Starker Rahmen",
"theme.token.borderHi": "Rahmenhervorhebung",
"theme.token.switchTrack": "Schalter-Spur",
"theme.token.switchOnBg": "Schalter Ein-Hintergrund",
"theme.token.scrollTrack": "Scrollleisten-Spur",
"theme.token.scrollThumb": "Scrollleisten-Griff",
"theme.token.glass": "Glasüberlagerung",
"theme.token.radius": "Rahmenradius",
"theme.advanced": "Erweitertes CSS",
"theme.applyRaw": "Anwenden",
"theme.reset": "Zurücksetzen",
"theme.reset": "Auf Standard zurücksetzen",
"theme.export": "Design exportieren",
"theme.import": "Design importieren",
"theme.importError": "Ungültige Design-Datei",
"dash.title": "Dashboard",
"dash.battery": "Batterie",
"dash.internet": "Internet",
@@ -777,5 +795,137 @@
"api.timeout": "Anfrage Zeitüberschreitung",
"api.failed": "Anfrage fehlgeschlagen",
"router.notFound": "Seite nicht gefunden: {{path}}",
"router.errorLoading": "Fehler beim Laden der Seite: {{message}}"
"router.errorLoading": "Fehler beim Laden der Seite: {{message}}",
"nav.sentinel": "Sentinel",
"sentinel.title": "Sentinel Wachhund",
"sentinel.enabled": "Aktiviert",
"sentinel.disabled": "Deaktiviert",
"sentinel.eventFeed": "Ereignis-Feed",
"sentinel.ackAll": "Alle bestätigen",
"sentinel.clearAll": "Alle löschen",
"sentinel.allAcked": "Alle Ereignisse bestätigt",
"sentinel.confirmClear": "Alle Ereignisse löschen? Dies kann nicht rückgängig gemacht werden.",
"sentinel.eventsCleared": "Ereignisse gelöscht",
"sentinel.noEvents": "Noch keine Ereignisse. Sentinel überwacht Ihr Netzwerk auf Anomalien.",
"sentinel.rules": "Regeln",
"sentinel.devices": "Geräte",
"sentinel.notifiers": "Benachrichtigungen",
"sentinel.statDevices": "Bekannte Geräte",
"sentinel.statAlive": "Aktiv",
"sentinel.statUnread": "Ungelesen",
"sentinel.statEvents": "Ereignisse gesamt",
"sentinel.statRules": "Aktive Regeln",
"sentinel.addRule": "Regel hinzufügen",
"sentinel.noRules": "Keine Regeln konfiguriert.",
"sentinel.ruleLogic": "Logik",
"sentinel.ruleActions": "Aktionen",
"sentinel.enable": "Aktivieren",
"sentinel.disable": "Deaktivieren",
"sentinel.editRule": "Regel bearbeiten",
"sentinel.deleteRule": "Regel löschen",
"sentinel.confirmDeleteRule": "Diese Regel löschen?",
"sentinel.ruleDeleted": "Regel gelöscht",
"sentinel.ruleUpdated": "Regel aktualisiert",
"sentinel.ruleCreated": "Regel erstellt",
"sentinel.ruleName": "Regelname",
"sentinel.triggerType": "Auslösertyp",
"sentinel.cooldown": "Cooldown",
"sentinel.conditions": "Bedingungen",
"sentinel.cancel": "Abbrechen",
"sentinel.save": "Speichern",
"sentinel.nameRequired": "Regelname ist erforderlich",
"sentinel.noDevices": "Noch keine Geräte entdeckt.",
"sentinel.trusted": "Vertraut",
"sentinel.untrusted": "Nicht vertraut",
"sentinel.alias": "Alias",
"sentinel.expectedIps": "Erwartete IPs",
"sentinel.lastSeen": "Zuletzt gesehen",
"sentinel.deviceSaved": "Gerät aktualisiert",
"sentinel.discordWebhook": "Discord Webhook",
"sentinel.webhookUrl": "Webhook URL",
"sentinel.smtpHost": "SMTP Host",
"sentinel.smtpPort": "SMTP Port",
"sentinel.smtpUser": "SMTP Benutzer",
"sentinel.smtpPass": "SMTP Passwort",
"sentinel.emailFrom": "E-Mail Absender",
"sentinel.emailTo": "E-Mail Empfänger",
"sentinel.saveNotifiers": "Benachrichtigungen speichern",
"sentinel.notifiersSaved": "Benachrichtigungskonfiguration gespeichert",
"sentinel.justNow": "gerade eben",
"sentinel.acknowledge": "Bestätigen",
"nav.bifrost": "Bifrost",
"bifrost.title": "Bifrost",
"bifrost.enabled": "Aktiviert",
"bifrost.disabled": "Deaktiviert",
"bifrost.activityFeed": "Aktivitätsfeed",
"bifrost.clearActivity": "Löschen",
"bifrost.activityCleared": "Aktivität gelöscht",
"bifrost.noActivity": "Keine Aktivität. Aktivieren Sie Bifrost für WiFi-Aufklärung.",
"bifrost.networks": "Netzwerke",
"bifrost.plugins": "Plugins",
"bifrost.history": "Verlauf",
"bifrost.mood": "Stimmung",
"bifrost.statNetworks": "Netzwerke",
"bifrost.statHandshakes": "Handshakes",
"bifrost.statDeauths": "Deauths",
"bifrost.statAssocs": "Assocs",
"bifrost.statEpochs": "Epochen",
"bifrost.statPeers": "Peers",
"bifrost.noNetworks": "Noch keine Netzwerke entdeckt.",
"bifrost.noPlugins": "Keine Plugins geladen.",
"bifrost.noEpochs": "Noch keine Epochen aufgezeichnet.",
"bifrost.justNow": "gerade eben",
"bifrost.confirmEnable": "Bifrost-Modus aktivieren? WiFi wird in den Monitormodus versetzt — die Netzwerkverbindung geht verloren. Verbinden Sie sich stattdessen über USB/Bluetooth/Ethernet.",
"bifrost.monitorFailed": "Monitormodus Fehlgeschlagen",
"bifrost.monitorFailedHint": "Für Broadcom-Chips (Pi Zero) installieren Sie nexmon. Oder verwenden Sie einen externen USB-WiFi-Adapter.",
"bifrost.nexmonRequired": "Nexmon erforderlich",
"bifrost.nexmonRequiredDesc": "Ihr Broadcom WiFi-Chip benötigt Nexmon-Firmware-Patches für den Monitormodus. Klicken Sie zum Auto-Installieren (~15-25 Min auf Pi Zero 2 W).",
"bifrost.nexmonInstallBtn": "Nexmon installieren",
"bifrost.nexmonConfirm": "Nexmon-Firmware-Patches installieren? Dies lädt und kompiliert nexmon (~15-25 Min). Internetzugang und Root-Rechte erforderlich.",
"bifrost.nexmonStarted": "Nexmon-Installation gestartet ...",
"bifrost.nexmonInstalling": "Nexmon wird installiert ...",
"nav.loki": "Loki",
"loki.title": "Loki — HID-Angriffs-Suite",
"loki.enable": "Aktivieren",
"loki.enabled_msg": "Loki-Modus aktiviert",
"loki.disabled_msg": "Loki-Modus deaktiviert",
"loki.status_label": "Status",
"loki.gadget_label": "Gadget",
"loki.layout_label": "Layout",
"loki.jobs_label": "Aufgaben",
"loki.running": "Läuft",
"loki.running_lc": "läuft",
"loki.idle": "Leerlauf",
"loki.ready": "Bereit",
"loki.not_ready": "Nicht bereit",
"loki.run": "Ausführen",
"loki.save": "Speichern",
"loki.new": "Neu",
"loki.delete": "Löschen",
"loki.cancel": "Abbrechen",
"loki.output": "Ausgabe",
"loki.payloads": "Nutzlasten",
"loki.custom_scripts": "Eigene Skripte",
"loki.jobs": "Aufgaben",
"loki.clear_completed": "Abgeschlossene löschen",
"loki.script": "Skript",
"loki.status_col": "Status",
"loki.started": "Gestartet",
"loki.actions": "Aktionen",
"loki.no_payloads": "Keine eingebauten Nutzlasten",
"loki.no_scripts": "Keine gespeicherten Skripte",
"loki.no_jobs": "Noch keine Aufgaben",
"loki.no_output": "Keine Ausgabe",
"loki.empty_script": "Skript ist leer",
"loki.job_started": "Aufgabe gestartet: {id}",
"loki.run_error": "Skript konnte nicht ausgeführt werden",
"loki.script_name_prompt": "Skriptname:",
"loki.saved": "Skript gespeichert",
"loki.save_error": "Skript konnte nicht gespeichert werden",
"loki.confirm_delete": "Skript '{name}' löschen?",
"loki.quick_placeholder": "Schnelltext hier eingeben...",
"loki.quick_send": "Tippen",
"loki.quick_sent": "Text an Ziel gesendet",
"loki.quick_error": "Text konnte nicht gesendet werden"
}