Skip to content

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:

  1. Serveripoolne, juba salvestatud DPP-dGET /v1/dpp/:id/eu-compliance
  2. Reaalajas eelvaade loomise vormisPOST /v1/dpp/validate
  3. Reaalajas simulaator detailvaatesPOST /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: truesummary.errors === 0
  • espr_ready: true ⇔ kõik ESPR-i opt-in väljad on määratud (vaata Tekstiili DPP)
  • issues[] on stabiilselt sorteeritud tõsidusastme (errorwarninginfo) ja seejärel koodi järgi

Tõsidusastmed (Severity)

TõsidusasteTähendusNäide
errorBlokeerib EL-i vastavuse; tuleks enne avaldamist parandadaTEXTILE_AGEC_REQUIRED, kui FR on turul ja tarneahel on puudulik
warningSoovitus; klient saab salvestada, kuid peaks tegutsemaTEXTILE_GREENWASHING väljaspool FR-i
infoStaatuse signaal ilma tegutsemisvajadusetaTEXTILE_ESPR_READY — kõik ESPR-i opt-in väljad on täidetud

Reeglite kataloog (Tekstiil + Aku)

Tekstiil (Q3.3.4)

KoodTõsidusastePäästik (Auslöser)
TEXTILE_AGEC_REQUIREDerror (FR) · warning (muidu)AGEC-ahel (kudumine/värvimine/rõivaste valmistamine) on puudulik, FR on turul
TEXTILE_MICROPLASTICS_CONSISTENCYerrorSünteetika ≥ 50%, kuid contains_microplastics !== true
TEXTILE_SVHC_THRESHOLDwarningSVHC-kanne ilma CAS-numbri või kontsentratsioonita
TEXTILE_GREENWASHINGerror (FR) · warning (muidu)Keelatud sõnade nimekirjas olev termin väljal product_name/material
TEXTILE_ESPR_READYinfoKõ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:

Terminal window
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 vead
  • data.jsonld_preview — JSON-LD eelvaade
  • data.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:

  1. Eelvaade: “Mis saab, kui lisan FR-i tootevalikusse?” → Vali kiip “FR” → “Preview EU impact” → TEXTILE_AGEC_REQUIRED muutub nähtavaks
  2. Parandus: Täida tarneahel (väljaspool simulaatorit loomise või hulgivoo kaudu)
  3. Salvestamine: “Save changes” salvestab staatuse/turunimekirja otse päringuga PUT /v1/dpp/:id

Otsene API juurdepääs:

Terminal window
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:

Terminal window
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 1
fi
jq -e '.data.summary.errors == 0' /tmp/out.json > /dev/null

MCP-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õhjusParandus
TEXTILE_MICROPLASTICS_CONSISTENCYPolüestri sisaldus ≥ 50%, kuid lipuke on falseMäära contains_microplastics: true
TEXTILE_AGEC_REQUIRED koos hints.market: "FR"FR on turul, tarneahel on puudulikMäära country_weaving_knitting, country_dyeing_printing, country_assembly
TEXTILE_GREENWASHING kui errorKeelatud termin + FR turulEemalda termin väljalt product_name või kohanda turgu
TEXTILE_SVHC_THRESHOLDSVHC-aine ilma CAS-itaSisesta 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