Curatenie referinte pre-livrare: - inlocuit IP intern 10.11.10.18 cu hostname didi.integrare.local (extensie, docker-compose, .env.example) - inlocuit domeniu vechi didi365.eu cu didi.integrare.local (scripturi build/audit) - redenumit identificatorul aplicatiei Android eu.didi365.mobile -> didi.mobile Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.4 KiB
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)
docker build \
--build-arg VITE_API_URL= \
--build-arg VITE_KEYCLOAK_URL=https://<ADRESA>/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://<ADRESA>
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 OIDCdidi-extensionîn Keycloak (realmdidi-clients, redirecthttps://<id>.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.