# Seif

4 rute, cu exemplu de cerere pentru fiecare.

Adresa de bază: `https://app.ilustromania.com/nucleu`

### GET /v1/seif

Acces: `sesiune`

**Intrările din seif**

Lista intrărilor din seif vizibile omului, fără valorile secrete; fără cache.

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `intrari` | `object[]` | da | — |
| `intrari[].id` | `string` | da | UUID |
| `intrari[].eticheta` | `string` | da | nevid |
| `intrari[].utilizator` | `string` | da | nevid |
| `intrari[].url` | `string` | da | — |
| `intrari[].actualizatLa` | `string` | da | moment ISO 8601 |

```bash
curl https://app.ilustromania.com/nucleu/v1/seif \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE"
```

Răspuns 200 (exemplu din schemă):

```json
{
  "intrari": [
    {
      "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
      "eticheta": "text",
      "utilizator": "text",
      "url": "text",
      "actualizatLa": "2026-11-12T09:30:00.000Z"
    }
  ]
}
```

### POST /v1/seif

Acces: `sesiune`

**Adaugă o intrare în seif**

Creează o intrare nouă în seif; 201, fără cache.

Corpul cererii (JSON):

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `eticheta` | `string` | da | între 1 și 200 caractere |
| `utilizator` | `string` | da | între 1 și 300 caractere |
| `url` | `string` | nu | între 1 și 500 caractere |
| `secret` | `string` | da | între 1 și 4096 caractere |

Răspuns 201:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `id` | `string` | da | UUID |

```bash
curl -X POST https://app.ilustromania.com/nucleu/v1/seif \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{
    "eticheta": "text",
    "utilizator": "text",
    "url": "text",
    "secret": "text"
  }'
```

Răspuns 201 (exemplu din schemă):

```json
{
  "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f"
}
```

### PUT /v1/seif/{id}

Acces: `sesiune`

**Modifică o intrare din seif**

Schimbă intrarea `:id` din seif.

Parametri de cale:

| Nume | Tip | Descriere |
| --- | --- | --- |
| `id` | `string` | identificatorul resursei |

Corpul cererii (JSON):

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `eticheta` | `string` | nu | între 1 și 200 caractere |
| `utilizator` | `string` | nu | între 1 și 300 caractere |
| `url` | `string` | nu | între 1 și 500 caractere |
| `secret` | `string` | nu | între 1 și 4096 caractere |

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `id` | `string` | da | UUID |

```bash
curl -X PUT https://app.ilustromania.com/nucleu/v1/seif/{id} \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{
    "eticheta": "text",
    "utilizator": "text",
    "url": "text",
    "secret": "text"
  }'
```

Răspuns 200 (exemplu din schemă):

```json
{
  "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f"
}
```

### POST /v1/seif/{id}/dezvaluie

Acces: `sesiune`

**Dezvăluie valoarea din seif**

Întoarce valoarea secretă a intrării `:id`, doar omului cu drept; răspunsul nu se păstrează în cache.

Parametri de cale:

| Nume | Tip | Descriere |
| --- | --- | --- |
| `id` | `string` | identificatorul resursei |

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `secret` | `string` | da | — |

```bash
curl -X POST https://app.ilustromania.com/nucleu/v1/seif/{id}/dezvaluie \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{ … }'
```

Răspuns 200 (exemplu din schemă):

```json
{
  "secret": "text"
}
```
