Laiko mašina DPP-ams

Įsivaizduokite, kad laikote produktą rankoje ir nuskenuojate ant jo esantį QR kodą. Vietoj PDF failo atsidaro nedidelė programėlė. Jūs matote produktą „čia ir dabar“: iš ko jis pagamintas, iš kur kilęs, į ką reikia atkreipti dėmesį. Vienu braukimu galite grįžti atgal laiku - galite peržiūrėti kiekvieną kada nors išleistą versiją.

Tai yra Transpareo Time Machinemūsų atvirojo kodo vartotojų programa, skirta bet kuriam skaitmeniniam gaminio pasui. Kodas yra paskelbtas pagal GPL v3 licenciją GitHub.

Mes ją kuriame, nes ES reglamentas dėl skaitmeninio gaminio paso buvo parengtas vartotojams - tiems, kurie laikydami produktą rankose. Dauguma tiekėjų paverčia jį atitikties forma, kurios niekas antrą kartą neskenuoja. Mes iš jos kuriame programėlę, kurią vartotojas iš tikrųjų atidaro.

Įsitikinkite patys

Pavyzdiniai gaminio pasai yra išsamūs ir užpildyti fiktyviais duomenimis: peržiūrėkite versijų istoriją ir atidarykite sertifikato plokštelę - tiesiog naršyklėje, be paskyros.

Ką daro ši programa

Keturi sąsajos taškai iš asmens, kuris laiko produktą rankoje, perspektyvos. Nereikia prisijungti, nereikia įdiegti programėlės.

1
Skenavimas

Nuskaitykite QR kodą išmaniojo telefono kamera. Programa atsidarys naršyklėje.

2
Peržiūrėti naujienas

Produktas atsiranda „dabar“ - sudedamosios dalys, medžiagos, kilmė, priežiūra, perdirbimas.

3
Naršyti istoriją

Vienu braukimo judesiu galima grįžti atgal laiku. Kiekviena ankstesnė versija su pakeitimo data ir priežastimi.

4
Dalintis

Kiekviena versija turi savo nuorodą. Asmuo dalijasi konkrečia versija su draugais arba valdžios institucijomis.

Kodėl apskritai

ES reglamentas dėl skaitmeninio gaminio paso yra didžiausias žingsnis link produktų skaidrumo per pastaruosius dešimtmečius. Jei atidžiai perskaityti pagrindinius dokumentus, matyti, kad jis yra aiškiai skirtas vartotojams. Valdžios institucijos, perdirbėjai ir remonto dirbtuvės prisitaiko prie šių reikalavimų, tačiau pagrindinis adresatas yra tas asmuo, kuris laiko produktą rankose.

Skaičiais vertinant, padėtis yra aiški. Vidutinis Europos gyventojas šio dešimtmečio pabaigoje galės nuskaityti nuo kelių dešimčių iki kelių šimtų gaminio pasų per metus. Skaičiuojant pagal 200 milijonų namų ūkių, tai sudaro milijardus vartotojų sąveikų per metus. Palyginti su tuo, valdžios institucijų ir perdirbėjų veikla skaičiais vertinant yra nežymiai maža.

Jei norima, kad reglamentas pasiektų vartotojus, vartotojams skirta svetainė turi būti gerai sukurta - greita, patraukli, nuosekli. Kitaip ji neatliks savo paskirties.

Mes nusprendėme šią vartotojams skirtą svetainę sukurti kaip atviro kodo projektą, kad ji nepriklausytų nuo vieno tiekėjo.

Eiga yra nustatyta, o manifestas - mūsų

Gaminio pasas keičiasi: remontas, nauja perdirbtų medžiagų dalis, atšaukimas. Todėl reikalavimai numato, kad ankstesnės versijos turi likti prieinamos: saugojimo standartas įšaldo kiekvieną versiją, o sąsajų standartas numato, kad kiekvieną versiją būtų galima tikslingai perskaityti. Tai, ko reikalavimai neapibrėžia, yra tarpinė dalis: sąrašas, kuris visas paso versijas sujungia į vieną istoriją. „Transpareo“ jį skelbia kaip kiekvieno paso manifestą, pasirašytą, o kiekviena versija piršto atspaudu susieta su savo pirmtake. Taip „laiko mašina“ naršo per produkto istoriją, o skaitytojas patikrina ne tik versijos autentiškumą, bet ir tai, kad ji yra naujausia iš nepertraukiamos sekos.

Tačiau programėlė nuo to nepriklauso. Jei vietoj manifesto jai parodomas atskiras pasas, kokį kiekvienas teikėjas skelbia pagal atvirus standartus, ji pateikia šią vieną versiją, patikrina jos parašą, jei toks yra, ir tiesiog neparodo laiko juostos. Pažymėjimas be parašo nelaikomas klaida, o tiesiog rodomas be patvirtinimo ženklo. Taigi ta pati programėlė taip pat rodo pažymėjimus, kurie niekada nebuvo įtraukti į „Transpareo“ duomenų bazę.

Tiekėjo keitimas be pertraukos

ES reglamentas dėl skaitmeninio gaminio paso reikalaujama, kad gaminio pasai būtų suderinami ir pagrįsti atvirais standartais - kad juos būtų galima perkelti iš vienos paslaugos ar sistemos į kitą, o ne susieti su vienu konkrečiu teikėju. Taigi nepriklausomybė nuo paslaugų teikėjo nėra papildoma sąlyga, o yra reikalavimo dalis.

Transpareo Time Machine tai yra modulis, kuris šį reikalavimą įgyvendina praktiškai. Kadangi kiekvienas gaminio pasas pateikiamas laikantis atvirų standartų - identifikavimas, nepriklausomas nuo sprendiklio, kanoninė serijinė kodavimas, viešai paskelbti raktai - o atvaizdavimo programa yra atviro kodo pagal GPL v3 licenciją, paso atvaizdavimas niekada nepriklauso nuo mūsų platformos.

Atsakingas už gaminio pasą yra ekonominės veiklos vykdytojas - gamintojas, importuotojas arba įgaliotasis atstovas. Jei jis nusprendžia pasitraukti iš „Transpareo“ ir pereiti prie kito teikėjo, pateikimas išlieka stabilus: tas pats atvirojo kodo rendereris toliau be pokyčių rodo jau paskelbtas versijas kartu su istorija, o naujas teikėjas, kuris naudoja tuos pačius atirus standartus, bus rodomas būtent toje pačioje programėlėje.

Duomenys perkeliami kartu, vartotojai nepastebi jokio pertraukos, ir niekam nereikia laukti migracijos.

Pats perkėlimas nėra projektas. „ Transpareo Time Machine “ yra statinis paketas: kartą sukurtas, nukopijuotas į bet kurį žiniatinklio serverį - ir viskas. Dizainas, kurį „Transpareo“ sistemoje nustatėte savo pasams, keliauja kartu su kiekvienu pasu kaip paskelbtas stilių lapas. Taigi pasų vaizdas, prie kurio priprato jūsų klientai, jūsų serveryje atrodys lygiai taip pat - su tomis pačiomis spalvomis, šriftu ir logotipu.

Patikrinta naršyklėje, o ne mūsų serveryje

Kiekvieno gaminio paso viršuje rodomas ženklas: „Patvirtinta „Transpareo““. Jis rodo patikrinimo rezultatą, kuris atliekamas ne mūsų serveryje, o lankytojo naršyklėje - remiantis įkeltais baitais ir išdavėjo viešaisiais raktas.

Kiekvieną DPP versiją pasirašo dvi viena nuo kitos nepriklausomos institucijos: išdavėjas ir „Transpareo“. Kad ženkliukas taptų žalias, abu parašai turi būti patikrinami. Naudodamas „Bring Your Own Key“ (BYOK) principą, išdavėjas valdo savo pasirašymo galinį tašką - „Transpareo“ niekada nesaugo privataus rakto ir tik prideda nepriklausomą priešingą parašą. Taip susidaro išdavėjo parašas, kurio „Transpareo“ pats negali sukurti.

Įsilaužtas serveris negali suklastoti žymės, nes patikrinimas atliekamas pačio lankytojo kompiuteryje.

Jei norite sužinoti daugiau, spustelėkite plokštelę. Ten pamatysite parašų grandinę, šifravimo kodus ir susietą versijų istoriją. Jei norite tik informacijos, tiesiog ignoruokite tai ir toliau skaitykite gaminio pasą.

Šis patikrinimas taip pat prieinamas kaip atskiras puslapis: adresu DPP patikrinimas įklijuokite bet kurio gaminio paso manifestą ir pamatysite išsamius patikrinimo rezultatus - net neatidarydami paties paso.

Mes paskelbiame kodą

„Transpareo Time Machine“ platinama pagal GPL v3 licenciją „GitHub“ svetainėje. Paskelbtos modifikacijos taip pat turi būti platinamos pagal GPL v3 licenciją, kad bet koks tolesnis tobulinimas būtų naudingas visuomenei.

Klonavimas, šakojimas, savarankiškas talpinimas - viskas leidžiama.

Kaip integruoti programėlę - ar įterpiant vieną eilutę į puslapį, ar kaip paketą į savo programą, ar visiškai savarankiškai talpinant - nurodyta ten esančiame README faile. Jame taip pat rasite susijusį elementą, skirtą vien tik parašų tikrinimui, kuris veikia svetainėje DPP patikrinimas.

Kas protingai naudoja šią programėlę

Ši programa pirmiausia sukurta vartotojams. Tačiau ja gali naudotis visi, kurie nori savarankiškai peržiūrėti ar patikrinti produkto duomenis.

  • Galutiniai vartotojai nuskenuoja, peržiūri, naršo, dalijasi. Nereikia prisijungti, nėra sekimo įrankių.
  • Rinkos priežiūros institucijos ir valdžios institucijos laiko, kad gaminio pasas yra programinė įranga, kurios šaltinio kodas gali būti viešai tikrinamas.
  • Remonto dirbtuvės ir perdirbėjai mato medžiagų sudėtį ir išardymo instrukcijas tiesiai ant produkto.
  • Prekės ženklai ir „Fork“ operatoriai pritaiko paketą prie savo prekės ženklo - CSS žetonai, savi komponentai, savarankiškas talpinimas.

Kas atsitiks, jei „Transpareo“ nebebus

ES reikalauja, kad užregistruotas gaminio pasas būtų prieinamas ne mažiau kaip dešimt metų - net ir po išdavėjo bankroto ar likvidavimo. SaaS paslaugų teikėjas retai išsilaiko tiek ilgai. Todėl nuo pat pradžių kuriame platformą taip, kad gaminio pasai liktų prieinami nepriklausomai nuo mūsų:

  • Kiekviena pasirašyta DPP versija saugoma viešai prieinamoje saugykloje. Baitai ir paskelbti viešieji raktai yra pakankami vėlesniam patikrinimui.
  • Kai tik gaminio pasai įregistruojami ES registre, antroji, nuo rašymo apsaugota saugykla dar dešimt metų saugo kiekvieną DPP versiją ir įvykių žurnalą. Niekas - net ir mes - negali vėliau pakeisti šių kopijų.
  • Nutraukus sutartį, trumpi „gaminio pasas“ URL adresai lieka prieinami per nukreipimą į „Transpareo“ platformą.
  • „Transpareo Time Machine“ veikia be pakeitimų net ir su archyvuotais duomenimis. Paketas vykdymo metu mūsų nešaukia atgal; jam reikia tik baitų ir raktų.

Jei „Transpareo“ platforma rytoj išnyktų, liktų DPP versijos ir atviro kodo atvaizdavimo programa.

Technologijų mėgėjams

Štai kas vyksta „po kapotu“. Jei jums nereikia žinoti visų smulkmenų, šį skyrių galite praleisti - programa veiks ir be to.

  • GS1 Digital Link (ISO/IEC 18975): Gaminio paso URL adresas pateikia gaminio identifikatorių standartizuota forma - nepriklausomai nuo sprendėjo, keičiamas tarp tiekėjų.
  • „JSON Canonicalization Scheme“ (RFC 8785): deterministinė serializacija. Taigi, hash kodas išlieka atkuriamas nepriklausomai nuo laukų tvarkos ar tarpų - kiekvienas gali jį pats perskaičiuoti.
  • W3C duomenų vientisumo įrodymai (eddsa-jcs-2022): Ed25519 parašas per kanonizuotą formą (JCS).
  • /.well-known/dpp-keys/ (RFC 8615): išdavėjų viešieji raktai yra standartizuotame kelyje - nereikia kreiptis į „Transpareo“, kiekvienas tikrintojas juos randa pats.

Viskas aprašyta „README“ dokumente „GitHub“ svetainėje - įskaitant frontend architektūrą (savo reaktyvusis branduolys, be jokių išorinių sistemų) ir kūrimo instrukcijas, skirtas savarankiškam hostavimui.

Peržiūrėti kodą „GitHub“

Visą šaltinį, visus išleidimus ir diskusiją apie problemą rasite viešame repozitoriume.