ADR 007 Angular
Acest conținut nu este încă disponibil în limba selectată.
ADR-007 — Frontend Angular separat (clientFramework=no)
Section titled “ADR-007 — Frontend Angular separat (clientFramework=no)”- Status: Acceptat
- Data: 2026-07-07
- Componentă: Frontend / livrare UI
- Decidenți: Arhitect platformă GStack, teamlead
Context
Section titled “Context”GRegistry este un microserviciu API-first (ADR-001).
JDL-ul fixează clientFramework no. Există un design de referință —
../../GRegistry.dc.html — cu limbaj vizual definit (sidebar navy închis, accent
sky-blue #0369a1/#0ea5e9, IBM Plex Sans, carduri) și un ecran complet (Tablou de bord),
restul ecranelor fiind schițe de navigație.
Decizie
Section titled “Decizie”UI-ul GRegistry este o aplicație Angular separată, în afara backend-ului JHipster:
- Backend-ul nu generează client (
clientFramework no) — se evită regenerarea care ar suprascrie UI-ul lucrat manual. - SPA-ul consumă API-ul prin contractul OpenAPI (
/api/v1/openapi.json), respectând zonele standard (ADR-006). - Autentificare Authorization Code + PKCE contra GSSO (ADR-002).
- Stilizat după
GRegistry.dc.html: se extrag paleta, tipografia, componentele și layout-ul Dashboard-ului; ecranele lipsă (Registrul sistemelor, Medii, Dependențe, Publicare, Furnizori, API & consumatori, Jurnal) se proiectează coerent cu acel limbaj vizual. - i18n ro (nativ) + en, în paralel cu backend-ul.
Alternative considerate
Section titled “Alternative considerate”- Client generat de JHipster (Angular integrat). Respins: contrazice
clientFramework nodin JDL și cuplează UI-ul de ciclul de regenerare a backend-ului. - UI livrat exclusiv de GPortal. Respins: RSI are nevoie de un panou de administrare propriu (înregistrare, aprobări, medii, audit) dincolo de vederea publică a Portalului.
- Server-rendered (Thymeleaf). Respins: design-ul de referință e o SPA bogată; SSR ar însemna rescriere.
Consecințe
Section titled “Consecințe”Pozitive
- UI decuplat, cu ciclu de release propriu; regenerarea backend-ului nu-l atinge.
- Contract clar backend↔frontend prin OpenAPI.
Negative / riscuri
- Două artefacte de livrat/deploy (backend + SPA); necesită CORS/gateway configurate.
- Ecranele ne-desenate în mock trebuie proiectate — se urmează strict limbajul vizual al Dashboard-ului pentru consistență.