Changelog
Changelog
Highlight curati degli ultimi rilasci. Per le versioni complete delle API e la policy sui breaking change, consulta la Versione delle API e policy LTS.
Modifiche dettagliate ai singoli endpoint: Specifica OpenAPI e Riferimento API interattivo.
2026-04 · Analytics della dashboard per codice QR
- Dashboard: il pulsante Analytics nell’elenco dei codici QR ora apre la pagina delle statistiche del rispettivo codice QR all’indirizzo
/dashboard/codes/{id}. - Routing: l’alias
/dashboard/codescontinua a reindirizzare a/dashboard, ma non intercetta più le rotte di dettaglio come/dashboard/codes/{id}. - API: la pagina di dettaglio carica il codice QR direttamente tramite
GET /v1/codes/:id; in questo modo non dipende più dai limiti di paginazione dell’elenco. - Test: i test di regressione coprono il reindirizzamento dell’alias e il caricamento diretto del codice.
2026-04 · Dialogo di eliminazione della dashboard per i codici QR
- Dashboard: l’icona del cestino nell’elenco dei codici QR ora apre un dialogo React dedicato invece di un popup nativo del browser.
- Feedback: dopo l’eliminazione, viene visualizzata una notifica toast di successo o di errore.
- Test:
packages/dashboard/tests/dashboard.test.tspreviene regressioni suconfirm()nel flusso di eliminazione del codice QR.
2026-04 · Test dei link brevi nella dashboard per i codici QR dinamici
- Dashboard: gli shortcode nell’elenco dei codici QR sono ora cliccabili direttamente come link di reindirizzamento esterni. L’icona del link esterno accanto, ad esempio, a
wu3qaaaprehttps://qr3.app/{shortCode}in una nuova scheda. - i18n: aggiunti i testi dei tooltip per tedesco e inglese.
- Test:
packages/dashboard/tests/dashboard.test.tsprotegge l’href del link, il comportamento della nuova scheda,noopener noreferrere l’icona da regressioni.
2026-04 · Rotta del Redirect Worker per i codici QR dinamici
- Fix: i codici QR dinamici all’indirizzo
https://qr3.app/{shortCode}vengono nuovamente elaborati dal Redirect Worker. La rotta di produzione ora utilizzaqr3.app/*perché le rotte dei Cloudflare Workers non supportano i parametri di percorso:code. - Consolidamento: i percorsi non corrispondenti vengono passati all’origine della landing page, in modo che le pagine normali come
/de/pricingnon vengano bloccate dal Redirect Worker. - Test:
packages/redirect/tests/unit/redirect.test.tsverifica la rotta wildcard, l’elaborazione dello shortcode e il pass-through dell’origine.
2026-04 · Panoramica delle scansioni DPP del workspace (Q3.4.2)
- Nuovo:
GET /v1/workspace/stats/dpp?days=30— aggrega tutte ledpp_scansdel workspace dell’API key (active_dpps,scans_by_day,top_dppscon nome prodotto/categoria). - Dashboard: scheda nella pagina iniziale (
/dashboard) con grafico a barre a 30 giorni + elenchi dei migliori — in parallelo alle schede dei codici QR. - Pubblico: shortlink di marketing
GET /dpp/dpp_<id>(un segmento) per demo live, in parallelo a/dpp/{gtin}/{serial}.
2026-04 · Analytics delle scansioni DPP (Q3.4.1)
- Nuovo:
GET /v1/dpp/:id/stats?days=30— scansioni aggregate del resolver GS1 pubblico per DPP. Campi:total_scans,period_scans,scans_by_day,top_countries,top_devices,top_representations. - Nuovo: tabella
dpp_scans(migrazione0011) — separata dascans(Redirect Worker). Gli indirizzi IP vengono crittografati con un salt a rotazione giornaliera, gli IP grezzi non raggiungono mai D1. - Dashboard: mini-scheda con grafico (SVG, nessuna libreria di grafici) su
/dashboard/dpp/:dppIdcon barre a 30 giorni + suddivisione dei primi 3. Stato vuoto (empty state) non appena un DPP è attivo ma non ha ancora registrato scansioni.
2026-04 · Simulatore di conformità UE live (Q3.3.7)
- Nuovo:
POST /v1/dpp/:id/validate-update— simula aggiornamenti parziali stateless (stato, elenco mercati, …) senza persistenza. La risposta contieneeu_compliance+preview.changed_fields. - Dashboard: scheda del simulatore nel dettaglio del DPP (
/dashboard/dpp/:dppId) — chip perDE/AT/FR/IT/ES/NL+ personalizzati, menu a discesa dello stato, Preview EU impact / Save changes / Reset. Non bloccante tramite RemixuseFetcher. - Consolidamento: helper del simulatore esternalizzati (
readUpdatePatchFromForm,marketCountriesKey) + 18 nuovi unit test; correzione di bug: l’input non ISO singolo non cancella più l’elenco dei mercati.
2026-04 · Anteprima di conformità UE live nel modulo di creazione (Q3.3.6)
- Modificato:
POST /v1/dpp/validatefornisce in aggiuntaeu_compliance— lo stesso validatore diGET /v1/dpp/:id/eu-compliance, stateless prima del salvataggio. - Dashboard: anteprima sotto il pannello di validazione esistente + nuovo banner di protezione salvataggio prima dei pulsanti di invio se ci sono errori/avvisi aperti (pluralizzazione i18n DE/EN).
2026-04 · Validatore UE + UI tessile (Q3.3.4 + Q3.3.5)
- Nuovo: validatore di conformità UE con 5 regole per il settore tessile (
TEXTILE_AGEC_REQUIRED,TEXTILE_MICROPLASTICS_CONSISTENCY,TEXTILE_SVHC_THRESHOLD,TEXTILE_GREENWASHING,TEXTILE_ESPR_READY). - Nuovo:
GET /v1/dpp/:id/eu-complianceconcompliant/espr_ready/issues[]/summary. - Dashboard: sezione di conformità UE nel dettaglio del DPP (schede di riepilogo, schede dei problemi raggruppate, badge ESPR-Ready nell’intestazione).
2026-04 · Schema DPP tessile (Q3.3.1–Q3.3.3)
- Nuovo: categoria
textilecon catena di obblighi AGEC (tessitura/maglieria → tintura/stampa → confezionamento), per fibraorigin_country+recycled_pct,svhc_substances[], opt-in ESPR (PEF, durata di vita, Recyclability). - Nuovo: campo di base
market_countries: string[](ISO 3166-1 alpha-2) su tutte le categorie DPP — controlla le regole AGEC specifiche per la Francia e la nota informativa obbligatoria per i consumatori francesi. - Nuovo: template HTML per i consumatori con box di avviso microplastiche AGEC, catena di origine a 3 fasi (pillole con bandiere), elenco SVHC, sezione Durability e Recyclability.
- Migrazione:
0010_dpp_market_countries(D1).
2026-04 · Importazione in blocco DPP (Q3.2.1–Q3.2.5)
- Nuovo:
POST /v1/dpp/importaccetta CSV e XLSX (compatibile con i Worker tramite SheetJSxlsx, bundle gzip di circa 283 KB). - Scalato: limite basato sul piano (Free 100 → Enterprise 10k) +
db.batch()suddiviso in blocchi (chunked) da 100 + limite del corpo di 5 MB. - Nuovo: report degli errori in formato CSV nel campo
errors_csvdella risposta 201;GET /v1/dpp/import/templates/:category?format=csv|xlsxfornisce modelli pronti per batterie e prodotti tessili. - Dashboard: caricamento drag-and-drop all’indirizzo
/dashboard/dpp/importcon proxy del modello e download CSV in linea.
Estensioni LTS non-breaking
Tutte le modifiche sopra menzionate sono additive:
- I client
POST /v1/dpp/validateesistenti ignorano il nuovo campoeu_compliancesenza modifiche. - I flussi
batteryesistenti rimangono invariati. market_countriesè opzionale e ha come valore predefinito[].
Vedi Versione delle API per la policy sui breaking change.