Was gespeichert wird
- Lizenz-ID (UUID, ohne Personenbezug)
- SHA-256-Hash der E-Mail-Adresse (mit festem Salt, nur für Mehrgeräte-Erkennung pro Nutzer)
- SHA-256-Hash des Gerätefingerprints (nicht rückführbar auf Hardware)
- Tier (Community / Professional / Enterprise) und Deployment (Cloud / Self-Hosted / Air-Gap)
- Feature-Flags laut Vertrag als JSON (z.B.
max_runs_per_day,team_features) - Zeitpunkt der Ausstellung, letzter Refresh und Ablauf
- Client-Version-String und Land der IP-Adresse (zwei-Buchstaben-Code, z.B.
DE) - Das zuletzt ausgestellte JWT, ausschließlich für Audit
Was NICHT gespeichert wird
- Die vollständige IP-Adresse des Clients
- Die Prompts, die der Nutzer an die AI schickt
- Der generierte Code oder Run-Inhalte irgendeiner Art
- Personenbezogene Daten (Name, Adresse, Telefon)
- Bei Enterprise Air-Gap: gar nichts — die Lizenz ist offline-signiert, es gibt keinen Server-Kontakt
Aufbewahrungsfristen
- Refresh-Logs werden 90 Tage individuell aufbewahrt und anschließend zu anonymen Monatsstatistiken aggregiert
- Lizenz-Datensätze bleiben bestehen, solange die Lizenz gültig ist, plus zwei Jahre nach Ablauf für Audit-Zwecke
- Widerrufene Lizenzen bleiben archiviert, damit ein vergebenes JWT bis zum nächsten Refresh-Zyklus als "abgelehnt" erkannt wird
Wo läuft der Lizenzserver?
- Community / Professional / Enterprise Cloud: Hetzner Cloud, Rechenzentrumsstandort Falkenstein (Deutschland, EU-Datenraum). Reverse-Proxy, TLS und Backups werden von softwarefabrik.io betrieben.
- Enterprise Self-Hosted: auf der Infrastruktur des Kunden. Die
license_server_urlim ausgestellten JWT zeigt dort auf den internen Host. - Enterprise Air-Gap: nirgends — es läuft kein Server, die Lizenz ist ein signiertes Dokument ohne Netzwerk-Komponente.
Rechtsgrundlage nach DSGVO
- Community: Art. 6 Abs. 1 lit. f DSGVO — berechtigtes Interesse zur Missbrauchsprävention (insbesondere 3-Geräte-Limit)
- Professional / Enterprise: Art. 6 Abs. 1 lit. b DSGVO — Vertragserfüllung
Ein Auftragsverarbeitungsvertrag (AV) steht bei Enterprise-Betrieb auf Anfrage zur Verfügung. Bei Self-Hosted- und Air-Gap-Deployment ist kein AV notwendig, da keine personenbezogenen Daten an softwarefabrik.io fließen.
Signaturkette und Public Key
Alle Lizenz-JWTs werden mit Ed25519 signiert. Der Public Key kann in zwei Formen geprüft werden:
- Eingebettet in jedem Client-Release unter
app/src/main/resources/license/lease-ed25519-public.pem - Abrufbar über den HTTPS-Endpunkt
https://license.softwarefabrik.io/api/v1/pubkeyim JWK-Format (RFC 8037)
Die Key-Rotation erfolgt über Client-Updates, nicht zur Laufzeit. Ein eventueller Notfall-Widerruf einer einzelnen Lizenz geschieht serverseitig über Ablehnung beim nächsten Refresh; bei Air-Gap erst beim nächsten jährlichen Zertifikats-Wechsel.