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.examplemit 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
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.