# secrets/ — Configurare credențiale (gitignored)

Acest director conține parole Oracle, chei SSH și alte credențiale.
**Tot conținutul (cu excepția acestui README) e gitignored.**

---

## Fișiere necesare

### Pentru fiecare server Oracle din `backend/ssh-tunnels.json`

#### `{server_id}.oracle_pass` — parola user-ului READ

Parola pentru `ORACLE_USER` (user de citire), folosită de modulul Reports și
pentru tunelul SSH spre Oracle.

Exemplu: dacă `ssh-tunnels.json` are `"id": "vending"`, creează:
```bash
echo -n 'parola_read_user' > secrets/vending.oracle_pass
chmod 600 secrets/vending.oracle_pass
```

#### `{server_id}_write.oracle_pass` — parola user-ului WRITE (US-003, US-005)

Parola pentru user-ul cu drepturi de scriere (`{user}_AUTO` by default, sau
`OracleServerConfig.write_user` dacă e setat). Folosită de
`backend/modules/data_entry/services/oracle_receipt_writer.py` pentru a scrie
bonuri în `ACT_TEMP` via `PACK_CONTAFIN`.

Exemplu pentru `vending`:
```bash
echo -n 'parola_write_user' > secrets/vending_write.oracle_pass
chmod 600 secrets/vending_write.oracle_pass
```

> **Notă (US-005):** dacă fișierul lipsește, `_build_oracle_write_config()`
> face fallback la parola de read și logează un warning. Pentru producție,
> setează parolă dedicată pentru write user.

### Pentru fiecare server cu autentificare SSH cu parolă

#### `{server_id}.ssh_pass`

```bash
echo -n 'parola_ssh' > secrets/vending.ssh_pass
chmod 600 secrets/vending.ssh_pass
```

### Pentru fiecare server cu autentificare SSH cu cheie

#### `{server_id}.ssh_key`

Cheia privată SSH (PEM/OpenSSH format).

```bash
cp ~/.ssh/id_ed25519_oracle secrets/romfast.ssh_key
chmod 600 secrets/romfast.ssh_key
```

---

## Verificare

```bash
# Toate fișierele trebuie să fie chmod 600 (owner-only)
ls -la secrets/
# -rw------- 1 user user  20 ... vending.oracle_pass
# -rw------- 1 user user  18 ... vending_write.oracle_pass

# Verifică că secrets/ e gitignored
git check-ignore secrets/vending.oracle_pass
# secrets/vending.oracle_pass

# Niciun fișier .oracle_pass nu trebuie să apară în git
git ls-files secrets/
# (gol — sau doar README.md)
```

---

## Trouble­shooting

| Eroare | Cauză | Fix |
|--------|-------|-----|
| `ORA-01017: invalid username/password` | Parolă greșită în `.oracle_pass` | Re-creează fișierul fără newline trailing: `echo -n` |
| `Permission denied (publickey,password)` | SSH auth failed | Verifică `chmod 600` pe `.ssh_key` / `.ssh_pass` |
| Warning "No write password file '{id}_write.oracle_pass' found" | Lipsește fișierul write | Creează `{id}_write.oracle_pass` cu parola corectă |
