Für die IT-Leitung
Derselbe Schutz, aufgerufen von Ihren Programmen – ein einziges zustandsloses Image zu betreiben.
Bevor ein Workflow ein Dokument an eine KI, einen Übersetzer oder einen Lieferanten schickt, kann er DoNotLeak die personenbezogenen Daten darin finden und ersetzen lassen – über eine API, die eine Identität verlangt und von der Engine der Seite beantwortet wird.
Noch eine Komponente, die gehostet, abgesichert, aktualisiert und überwacht werden will? Das verlangt sie: ein signiertes Image, ohne Datenbank und ohne zu sicherndes Volume, über seine Umgebung konfiguriert, von identifizierten Maschinen aufgerufen. Und auf Anfrage seinen Quellcode für Ihre Teams.
Nur identifizierte Aufrufer · Nichts wird gespeichert · Signierte Images, amd64 und arm64

Die API ausprobieren
Senden Sie eine Anfrage, lesen Sie die Antwort.
Die echte Engine, hier als Demo geöffnet, ohne Schlüssel: Die Antwort, die Sie lesen, ist die, die Ihre Programme erhalten werden.
- 1 Aufruf alle 15 s pro IP-Adresse
- Texte bis 4 KB
- nichts wird gespeichert
- ein Netz teilt sich den Takt
Die Obergrenzen der Demo
Pro Adresse – ein IPv6-/64-Netz zählt als eine: 100 Aufrufe pro Tag, 300 pro Woche, 600 pro Monat, 2.000 pro Jahr. Für die ganze Demo: 600 Aufrufe pro Minute und ein einziger Text zugleich in Analyse; darüber antwortet sie 503, und der übrige Dienst bleibt unberührt. Ihre Adresse wird nur im Arbeitsspeicher gehalten, solange ihre Aufrufe gezählt werden; die Protokolle behalten Verb, Status, Größen und Dauer – nie die Adresse, den Text oder die Antwort.
RateLimit-Policy · RateLimit · Retry-After
- POSTscan
- POSTprotectBald
- POSTrestoreBald
- GETcapabilitiesBald
- POSTextractmit Schlüssel
- POSTrendermit Schlüssel
Anfrage
POST/api/demo/scan
Findet die personenbezogenen Daten – wo sie stehen (in UTF-8-Bytes), ihren Typ, ihre Schwere – und liefert den geschützten Text.
81 / 4096 Bytes
Das gesendete JSON ansehen
{
"text": "Damien Morel a validé le virement vers l'IBAN FR76 3000 6000 0112 3456 7890 189.",
"scope": [
"FR"
]
}Bereit – 1 Aufruf verfügbar
Antwort
Die Antwort erscheint hier.
Ihre Programme rufen /api/v1/scan mit ihrer Identität auf – einem Client-Zertifikat oder einem Token: Das ist der nächste Abschnitt.
Die API
Was sie heute kann: finden, dann ersetzen.
Ein Aufruf: JSON hinein, die Funde und der geschützte Text heraus. Es antwortet die Engine der Seite selbst.
Finden
Jeder personenbezogene Wert im Text, mit Typ, Position und einem Konfidenzwert. Die Formate richten sich nach den Ländern, die Sie angeben.
findings · counts · scope
Ersetzen
Dieselbe Antwort enthält den geschützten Text: Jeder Wert wird zu einem typisierten, nummerierten Platzhalter. Werte, die Sie als zu behalten angeben, bleiben, wie sie sind.
anonymized_text · replacements · kept
Der Aufruf
curl -sS --cacert ca.pem --cert client.pem --key client.key \
-H 'Content-Type: application/json' \
-X POST --data '{"text":"Contact: jean.dupont@example.org"}' \
https://donotleak.example.org/api/v1/scanMit einem Token statt eines Zertifikats
-H "Authorization: Bearer $TOKEN"Die Antwort – von der Engine aufgezeichnet, Zeilenumbrüche ergänzt
{"version":1,
"findings":[{"id":0,"kind":"Pii","span":{"start":9,"end":32},
"primary":{"label":"EMAIL","severity":"Medium","confidence":85},
"alternatives":[],"entity_id":0,"kept":false,"applied":0}],
"counts":{"total":1,"low":0,"medium":1,"high":0,"critical":0},
"anonymized_text":"Contact: [[EMAIL-1]]",
"replacements":[{"span":{"start":9,"end":32},"placeholder":"[[EMAIL-1]]"}],
"entities":[{"id":0,"label":"EMAIL","value":"jean.dupont@example.org",
"placeholder":"[[EMAIL-1]]"}],
"skipped_overlaps":0}Ablehnungen und die Entitätentabelle
Ablehnungen zitieren nie den Inhalt: 400 leer oder kein JSON, 413 über 1 MiB, 422 verdächtiger Inhalt, 401 keine Identität, 403 nicht erlaubt, 429 Budget überschritten.
Die Entitätentabelle gibt jeden Originalwert an den Aufrufer zurück, der ihn geschickt hat – sie macht das Wiederherstellen möglich. Nur der geschützte Text geht weiter an die KI.
Was sie noch nicht kann
- Wiederherstellen: die Originale in die Antwort der KI zurücksetzen Bald
- Word-Dokumente über die API Bald
- Der veröffentlichte v1-Vertrag: eine OpenAPI-Beschreibung, einheitliche Fehler, Kontingente pro Aufrufer Bald
Wo es in Ihre Workflows passt
Eine Prüfung vor dem externen Aufruf.
Ein Workflow – ein Dokumentenmanagementsystem, ein CRM, ein Stapel Dateien – ruft DoNotLeak auf, kurz bevor er eine KI oder einen Partner aufruft. Nur der geschützte Text geht weiter.
Sie entscheiden, wo die Prüfung sitzt und was folgt: sofort senden oder eine Person die Funde erst prüfen lassen und den Text erneut senden, mit den Werten, die die Aufgabe braucht.

Maschinenidentität
Nie anonym: Jeder Aufruf nennt seinen Aufrufer.
Die API hat keine offene Tür. Der Server startet erst, wenn er weiß, wie er einen Aufrufer identifiziert, und jeder Aufruf wird nach Ihrer Richtlinie beurteilt.
Ein Client-Zertifikat
Mutual TLS, vom Server selbst terminiert: Das Zertifikat muss auf die Zertifizierungsstelle zurückgehen, der Sie vertrauen, und seine SPIFFE-ID – sonst sein DNS-Name, nie sein Common Name – wird zum Aufrufer.
TLS_CLIENT_CA · TLS_CLIENT_IDENTITY=san
Ein Token Ihres Identitätsanbieters
Der OpenID-Connect-Aussteller, den Sie benennen – Ihr Verzeichnis, Ihr SSO: Signatur, Aussteller, Zielgruppe und Ablauf jedes Tokens werden mit den Schlüsseln geprüft, die er veröffentlicht, und seine Rollen kommen mit.
OIDC_ISSUER_URL · OIDC_CLIENT_ID · in der CI gegen Keycloak erprobt
- Standardmäßig verweigert: Ein Aufrufer ohne Rolle in Ihrer Richtliniendatei wird abgewiesen (403), und Scannen ist ein eigenes Recht.
- Kein statischer API-Schlüssel, der durchsickern kann: Ein Aufrufer weist sich mit einem Zertifikat oder einem signierten Token aus.
Hosting und Souveränität
Von Contee gehostet oder in Ihrem eigenen Informationssystem.
In beiden Fällen dasselbe Headless-Image.
Durch Contee, in der EU
Contee betreibt den Server, Sie rufen ihn auf. Die öffentliche Seite läuft bereits so, bei OVH SAS, einem französischen Hoster (siehe Impressum).
Die gehostete API, mit eigenem Dienstleistungsvertrag Bald
In Ihrem Informationssystem
Das Image läuft auf Ihren Servern, hinter Ihrer PKI und Ihrem Identitätsanbieter: Die Texte verlassen Ihre Umgebung nie. Auf Anfrage mit seinem Quellcode: das On-Premises-Angebot, weiter unten.

Das On-Premises-Angebot
Der Quellcode in Ihren Händen, und Ihre Teams, um ihn weiterzuentwickeln.
Für eine Organisation, die DoNotLeak in ihrem eigenen Informationssystem will, ohne für den Weiterbetrieb von Contee abhängig zu sein.
Der Quellcode, ausgeliefert
Für die interne Nutzung Ihrer Organisation: Ihre Teams lesen ihn, bauen ihn und setzen ihn in Ihrer Umgebung ein.
Ihre Teams, geschult
Um ihn zu warten, zu verbessern und zu erweitern: Die Kompetenzen entstehen bei Ihnen im Haus, nicht bei uns.
So wenig Lock-in wie möglich
Code und Know-how bleiben im Haus; der Server erreicht nur, was Sie konfigurieren, nie einen Dienst von Contee.
Einmalig, kein SaaS-Abonnement
Ab sofort verfügbar, auf Anfrage, für Ihre Umgebung.
Das Headless-Image
Nur der Scan-Kern – signiert, für zwei Architekturen.
Keine Seite, kein Cookie, kein Browsercode: die API und die Engine, sonst nichts.
Die Engine der Seite
Seite und API rufen dieselbe Scan-Funktion auf: Was ein Mensch auf der Seite sieht, bekommt auch ein Programm.
ein Kern · zwei Türen
Klein und standardmäßig geschlossen
Eine Distroless-Basis – keine Shell, kein Paketmanager – und ein Nicht-Root-Benutzer. Ohne Identitätsquelle oder mit einer halben TLS-Konfiguration startet es nicht.
Port 3000 · TLS und mTLS in der App oder hinter Ihrem Proxy
Gebaut und signiert wie das Web-Image
Dieselbe Pipeline baut und prüft es und signiert es dann per Digest mit dem eigenen Schlüssel von DoNotLeak – das Image, seine Stückliste und seine Build-Provenienz.
amd64 + arm64 · cosign · SPDX-SBOM · SLSA-Provenienz · Trivy, Grype, Dockle, Dive
Betrieb
Was das Image von Ihrem Betrieb verlangt.
Ein Container unter anderen.
Zustandslos
Keine Datenbank, kein zu sicherndes Volume: Jede Anfrage wird im Arbeitsspeicher verarbeitet und dann vergessen. Nichts wiederherzustellen.
keine Datenbank · kein Datenvolume
Über seine Umgebung konfiguriert
Listen-Adresse, Zertifikate, Client-Zertifizierungsstelle, OIDC-Aussteller, Richtliniendatei, Budgets: Variablen und schreibgeschützt eingehängte Dateien. Mit einer halben Konfiguration startet es nicht.
LEPTOS_SITE_ADDR · TLS_CERT · TLS_CLIENT_CA · CASBIN_POLICY_FILE · SCAN_*
Mit Ihren Werkzeugen überwacht
Traces gehen über OpenTelemetry an Ihren Collector, sonst auf die Standardausgabe; die Logs enthalten nie einen gescannten Text.
OTEL_EXPORTER_OTLP_ENDPOINT
Per Digest aktualisiert
Ein Release ist ein signiertes Image, benannt nach seinem Digest: Signatur prüfen, Digest ändern, neu starten. Ein Zertifikat ändert sich: neue Dateien, dann ein Neustart.
cosign verify · amd64 + arm64
Wo immer es läuft
Drei Dinge, die sich nicht ändern.
Nichts wird gespeichert
Jeder Text wird im Speicher der Anfrage analysiert, die ihn trägt, auf dem Server, und verschwindet mit ihr: keine Kopie, kein Log seines Inhalts.
Jede Pipeline schickt einen Kontrolltext durch den Headless-Server und schlägt fehl, sobald dessen Log ihn zeigt.
Niemand sonst wird aufgerufen
Die Erkennung beruht auf Formaten, Regeln und Wörterbüchern: kein Sprachmodell, kein Drittanbieterdienst. Der Server erreicht nur, was Sie konfigurieren – Ihren Identitätsanbieter, Ihren Telemetrie-Collector.
Jede Version überprüfbar
Jedes Image ist per Digest signiert, mit seiner Stückliste und seiner Provenienz; die Pipeline prüft die Signatur, bevor etwas ausgeliefert wird.

Probieren Sie es auf der Seite aus, dann schreiben Sie Contee.
Die Seite antwortet mit derselben Engine wie die API: Fügen Sie einen typischen Text aus Ihren Workflows ein. Die Sicherheit des Images prüfen Sie Kontrolle für Kontrolle auf der Seite für CISOs. Für die gehostete API oder das On-Premises-Angebot: Schreiben Sie Contee.