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

2.6 KiB
Raw Permalink Blame History

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

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:

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

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).

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

Verificare

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