Sicherheit
In der Datenbank erzwungene Regeln, der Demo-Schutz, sichere Weiterleitungen, der URL-Schutz und signierte Gewährungen des Shops.
Regeln in der Datenbank
Die wichtigsten Regeln erzwingt Postgres (Sicherheit auf Zeilenebene, Spaltenrechte, Trigger und Prüfbeschränkungen), sodass ein Fehler in der App oder ein Agent, der sich falsch verhält, sie nicht brechen kann. Kurz gesagt:
- Den Abrechnungszustand schreibt nur der Shop.
- Module, die gesperrt, deaktiviert oder auf
nonegesetzt sind, liefern keine Zeilen. - Starten, Freigeben, Abbrechen und das Senden von Fahrzeugbefehlen brauchen
publish, werden als der echte Aufrufer festgehalten und sind für Agenten niemals möglich. - Kein Start mit einer stillgelegten Einheit, einer zu geringen Akkureserve oder einer Höhe über dem Limit ohne Ausnahmegenehmigung.
- Die Freigabe zum Einsatz braucht eine zweite Person (Vier-Augen-Prinzip).
- Flugprotokolle sind nur anhängbar; Benachrichtigungen können nur als gelesen markiert werden; Auditeinträge lassen sich nicht fälschen.
- Nur Eigentümer und Administratoren ändern den Zugriff; Agenten gehen niemals über
edithinaus.
Die vollständige Liste, wie jede Regel erzwungen wird, steht unter Invarianten. Jede Regel hat einen Test, der versucht, sie zu brechen.
Demo-Schutz
Der Demomodus hat keine Anmeldung und darf daher niemals versehentlich eine Produktionsbereitstellung ausliefern. Wenn DEMO_MODE=true und NODE_ENV=production sind, bricht die App beim Start ab, außer ALLOW_DEMO_IN_PROD=true ist ausdrücklich gesetzt.
Sichere Weiterleitungen
Jeder Parameter next oder zur Rückkehr läuft durch safeRedirect. Er akzeptiert nur relative Pfade desselben Ursprungs: genau ein führender Schrägstrich, kein //, kein umgekehrter Schrägstrich, kein Schema und keine Steuerzeichen. Alles andere fällt auf /app zurück. Das verhindert offene Weiterleitungen nach der Anmeldung.
URL-Schutz
Von Nutzenden angegebene URLs, die der Server abrufen würde, laufen durch einen URL-Schutz, der private Adressen, Loopback-Adressen, link-lokale Adressen und andere reservierte Adressen ablehnt. In dieser Version ist die einzige solche URL das Push-Ziel des Shops, und es kommt aus der Konfiguration.
Signierte Gewährungen des Shops
Der Demo-Shop auf der Website signiert jede Berechtigung mit HMAC-SHA256 über einen kanonischen JSON-Körper (Bestellung, Arbeitsbereich, Module, Tarif, KI-Zusatzmodul, Periodenende und Ausgabezeitpunkt), mit einem gemeinsamen Geheimnis von mindestens 16 Zeichen. Die App:
- prüft das Format der Signatur,
- lehnt Gewährungen ab, die mehr als 5 Minuten vor oder nach jetzt ausgestellt wurden (Wiederholungsfenster),
- berechnet die Signatur neu und vergleicht sie in konstanter Zeit,
- schreibt erst danach die Abrechnungsspalten mit der Service-Rolle.
Eine Gewährung, die an irgendeinem Schritt scheitert, ändert nichts.
Geheimnisse
In dieser Version werden keine echten Schlüssel gebraucht oder verwendet. Dateien .env werden von Git ignoriert. Das Passwort der lokalen Datenbank gilt nur lokal.
KI-Funktionen
Eine KI-Seite je Modul. Heute regelbasierte Vorschauen; noch wird kein Modell aufgerufen.
Preise
Preise je Modul, vom kostenpflichtigen Einzelplatz-Tarif Hobby bis Fleet, die Ops Suite, das KI-Zusatzmodul und die Branchenpakete. Jeder Tarif ist eine Laufzeit von 12 Monaten mit jährlicher Abrechnung, ohne Erstattungen. Es gibt keinen kostenlosen Tarif.