docs: ghid utilizator (medii test/prod, termeni simpli) + README pe per-env

docs/ghid-utilizator.md (nou): ghid pentru service-uri, fara termeni tehnici —
cum configurezi credentialele RAR pe Testare/Productie, cum stii unde trimiti
(statusbar + badge rosu=real), cum trimiti (fisier/soft), starile unei trimiteri,
intrebari frecvente.

README: link catre ghid; sectiunea creds RAR actualizata la sloturi per-mediu
(rar_target pe POST /v1/conturi/rar-creds, rar_env pe POST /v1/prezentari);
corectata nota iesita din uz despre GET-uri (sunt account-scoped, nomenclator
public intentionat); RAR_ENV clarificat ca ancora globala peste care au prioritate
mediile per-cont.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-07-03 12:33:33 +00:00
parent 96973f60f3
commit f02f422560
2 changed files with 143 additions and 5 deletions

View File

@@ -12,6 +12,7 @@ Trimiterea catre RAR e **dezactivata implicit** (`AUTOPASS_WORKER_SEND_ENABLED=f
Sursa de adevar pentru contractul RAR: [`docs/api-rar-contract.md`](docs/api-rar-contract.md). Sursa de adevar pentru contractul RAR: [`docs/api-rar-contract.md`](docs/api-rar-contract.md).
Progres + proces: [`docs/ROADMAP.md`](docs/ROADMAP.md). Progres + proces: [`docs/ROADMAP.md`](docs/ROADMAP.md).
**Ghid pentru utilizatori (service-uri), in termeni simpli:** [`docs/ghid-utilizator.md`](docs/ghid-utilizator.md).
## Pornire rapida ## Pornire rapida
@@ -105,16 +106,25 @@ python3 -m tools.account list [--pending] | activate --account N | set-admin --a
python3 -m tools.apikey create|list|rotate|revoke --account N # cheie afisata O SINGURA DATA python3 -m tools.apikey create|list|rotate|revoke --account N # cheie afisata O SINGURA DATA
``` ```
**Creds RAR per cont** (ca worker-ul sa trimita fara parola in fiecare cerere) — criptate Fernet at-rest: **Creds RAR per cont, pe medii** — fiecare cont are doua sloturi separate de credentiale RAR,
**Testare** si **Productie** (sisteme RAR distincte; un set de creds merge pe exact unul). Criptate
Fernet at-rest. Din web se seteaza in **Cont → Credentiale RAR** (doua sectiuni, cu validare prin login
si confirmare unica la activarea Productie). Din API, campul `rar_target` alege slotul:
```bash ```bash
# Seteaza creds pe mediul Testare (lipsa rar_target -> mediul implicit / ancora globala)
curl -s -X POST http://localhost:8010/v1/conturi/rar-creds \ curl -s -X POST http://localhost:8010/v1/conturi/rar-creds \
-H 'X-API-Key: rfak_...' -H 'Content-Type: application/json' \ -H 'X-API-Key: rfak_...' -H 'Content-Type: application/json' \
-d '{"email": "service@exemplu.ro", "password": "parola-rar"}' -d '{"email": "service@exemplu.ro", "password": "parola-rar", "rar_target": "test"}'
``` ```
> GET-urile de listare (`/v1/prezentari`, `/v1/nomenclator`, `/v1/audit/export`) sunt momentan La trimitere, `POST /v1/prezentari` accepta `rar_env` (`test`/`prod`); lipsa lui -> mediul implicit al
> **globale si neprotejate** — filtrarea pe cont ramane de adaugat. contului. Pe ce mediu a mers fiecare rand vezi in `GET /v1/prezentari` (camp `rar_env`) si in badge-ul din
dashboard. Explicatie pentru operatori: [`docs/ghid-utilizator.md`](docs/ghid-utilizator.md).
> POST-urile si listarile per-cont (`/v1/prezentari`, `/v1/audit/export`, fragmentele web) sunt
> **filtrate pe contul cheii API**. `GET /v1/nomenclator` ramane public intentionat (coduri RAR publice,
> fara date personale).
## Proba reala la RAR (mediu test) ## Proba reala la RAR (mediu test)
@@ -133,7 +143,7 @@ curl -s -X POST http://localhost:8010/v1/conturi/rar-creds \
| Variabila | Implicit | Rol | | Variabila | Implicit | Rol |
|-----------|----------|-----| |-----------|----------|-----|
| `DB_PATH` | `./data/autopass.db` | calea SQLite | | `DB_PATH` | `./data/autopass.db` | calea SQLite |
| `RAR_ENV` | `test` | `test` / `prod` | | `RAR_ENV` | `test` | ancora globala `test` / `prod`; mediile per-cont (Testare/Productie) au prioritate cand contul le are configurate |
| `REQUIRE_API_KEY` | `false` | `true` = cere cheie pe `/v1/*` (prod) | | `REQUIRE_API_KEY` | `false` | `true` = cere cheie pe `/v1/*` (prod) |
| `WEB_AUTH_REQUIRED` | `true` | `false` = dashboard fara login, cont id=1 (dev) | | `WEB_AUTH_REQUIRED` | `true` | `false` = dashboard fara login, cont id=1 (dev) |
| `CREDS_KEY` | (efemera) | **cheie Fernet creds RAR — trebuie PARTAJATA intre API si worker** | | `CREDS_KEY` | (efemera) | **cheie Fernet creds RAR — trebuie PARTAJATA intre API si worker** |

128
docs/ghid-utilizator.md Normal file
View File

@@ -0,0 +1,128 @@
# Ghid de utilizator — RAR AUTOPASS
Ghid simplu pentru service-uri auto. Explica cum trimiti prezentarile catre RAR AUTOPASS
prin aplicatie, cu accent pe cele doua medii: **Testare** si **Productie**.
Fara termeni tehnici. Daca esti dezvoltator si cauti API/instalare, vezi [README.md](../README.md).
---
## Ce face aplicatia
Legea 142/2023 obliga service-urile auto autorizate sa transmita la RAR, la finalul fiecarei
lucrari, datele obligatorii (VIN, kilometraj etc.). Aplicatia asta face transmiterea in locul tau:
tu incarci lucrarile (dintr-un fisier sau din softul tau), iar aplicatia le declara la RAR si iti
arata ce a mers si ce nu.
---
## Cele doua medii: Testare si Productie
La RAR exista **doua sisteme separate**:
- **Testare** — pentru probe. Ce trimiti aici NU e o declaratie oficiala. Bun ca sa te obisnuiesti,
fara riscuri.
- **Productie** — **real**. Ce trimiti aici e o declaratie oficiala catre RAR, conform legii.
**Nu se poate anula sau corecta** dupa ce a fost acceptata.
Fiecare mediu are **propriul lui email si parola** de la RAR. Un set de credentiale merge pe exact
un mediu — cele de test nu functioneaza pe productie si invers.
Un mediu e **disponibil** doar cand e activat SI are credentiale valide. Din asta decurge tot ce
poti face: unde trimiti, daca poti alege, ce vezi pe ecran.
---
## Pasul 1 — Configureaza credentialele RAR
Intra in **Cont → Credentiale RAR**. Vezi doua sectiuni: **Testare** si **Productie**. Pentru
fiecare mediu pe care vrei sa-l folosesti:
1. Bifeaza **Activare**.
2. Scrie **emailul si parola** de la RAR pentru acel mediu.
3. Apasa **Salveaza**. Aplicatia incearca un **login de proba** pe RAR:
- login reusit → credentialele se salveaza (criptat) si mediul devine disponibil;
- login esuat → primesti eroare pe acel mediu, iar credentialele NU se salveaza.
4. La **prima activare a mediului Productie** trebuie sa bifezi confirmarea: intelegi ca trimiterile
pe Productie sunt reale, finale si fara anulare (Legea 142).
5. Jos poti alege **Mediul implicit** — cel pe care se trimite automat. Poti alege doar dintre
mediile disponibile.
Parola nu se afiseaza niciodata inapoi pe ecran; e stocata criptat.
> Un cont nou vine implicit cu **Productie pornit** si **Testare oprit**. Daca vrei sa exersezi
> intai, activeaza Testare si pune-l ca mediu implicit.
---
## Pasul 2 — Cum stii unde trimiti (ca sa nu confunzi testul cu realul)
Doua indicii sunt mereu la vedere:
- **Bara de sus (statusbar)** arata mediul implicit al contului. Daca ai **ambele** medii
disponibile, apare si un buton **Comuta** ca sa schimbi rapid unde se trimite.
- **Fiecare trimitere are un badge**: `PRODUCȚIE` (rosu, proeminent = real) sau `Testare` (gri,
discret). Il vezi in liste, in coada, in detaliul trimiterii si in jurnal.
Regula simpla: **rosu = real**. Daca vezi rosu, mergi cu grija.
---
## Pasul 3 — Trimite prezentarile
### Din fisier (Excel / CSV)
Pe dashboard: **incarca** fisierul → **potriveste coloanele** (aplicatia sugereaza singura si tine
minte formatul pentru data viitoare) → **verifica** randurile → **confirma**. Randurile intra in
coada si se trimit.
- Daca ai **un singur mediu** disponibil, totul merge automat acolo.
- Daca ai **doua**, la incarcare apare un **selector de mediu** — alegi unde vrei sa trimiti fisierul
respectiv.
### Din softul tau (ROAAUTO / soft propriu)
Softul trimite prin cheia API a contului. Poate preciza mediul (`test`/`prod`); daca nu-l precizeaza,
merge pe mediul implicit al contului. Detalii tehnice in [README.md](../README.md).
---
## Ce inseamna starea unei trimiteri
| Stare | Ce inseamna, pe scurt |
|-------|-----------------------|
| **In asteptare** | E in coada, urmeaza sa fie trimisa. |
| **Se trimite** | Se trimite chiar acum. |
| **Declarata la RAR** | Gata, acceptata (are numar de prezentare). Nu se mai poate modifica. |
| **Lipseste codul** | Operatia nu are cod RAR — alege-l in tab-ul **Mapari** si se deblocheaza singura. |
| **Date incomplete** | RAR a respins randul (lipseste ceva) — corecteaza si reincarca. |
| **Eroare** | Trimiterea a esuat si nu se mai reincearca. Vezi detaliul; daca tine de credentiale, corecteaza-le in Cont. |
---
## Jurnal — ce s-a intamplat
Tab-ul **Jurnal** noteaza actiunile importante, cu ora si cont: activarea/dezactivarea unui mediu,
schimbarea mediului implicit, o trimitere blocata pentru ca mediul cerut nu era disponibil. Util cand
vrei sa intelegi „cine, ce, cand".
---
## Intrebari frecvente
**Am pus credentiale si dau eroare la salvare.** Credentialele sunt pentru mediul gresit (test pe
productie sau invers), sau emailul/parola nu sunt corecte. Un set merge pe exact un mediu.
**Sunt client doar cu productie, nu am cont de test.** Normal. Lasa Testare dezactivat si lucreaza pe
Productie. Nu poti activa Testare fara credentiale de test — nu e o eroare, asa e proiectat.
**Am trimis din greseala pe Productie.** La RAR o prezentare acceptata (`FINALIZATA`) e finala si nu
se poate anula prin aplicatie. De aceea Productie e marcat cu rosu peste tot si cere confirmare la
activare. Foloseste Testare cand exersezi.
**Nu vad butonul de comutare a mediului.** Apare doar cand ai **doua** medii disponibile. Cu unul
singur, se trimite automat acolo si nu ai ce comuta.
**Unde vad ce s-a trimis si unde?** In lista de trimiteri de pe dashboard — fiecare rand are badge-ul
de mediu si starea. Pentru verificare independenta direct la RAR, cere-i administratorului lista de
finalizate.