# Agenți și aprobări (/ro/docs/vault/agents)

Lași un agent să folosească o credențială din seiful codai fără să îi vadă valoarea. Expui un element cu un handle și cu hosturi permise, aprobi cererile pe telefon, pe ceas, pe desktop sau în hub și pui elemente-momeală care declanșează o alarmă.

Un agent nu primește niciodată valoarea unui element din seif. Îi dai elementului un **handle**, agentul scrie acel handle acolo unde ar trebui să fie secretul, iar o aplicație codai pune valoarea reală în ultimul moment: în comanda care rulează sau în apelul HTTPS. Agentul vede rezultatul, cu valoarea eliminată.

Nimic din seif nu este vizibil agenților până când nu expui tu.

## Expune un element agenților [#expune-un-element-agenților]

Faci asta în hub.

1. Deschide elementul și găsește **Accesul agenților**. Activează comutatorul.
2. Completează:
   - **Handle**: litere mici, cifre, `-` și `_`. Agenții îl scriu ca `{{vault:handle}}`.
   - **Numele afișat agenților**: singura descriere pe care o vede un agent.
   - **Sensibilitate**: **Scăzută**, **Normală**, **Ridicată** sau **Critică**.
   - **Hosturi permise**: credențiala poate fi trimisă doar către aceste hosturi, de exemplu `api.github.com`. Orice altceva este blocat și jurnalizat.
   - **Variabilă de mediu**: numele sub care valoarea este dată unei comenzi, de exemplu `GITHUB_TOKEN`.
3. Alege **Expune agenților**. Elementul arată **Vizibil pentru agenți**.

Ca să îl ascunzi din nou, dezactivează comutatorul. Agenții pierd accesul imediat.

Accesul agenților nu este oferit pentru o **Notă securizată**, un **Card** sau o **Identitate**.

<Callout type="info" title="Seifuri partajate">
  Doar un **Proprietar** sau un **Manager** al unui seif poate schimba accesul agenților, hosturile
  permise sau marcajul de momeală ale elementelor lui. Un **Editor** poate schimba conținutul unui
  element, nu și cine îl poate folosi.
</Callout>

## Cum folosește un agent o credențială [#cum-folosește-un-agent-o-credențială]

- **Într-un terminal:** `codaid vault run -- <comandă>` înlocuiește fiecare `{{vault:handle}}` din comandă și din mediu, dă valorile doar acelei comenzi și le elimină din rezultatul ei. Agentul vede un marcaj de felul `[vault:github]` acolo unde era valoarea.
- **Prin MCP:** uneltele `vault_list` și `vault_run` fac același lucru pentru un client MCP. Vezi [Clienți](../gateway/clients.mdx).
- **Ca apel HTTPS făcut de codai:** doar pentru un element [utilizabil în cloud](./index.mdx).

Când un agent are nevoie de un secret pe care nu îl ai încă, îți trimite un link în loc să îți ceară să lipești valoarea în conversație. Pagina se numește **Adaugă un secret pentru agentul tău**. Tastezi valoarea acolo, ea este criptată în browser, iar agentul primește doar handle-ul. Linkul este valabil 10 minute. Verifică dacă bara de adrese arată `hub.codai.ro`.

## Hotărăște cât de mult să fii întrebat: nivelurile [#hotărăște-cât-de-mult-să-fii-întrebat-nivelurile]

Fila **Politici** stabilește cum este tratată fiecare cerere.

| Nivel                                 | Ce se întâmplă                                                                 |
| ------------------------------------- | ------------------------------------------------------------------------------ |
| **T0 · doar metadate**                | Agentul vede că elementul există și nu îl poate folosi.                        |
| **T1 · automat, jurnalizat**          | Folosirea este permisă și înregistrată.                                        |
| **T2 · automat + notificare**         | Folosirea este permisă, iar tu primești o notificare.                          |
| **T3 · întreabă-mă**                  | Aprobi sau refuzi fiecare cerere.                                              |
| **T4 · întreabă + passkey/biometrie** | Aprobi cu un passkey sau cu un dispozitiv care îți verifică amprenta sau fața. |
| **Niciodată**                         | Orice cerere este refuzată.                                                    |

**Implicit pentru agenți** se aplică fiecărui element fără o regulă. Elementele critice (chei SSH, carduri, passkey-uri) cer T4 dacă nicio regulă nu spune altfel. Sub **Reguli** stabilești un nivel pentru un element, pentru un agent sau pentru un fel de folosire. Câștigă regula cea mai specifică. Hosturile permise și momelile nu pot fi ocolite printr-o regulă.

**Verificări de anomalii**, din aceeași filă, ridică o cerere la T4 când hostul nu a mai fost folosit cu acel element în ultimele 30 de zile, când cererile vin în rafală sau în afara orelor pe care le permiți.

## Aprobă sau refuză o cerere [#aprobă-sau-refuză-o-cerere]

O cerere arată agentul, elementul, cum va fi folosit, hostul de destinație, comanda sau apelul exact și scopul declarat de agent. Citește comanda, nu doar scopul.

- **Permite pentru** stabilește cât timp rămâne valabil răspunsul tău: **O dată**, **Această sarcină**, **1 oră** sau **8 ore**.
- Când sunt afișate trei numere, atinge-l pe cel pe care agentul îl arată la el. Un număr greșit refuză cererea.
- **Refuză** funcționează de pe orice dispozitiv și nu are nevoie de nicio verificare.
- O cerere expiră dacă nu răspunde nimeni.

| Unde                   | Cereri standard (T3)                                                    | Cereri sensibile (T4)                                              |
| ---------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------ |
| Hub, fila **Aprobări** | **Aprobă**                                                              | **Aprobă cu passkey**: ai nevoie de un passkey pe contul tău codai |
| Aplicația desktop      | **Cereri ale agenților**, apoi permiți o dată, pentru sarcină sau o oră | Windows Hello, după **Înregistrează cheia de aprobare**            |
| Telefon Android        | După **Înrolează telefonul**, cu amprenta sau cu fața                   | Da, în același fel                                                 |
| Ceas Wear OS           | **Aprobă pe ceas**, pentru o singură folosire                           | Nu: ceasul spune **Aprobă pe telefon sau pe calculator**           |
| iPhone                 | După **Activează aprobările pe acest iPhone**                           | Nu: aprobi pe un telefon Android, pe desktop sau în hub            |

Telefonul și ceasul primesc o notificare pentru fiecare cerere. Ceasul își configurează cheia de aprobare cu telefonul în apropiere, iar telefonul îți cere să permiți asta.

Pentru un seif partajat, **Aprobări cu cvorum** din fila **Seifuri** poate cere ca mai mulți proprietari sau manageri să aprobe aceeași cerere. Un singur refuz o încheie.

## Vezi și oprește ce ai permis [#vezi-și-oprește-ce-ai-permis]

- **Accese active**, din fila **Politici**, listează accesul pe care l-ai aprobat pentru o sarcină sau pentru un interval. **Revocă** încheie unul, **Încheie sarcina** încheie tot ce deține o sarcină. Aplicația Android are aceeași listă în fila **Acces activ**, iar aplicația desktop sub **Permisiuni active**.
- **Limite de utilizare** pe un element expus plafonează cât de des îl pot folosi agenții: pe minut, pe zi și în unități pe zi.
- **Activitate** înregistrează fiecare modificare, folosire de către un agent, refuz și aprobare. Valorile nu sunt înregistrate niciodată.
- **Refuză + blochează** (pe Android: **Respinge + blochează**) refuză totul dintr-odată: fiecare acces activ este revocat, fiecare cerere în așteptare este refuzată, iar agenții nu mai primesc nimic până când deblochezi. Deblochezi în hub cu **Deblochează cu passkey** sau pe un telefon Android înrolat cu **Deblochează accesul agenților**. Aplicația desktop nu poate debloca.

## Elemente-momeală (honeytoken) [#elemente-momeală-honeytoken]

O momeală este un element de care nicio sarcină reală nu are nevoie. Valoarea ei este falsă, iar numele arată tentant. Un agent care cere să o folosească face ceva ce nu i-ai cerut.

- Activează **Momeală** în partea de jos a unui element, în hub.
- O cerere de folosire este refuzată, iar seiful **se blochează singur pentru agenți**. Hubul arată **Alarmă de securitate: o momeală a fost atinsă**, iar telefonul primește o notificare de alarmă cu agentul și calculatorul. Verifică **Activitate** înainte să deblochezi.
- `codaid vault import` adaugă două chei API-momeală pentru fiecare proiect importat. Folosește `--no-honeytokens` ca să le sari.
- Momelile nu intră într-un [export](./export-password.mdx).

## Vezi și [#vezi-și]

<Cards>
  <Card
    title="Ce poate vedea codai"
    href="./index.mdx"
    description="Handle-urile și hosturile permise sunt stocate necriptat; valorile nu."
  />
  <Card
    title="API-ul seifului"
    href="../api/gateway/vault.mdx"
    description="Niveluri, dovezi și chei de dispozitiv, pentru dezvoltatori."
  />
</Cards>
