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 „Transpareo Time Machine“ - mūsų atvirojo kodo vartotojų programėlė, skirta kiekvienam skaitmeniniam produkto pasui. Kodas yra paskelbtas pagal GPL v3 licenciją „GitHub“.

Mes ją kuriame, nes ES reglamentas dėl skaitmeninio produkto paso buvo parengtas vartotojams - tiems, kurie produktą laiko rankose. Dauguma tiekėjų paverčia jį atitikties forma, kurios niekas antrą kartą neperžiūri. Mes paverčiame jį programėle, kurią vartotojas ir atidaro.

Įsitikinkite patys

Demo pateikia išsamius produkto pasus su pavyzdiniais duomenimis: peržiūrėkite versijų istoriją ir atidarykite sertifikavimo ženklą - 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 produkto paso yra didžiausias žingsnis produkto skaidrumo link per pastaruosius dešimtmečius. Jis - jei atidžiai perskaityti pagrindinius dokumentus - yra aiškiai skirtas vartotojams. Valdžios institucijos, perdirbėjai, remonto dirbtuvės prisideda prie šio proceso, tačiau pagrindinis adresatas yra asmuo, laikantis produktą rankose.

Skaičiais tai aiškiai matyti. Vidutinis Europos gyventojas iki šio dešimtmečio pabaigos galės nuskaityti nuo kelių dešimčių iki kelių šimtų produktų 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 matuojant 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ų

Produkto 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štų atspaudu susieta su savo pirmtake. Taip „laiko mašina“ naršo per produkto istoriją, o skaitytojas patikrina ne tik tai, ar versija yra autentiška, bet ir tai, ar 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 produkto paso reikalauja, kad produkto 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 reikalavimo dalis.

„Transpareo Time Machine“ yra tas elementas, kuris šį reikalavimą paverčia konkrečiu. Kadangi kiekvienas produkto pasas pateikiamas pagal atvirus standartus - nuo sprendėjo nepriklausomas identifikavimas, kanoninė serializacija, viešai paskelbti raktai - o jo atvaizdavimo programa yra atviro kodo pagal GPL v3 licenciją, paso atvaizdavimas niekada nepriklauso nuo mūsų platformos.

Už produkto pasą atsakingas yra ūkio subjektas - gamintojas, importuotojas arba įgaliotasis atstovas. Jei jis nusprendžia palikti „Transpareo“ ir pereiti prie kito teikėjo, pateikimas išlieka stabilus: tas pats atviro kodo atvaizdavimo įrankis toliau be pakeitimų rodo jau paskelbtas versijas kartu su istorija, o naujas teikėjas, kuris naudoja tuos pačius atvirus 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“ nustatėte savo pasams, keliauja kartu su kiekvienu pasu kaip paskelbtas stilių lapas. Taigi pasų vaizdas, prie kurio jūsų klientai priprato, jūsų serveryje atrodo lygiai taip pat - su tomis pačiomis spalvomis, šriftu ir logotipu.

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

Kiekvieno produkto 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.

Norintys sužinoti daugiau, spustelėkite žymę. Po ja matysite parašų grandinę, maišos vertes ir susietą versijų istoriją. Jei norite tik informacijos, tiesiog ignoruokite tai ir toliau skaitykite produkto pasą.

Tą patį patikrinimą galima atlikti ir atskirame puslapyje: adresu DPP patikrinimas įterpkite bet kurio produkto paso manifestą URL ir pamatysite išsamų patikrinimo rezultatą - 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 peržiūri produkto pasą programoje, kurios šaltinio kodas yra viešai audituojamas.
  • 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 registruotas produkto 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 produktų 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.
  • Vos tik produktų pasai įregistruojami ES registre, antroji, nuo rašymo apsaugota saugykla dar dešimt metų saugo kiekvienos DPP versijos kopiją ir įvykių žurnalą. Niekas - net ir mes - negali vėliau pakeisti šių kopijų.
  • Nutraukus sutartį, trumpi produktų pasų URL adresai lieka pasiekiami per nukreipimą „Transpareo“ platformoje.
  • „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): Produkto paso URL adresas pateikia produkto 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 yra uždokumentuota „README“ faile „GitHub“ - įskaitant frontend architektūrą (nuosavas „React“ branduolys, be jokių išorinių frameworkų) ir kūrimo instrukcijas savarankiškam hostavimui.

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

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