Documentație / Securitate

Seif de credențiale

Yuli găsește fișiere .env, chei și tokenuri lăsate la vedere în proiectul tău și se oferă să le păstreze criptate în afara depozitului, fără să strice rularea.

Yuli detectează credențialele lăsate la vedere în proiectul tău (un .env în rădăcină, chei private, tokenuri în .npmrc, conturi de serviciu, secrete scrise în cod…) și se oferă să le păstreze într-un seif criptat, în afara depozitului. Nimic nu se mută fără confirmarea ta.

Ce detectează

Tip Exemple
Mediu .env, .env.local, .env.production… Șabloanele .env.example, .env.sample și .env.template nu se iau în calcul.
Chei și depozite de chei *.pem, *.key, *.p12, *.pfx, *.jks, id_rsa, id_ed25519
Credențiale ale uneltelor Conturi de serviciu JSON, credentials.json, .npmrc, .yarnrc sau .pypirc cu token, .aws/credentials, kubeconfig, config.json de la Docker, *.tfvars, .netrc, .git-credentials, .pgpass
Cod Secrete scrise direct în codul sursă

Fiecare constatare îți arată situația în git. Cazurile următoare sunt marcate cu o gravitate mai mare:

Insignă Înseamnă
Urmărit de git Fișierul este versionat.
Fără .gitignore Fișierul nu este ignorat: următorul commit l-ar putea urca.
În istoricul git A fost urcat cândva în depozit.

Cardul „Credențiale la vedere”

Când Yuli găsește ceva, apare cardul Credențiale la vedere. Pentru fiecare constatare alegi:

  • Mută în seif (recomandat): Yuli îl copiază criptat în seif, verifică copia și abia apoi șterge originalul. Creează un .env.example cu cheile goale și adaugă tiparul în .gitignore.
  • E în regulă așa: îl lasă unde este. Scrie Motivul și apasă Ține minte ca să nu te mai întrebe.
  • Deschide: îl deschide în editor.

Poți oricând să Restaurezi un fișier mutat.

Mutarea unui .env pas cu pas

0 din 6 gata

Dacă fișierul a ajuns să fie urcat în git, mutarea nu este suficientă: secretul rămâne în istoric. Yuli te avertizează că trebuie să-l rotești (să schimbi parola sau tokenul) și îți arată cum să cureți istoricul cu git filter-repo. Yuli nu rescrie niciodată istoricul din proprie inițiativă.

Unde se află și cum se criptează

Locația implicită <config>/yuli-ide/vault/<id-proiect>/, în folderul de configurare al utilizatorului tău, în afara oricărui proiect
Permisiuni Doar pentru tine: 0700/0600 pe macOS și Linux, un ACL al utilizatorului tău pe Windows
Criptare pe Windows DPAPI
Criptare pe macOS și Linux AES-256-GCM, cu cheia principală în keychain-ul sistemului

Dacă sistemul nu oferă această protecție, Yuli nu mută nimic.

Poți alege alt folder (de exemplu, un disc extern) cu Schimbă locația…, cu condiția să fie în afara proiectului și a oricărui depozit git.

Opțiuni

În Opțiuni globale › Securitate › Seif de credențiale:

Opțiune Ce face
Schimbă locația… Alege alt folder pentru seif.
Injectează Transmite variabilele din seif către rulare. Implicit se injectează .env, .env.local și .env.development.
Materializează la rulare Scrie un .env temporar pe durata rulării.
Adaugă variabilă Adaugă o variabilă nouă direct în seif.
Creează .env.example în proiect Generează șablonul cu cheile goale.
Arată Afișează o valoare timp de 20 de secunde.

Proiectul tău continuă să funcționeze

La rulare (configurații de rulare, sarcini și terminalul integrat), Yuli injectează variabilele din seif ca variabile de mediu. Bibliotecile dotenv le respectă, pentru că variabilele reale au prioritate.

Dacă unealta ta are nevoie de fișier pe disc, activează Materializează la rulare: Yuli scrie un .env temporar (permisiuni 0600, ignorat de git) doar pe durata rulării și îl șterge la final.

Și agenții IA

Agenții (Claude Code, Kiro, Codex, Antigravity, Copilot și chatul Yuli) nu văd niciodată valorile. Hook-urile agentului refuză accesul la folderul seifului, iar dacă o valoare apare în ieșirea terminalului, este mascată.

Agenții te pot totuși ajuta să găsești problema cu două unelte care nu returnează valori:

Unealtă Ce face
yuli_vault_findings Doar citire: căi, tip, gravitate, situația în git, numele variabilelor și ce păstrează deja seiful. Niciodată o valoare.
yuli_vault_propose_move Îți arată cardul Yuli cu fișierele pe care sugerează să le muți și de ce. Nu mută nimic: decizi tu în card.

Astfel, agentul poate spune „există un .env în rădăcină, îl mut în seif?”, dar nu îl poate citi niciodată. Vezi și Secrete și confidențialitate.