Changelog
Changelog
Repere selectate din ultimele versiuni. Pentru versiunile complete de API și politica privind modificările incompatibile (breaking changes), consultați Versiunea API și politica LTS.
Modificări detaliate pentru fiecare endpoint în parte: Specificația OpenAPI și Referința API interactivă.
2026-04 · Analize în Dashboard per cod QR
- Dashboard: Butonul de analize din lista de coduri QR deschide acum pagina de statistici a codului QR respectiv la
/dashboard/codes/{id}. - Routing: Aliasul
/dashboard/codesredirecționează în continuare către/dashboard, dar nu mai interceptează rutele detaliate precum/dashboard/codes/{id}. - API: Pagina de detalii încarcă codul QR direct prin
GET /v1/codes/:id; astfel, aceasta nu mai depinde de limitele de paginare ale listei. - Teste: Testele de regresie acoperă redirecționarea aliasului și încărcarea directă a codului.
2026-04 · Dialog de ștergere în Dashboard pentru codurile QR
- Dashboard: Pictograma de coș de gunoi din lista de coduri QR deschide acum un dialog React dedicat, în locul unui popup nativ de browser.
- Feedback: După ștergere, apare o notificare de tip toast pentru succes sau eroare.
- Teste:
packages/dashboard/tests/dashboard.test.tsprevine regresiile pentruconfirm()în fluxul de ștergere a codurilor QR.
2026-04 · Testare link scurt în Dashboard pentru coduri QR dinamice
- Dashboard: Codurile scurte (shortcodes) din lista de coduri QR pot fi acum accesate direct ca linkuri externe de redirecționare. Pictograma de link extern de lângă, de exemplu,
wu3qaadeschidehttps://qr3.app/{shortCode}într-o filă nouă. - i18n: S-au adăugat textele pentru tooltip în germană și engleză.
- Teste:
packages/dashboard/tests/dashboard.test.tsprotejează href-ul linkului, comportamentul de filă nouă,noopener noreferrerși pictograma împotriva regresiilor.
2026-04 · Rută Redirect-Worker pentru coduri QR dinamice
- Fix: Codurile QR dinamice de la
https://qr3.app/{shortCode}sunt procesate din nou de Redirect-Worker. Ruta de producție folosește acumqr3.app/*, deoarece rutele Cloudflare Workers nu acceptă parametri de cale de tip:code. - Securizare: Căile care nu se potrivesc sunt redirecționate către originea paginii de destinație (landing origin), astfel încât paginile normale precum
/de/pricingsă nu fie blocate de Redirect-Worker. - Teste:
packages/redirect/tests/unit/redirect.test.tsverifică ruta wildcard, procesarea codurilor scurte și trecerea directă către origine (origin pass-through).
2026-04 · Prezentare generală scanări DPP în Workspace (Q3.4.2)
- Neu:
GET /v1/workspace/stats/dpp?days=30— agreghează toate scanăriledpp_scansdin spațiul de lucru (workspace) al cheii API (active_dpps,scans_by_day,top_dppscu nume produs/categorie). - Dashboard: Card pe pagina principală (
/dashboard) cu diagramă cu bare pe 30 de zile + liste de top — în paralel cu cardurile de coduri QR. - Public: Link scurt de marketing
GET /dpp/dpp_<id>(un singur segment) pentru demo-uri live, în paralel cu/dpp/{gtin}/{serial}.
2026-04 · Analize scanări DPP (Q3.4.1)
- Neu:
GET /v1/dpp/:id/stats?days=30— scanări agregate ale resolverului public GS1 per DPP. Câmpuri:total_scans,period_scans,scans_by_day,top_countries,top_devices,top_representations. - Neu: Tabelul
dpp_scans(migrarea0011) — separat descans(Redirect-Worker). Adresele IP sunt criptate (hashed) cu un salt rotativ zilnic, adresele IP brute neajungând niciodată în D1. - Dashboard: Card cu mini-grafic (SVG, fără bibliotecă de grafice) pe
/dashboard/dpp/:dppIdcu bare pe 30 de zile + defalcări Top 3. Stare goală (empty state) de îndată ce un DPP este live, dar nu are încă scanări.
2026-04 · Simulator live de conformitate UE (Q3.3.7)
- Neu:
POST /v1/dpp/:id/validate-update— simulează actualizări parțiale stateless (status, listă de piețe, …) fără persistență. Răspunsul conțineeu_compliance+preview.changed_fields. - Dashboard: Card simulator în detaliile DPP (
/dashboard/dpp/:dppId) — cipuri pentruDE/AT/FR/IT/ES/NL+ personalizat, meniu derulant pentru status, Preview EU impact / Save changes / Reset. Non-blocking prin RemixuseFetcher. - Securizare: Funcții ajutătoare (helpers) de simulator externalizate (
readUpdatePatchFromForm,marketCountriesKey) + 18 teste unitare noi; remediere bug: introducerea unei singure valori non-ISO nu mai șterge lista de piețe.
2026-04 · Previzualizare live a conformității UE în formularul de creare (Q3.3.6)
- Geändert:
POST /v1/dpp/validatereturnează în pluseu_compliance— același validator caGET /v1/dpp/:id/eu-compliance, stateless înainte de salvare. - Dashboard: Previzualizare sub panoul de validare existent + un nou banner de protecție la salvare (Save-Guard) înainte de butoanele de trimitere, dacă există erori/avertismente nerezolvate (pluralizare i18n DE/EN).
2026-04 · Validator UE + UI pentru textile (Q3.3.4 + Q3.3.5)
- Neu: Validator de conformitate UE cu 5 reguli pentru textile (
TEXTILE_AGEC_REQUIRED,TEXTILE_MICROPLASTICS_CONSISTENCY,TEXTILE_SVHC_THRESHOLD,TEXTILE_GREENWASHING,TEXTILE_ESPR_READY). - Neu:
GET /v1/dpp/:id/eu-compliancecucompliant/espr_ready/issues[]/summary. - Dashboard: Secțiune de conformitate UE în detaliile DPP (dale de rezumat, carduri de probleme grupate, insignă ESPR-Ready în antet).
2026-04 · Schemă DPP pentru textile (Q3.3.1–Q3.3.3)
- Neu: Categoria
textilecu lanț obligatoriu AGEC (țesut/tricotat → vopsit/imprimat → confecționare), per fibrăorigin_country+recycled_pct,svhc_substances[], ESPR-Opt-in (PEF, durată de viață, Recyclability). - Neu: Câmp de bază
market_countries: string[](ISO 3166-1 alpha-2) pentru toate categoriile DPP — controlează regulile AGEC specifice Franței și nota obligatorie pentru consumatorii francezi. - Neu: Șablon HTML pentru consumatori cu casetă de avertizare AGEC pentru microplastic, lanț de origine în 3 etape (pastile cu steaguri), listă SVHC, secțiune de Durability și Recyclability.
- Migrare:
0010_dpp_market_countries(D1).
2026-04 · Import în masă (Bulk) DPP (Q3.2.1–Q3.2.5)
- Neu:
POST /v1/dpp/importacceptă CSV și XLSX (compatibil cu Workers prin SheetJSxlsx, pachet gzip de ~283 KB). - Scalat: limită bazată pe plan (Free 100 → Enterprise 10k) +
db.batch()fragmentat (chunked) de câte 100 + limită de 5 MB pentru body. - Neu: Raport de erori în format CSV în câmpul
errors_csval răspunsului 201;GET /v1/dpp/import/templates/:category?format=csv|xlsxoferă șabloane gata de utilizare pentru baterii și textile. - Dashboard: Încărcare prin glisare și plasare (drag-and-drop) la
/dashboard/dpp/importcu proxy de șabloane și descărcare CSV inline.
Modificări non-breaking — Extinderi LTS
Toate modificările menționate mai sus sunt aditive:
- Clienții existenți ai
POST /v1/dpp/validateignoră noul câmpeu_compliancefără modificări. - Fluxurile
batteryexistente rămân neschimbate. market_countrieseste opțional și are valoarea implicită[].
Consultați Versiunea API pentru politica privind modificările incompatibile (breaking changes).