Dokumentation / Sicherheit

Tresor für Zugangsdaten

Yuli findet .env-Dateien, Schlüssel und lose Tokens in deinem Projekt und bietet dir an, sie verschlüsselt außerhalb des Repositorys zu speichern, ohne die Ausführung zu stören.

Yuli erkennt lose Zugangsdaten in deinem Projekt (eine .env im Stammverzeichnis, private Schlüssel, Tokens in .npmrc, Dienstkonten, im Code hinterlegte Geheimnisse…) und bietet dir an, sie in einem verschlüsselten Tresor außerhalb des Repositorys zu speichern. Nichts wird verschoben, ohne dass du es bestätigst.

Was erkannt wird

Typ Beispiele
Umgebung .env, .env.local, .env.production… Die Vorlagen .env.example, .env.sample und .env.template zählen nicht.
Schlüssel und Keystores *.pem, *.key, *.p12, *.pfx, *.jks, id_rsa, id_ed25519
Zugangsdaten von Werkzeugen JSON-Dienstkonten, credentials.json, .npmrc, .yarnrc oder .pypirc mit Token, .aws/credentials, kubeconfig, config.json von Docker, *.tfvars, .netrc, .git-credentials, .pgpass
Code Geheimnisse, die direkt im Quellcode stehen

Jeder Fund zeigt seinen Status in Git. Diese Fälle werden als schwerwiegender markiert:

Badge Bedeutung
Von Git verfolgt Die Datei ist versioniert.
Ohne .gitignore Die Datei wird nicht ignoriert: Der nächste Commit könnte sie hochladen.
In der Git-Historie Sie wurde irgendwann ins Repository hochgeladen.

Die Karte „Offenliegende Zugangsdaten“

Wenn Yuli etwas findet, erscheint die Karte Offenliegende Zugangsdaten. Für jeden Fund wählst du:

  • In den Tresor verschieben (empfohlen): Yuli kopiert ihn verschlüsselt in den Tresor, prüft die Kopie und löscht erst dann das Original. Es legt eine .env.example mit leeren Schlüsseln an und ergänzt das Muster in der .gitignore.
  • So ist es in Ordnung: lässt ihn, wo er ist. Gib den Grund ein und klicke auf Merken, damit nicht erneut gefragt wird.
  • Öffnen: öffnet ihn im Editor.

Eine verschobene Datei kannst du jederzeit Wiederherstellen.

Eine .env Schritt für Schritt verschieben

0 von 6 erledigt

Wenn die Datei schon einmal in Git hochgeladen wurde, reicht Verschieben nicht: Das Geheimnis steckt weiter in der Historie. Yuli weist dich darauf hin, dass du es rotieren musst (Passwort oder Token ändern), und zeigt dir, wie du die Historie mit git filter-repo bereinigst. Yuli schreibt die Historie nie eigenmächtig um.

Wo er liegt und wie verschlüsselt wird

Standardort <config>/yuli-ide/vault/<projekt-id>/, im Konfigurationsordner deines Benutzers, außerhalb jedes Projekts
Berechtigungen Nur für dich: 0700/0600 unter macOS und Linux, eine ACL deines Benutzers unter Windows
Verschlüsselung unter Windows DPAPI
Verschlüsselung unter macOS und Linux AES-256-GCM, mit dem Hauptschlüssel im Schlüsselbund des Systems

Bietet das System diesen Schutz nicht, verschiebt Yuli nichts.

Mit Ort ändern… kannst du einen anderen Ordner wählen (zum Beispiel eine externe Festplatte), solange er außerhalb des Projekts und jedes Git-Repositorys liegt.

Optionen

Unter Globale Optionen › Sicherheit › Tresor für Zugangsdaten:

Option Was sie tut
Ort ändern… Wählt einen anderen Ordner für den Tresor.
Injizieren Übergibt die Variablen des Tresors an die Ausführung. Standardmäßig werden .env, .env.local und .env.development injiziert.
Bei Ausführung materialisieren Schreibt für die Dauer der Ausführung eine temporäre .env.
Variable hinzufügen Legt eine neue Variable direkt im Tresor an.
.env.example im Projekt erstellen Erzeugt die Vorlage mit leeren Schlüsseln.
Anzeigen Zeigt einen Wert 20 Sekunden lang an.

Dein Projekt läuft weiter

Beim Ausführen (Ausführungskonfigurationen, Tasks und das integrierte Terminal) injiziert Yuli die Variablen des Tresors als Umgebungsvariablen. dotenv-Bibliotheken respektieren sie, weil echte Umgebungsvariablen Vorrang haben.

Braucht dein Werkzeug die Datei auf der Festplatte, aktiviere Bei Ausführung materialisieren: Yuli schreibt nur für die Dauer der Ausführung eine temporäre .env (Berechtigungen 0600, von Git ignoriert) und löscht sie am Ende.

Und die KI-Agenten

Die Agenten (Claude Code, Kiro, Codex, Antigravity, Copilot und der Chat von Yuli) sehen die Werte nie. Die Hooks des Agenten verweigern den Zugriff auf den Ordner des Tresors, und taucht ein Wert in der Terminalausgabe auf, wird er maskiert.

Die Agenten können dir aber mit zwei Werkzeugen, die keine Werte zurückgeben, helfen, das Problem zu finden:

Werkzeug Was es tut
yuli_vault_findings Nur lesend: Pfade, Typ, Schweregrad, Status in Git, Namen der Variablen und was der Tresor schon enthält. Nie einen Wert.
yuli_vault_propose_move Zeigt dir die Karte von Yuli mit den Dateien, die es zum Verschieben vorschlägt, und warum. Es verschiebt nichts: Du entscheidest auf der Karte.

So kann der Agent sagen „Im Stammverzeichnis liegt eine .env, soll ich sie in den Tresor verschieben?“, sie aber nie lesen. Siehe auch Geheimnisse und Datenschutz.