Changelog
Changelog
Επιλεγμένα highlights των τελευταίων εκδόσεων. Για τις πλήρεις εκδόσεις του API και την πολιτική διασπαστικών αλλαγών (Breaking-Change-Policy), ανατρέξτε στο Έκδοση API & Πολιτική LTS.
Λεπτομερείς αλλαγές σε μεμονωμένα endpoints: Προδιαγραφή OpenAPI και διαδραστική αναφορά API.
2026-08 · Keyset cursor πλέον σε όλα τα endpoints λιστών
- Διόρθωση: Η διόρθωση του κέρσορα για τα
GET /v1/codesκαιGET /v1/dpp(δείτε παρακάτω) έχει πλέον επεκταθεί σε όλες τις υπόλοιπες λίστες με σελιδοποίηση κέρσορα:GET /v1/qr-codes/:id/comments,/v1/workspaces,/v1/gs1/identifiers,/v1/members,/v1/audit-logs,/v1/admin/orgs,/v1/admin/usersκαι/v1/webhooks/:id/deliveries. Όλες έκαναν σελιδοποίηση αποκλειστικά μέσω τουcreated_at· σειρές με πανομοιότυπη χρονική σήμανση (καταγραφές ελέγχου μιας batch λειτουργίας, webhook retries, εισαγωγές μελών) θα μπορούσαν να χαθούν στην επόμενη σελίδα. Το κλειδί ταξινόμησης είναι πλέον παντού η πλειάδα(created_at, id). - Αλλαγή API: Σε αυτές τις λίστες, το
meta.pagination.next_cursorείναι πλέον επίσης μια αδιαφανής τιμή (base64url) αντί για μια απλή χρονική σήμανση· μη αναγνώσιμοι κέρσορες επιστρέφουν400, ενώ παλιοί κέρσορες χρονικής σήμανσης θα συνεχίσουν να γίνονται δεκτοί μεταβατικά. Εξαίρεση τοGET /v1/webhooks/:id/deliveries: εκεί τοnext_cursorπαραμένει το ID της τελευταίας παράδοσης (άγνωστο ID → πρώτη σελίδα). Οι clients που επιστρέφουν αμετάβλητο τοnext_cursor— Dashboard, CLI, SDKs, MCP — δεν χρειάζεται να αλλάξουν τίποτα. - Αντίκτυπος: Δεν απαιτείται μετανάστευση. Αν κάποιος παρατήρησε ότι έλειπαν εγγραφές κατά τη σελιδοποίηση σε μία από αυτές τις λίστες (π.χ. στο audit log ή στο log παραδόσεων στο Dashboard): Δεν είχαν χαθεί ποτέ — οι λίστες τις εμφανίζουν πλέον πλήρως.
2026-08 · Χρονικές σημάνσεις μετά από επεξεργασία και διαγραφή ξανά συμβατές με το OpenAPI
- Διόρθωση: Μετά το
PATCH /v1/codes/{id}, τοupdated_atεπέστρεφε σε μορφή SQLite χωρίς ζώνη ώρας (2026-08-17 09:00:00), αν και η προδιαγραφή OpenAPI υπόσχεταιformat: date-timeκαι η δημιουργία (POST) παρέχει τη χρονική σήμανση ISO (2026-08-17T09:00:00.000Z). Το ίδιο ίσχυε για ταdeleted_at/updated_atκατά το soft-delete, καθώς και για τις διαδρομές επεξεργασίας/διαγραφής των API-Keys, οργανισμών, Workspaces, μελών, σχολίων και webhooks, επιπλέον για τοlast_used_atτων API-Keys και τοlast_triggered_atτων webhooks. Όλες οι διαδρομές εγγραφής καταγράφουν πλέον σε μορφή ISO 8601 (UTC,TκαιZ). - Αντίκτυπος: Οι clients που κάνουν parse το
updated_atμεnew Date(...)(SDKs, CLI, Dashboard), διάβαζαν τη μορφή με το κενό διάστημα ως τοπική ώρα — το CLI εμφάνιζε την ώρα μετατοπισμένη κατά την τοπική διαφορά (offset) για κώδικες που είχαν υποστεί επεξεργασία μία φορά (Βιέννη: −2 ώρες). Αυτό διορθώθηκε. Επιπλέον, μια μετανάστευση δεδομένων (data migration) κανονικοποιεί τις ήδη αποθηκευμένες τιμές στην παλιά μορφή σε ISO, ώστε η ταξινόμηση και οι συγκρίσεις σε μεικτά δεδομένα να είναι σωστές. Καμία αλλαγή στα ονόματα των πεδίων ή στη δομή της απόκρισης. - Υπόβαθρο: Ίδια κατηγορία σφάλματος με τις δύο διορθώσεις παρακάτω (λήξη API-Key, όριο επανασάρωσης): το
datetime('now')της SQLite γράφειYYYY-MM-DD HH:MM:SS, ενώ όλοι οι άλλοι εγγραφείς γράφουν ISO 8601. Μια δοκιμή προστασίας πηγαίου κώδικα (source code guard test) θα αποτρέψει μελλοντικές εμφανίσεις.
2026-08 · Η σελιδοποίηση λίστας δεν χάνει πλέον κωδικούς batch
- Διόρθωση: Τα
GET /v1/codesκαιGET /v1/dppπραγματοποιούσαν σελιδοποίηση αποκλειστικά μέσω τουcreated_at. Ωστόσο, οι κωδικοί από ταPOST /v1/codes/batch,POST /v1/dpp/batchκαι την εισαγωγή CSV/XLSX μοιράζονται μία κοινή χρονική σήμανση — μόλις ένα batch ήταν μεγαλύτερο από τοlimit(προεπιλογή 20), η δεύτερη σελίδα δεν επέστρεφε πλέον τις υπόλοιπες γραμμές της ίδιας χρονικής σήμανσης. Οι κωδικοί υπήρχαν και ήταν προσβάσιμοι μέσω τουGET /v1/codes/:id, αλλά δεν εμφανίζονταν ποτέ στη λίστα (Dashboard, CLIqr3 list, SDKs, MCP). Ο κέρσορας είναι πλέον ένα keyset μέσω του(created_at, id). - Αλλαγή API: Το
meta.pagination.next_cursorείναι πλέον μια αδιαφανής τιμή (base64url) αντί για μια απλή χρονική σήμανση. Όσοι επιστρέφουν τον κέρσορα αμετάβλητο ως?cursor=— όπως ακριβώς κάνουν το Dashboard, το CLI, όλα τα SDKs και ο MCP-server — δεν χρειάζεται να αλλάξουν τίποτα. Οι παλιοί κέρσορες χρονικής σήμανσης θα συνεχίσουν να γίνονται δεκτοί μεταβατικά· οι μη αναγνώσιμοι κέρσορες επιστρέφουν πλέον400αντί να επιστρέφουν σιωπηρά την πρώτη σελίδα. - Αντίκτυπος: Αν μετά από μια εισαγωγή batch βλέπατε στη λίστα λιγότερους κωδικούς από όσους είχαν δημιουργηθεί: Οι κωδικοί δεν είχαν χαθεί ποτέ — η λίστα τους εμφανίζει πλέον πλήρως. Δεν απαιτείται μετανάστευση.
2026-08 · Οι επανασαρώσεις ασφαλείας εκτελούνται ξανά σε 24ωρη βάση
- Διόρθωση: Η περιοδική επανασάρωση των URL προορισμού και των συνδέσμων της σελίδας προορισμού (Google Web Risk) παρέλειπε κώδικες των οποίων η τελευταία σάρωση έγινε την ίδια ημερολογιακή ημέρα με το όριο (cutoff) των 24 ωρών — ανάλογα με την ώρα, η επανασάρωση καθυστερούσε έως και μία επιπλέον ημέρα. Το όριο (cutoff) υπολογίζεται πλέον στην ίδια μορφή ISO στην οποία αποθηκεύονται οι χρονικές σημάνσεις (timestamps) σάρωσης.
- Αντίκτυπος: Ένα URL προορισμού που χαρακτηρίζεται ως μη ασφαλές μετά την τελευταία σάρωση, οδηγεί ξανά στην αυτόματη παύση του κώδικα εντός του τεκμηριωμένου παραθύρου 24 ωρών. Καμία αλλαγή στο API ή στη μορφή απόκρισης.
2026-08 · Τα API-Keys λήγουν τη στιγμή της λήξης τους
- Διόρθωση: Ένα API-Key, του οποίου το
expires_atήταν την ίδια ημέρα, γινόταν δεκτό μέχρι τα μεσάνυχτα UTC. Η λήξη συγκρίνεται πλέον ως χρονική σήμανση αντί για συμβολοσειρά — ένα ληγμένο Key επιστρέφει αμέσως401. - Υπόβαθρο: Το
expires_atαποθηκεύεται ως ISO χρονική σήμανση (2026-08-14T09:00:00Z), ενώ η πλευρά σύγκρισης παρείχε τη μορφή με κενό διάστημα (2026-08-14 09:00:00). Η απλή σύγκριση συμβολοσειρών ήταν επομένως σωστή μόνο εφόσον διέφερε ήδη η ημερομηνία. - Αντίκτυπος: Δεν απαιτείται μετανάστευση, η μορφή απόκρισης του
GET /v1/api-keysπαραμένει αμετάβλητη. Μη αναγνώσιμες τιμές λήξης θεωρούνται πλέον ληγμένες αντί για έγκυρες.
2026-08 · Αναφορά API: Τεκμηρίωση διαχείρισης Tenant
- OpenAPI: Η προδιαγραφή — και συνεπώς η διαδραστική αναφορά — τεκμηριώνει πλέον Οργανισμούς (συμπεριλαμβανομένου του
GET /v1/organizations/usage), Workspaces, Μέλη & Ρόλους και Audit-Logs. - Billing: Η επισκόπηση προγραμμάτων (
GET /v1/billing/plans) είναι δημόσια· το Checkout (POST /v1/billing/checkout) και η πύλη πελατών Stripe (GET /v1/billing/portal) ορίζονται ως endpoints για διαχειριστές οργανισμών. - Εξαγωγή σαρώσεων: Τα στατιστικά σαρώσεων (
GET /v1/codes/{id}/scans) και η εξαγωγή ακατέργαστων δεδομένων (…/scans.csv,…/scans.xlsx) είναι πλήρως τεκμηριωμένα — συμπεριλαμβανομένης της σημείωσης για τον ΓΚΠΔ: Τοip_hashδεν περιλαμβάνεται ποτέ στην εξαγωγή. - Συμπεριφορά σφάλματος: Έχει επίσης τεκμηριωθεί πρόσφατα η απάντηση
400της επικύρωσης αιτήματος: Το body είναι το ακατέργαστο σφάλμα Zod, όχι ένα έγγραφο προβλήματος RFC-7807 — παρόλα αυτά, παραδίδεται με το Content-Typeapplication/problem+json.
2026-08 · Αντιγραφή δημόσιων συνδέσμων αρχείων
- Dashboard: Τα δημόσια αρχεία στη σελίδα λεπτομερειών κώδικα διαθέτουν πλέον ένα κουμπί που αντιγράφει τον δημόσιο σύνδεσμό τους στο πρόχειρο – έτοιμο προς χρήση ως URL προορισμού ενός QR-Code, εάν θέλετε η σάρωση να ανοίγει αμέσως ένα συγκεκριμένο έγγραφο αντί για τη σελίδα προορισμού με τη λίστα αρχείων.
- API: Τα endpoints αρχείων (
/v1/files) επιστρέφουν επιπλέον το πεδίοpublic_url. Το πεδίο αυτό ορίζεται μόνο για αρχεία μεvisibility: public– τα ιδιωτικά αρχεία δεν λαμβάνουν δημόσια διεύθυνση. - Συμπεριφορά: Ο σύνδεσμος δεν απαιτεί σύνδεση και ανοίγει το αρχείο απευθείας στο πρόγραμμα περιήγησης. Η αντικατάσταση του αρχείου τον αφήνει αμετάβλητο, επομένως ένας εκτυπωμένος κώδικας που οδηγεί σε αυτόν παραμένει έγκυρος. Λεπτομέρειες: Αρχεία & Φύλλα Δεδομένων.
2026-07 · Ρόλοι ομάδας: Συντάκτης χωρίς διαγραφή & Χρέωση διαχειριστή
- Νέο: Ρόλος μέλους Συντάκτης (χωρίς διαγραφή) — δημιουργεί και επεξεργάζεται QR-Codes, αρχεία και Digital Product Passports, αλλά δεν μπορεί να διαγράψει τίποτα ούτε να δημιουργήσει API-Keys. Όλα τα καταστροφικά endpoints ελέγχουν τον ρόλο στην πλευρά του διακομιστή (
403). - Χρέωση: Οι αναβαθμίσεις προγραμμάτων και η πύλη πελατών Stripe (
POST /v1/billing/checkout,GET /v1/billing/portal) προορίζονται πλέον αποκλειστικά για τους διαχειριστές του οργανισμού — όλοι οι άλλοι ρόλοι βλέπουν μια επισκόπηση προγράμματος μόνο για ανάγνωση. - Dashboard: Οι ενέργειες που δεν επιτρέπονται από τον ρόλο του χρήστη αποκρύπτονται: Ένας Αναγνώστης δεν βλέπει, για παράδειγμα, κουμπιά για δημιουργία, επεξεργασία ή διαγραφή, ενώ οι λίστες, οι λήψεις και τα στατιστικά στοιχεία παραμένουν ορατά. Λεπτομέρειες: Ομάδα & Ρόλοι.
2026-06 · Εξωτερικοί σύνδεσμοι στη σελίδα προορισμού του κώδικα
- Σελίδα προορισμού: Η σελίδα προορισμού ενός κώδικα που φιλοξενείται από το qr3 μπορεί πλέον να εμφανίζει εξωτερικούς, αυτο-φιλοξενούμενους συνδέσμους (
{ label, url }) – επιπλέον ή αντί για μεταφορτωμένα αρχεία, για παράδειγμα για φύλλα δεδομένων στον δικό σας ιστότοπο. - API: Τα
POST/PATCH /v1/codesαποδέχονται έναν πίνακαlinks(0–20 εγγραφές,http(s), ≤ 2048 χαρακτήρες). Κάθε URL ελέγχεται με το Google Web Risk. Ένα μη ασφαλές URL επιστρέφει422. Ένας κενός πίνακας διαγράφει όλους τους συνδέσμους. - Dashboard: Προσθήκη, ταξινόμηση και αφαίρεση συνδέσμων στη σελίδα λεπτομερειών του κώδικα.
- Ασφάλεια: Οι σύνδεσμοι που αποδίδονται παραμένουν ασφαλείς από XSS (escaped, μόνο
http(s)) και η σελίδα διατηρεί την κεφαλίδαnoindex.
2026-04 · Analytics πίνακα ελέγχου (Dashboard) ανά QR-Code
- Dashboard: Το κουμπί Analytics στη λίστα των QR-Codes ανοίγει πλέον τη σελίδα στατιστικών του αντίστοιχου QR-Code στη διαδρομή
/dashboard/codes/{id}. - Routing: Το ψευδώνυμο (alias)
/dashboard/codesεξακολουθεί να ανακατευθύνει στο/dashboard, αλλά δεν παρεμποδίζει πλέον τις διαδρομές λεπτομερειών όπως η/dashboard/codes/{id}. - API: Η σελίδα λεπτομερειών φορτώνει τον QR-Code απευθείας μέσω
GET /v1/codes/:id. Έτσι, δεν εξαρτάται πλέον από τα όρια σελιδοποίησης (pagination limits) της λίστας. - Δοκιμές: Οι δοκιμές παλινδρόμησης (regression tests) καλύπτουν την ανακατεύθυνση του ψευδωνύμου και την απευθείας φόρτωση του κώδικα.
2026-04 · Διάλογος διαγραφής πίνακα ελέγχου (Dashboard) για QR-Codes
- Dashboard: Το εικονίδιο του κάδου απορριμμάτων στη λίστα των QR-Codes ανοίγει πλέον έναν προσαρμοσμένο διάλογο React αντί για ένα εγγενές αναδυόμενο παράθυρο (popup) του προγράμματος περιήγησης.
- Ανατροφοδότηση: Μετά τη διαγραφή, εμφανίζεται μια ειδοποίηση toast για επιτυχία ή σφάλμα.
- Δοκιμές: Το αρχείο
packages/dashboard/tests/dashboard.test.tsαποτρέπει παλινδρομήσεις στη χρήση τηςconfirm()στη ροή διαγραφής QR-Code.
2026-04 · Δοκιμή σύντομου συνδέσμου πίνακα ελέγχου (Dashboard) για δυναμικά QR-Codes
- Dashboard: Οι σύντομοι κωδικοί (shortcodes) στη λίστα των QR-Codes είναι πλέον άμεσα κλικάσιμοι ως εξωτερικοί σύνδεσμοι ανακατεύθυνσης. Το εικονίδιο εξωτερικού συνδέσμου δίπλα στο π.χ.
wu3qaaανοίγει τη διεύθυνσηhttps://qr3.app/{shortCode}σε νέα καρτέλα. - i18n: Προσθήκη κειμένων tooltip για Γερμανικά και Αγγλικά.
- Δοκιμές: Το αρχείο
packages/dashboard/tests/dashboard.test.tsπροστατεύει το href του συνδέσμου, τη συμπεριφορά νέας καρτέλας, τα χαρακτηριστικάnoopener noreferrerκαι το εικονίδιο από παλινδρομήσεις.
2026-04 · Διαδρομή Redirect-Worker για δυναμικά QR-Codes
- Διόρθωση: Τα δυναμικά QR-Codes στη διεύθυνση
https://qr3.app/{shortCode}επεξεργάζονται ξανά από τον Redirect-Worker. Η διαδρομή παραγωγής (production route) χρησιμοποιεί πλέον τοqr3.app/*, επειδή οι διαδρομές Cloudflare Workers δεν υποστηρίζουν παραμέτρους διαδρομής:code. - Θωράκιση: Οι διαδρομές που δεν ταιριάζουν προωθούνται στην αρχική προέλευση (landing origin), ώστε οι κανονικές σελίδες όπως η
/de/pricingνα μην αποκλείονται από τον Redirect-Worker. - Δοκιμές: Το αρχείο
packages/redirect/tests/unit/redirect.test.tsελέγχει τη διαδρομή wildcard, την επεξεργασία shortcode και την προώθηση στην προέλευση (origin pass-through).
2026-04 · Επισκόπηση σαρώσεων DPP χώρου εργασίας (Q3.4.2)
- Νέο:
GET /v1/workspace/stats/dpp?days=30— συγκεντρώνει όλες τις σαρώσειςdpp_scansτου χώρου εργασίας του API-Key (active_dpps,scans_by_day,top_dppsμε όνομα προϊόντος/κατηγορία). - Dashboard: Κάρτα στην αρχική σελίδα (
/dashboard) με ραβδόγραμμα 30 ημερών + λίστες κορυφαίων στοιχείων — παράλληλα με τις κάρτες QR-Code. - Δημόσιο: Σύντομος σύνδεσμος μάρκετινγκ
GET /dpp/dpp_<id>(ένα τμήμα) για ζωντανές επιδείξεις (live demos), παράλληλα με το/dpp/{gtin}/{serial}.
2026-04 · Analytics σαρώσεων DPP (Q3.4.1)
- Νέο:
GET /v1/dpp/:id/stats?days=30— συγκεντρωτικές σαρώσεις του δημόσιου GS1-Resolver ανά DPP. Πεδία:total_scans,period_scans,scans_by_day,top_countries,top_devices,top_representations. - Νέο: Πίνακας
dpp_scans(μεταφορά0011) — ξεχωριστά από τιςscans(Redirect-Worker). Οι διευθύνσεις IP κατακερματίζονται (hashed) με καθημερινά εναλλασσόμενο salt, οι ακατέργαστες IP δεν φτάνουν ποτέ στη D1. - Dashboard: Κάρτα μικρογραφήματος (SVG, χωρίς βιβλιοθήκη γραφημάτων) στη διαδρομή
/dashboard/dpp/:dppIdμε ράβδους 30 ημερών + αναλύσεις των κορυφαίων 3 (top-3 breakdowns). Κατάσταση κενού (empty-state) μόλις ένα DPP είναι ενεργό αλλά δεν έχει ακόμη σαρώσεις.
2026-04 · Προσομοιωτής συμμόρφωσης ΕΕ σε πραγματικό χρόνο (Q3.3.7)
- Νέο:
POST /v1/dpp/:id/validate-update— προσομοιώνει μερικές ενημερώσεις χωρίς διατήρηση κατάστασης (stateless) (κατάσταση, λίστα αγορών, …) χωρίς μόνιμη αποθήκευση. Η απόκριση περιέχει ταeu_compliance+preview.changed_fields. - Dashboard: Κάρτα προσομοιωτή στις λεπτομέρειες DPP (
/dashboard/dpp/:dppId) — ετικέτες (chips) γιαDE/AT/FR/IT/ES/NL+ προσαρμοσμένες, αναπτυσσόμενο μενού κατάστασης, Preview EU impact / Save changes / Reset. Μη αποκλειστικό (non-blocking) μέσω του RemixuseFetcher. - Θωράκιση: Εξωτερικευμένοι βοηθοί προσομοιωτή (
readUpdatePatchFromForm,marketCountriesKey) + 18 νέες δοκιμές μονάδας (unit tests). Διόρθωση σφάλματος: Η μεμονωμένη εισαγωγή μη ISO τιμής δεν διαγράφει πλέον τη λίστα αγορών.
2026-04 · Προεπισκόπηση συμμόρφωσης ΕΕ σε πραγματικό χρόνο στη φόρμα δημιουργίας (Q3.3.6)
- Τροποποιήθηκε: Το
POST /v1/dpp/validateεπιστρέφει επιπλέον τοeu_compliance— ο ίδιος επικυρωτής (validator) με τοGET /v1/dpp/:id/eu-compliance, stateless πριν από την αποθήκευση. - Dashboard: Προεπισκόπηση κάτω από το υπάρχον πλαίσιο επικύρωσης (validation panel) + νέο πλαίσιο προστασίας αποθήκευσης (Save-Guard-Banner) πριν από τα κουμπιά υποβολής, εάν υπάρχουν εκκρεμή σφάλματα/προειδοποιήσεις (i18n-pluralization DE/EN).
2026-04 · Εργαλείο επικύρωσης ΕΕ + UI κλωστοϋφαντουργικών (Q3.3.4 + Q3.3.5)
- Νέο: Εργαλείο επικύρωσης συμμόρφωσης ΕΕ με 5 κανόνες κλωστοϋφαντουργικών (
TEXTILE_AGEC_REQUIRED,TEXTILE_MICROPLASTICS_CONSISTENCY,TEXTILE_SVHC_THRESHOLD,TEXTILE_GREENWASHING,TEXTILE_ESPR_READY). - Νέο:
GET /v1/dpp/:id/eu-complianceμεcompliant/espr_ready/issues[]/summary. - Dashboard: Ενότητα συμμόρφωσης ΕΕ (EU-Compliance-Section) στις λεπτομέρειες DPP (πλακίδια σύνοψης, ομαδοποιημένες κάρτες προβλημάτων, σήμα ESPR-Ready στην κεφαλίδα).
2026-04 · Σχήμα DPP κλωστοϋφαντουργικών (Q3.3.1–Q3.3.3)
- Νέο: Κατηγορία
textileμε υποχρεωτική αλυσίδα AGEC (Ύφανση/Πλέξιμο → Βαφή/Εκτύπωση → Ραφή/Κατασκευή), ανά ίναorigin_country+recycled_pct,svhc_substances[], ESPR-Opt-in (PEF, διάρκεια ζωής, Recyclability). - Νέο: Βασικό πεδίο
market_countries: string[](ISO 3166-1 alpha-2) σε όλες τις κατηγορίες DPP — ελέγχει τους ειδικούς κανόνες AGEC για τη Γαλλία (FR) και τη γαλλική υποχρεωτική σημείωση καταναλωτή. - Νέο: Πρότυπο HTML καταναλωτή με πλαίσιο προειδοποίησης μικροπλαστικών AGEC, αλυσίδα προέλευσης 3 σταδίων (flag-pills), λίστα SVHC, ενότητα Durability και Recyclability.
- Μεταφορά:
0010_dpp_market_countries(D1).
2026-04 · Μαζική εισαγωγή DPP (Q3.2.1–Q3.2.5)
- Νέο: Το
POST /v1/dpp/importαποδέχεται CSV και XLSX (συμβατό με Workers μέσω του SheetJSxlsx, ~283 KB gzip bundle). - Κλιμακούμενο: όριο βάσει προγράμματος (Free 100 → Enterprise 10k) + τμηματοποιημένο
db.batch()ανά 100 + όριο σώματος (body limit) 5 MB. - Νέο: Αναφορά σφαλμάτων ως CSV στο πεδίο
errors_csvτης απόκρισης 201. ΤοGET /v1/dpp/import/templates/:category?format=csv|xlsxπαρέχει έτοιμα πρότυπα για μπαταρίες και κλωστοϋφαντουργικά. - Dashboard: Μεταφόρτωση με μεταφορά και απόθεση (Drag-and-Drop) στη διαδρομή
/dashboard/dpp/importμε διαμεσολαβητή προτύπων (template proxy) και ενσωματωμένη λήψη CSV.
Μη διασπαστικές αλλαγές (Non-Breaking) — Επεκτάσεις LTS
Όλες οι παραπάνω αλλαγές είναι προσθετικές:
- Οι υπάρχοντες πελάτες του
POST /v1/dpp/validateαγνοούν το νέο πεδίοeu_complianceχωρίς να απαιτείται αλλαγή. - Οι υπάρχουσες ροές
batteryπαραμένουν αμετάβλητες. - Το πεδίο
market_countriesείναι προαιρετικό και έχει ως προεπιλογή το[].
Δείτε την Έκδοση API για την πολιτική διασπαστικών αλλαγών (Breaking-Change-Policy).