Files
Marius Mutu e257fa5d5f feat(telegram): bot bonuri fiscale — OCR → preview → Oracle write
- US-001: mută queue_client.py în data_entry/services/ocr/
- US-002/003/004: oracle_receipt_writer + oracle_server_id în DB
- US-005: receipt_handlers.py (PDF/photo/callback flow)
- US-006: wire handlers în main.py, per-schema connect, seq_cod.nextval
- US-007: .gitignore secrets/*.oracle_pass
- US-008/009/010: teste unit + integration + E2E
- setup-secrets.sh helper + template
- docs/telegram/README.md actualizat cu arhitectura nouă

Testat E2E pe DB live (MARIUSM_AUTO). COD din seq_cod.nextval.
pypdfium2 fallback pentru PDF decode (fără poppler).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 09:26:58 +00:00

88 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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ă |