# DiDi Lot 3 (Frontend) — Pachet de livrare PNRR DIGI150 · contract 11.1.i3.c9 · Contract de furnizare nr. 19 · 17.07.2026 ## Conținut | Fișier | Descriere | |---|---| | `didi-frontend-web_lot3-1.0.docker.tar.gz` | Imaginea Docker a aplicației web (nginx + SPA build) | | `didi-app-clossers.apk` | Aplicația mobilă Android (release, semnată cu cheie de test) | | `didi-extension-clossers-v3.2.6.zip` | Extensia de browser Chrome/Edge (Manifest V3) | Codul sursă complet: repo `didi-lot3-frontend/` (subfoldere `web/`, `android/didi-app-source/`, `extension/`) + documentația de livrare în `docs/` (ghid de utilizare 05, matrice de trasabilitate 06, raport de testare furnizor 07). ## Configurarea adresei platformei (per componentă) Sursele NU conțin adrese hardcodate — adresa serverului DiDi se setează exclusiv în punctele de configurare de mai jos. ### 1. Aplicația web — la build (build args) ```bash docker build \ --build-arg VITE_API_URL= \ --build-arg VITE_KEYCLOAK_URL=https:///auth \ -t didi-frontend:local ./web ``` `VITE_API_URL` gol = same-origin (nginx-ul din imagine proxează `/api`, `/agent-v3` → Kong și `/auth` → Keycloak, prin rețeaua Docker `didi-network`). nginx-ul răspunde pe orice hostname (`server_name _`). **Rulare** (pe serverul platformei): `docker load < didi-frontend-web_lot3-1.0.docker.tar.gz` apoi `docker compose -f docker-compose.local.yml up -d` (compose-ul e în rădăcina repo-ului). ### 2. Aplicația mobilă — la build (.env) Fișierul `android/didi-app-source/.env` (model în `.env.example`): ``` EXPO_PUBLIC_DIDI_BASE_URL=http:// ``` Rebuild: `cd android/didi-app-source/android && ./gradlew assembleRelease` (toolchain-ul și pașii compleți sunt în `HANDOFF_Lot3_Rebrand_Integrare.md`). APK-ul livrat este construit cu adresa mediului de integrare. ### 3. Extensia de browser — fișierul `config.js` Singurul loc cu adresa: `extension/config.js` → `DIDI_HOST_HTTP` / `DIDI_HOST_HTTPS`. După modificare: reîncarcă extensia din `chrome://extensions`. Pe un mediu cu certificat TLS valid, ambele valori se setează pe `https://…` (separarea HTTP/HTTPS există doar pentru mediul LAN cu certificat autosemnat). ## Instalare rapidă componente client - **Extensie:** dezarhivează zip-ul → `chrome://extensions` → Developer mode → Load unpacked → folderul dezarhivat → butonul „Autentificare" (cont DiDi, fără chei API). - **APK:** transfer pe telefon → instalare din surse necunoscute → Sign In cu contul DiDi. Dispozitivul trebuie să aibă acces de rețea la adresa platformei. ## Observații - APK-ul e semnat cu cheie de test — pentru publicare în Google Play se generează un keystore de release. Identificatorul aplicației este `didi.mobile`; la publicarea în store poate fi schimbat, dar orice modificare ulterioară creează o aplicație nouă (reinstalare obligatorie pentru utilizatori). - Extensia are ID stabil (`blcalchooinkphpnlkkhlklbmgppmnfm`, fixat prin cheia din manifest); pe acest ID este configurat clientul OIDC `didi-extension` în Keycloak (realm `didi-clients`, redirect `https://.chromiumapp.org/*`). La schimbarea mediului, clientul Keycloak se recreează identic pe noul realm/server. - Fișierele istorice scoase din repo la curățenia din 17.07.2026 sunt păstrate în `~/didi-lot3-frontend-arhiva/`. ## Sume de control (SHA-256) Vezi `SHA256SUMS.txt` din acest folder.