EL-i nõuetelevastavuse kontrollimine
EL-i vastavuse kontrollimine
qr3.app sisaldab integreeritud EL-i validaatorit digitaalsete tootepasside (Digital Product Passports) jaoks. See kontrollib sinu DPP-sid asjakohaste EL-i eeskirjade (ESPR, Loi AGEC) suhtes ja tagastab struktureeritud probleemid (issues) koos tõsidusastme (severity), väljateekonna (field path), vihjete ja valikulise ESPR-ready märgiga.
Sisenemispunkte on kolm:
- Serveripoolne, juba salvestatud DPP-d —
GET /v1/dpp/:id/eu-compliance - Reaalajas eelvaade loomise vormis —
POST /v1/dpp/validate - Reaalajas simulaator detailvaates —
POST /v1/dpp/:id/validate-update
Kõik kolm tagastavad sama EuComplianceResult kuju (shape) — seega pead hindamise loogika juurutama vaid kord.
Tulemuse kuju (Shape)
{ "compliant": false, "espr_ready": true, "issues": [ { "code": "TEXTILE_AGEC_REQUIRED", "severity": "error", "field": "textile_data.country_weaving_knitting", "message": "AGEC chain country is required for products sold on the French market", "hints": { "market": "FR" } }, { "code": "TEXTILE_GREENWASHING", "severity": "warning", "field": "product_name", "message": "\"natural\" is a prohibited term under AGEC", "hints": { "term": "natural", "locale": "en", "category": "generic" } } ], "summary": { "errors": 1, "warnings": 1, "info": 0 }}compliant: true⇔summary.errors === 0espr_ready: true⇔ kõik ESPR-i opt-in väljad on määratud (vaata Tekstiili DPP)issues[]on stabiilselt sorteeritud tõsidusastme (error→warning→info) ja seejärel koodi järgi
Tõsidusastmed (Severity)
| Tõsidusaste | Tähendus | Näide |
|---|---|---|
error | Blokeerib EL-i vastavuse; tuleks enne avaldamist parandada | TEXTILE_AGEC_REQUIRED, kui FR on turul ja tarneahel on puudulik |
warning | Soovitus; klient saab salvestada, kuid peaks tegutsema | TEXTILE_GREENWASHING väljaspool FR-i |
info | Staatuse signaal ilma tegutsemisvajaduseta | TEXTILE_ESPR_READY — kõik ESPR-i opt-in väljad on täidetud |
Reeglite kataloog (Tekstiil + Aku)
Tekstiil (Q3.3.4)
| Kood | Tõsidusaste | Päästik (Auslöser) |
|---|---|---|
TEXTILE_AGEC_REQUIRED | error (FR) · warning (muidu) | AGEC-ahel (kudumine/värvimine/rõivaste valmistamine) on puudulik, FR on turul |
TEXTILE_MICROPLASTICS_CONSISTENCY | error | Sünteetika ≥ 50%, kuid contains_microplastics !== true |
TEXTILE_SVHC_THRESHOLD | warning | SVHC-kanne ilma CAS-numbri või kontsentratsioonita |
TEXTILE_GREENWASHING | error (FR) · warning (muidu) | Keelatud sõnade nimekirjas olev termin väljal product_name/material |
TEXTILE_ESPR_READY | info | Kõik ESPR-i väljad B7–B15 on täidetud |
Aku (Faas 4a)
Validaator kontrollib piirväärtusi EL-i akumäärusest 2023/1542 (ringlussevõetud materjali sisalduse künnised, süsiniku jalajälje klassid, miinimumgarantii jne). Üksikasjad leiab Aku DPP dokumentatsioonist.
Reaalajas eelvaade loomise vormis
Niipea kui lood töölaual (dashboard) uue DPP (/dashboard/dpp/new), käivitub sama validaator olekuta (stateless) igal valideerimise edasi-tagasi päringul (roundtrip) — ilma et passi peaks salvestama. Sektsioon eu_compliance ilmub otse olemasoleva valideerimispaneeli alla ning tõstab vead ja hoiatused esile enne vormi postitamist (submit).
Otsene API juurdepääs:
curl -X POST https://qr3.app/v1/dpp/validate \ -H "Authorization: Bearer $API_KEY" \ -H "X-Workspace-Id: $WS_ID" \ -H "Content-Type: application/json" \ -d '{ "category": "textile", "gtin": "04012345678901", "product_name": "Natural Cotton T-Shirt", "manufacturer": "EcoWear GmbH", "origin_country": "PT", "market_countries": ["FR"], "textile_data": { "fiber_composition": [{ "material": "cotton", "percentage": 100, "recycled_pct": 0 }] } }'Vastus sisaldab:
data.valid— süntaktiline kehtivus (Zod)data.errors[]— tavalised Zod-i veaddata.jsonld_preview— JSON-LD eelvaadedata.eu_compliance— EL-i validaatori tulemus (null, kui Zod-i valideerimine ebaõnnestub)
Kui eu_compliance.summary.errors > 0, kuvab töölaud Save-Guard bänneri vahetult postitamisnupu (submit) kohal — salvestamist ei blokeerita, kuid näed tagajärgi enne klikkimist.
Reaalajas simulaator detailvaates
Aadressil /dashboard/dpp/:dppId on vastavuse sektsiooni all simulaatori kaart. See võimaldab muuta kahte vastavuse seisukohalt kõige olulisemat välja (status ja market_countries) ning näha mõju koheselt — ilma olemasolevaid andmeid puudutamata. Tüüpiline voog:
- Eelvaade: “Mis saab, kui lisan FR-i tootevalikusse?” → Vali kiip “FR” → “Preview EU impact” →
TEXTILE_AGEC_REQUIREDmuutub nähtavaks - Parandus: Täida tarneahel (väljaspool simulaatorit loomise või hulgivoo kaudu)
- Salvestamine: “Save changes” salvestab staatuse/turunimekirja otse päringuga
PUT /v1/dpp/:id
Otsene API juurdepääs:
curl -X POST https://qr3.app/v1/dpp/$DPP_ID/validate-update \ -H "Authorization: Bearer $API_KEY" \ -H "X-Workspace-Id: $WS_ID" \ -H "Content-Type: application/json" \ -d '{ "market_countries": ["DE", "FR"], "status": "live" }'Vastus täiendab standardtulemust preview-objektiga:
{ "data": { "compliant": false, "espr_ready": false, "issues": [/* … */], "summary": { "errors": 1, "warnings": 0, "info": 0 }, "preview": { "status": "live", "landing_locale": "de", "market_countries": ["DE", "FR"], "changed_fields": ["status", "market_countries"] } }}changed_fields[] loetleb ainult väljad, mis tegelikult muutuksid — nii saad näiteks kasutajaliideses esile tõsta ainult muudetud kiibid.
Tühi päringu keha (body) on lubatud ja tagastab praeguse vastavushinnangu (hetkeseisu uuesti kontrollimine).
Automatiseerimine
CI-konveier (CI-Pipeline)
Tüüpiline CI-kontroll:
STATUS=$(curl -s -o /tmp/out.json -w "%{http_code}" \ https://qr3.app/v1/dpp/$DPP_ID/eu-compliance \ -H "Authorization: Bearer $API_KEY" \ -H "X-Workspace-Id: $WS_ID")
if [ "$STATUS" != "200" ]; then exit 1fi
jq -e '.data.summary.errors == 0' /tmp/out.json > /dev/nullMCP-server
Kaasasolev @qr3/mcp-server pakub muuhulgas tööriista validate_dpp — tehisintellekti agendid saavad selle abil enne loomise päringut (create-call) kontrollida, kas olemasolevad andmed vastavad AGEC-reeglitele.
Sagedased vead
| Probleem (Issue) | Põhjus | Parandus |
|---|---|---|
TEXTILE_MICROPLASTICS_CONSISTENCY | Polüestri sisaldus ≥ 50%, kuid lipuke on false | Määra contains_microplastics: true |
TEXTILE_AGEC_REQUIRED koos hints.market: "FR" | FR on turul, tarneahel on puudulik | Määra country_weaving_knitting, country_dyeing_printing, country_assembly |
TEXTILE_GREENWASHING kui error | Keelatud termin + FR turul | Eemalda termin väljalt product_name või kohanda turgu |
TEXTILE_SVHC_THRESHOLD | SVHC-aine ilma CAS-ita | Sisesta CAS-number REACH-nimekirjast |
Järgmised sammud
- Tekstiili DPP — skeem, tarneahel, mikroplasti hoiatuskast
- Aku DPP — akupassi kohustuslikud väljad
- API viide — kõik EL-i vastavuse lõpp-punktid (endpoints) üksikasjalikult