Pagina repo-ului arăta README-ul generic roa2web și nu explica ce e diferit / ce se urmărea. README-ul nou pune scopul pe prima pagină: prototip de probă „web (Python/Vue) conduce business logic Oracle prin PL/SQL", driver-ul de risc-talent VFP, cele 6 ipoteze, scope wall, relația cu roa2web, stare WIP. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
roa2web-service-auto
Prototip de învățare + hedge de risc de talent. NU un produs, NU un MVP, NU un angajament de livrare către clienți.
Acest repo explorează o singură întrebare strategică:
Poate stack-ul web (Python / FastAPI async / Vue 3 / PrimeVue) să conducă logica de business Oracle end-to-end prin proceduri PL/SQL — păstrând PL/SQL ca strat durabil?
Domeniul ales pentru probă: gestiune comenzi service auto (atelier reparații auto) —
cel mai sigur teren de testare, pe o schemă Oracle dedicată de test (MARIUSM_AUTO), fără
nicio atingere a producției.
De ce există (driver-ul strategic)
Visual FoxPro (VFP) e o limbă moartă. ERP-ul care alimentează 4 clienți de lungă durată e scris în VFP + Oracle, iar nu se mai pot angaja programatori dispuși să învețe VFP → risc de talent care se acumulează an de an.
Migrarea la Postgres nu e 1:1 (25 de ani de PL/SQL, sinonime cross-schema, arhitectură tenant-per-schemă). Deci calea realistă de hedge este:
Rămâi pe Oracle, mută stratul de UI + business logic pe Python/Vue, păstrează PL/SQL ca strat durabil.
Service auto e locul cu cel mai mic risc unde se poate proba dacă această cale funcționează. Hedge-ul rezolvă jumătatea de stack unde există forță de muncă (Python+Vue+integrare), NU problema angajării de specialiști PL/SQL.
Ce probează concret (învățarea reală)
Prototipul confirmă sau infirmă 6 ipoteze. Dacă oricare eșuează cu un răspuns clar, prototipul s-a încheiat cu succes — learning obținut, decizie clară, zero cod irosit.
| # | Ipoteză | Status / referință |
|---|---|---|
| 1 | python-oracledb async apelează curat PL/SQL cu params IN+OUT |
poc/, week1-notes.md |
| 2 | session_callback pentru CURRENT_SCHEMA nu leak-uiește între requests concurente |
week5-session-callback.md |
| 3 | Grants „EXECUTE pe SP, zero acces direct la tabele" țin în practică | grants-audit.md, week3-auth-audit.md |
| 4 | RAISE_APPLICATION_ERROR cu diacritice ajunge în Vue ca eroare user-friendly (encoding corect) |
mapare ORA→HTTP în backend/modules/service_auto/ |
| 5 | DX (FastAPI hot-reload + Vite + SSH tunnel Oracle) e acceptabil pt side-work 2-4h/săpt | week1-notes.md |
| 6 | Auth-ul multi-server existent suportă un server nou fără modificări la shared code | week3-auth-audit.md |
Livrabilul real NU e ecranul de comandă — e un template reutilizabil pentru module
Oracle (docs/service-auto/template-modul-oracle.md) + un decision log
(docs/service-auto/decision-log.md). Dacă dovezile sunt pozitive, același pattern se
aplică modulului următor.
Ce e în scope vs NU
În scope (prototip): 1 ecran (ComandaNoua.vue) → 1 SP de scriere → insert într-un
tabel dedicat de comenzi pe MARIUSM_AUTO → return ID + număr → Toast.
NU în scope (zid de scop explicit): cei 4 clienți existenți (rămân pe VFP, zero
atingere), migrare scheme, eFactura/ANAF, insert în ACT (registrul jurnal — doar la
facturare), facturare, mobile/responsive, e2e Playwright, multi-tenant complet. Detalii în
docs/service-auto/claude-main-design-20260411-rethink.md (secțiunea „Scope wall").
Relația cu roa2web
Acest repo e un fork complet din romfast/roa2web
(strămoș comun: commit b0f4800). Conține tot codul comun roa2web (auth/JWT, pool Oracle
multi-tenant, shell-ul Vue SPA, design tokens, AsyncAutoComplete) PLUS modulul service-auto,
deci rulează standalone. Fix-urile se pot face cherry-pick în ambele sensuri.
Detalii de proveniență: PROVENANCE.md.
Cod specific service-auto
| Zonă | Cale |
|---|---|
| Backend | backend/modules/service_auto/ (router / service / schemas / tests) |
| Frontend | src/modules/service-auto/ + src/shared/components/AsyncAutoComplete.vue |
| Oracle (pack-uri, DDL, migrări) | docs/service-auto/ (pack_auto.pck, pack_sesiune.pck, migrations/) |
| POC-uri | poc/ |
| Design, decizii, learnings | docs/service-auto/ |
⚠️ Stare curentă
WIP. Ultimul commit de dezvoltare moștenit era „modificari in curs nu stiu care este
faza" (2026-06-05) — proiectul nu era la un checkpoint curat când a fost desprins din
roa2web (2026-06-13). Înainte de orice reluare: citește docs/service-auto/decision-log.md
și notele săptămânale (week*-notes.md) ca să reconstruiești faza.
Teste auto-raportate la desprindere: 62 passed / 3 skipped (dependente de Oracle live).
Setup
Bază de cod identică cu roa2web — vezi instrucțiunile de pornire din scripturile
start.sh / start-backend.sh / start-frontend.sh și docs/. Necesită acces la
serverul Oracle de test (MARIUSM_AUTO) prin user-ul tehnic ROA_WEB.