История на промените
История на промените
Подбрани акценти от последните версии. За пълните версии на API и политиката за несъвместими промени (Breaking Changes) вижте Версиониране на API & LTS политика.
Подробни промени по отделните крайни точки: OpenAPI спецификация и интерактивна API справка.
2026-04 · Анализи в таблото за управление (Dashboard) за всеки QR код
- Dashboard: Бутонът за анализи в списъка с QR кодове вече отваря страницата със статистика за съответния QR код на адрес
/dashboard/codes/{id}. - Routing: Псевдонимът (alias)
/dashboard/codesпродължава да пренасочва към/dashboard, но вече не прихваща детайлни маршрути като/dashboard/codes/{id}. - API: Страницата с детайли зарежда QR кода директно чрез
GET /v1/codes/:id; по този начин тя вече не зависи от ограниченията за пагинация на списъка. - Tests: Регресионните тестове покриват пренасочването на псевдонима и директното зареждане на кода.
2026-04 · Диалогов прозорец за изтриване на QR кодове в таблото (Dashboard)
- Dashboard: Иконата с кошче в списъка с QR кодове вече отваря собствен React диалогов прозорец вместо системно изскачащо съобщение на браузъра.
- Feedback: След изтриване се появява изскачащо известие (toast) за успех или грешка.
- Tests:
packages/dashboard/tests/dashboard.test.tsпредотвратява регресии приconfirm()в процеса на изтриване на QR кодове.
2026-04 · Тест на кратки връзки в таблото (Dashboard) за динамични QR кодове
- Dashboard: Кратките кодове (shortcodes) в списъка с QR кодове вече могат да се кликват директно като външни връзки за пренасочване. Иконата за външна връзка до напр.
wu3qaaотваряhttps://qr3.app/{shortCode}в нов раздел. - i18n: Добавени са текстове за подсказки (tooltips) на немски и английски език.
- Tests:
packages/dashboard/tests/dashboard.test.tsзащитава href на връзката, поведението за нов раздел,noopener noreferrerи иконата срещу регресии.
2026-04 · Маршрут на Redirect-Worker за динамични QR кодове
- Fix: Динамичните QR кодове на адрес
https://qr3.app/{shortCode}отново се обработват от Redirect-Worker. Производственият маршрут (production route) вече използваqr3.app/*, тъй като маршрутите на Cloudflare Workers не поддържат параметри на пътя от типа:code. - Härtung: Несъвпадащите пътища се препращат към оригиналния хост (landing origin), за да не се блокират нормални страници като
/de/pricingот Redirect-Worker. - Tests:
packages/redirect/tests/unit/redirect.test.tsпроверява маршрута с маска (wildcard route), обработката на кратки кодове и преминаването към оригиналния хост (origin pass-through).
2026-04 · Общ преглед на сканиранията на DPP в работното пространство (Q3.4.2)
- Neu:
GET /v1/workspace/stats/dpp?days=30— агрегира всичкиdpp_scansна работното пространство на API ключа (active_dpps,scans_by_day,top_dppsс име на продукт/категория). - Dashboard: Карта на началната страница (
/dashboard) с 30-дневна хистограма + списъци с най-популярните — успоредно с картите за QR кодове. - Public: Маркетингова кратка връзка
GET /dpp/dpp_<id>(един сегмент) за демонстрации на живо, успоредно с/dpp/{gtin}/{serial}.
2026-04 · Анализи на сканиранията на DPP (Q3.4.1)
- Neu:
GET /v1/dpp/:id/stats?days=30— агрегирани сканирания от публичния GS1-Resolver за всяко DPP. Полета:total_scans,period_scans,scans_by_day,top_countries,top_devices,top_representations. - Neu: Таблица
dpp_scans(миграция0011) — отделно отscans(Redirect-Worker). IP адресите се хешират с ежедневно ротираща сол (salt), суровите IP адреси никога не достигат до D1. - Dashboard: Мини диаграма (SVG, без външна библиотека за графики) на страница
/dashboard/dpp/:dppIdс 30-дневни стълбове + разбивка на топ 3. Празно състояние (empty state), веднага щом даден DPP е активен, но все още няма сканирания.
2026-04 · Симулатор за съответствие с изискванията на ЕС в реално време (Q3.3.7)
- Neu:
POST /v1/dpp/:id/validate-update— симулира частични актуализации без състояние (stateless) (статус, списък с пазари, …) без персистентност. Отговорът съдържаeu_compliance+preview.changed_fields. - Dashboard: Карта на симулатора в детайлите на DPP (
/dashboard/dpp/:dppId) — чипове заDE/AT/FR/IT/ES/NL+ персонализирани, падащо меню за статус, Preview EU impact / Save changes / Reset. Неблокиращо чрез RemixuseFetcher. - Härtung: Изнесени помощни функции за симулатора (
readUpdatePatchFromForm,marketCountriesKey) + 18 нови единични теста (unit tests); отстранена грешка: въвеждането на единичен не-ISO код вече не изтрива списъка с пазари.
2026-04 · Преглед на съответствието с изискванията на ЕС в реално време във формата за създаване (Q3.3.6)
- Geändert:
POST /v1/dpp/validateдопълнително връщаeu_compliance— същият валидатор катоGET /v1/dpp/:id/eu-compliance, без състояние (stateless) преди записване. - Dashboard: Преглед под съществуващия панел за валидация + нов банер за защита при запис (Save-Guard) преди бутоните за изпращане, ако има нерешени грешки/предупреждения (i18n плурализация за DE/EN).
2026-04 · Валидатор за ЕС + Текстилен потребителски интерфейс (Q3.3.4 + Q3.3.5)
- Neu: Валидатор за съответствие с изискванията на ЕС с 5 текстилни правила (
TEXTILE_AGEC_REQUIRED,TEXTILE_MICROPLASTICS_CONSISTENCY,TEXTILE_SVHC_THRESHOLD,TEXTILE_GREENWASHING,TEXTILE_ESPR_READY). - Neu:
GET /v1/dpp/:id/eu-complianceсcompliant/espr_ready/issues[]/summary. - Dashboard: Секция за съответствие с изискванията на ЕС в детайлите на DPP (обобщаващи плочки, групирани карти с проблеми, бадж ESPR-Ready в заглавната част).
2026-04 · Схема за текстилен DPP (Q3.3.1–Q3.3.3)
- Neu: Категория
textileсъс задължителна верига по AGEC (тъкане/плетене → боядисване/печат → конфекциониране), за всяко влакноorigin_country+recycled_pct,svhc_substances[], ESPR-Opt-in (PEF, експлоатационен живот, Recyclability). - Neu: Основно поле
market_countries: string[](ISO 3166-1 alpha-2) за всички категории DPP — управлява специфичните за Франция правила по AGEC и френската задължителна бележка за потребителите. - Neu: Потребителски HTML шаблон с предупредително поле за микропластмаса по AGEC, 3-степенна верига на произход (хапчета с флагове), списък със SVHC, секция за Durability и Recyclability.
- Migration:
0010_dpp_market_countries(D1).
2026-04 · Масов импорт на DPP (Q3.2.1–Q3.2.5)
- Neu:
POST /v1/dpp/importприема CSV и XLSX (съвместим с Workers чрез SheetJSxlsx, ~283 KB gzip пакет). - Skaliert: лимит на базата на абонаментния план (Free 100 → Enterprise 10k) + разделяне на части (chunked)
db.batch()по 100 + 5 MB лимит на тялото (body limit). - Neu: Отчет за грешки като CSV в полето
errors_csvна отговор 201;GET /v1/dpp/import/templates/:category?format=csv|xlsxпредоставя готови шаблони за батерии и текстил. - Dashboard: Качване чрез влачене и пускане (drag-and-drop) на адрес
/dashboard/dpp/importс прокси за шаблони и директно изтегляне на CSV.
Съвместими промени (Non-Breaking) — разширения на LTS
Всички горепосочени промени са адитивни (добавъчни):
- Съществуващите клиенти на
POST /v1/dpp/validateигнорират новото полеeu_complianceбез промяна. - Съществуващите процеси за
batteryостават непроменени. - Полето
market_countriesе незадължително и по подразбиране е[].
Вижте Версиониране на API за политиката относно несъвместимите промени (Breaking-Change-Policy).