[{"data":1,"prerenderedAt":1221},["ShallowReactive",2],{"navigation-docsDE":3,"navigation-blogDE":484,"docs-DE-\u002Fde\u002Fdocs\u002Fplatform-overview\u002Farchitecture":485,"docsNav-DE-\u002Fdocs":859,"docsSecNav-DE-\u002Fde\u002Fdocs\u002Fplatform-overview\u002Farchitecture":998},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","\u002Fdocs","docs",[9,22,40,52,73,87,113,127,154,165,180,204,392,468],{"title":10,"path":6,"stem":11,"description":12,"icon":13,"tags":14},"Documentation","docs\u002Findex","Introduction to documentation on EPCIS and OpenEPCIS tools","heroicons-outline:document-text",[15,16,17,18,19,20,21],"openepcis","epcis-2-0","epcis-documentation","epcis-standard","open-core","open-source","epcis-tools",{"title":23,"path":24,"stem":25,"children":26,"description":28,"icon":29,"tags":39},"Introduction","\u002Fdocs\u002Fintroduction","docs\u002F01.introduction\u002Findex",[27],{"title":23,"path":24,"stem":25,"description":28,"icon":29,"tags":30},"Why EPCIS is necessary and how it can help organizations of all sizes and types.","heroicons-outline:globe-alt",[16,31,32,33,34,35,36,37,38],"epcis","epcis-1-2","gs1-epcis-standard","supply-chain","traceability","data-sharing","tracking","tracing",[16,31,32,33,34,35,36,37,38],{"title":41,"path":42,"stem":43,"children":44,"description":46,"icon":47,"tags":51},"EPCIS","\u002Fdocs\u002Fepcis","docs\u002F02.epcis\u002Findex",[45],{"title":41,"path":42,"stem":43,"description":46,"icon":47,"tags":48},"Discover the specifics of EPCIS, how it works, and what OpenEPCIS is.","i-custom-open-epcis",[16,31,32,33,49,50],"iso-iec-19987","iso-iec-19988",[16,31,32,33,49,50],{"title":53,"path":54,"stem":55,"children":56,"description":58,"icon":59,"tags":72},"Format Converter","\u002Fdocs\u002Fformat-converter","docs\u002F03.format-converter\u002Findex",[57],{"title":53,"path":54,"stem":55,"description":58,"icon":59,"tags":60},"OpenEPCIS solution to convert EPCIS 2.0 and 1.2 document or single event from XML to JSON\u002FJSON-LD and vice versa.","heroicons-outline:arrows-right-left",[16,61,62,63,64,65,66,21,67,68,69,70,71],"json","json-ld","xml","events","format-converter","convert","convert-epcis-events","format","converter","epcis-tool","tools",[16,61,62,63,64,65,66,21,67,68,69,70,71],{"title":74,"path":75,"stem":76,"children":77,"description":79,"icon":80,"tags":86},"Version Converter","\u002Fdocs\u002Fversion-converter","docs\u002F04.version-converter\u002Findex",[78],{"title":74,"path":75,"stem":76,"description":79,"icon":80,"tags":81},"OpenEPCIS solution to convert EPCIS XML document from version 1.2 to 2.0 and vice versa.","heroicons:arrows-up-down",[16,32,61,62,63,64,82,66,21,83,84,85,69,70,71],"version-converter","convert-epcis-version","version","epcis-version",[16,32,61,62,63,64,82,66,21,83,84,85,69,70,71],{"title":88,"path":89,"stem":90,"children":91,"description":93,"icon":94,"tags":112},"Identifier Converter","\u002Fdocs\u002Fidentifier-converter","docs\u002F05.identifier-converter\u002Findex",[92],{"title":88,"path":89,"stem":90,"description":93,"icon":94,"tags":95},"OpenEPCIS solution to convert EPCIS instance or class identifier from URN to digital link WebURI and vice versa.","i-heroicons-link",[16,96,97,98,99,100,21,101,102,103,104,105,106,107,108,109,110,111],"gs1-digital-link","urn-format","epc-uri","epc","weburi","gs1-standard","gs1","sscc","gtin","giai","grai","gdti","lgtin","sgtin","gln","gcp",[16,96,97,98,99,100,21,101,102,103,104,105,106,107,108,109,110,111],{"title":114,"path":115,"stem":116,"children":117,"description":119,"icon":120,"tags":126},"Event Hash Generator","\u002Fdocs\u002Fevent-hash-generator","docs\u002F06.event-hash-generator\u002Findex",[118],{"title":114,"path":115,"stem":116,"description":119,"icon":120,"tags":121},"OpenEPCIS solution to generate unique event hash for EPCIS XML or JSON\u002FJSON-LD document or event list.","heroicons-outline:finger-print",[16,122,61,62,63,64,21,123,124,125,70,71],"event-hash","event","hash","generator",[16,122,61,62,63,64,21,123,124,125,70,71],{"title":128,"path":129,"stem":130,"children":131,"description":133,"icon":134,"tags":153},"Test Data Generator","\u002Fdocs\u002Ftest-data-generator","docs\u002F07.test-data-generator\u002Findex",[132,136],{"title":128,"path":129,"stem":130,"description":133,"icon":134,"tags":135},"OpenEPCIS solution to generate a large set of EPCIS test data events for all use cases\u002Fsupply chain requirements.","heroicons-outline:cog",[16,122,61,62,63,64,21,123,124,125,70,71],{"title":137,"path":138,"stem":139,"children":140,"description":133,"icon":142,"tags":152},"EPCIS Implementation Guidelines","\u002Fdocs\u002Ftest-data-generator\u002Fgs1-epcis-implementation-guidelines","docs\u002F07.test-data-generator\u002F01.gs1-epcis-implementation-guidelines\u002Findex",[141],{"title":137,"path":138,"stem":139,"description":133,"icon":142,"tags":143},"heroicons-outline:badge-check",[16,61,62,144,21,145,146,147,35,148,149,150,151],"testing","test-data-generator","design","design-template","process-automation","compliance","supply-chain-management","load-tests",[16,61,62,144,21,145,146,147,35,148,149,150,151],[16,122,61,62,63,64,21,123,124,125,70,71],{"title":155,"path":156,"stem":157,"children":158,"description":160,"icon":161,"tags":164},"Test Resource Management","\u002Fdocs\u002Ftest-resource-management","docs\u002F08.test-resource-management\u002Findex",[159],{"title":155,"path":156,"stem":157,"description":160,"icon":161,"tags":162},"Collection of EPCIS 1.2\u002F2.0 documents\u002Fevents in XML\u002FJSON\u002FJSON-LD formats, intended for various testing purposes","heroicons-outline:archive-box",[16,61,62,144,21,163,35,148,149,150,151],"performance-tests",[16,61,62,144,21,163,35,148,149,150,151],{"title":166,"path":167,"stem":168,"children":169,"description":171,"icon":172,"tags":179},"Vocabulary Management","\u002Fdocs\u002Fvocabulary-management","docs\u002F09.vocabulary-management\u002Findex",[170],{"title":166,"path":167,"stem":168,"description":171,"icon":172,"tags":173},"Collection of standardized constants and strings for EPCIS event data.","heroicons-outline:book-open",[16,174,15,175,21,176,35,177,149,150,178],"constants","centralization","standardization","vocabulary","data-dictionary",[16,174,15,175,21,176,35,177,149,150,178],{"title":181,"path":182,"stem":183,"children":184,"description":186,"icon":187,"tags":203},"Dependency Management","\u002Fdocs\u002Fdependency-management","docs\u002F10.dependency-management\u002Findex",[185],{"title":181,"path":182,"stem":183,"description":186,"icon":187,"tags":188},"Centralized Maven Bill of Materials (BOM) for all the OpenEPCIS modules.","heroicons-outline:folder",[189,15,190,191,192,193,194,31,195,196,197,198,199,200,201,202],"maven-bom","dependency-management","java-dependencies","pom","software-dependencies","version-control","open-source-java","build-management","modular-software","dependency-resolution","java-libraries","maven-project","centralized-dependencies","dependency-consistency",[189,15,190,191,192,193,194,31,195,196,197,198,199,200,201,202],{"title":205,"path":206,"stem":207,"children":208,"description":210,"icon":211,"tags":391},"Digital Product Passport","\u002Fdocs\u002Fdigital-product-passport","docs\u002F11.digital-product-passport\u002Findex",[209,218,230,262,296,323,337,346,354,364],{"title":205,"path":206,"stem":207,"description":210,"icon":211,"tags":212},"Introduction to Digital Product Passport and how EPCIS enables product traceability for DPP compliance.","heroicons-outline:identification",[213,214,215,31,216,35,217],"digital-product-passport","dpp","eu-regulation","sustainability","circular-economy",{"title":219,"path":220,"stem":221,"children":222,"description":224,"icon":225,"tags":229},"ESPR Framework","\u002Fdocs\u002Fdigital-product-passport\u002Fespr-framework","docs\u002F11.digital-product-passport\u002F00.espr-framework\u002Findex",[223],{"title":219,"path":220,"stem":221,"description":224,"icon":225,"tags":226},"Guide to the EU Ecodesign for Sustainable Products Regulation (ESPR) 2024\u002F1781 and how OpenEPCIS supports Digital Product Passport requirements.","heroicons-outline:shield-check",[227,228,216,214,215],"espr","ecodesign",[227,228,216,214,215],{"title":231,"path":232,"stem":233,"children":234,"description":236,"icon":237,"tags":261},"Battery DPP","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002Findex",[235,241,246,252],{"title":231,"path":232,"stem":233,"description":236,"icon":237,"tags":238},"GS1-native implementation of EU Battery Regulation 2023\u002F1542 Digital Product Passport using EPCIS 2.0","heroicons:battery-100",[239,240,214,31,102,35,216],"battery","eu-battery-regulation",{"title":242,"path":243,"stem":244,"description":245,"icon":172},"Implementation Guide","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F01.implementation-guide","Step-by-step guide for implementing a GS1-native Battery Digital Product Passport with OpenEPCIS extensions",{"title":247,"path":248,"stem":249,"description":250,"icon":251},"Event Types","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fevent-types","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F02.event-types","Complete reference for all EPCIS event types and sensor measurements in the Battery DPP","heroicons-outline:collection",{"title":253,"path":254,"stem":255,"description":256,"icon":13,"tags":257},"Complete Examples","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F05.complete-examples","Reference Battery Digital Product Passport examples mapped to EU Battery Regulation 2023\u002F1542 Annex XIII",[239,258,259,62,260],"examples","annex-xiii","carbon-footprint",[239,240,214,31,102,35,216],{"title":263,"path":264,"stem":265,"children":266,"description":268,"icon":269,"tags":295},"EUDR","\u002Fdocs\u002Fdigital-product-passport\u002Feudr","docs\u002F11.digital-product-passport\u002F02.eudr\u002Findex",[267,274,279,283,288],{"title":263,"path":264,"stem":265,"description":268,"icon":269,"tags":270},"GS1-native implementation of EU Deforestation Regulation 2023\u002F1115 compliance using EPCIS 2.0","heroicons-outline:globe-europe-africa",[271,272,273,214,31,102,35,216],"eudr","deforestation","timber",{"title":242,"path":275,"stem":276,"description":277,"icon":278},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F02.eudr\u002F01.implementation-guide","Step-by-step guide for implementing EU Deforestation Regulation compliance using GS1 standards",null,{"title":247,"path":280,"stem":281,"description":282,"icon":278},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fevent-types","docs\u002F11.digital-product-passport\u002F02.eudr\u002F02.event-types","EPCIS event types for EU Deforestation Regulation compliance",{"title":284,"path":285,"stem":286,"description":287,"icon":278},"URL Patterns","\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Furl-patterns","docs\u002F11.digital-product-passport\u002F02.eudr\u002F03.url-patterns","GS1 Digital Link URL patterns for EUDR implementations",{"title":253,"path":289,"stem":290,"description":291,"icon":13,"tags":292},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F02.eudr\u002F04.complete-examples","Reference EUDR examples — timber product passport, derived product, regulatory notification, harvesting \u002F origin-declaration \u002F processing \u002F supply-chain-transfer \u002F exemption events",[271,258,273,293,294],"due-diligence","geolocation",[271,272,273,214,31,102,35,216],{"title":297,"path":298,"stem":299,"children":300,"description":302,"icon":303,"tags":322},"Textile DPP","\u002Fdocs\u002Fdigital-product-passport\u002Ftextile","docs\u002F11.digital-product-passport\u002F03.textile\u002Findex",[301,309,316],{"title":297,"path":298,"stem":299,"description":302,"icon":303,"tags":304},"Digital Product Passport vocabulary for textiles and apparel under the EU Sustainable Textiles Strategy and ESPR 2024\u002F1781.","heroicons-outline:sparkles",[305,306,307,214,216,308],"textile","apparel","footwear","fibre-composition",{"title":242,"path":310,"stem":311,"description":312,"icon":313,"tags":314},"\u002Fdocs\u002Fdigital-product-passport\u002Ftextile\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F03.textile\u002F01.implementation-guide","How to assemble a Textile Digital Product Passport against the published openepcis-dpp-ready textile vocabulary","heroicons-outline:scissors",[305,306,307,315],"implementation",{"title":253,"path":317,"stem":318,"description":319,"icon":13,"tags":320},"\u002Fdocs\u002Fdigital-product-passport\u002Ftextile\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F03.textile\u002F02.complete-examples","Reference Textile Digital Product Passport documents covering apparel and footwear",[305,258,306,307,321,62],"fiber-composition",[305,306,307,214,216,308],{"title":324,"path":325,"stem":326,"children":327,"description":329,"icon":59,"tags":336},"Interoperability","\u002Fdocs\u002Fdigital-product-passport\u002Finteroperability","docs\u002F11.digital-product-passport\u002F04.interoperability\u002Findex",[328],{"title":324,"path":325,"stem":326,"description":329,"icon":59,"tags":330},"Guide to OpenEPCIS DPP interoperability with GS1, UNTP, CIRPASS2, and ESPR standards.",[331,332,102,333,227,334,335],"interoperability","untp","cirpass2","standards","alignment",[331,332,102,333,227,334,335],{"title":338,"path":339,"stem":340,"description":341,"icon":29,"tags":342},"DPP Resolution Flow","\u002Fdocs\u002Fdigital-product-passport\u002Fdpp-resolution-flow","docs\u002F11.digital-product-passport\u002F05.dpp-resolution-flow","How OpenEPCIS combined GS1 Digital Link, the IETF linkset format and content negotiation into one DPP resolution flow",[343,96,344,345],"walkthrough","linkset","content-negotiation",{"title":347,"path":348,"stem":349,"description":350,"icon":351,"tags":352},"Resolver Setup","\u002Fdocs\u002Fdigital-product-passport\u002Fresolver-setup","docs\u002F11.digital-product-passport\u002F06.resolver-setup","How to expose your DPP behind a GS1 Digital Link resolver","heroicons-outline:server",[353,96,344],"resolver",{"title":355,"path":356,"stem":357,"description":358,"icon":359,"tags":360},"Multi-Component Example","\u002Fdocs\u002Fdigital-product-passport\u002Fmulti-component-example","docs\u002F11.digital-product-passport\u002F07.multi-component-example","How a composite product references separately-passported components via standard GS1 Digital Link and EPCIS aggregation","heroicons-outline:puzzle-piece",[361,362,363,333],"example","components","aggregation",{"title":365,"path":366,"stem":367,"children":368,"description":370,"icon":371,"tags":390},"Electronics DPP","\u002Fdocs\u002Fdigital-product-passport\u002Felectronics","docs\u002F11.digital-product-passport\u002F08.electronics\u002Findex",[369,378,383],{"title":365,"path":366,"stem":367,"description":370,"icon":371,"tags":372},"Digital Product Passport vocabulary for electronic devices under ESPR, the French Repairability Index, EU Right to Repair and WEEE.","heroicons-outline:device-phone-mobile",[373,374,375,376,377],"electronics","repairability","weee","energy-label","right-to-repair",{"title":242,"path":379,"stem":380,"description":381,"icon":172,"tags":382},"\u002Fdocs\u002Fdigital-product-passport\u002Felectronics\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F08.electronics\u002F01.implementation-guide","How to assemble an Electronics Digital Product Passport against the published openepcis-dpp-ready electronics vocabulary",[373,315,374,375,376],{"title":253,"path":384,"stem":385,"description":386,"icon":13,"tags":387},"\u002Fdocs\u002Fdigital-product-passport\u002Felectronics\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F08.electronics\u002F02.complete-examples","Reference Electronics Digital Product Passport documents covering smartphone, laptop, display and server",[373,258,388,389,62],"smartphone","laptop",[373,374,375,376,377],[213,214,215,31,216,35,217],{"title":393,"path":394,"stem":395,"children":396,"description":398,"icon":399},"OpenEPCIS Overview","\u002Fdocs\u002Fplatform-overview","docs\u002F14.platform-overview\u002Findex",[397,400,406,412,418],{"title":393,"path":394,"stem":395,"description":398,"icon":399},"A GS1-conformant supply-chain data platform — Resolver, Masterdata, EPCIS Events — in open source and business editions.","lucide:layout-dashboard",{"title":401,"path":402,"stem":403,"description":404,"icon":405},"Architecture","\u002Fdocs\u002Fplatform-overview\u002Farchitecture","docs\u002F14.platform-overview\u002F01.architecture","How OpenEPCIS handles identity, isolation, events, and GS1 conformance — the four things that distinguish the platform.","lucide:cpu",{"title":407,"path":408,"stem":409,"description":410,"icon":411},"Feature Matrix","\u002Fdocs\u002Fplatform-overview\u002Ffeature-matrix","docs\u002F14.platform-overview\u002F02.feature-matrix","OpenEPCIS capabilities by edition, aligned to the relevant GS1 standards.","lucide:check-square",{"title":413,"path":414,"stem":415,"description":416,"icon":417},"Roadmap","\u002Fdocs\u002Fplatform-overview\u002Froadmap","docs\u002F14.platform-overview\u002F03.roadmap","Three horizons — Now, Next, Later. Skeleton awaiting user-confirmed dates.","lucide:map",{"title":419,"path":420,"stem":421,"children":422,"description":424,"icon":425},"Modules","\u002Fdocs\u002Fplatform-overview\u002Fmodules","docs\u002F14.platform-overview\u002Fmodules\u002Findex",[423,426,432,438,444,450,456,462],{"title":419,"path":420,"stem":421,"description":424,"icon":425},"Seven module families that organise the OpenEPCIS platform — Resolver, Masterdata, EPCIS Events, Formats & Validation, Integration, Testdata, Platform.","lucide:layers",{"title":427,"path":428,"stem":429,"description":430,"icon":431},"GS1 Conformant Resolver","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fresolver","docs\u002F14.platform-overview\u002Fmodules\u002F01.resolver","Resolves GS1 Digital Link URIs to product information, masterdata, EPCIS endpoints, and twelve more standard link types.","lucide:link-2",{"title":433,"path":434,"stem":435,"description":436,"icon":437},"GS1 Web Vocabulary & Masterdata","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fmasterdata","docs\u002F14.platform-overview\u002Fmodules\u002F02.masterdata","Web Vocabulary models, masterdata-to-resolver REST pattern, GS1 Germany Activate Plus \u002F GEPIR sync, and the event-driven masterdata bus.","lucide:database",{"title":439,"path":440,"stem":441,"description":442,"icon":443},"EPCIS Events — Capture, Query, Subscriptions","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fepcis-events","docs\u002F14.platform-overview\u002Fmodules\u002F03.epcis-events","EPCIS 2.0 REST and SOAP, live streaming subscriptions, resilient pagination, OpenSearch event store.","lucide:activity",{"title":445,"path":446,"stem":447,"description":448,"icon":449},"Formats, Validation & Identity","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fformats","docs\u002F14.platform-overview\u002Fmodules\u002F04.formats","XML ↔ JSON-LD conversion, multi-layer validation, identifier translation, idempotent event hashing.","lucide:file-check",{"title":451,"path":452,"stem":453,"description":454,"icon":455},"Integration & Gateways","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fintegration","docs\u002F14.platform-overview\u002Fmodules\u002F05.integration","Cloud storage, file service, natural-language AI assistant.","lucide:plug",{"title":457,"path":458,"stem":459,"description":460,"icon":461},"Testdata & Developer Tooling","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Ftestdata","docs\u002F14.platform-overview\u002Fmodules\u002F06.testdata","Synthetic EPCIS test event generation, reference event collections, conformance test suite, SDKs.","lucide:wrench",{"title":463,"path":464,"stem":465,"description":466,"icon":467},"Platform, Build & Observability","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fplatform","docs\u002F14.platform-overview\u002Fmodules\u002F07.platform","How OpenEPCIS is built, deployed, and observed.","lucide:server",{"title":469,"path":470,"stem":471,"children":472,"description":474,"icon":29,"tags":483},"Vision","\u002Fdocs\u002Fvision","docs\u002F15.vision\u002Findex",[473],{"title":469,"path":470,"stem":471,"description":474,"icon":29,"tags":475},"How UNTP, DIDs, Verifiable Credentials, and EPCIS work together to create unified product identity infrastructure for the connected supply chain.",[476,477,478,479,332,480,481,482],"vision","digital-twin","did","verifiable-credentials","rfid","industry-4-0","web-3-0",[476,477,478,479,332,480,481,482],[],{"doc":486,"usedFallback":858},{"id":487,"title":401,"body":488,"description":404,"extension":846,"icon":405,"lastUpdated":847,"meta":848,"navigation":854,"path":402,"seo":855,"sitemap":856,"stem":403,"__hash__":857},"docsEN\u002Fdocs\u002F14.platform-overview\u002F01.architecture.md",{"type":489,"value":490,"toc":827},"minimark",[491,499,502,531,534,538,541,563,566,573,577,596,612,619,624,631,651,654,657,666,671,674,678,685,688,695,699,702,705,708,718,722,729,733,780,784,796,798,802],[492,493,494],"p",{},[495,496],"img",{"alt":497,"src":498},"OpenEPCIS auth, DLS and reactive pipeline","\u002Fimg\u002Farchitecture.svg",[492,500,501],{},"Four cross-cutting concerns shape every OpenEPCIS module.",[503,504,505,513,519,525],"ol",{},[506,507,508],"li",{},[509,510,512],"a",{"href":511},"#authentication-one-identity-three-ways-in","Authentication: one identity, three ways in",[506,514,515],{},[509,516,518],{"href":517},"#multi-tenant-isolation-at-the-data-layer","Multi-tenant isolation at the data layer",[506,520,521],{},[509,522,524],{"href":523},"#live-events-without-polling","Live events without polling",[506,526,527],{},[509,528,530],{"href":529},"#gs1-conformance-contract","GS1 conformance contract",[532,533],"hr",{},[535,536,512],"h2",{"id":537},"authentication-one-identity-three-ways-in",[492,539,540],{},"A customer's users can sign in with whichever credential their organisation already uses:",[542,543,544,551,557],"ul",{},[506,545,546,550],{},[547,548,549],"strong",{},"OIDC bearer token"," — for systems integrated with the customer's identity provider.",[506,552,553,556],{},[547,554,555],{},"Session cookie"," — for browser-based access to admin or operator UIs.",[506,558,559,562],{},[547,560,561],{},"API key + secret"," — for service-to-service traffic and SDK calls.",[492,564,565],{},"All three flows converge on a single authenticated identity. Each customer (tenant) lives in its own Keycloak realm, resolved automatically from the request's hostname. Roles travel on the identity and gate the REST endpoints.",[492,567,568,569,572],{},"For one-off sharing — for example sending a regulator a direct link to a specific batch — the platform mints short-lived ",[547,570,571],{},"capability tokens"," scoped to one URL and one HTTP method. No broader account access is granted.",[535,574,576],{"id":575},"wallet-agnostic-verifiable-credentials-oid4vc","Wallet-agnostic Verifiable Credentials (OID4VC)",[492,578,579,580,583,584,587,588,591,592,595],{},"The same Keycloak realm that handles sign-in is also a ",[547,581,582],{},"Verifiable Credential Issuer",". Keycloak's native implementation of the OpenID Foundation's verifiable-credentials stack — ",[547,585,586],{},"OID4VCI"," for issuance, ",[547,589,590],{},"OID4VP"," for verifiable-presentation flows, ",[547,593,594],{},"SIOPv2"," for self-issued OpenID identities — turns each tenant's realm into a standards-conformant VC issuer without bolting on a separate identity stack.",[492,597,598,599,603,604,607,608,611],{},"Credentials are issued in whichever format the holder's wallet expects. The platform's lead is ",[600,601,602],"code",{},"sd-jwt-vc"," because selective disclosure is part of the format itself — a holder can prove \"recycled-cobalt share is above the regulated threshold\" without revealing the exact percentage — and the other accepted formats are ",[600,605,606],{},"jwt_vc_json",", ",[600,609,610],{},"ldp_vc"," and ISO mDoc.",[492,613,614,615,618],{},"Because the issuance surface is open OpenID-Foundation protocol rather than a proprietary wallet integration, ",[547,616,617],{},"the platform interoperates with every OID4VC-compliant wallet already in production or in pilot"," — the EU Digital Identity Wallet under eIDAS 2.0, the Catena-X Managed Identity Wallet inside its dataspace, enterprise business wallets, sector-specific wallets, holder apps on mobile. OpenEPCIS doesn't ship a wallet and doesn't pick a winner; it speaks the protocol every wallet camp is converging on.",[620,621,623],"h3",{"id":622},"trusted-subjects","Trusted subjects",[492,625,626,627,630],{},"The verifier side is where the real interoperability work lives. A credential is only as useful as the verifier's certainty that the issuer is who they claim to be. OpenEPCIS expects to maintain a ",[547,628,629],{},"globally-scoped trust list"," of accepted issuers — not EU-only and not product-category-only — so a verifier looking at a presented credential can confirm the issuer's identity, the credential's binding, and the revocation status against a single, openly-maintained list rather than chasing per-region or per-sector registries.",[492,632,633,634,607,637,607,640,607,643,646,647,650],{},"What ships today is the protocol layer — OID4VCI \u002F OID4VP \u002F SIOPv2 issuance and verification surfaces on every Keycloak realm. The named credential schemas (",[600,635,636],{},"EPCISCommissioningCredential",[600,638,639],{},"DPPBatteryPassportCredential",[600,641,642],{},"EUDRDueDiligenceCredential",[600,644,645],{},"UNTPDigitalConformityCredential"," and the rest) and the capture-to-issuance pipeline that fires a VC the moment the underlying event or attestation is recorded are the next strategic ",[509,648,649],{"href":414},"roadmap"," item.",[535,652,518],{"id":653},"multi-tenant-isolation-at-the-data-layer",[492,655,656],{},"This is the architecture's headline.",[658,659,660],"blockquote",{},[492,661,662,665],{},[547,663,664],{},"The application does not rewrite queries to inject a tenant filter."," It forwards the authenticated identity to OpenSearch and lets OpenSearch's Security plugin enforce Document-Level Security server-side. If the application's authorisation code is wrong, the data layer is still right.",[667,668],"diagram-image",{"alt":669,"src":670},"Request identity forwarded to OpenSearch Security for tenant DLS","\u002Fdiagrams\u002Fplatform-tenant-isolation",[492,672,673],{},"Background workloads (capture pipelines, scheduled subscriptions) use an explicit admin path — no silent privilege change at runtime.",[620,675,677],{"id":676},"where-its-still-binary","Where it's still binary",[492,679,680,681,684],{},"Access today is binary per tenant: a user sees everything in their organisation or nothing. ",[547,682,683],{},"Row-level scoping"," (GLN-, EPC-range-, or biz-location-bound visibility) is a roadmap item.",[535,686,524],{"id":687},"live-events-without-polling",[492,689,690,691,694],{},"EPCIS subscriptions in OpenEPCIS are ",[547,692,693],{},"live"," — matches fire at the moment an event is indexed, not on a poll interval. Same model serves WebSocket clients and HTTP webhooks:",[667,696],{"alt":697,"src":698},"Capture writes to the event store; subscriptions match live","\u002Fdiagrams\u002Fplatform-capture-subscriptions",[492,700,701],{},"Scheduled (cron-style) subscriptions sit alongside streaming for clients that want batch-style delivery — nightly digests, periodic compliance pulls — and clients opt into them explicitly.",[492,703,704],{},"Pagination on long-running queries survives client reconnects, so a regulator pulling six months of events can drop and resume without restarting the scan.",[535,706,530],{"id":707},"gs1-conformance-contract",[492,709,710,711,714,715,717],{},"Three discipline rules apply platform-wide. Together they make every OpenEPCIS deployment conformant with ",[547,712,713],{},"GS1 EPCIS 2.0"," and the ",[547,716,427],{}," standard.",[620,719,721],{"id":720},"_1-identifiers-are-gs1-digital-link-at-rest","1. Identifiers are GS1 Digital Link at rest",[492,723,724,725,728],{},"Every EPC, business location, and read point is stored as a Digital Link URI (e.g. ",[600,726,727],{},"https:\u002F\u002Fid.example.com\u002F01\u002F04012345999990\u002F21\u002F123456","). Clients that still expect EPC URN form get it on demand at query time — but the canonical form, the form everything compares against, is Digital Link.",[620,730,732],{"id":731},"_2-masterdata-lives-on-the-resolver-not-inside-events","2. Masterdata lives on the resolver, not inside events",[492,734,735,736,607,739,607,742,745,746,607,749,607,752,607,755,607,758,607,761,607,764,607,767,607,770,607,773,607,776,779],{},"EPCIS documents are lean. They carry identifiers; the descriptive payload (product name, organisation details, place data, certifications) sits on the resolver and is fetched by the consumer that needs it. Masterdata is registered once via ",[600,737,738],{},"POST \u002Fproducts\u002F{gtin}",[600,740,741],{},"POST \u002Forganizations\u002F{gln}",[600,743,744],{},"POST \u002Fplaces\u002F{loc}"," — and from that single record, the resolver auto-derives a dozen standard GS1 link types (",[600,747,748],{},"gs1:pip",[600,750,751],{},"gs1:productImage",[600,753,754],{},"gs1:audioFile",[600,756,757],{},"gs1:relatedVideo",[600,759,760],{},"gs1:safetyInfo",[600,762,763],{},"gs1:certificationInfo",[600,765,766],{},"gs1:nutritionalInfo",[600,768,769],{},"gs1:instructions",[600,771,772],{},"gs1:recallStatus",[600,774,775],{},"gs1:serviceInfo",[600,777,778],{},"gs1:productSustainabilityInfo",").",[620,781,783],{"id":782},"_3-the-deployment-is-self-describing","3. The deployment is self-describing",[492,785,786,787,790,791,795],{},"A working OpenEPCIS instance publishes the discovery document the GS1 Conformant Resolver standard expects — at the spec-mandated path ",[600,788,789],{},"\u002F.well-known\u002Fgs1resolver",". The point is that any downstream system (GS1's own Global Office resolver, a partner registry, a market-surveillance tool) can ",[792,793,794],"em",{},"find"," the deployment automatically and read what it offers, instead of being hand-configured against it. That's what \"GS1 Conformant\" means in the standard's sense.",[532,797],{},[535,799,801],{"id":800},"see-also","See also",[542,803,804,810,816,822],{},[506,805,806,809],{},[509,807,808],{"href":408},"Feature matrix"," — capabilities by edition.",[506,811,812,815],{},[509,813,814],{"href":428},"Modules → Resolver"," — the GS1 conformance surface.",[506,817,818,821],{},[509,819,820],{"href":440},"Modules → EPCIS Events"," — capture, query, and streaming subscriptions in context.",[506,823,824,826],{},[509,825,413],{"href":414}," — Verifiable Credentials, sub-tenant scoping, event-to-resolver promotion.",{"title":828,"searchDepth":829,"depth":829,"links":830},"",2,[831,832,836,839,840,845],{"id":537,"depth":829,"text":512},{"id":575,"depth":829,"text":576,"children":833},[834],{"id":622,"depth":835,"text":623},3,{"id":653,"depth":829,"text":518,"children":837},[838],{"id":676,"depth":835,"text":677},{"id":687,"depth":829,"text":524},{"id":707,"depth":829,"text":530,"children":841},[842,843,844],{"id":720,"depth":835,"text":721},{"id":731,"depth":835,"text":732},{"id":782,"depth":835,"text":783},{"id":800,"depth":829,"text":801},"md","2026-05-12T00:00:00.000Z",{"readingTime":849},{"text":850,"minutes":851,"time":852,"words":853},"5 min read",4.28,256800,856,true,{"title":401,"description":404},{"loc":402},"2Xxo1_MMY43XVtiui8ZIfhgu_NHH0MuBM4GhBZHiOxc",false,[860],{"title":5,"path":6,"stem":7,"children":861},[862,864,869,874,879,884,889,894,904,909,914,919,977,993],{"title":10,"path":6,"stem":11,"description":12,"icon":13,"tags":863},[15,16,17,18,19,20,21],{"title":23,"path":24,"stem":25,"children":865,"description":28,"icon":29,"tags":868},[866],{"title":23,"path":24,"stem":25,"description":28,"icon":29,"tags":867},[16,31,32,33,34,35,36,37,38],[16,31,32,33,34,35,36,37,38],{"title":41,"path":42,"stem":43,"children":870,"description":46,"icon":47,"tags":873},[871],{"title":41,"path":42,"stem":43,"description":46,"icon":47,"tags":872},[16,31,32,33,49,50],[16,31,32,33,49,50],{"title":53,"path":54,"stem":55,"children":875,"description":58,"icon":59,"tags":878},[876],{"title":53,"path":54,"stem":55,"description":58,"icon":59,"tags":877},[16,61,62,63,64,65,66,21,67,68,69,70,71],[16,61,62,63,64,65,66,21,67,68,69,70,71],{"title":74,"path":75,"stem":76,"children":880,"description":79,"icon":80,"tags":883},[881],{"title":74,"path":75,"stem":76,"description":79,"icon":80,"tags":882},[16,32,61,62,63,64,82,66,21,83,84,85,69,70,71],[16,32,61,62,63,64,82,66,21,83,84,85,69,70,71],{"title":88,"path":89,"stem":90,"children":885,"description":93,"icon":94,"tags":888},[886],{"title":88,"path":89,"stem":90,"description":93,"icon":94,"tags":887},[16,96,97,98,99,100,21,101,102,103,104,105,106,107,108,109,110,111],[16,96,97,98,99,100,21,101,102,103,104,105,106,107,108,109,110,111],{"title":114,"path":115,"stem":116,"children":890,"description":119,"icon":120,"tags":893},[891],{"title":114,"path":115,"stem":116,"description":119,"icon":120,"tags":892},[16,122,61,62,63,64,21,123,124,125,70,71],[16,122,61,62,63,64,21,123,124,125,70,71],{"title":128,"path":129,"stem":130,"children":895,"description":133,"icon":134,"tags":903},[896,898],{"title":128,"path":129,"stem":130,"description":133,"icon":134,"tags":897},[16,122,61,62,63,64,21,123,124,125,70,71],{"title":137,"path":138,"stem":139,"children":899,"description":133,"icon":142,"tags":902},[900],{"title":137,"path":138,"stem":139,"description":133,"icon":142,"tags":901},[16,61,62,144,21,145,146,147,35,148,149,150,151],[16,61,62,144,21,145,146,147,35,148,149,150,151],[16,122,61,62,63,64,21,123,124,125,70,71],{"title":155,"path":156,"stem":157,"children":905,"description":160,"icon":161,"tags":908},[906],{"title":155,"path":156,"stem":157,"description":160,"icon":161,"tags":907},[16,61,62,144,21,163,35,148,149,150,151],[16,61,62,144,21,163,35,148,149,150,151],{"title":166,"path":167,"stem":168,"children":910,"description":171,"icon":172,"tags":913},[911],{"title":166,"path":167,"stem":168,"description":171,"icon":172,"tags":912},[16,174,15,175,21,176,35,177,149,150,178],[16,174,15,175,21,176,35,177,149,150,178],{"title":181,"path":182,"stem":183,"children":915,"description":186,"icon":187,"tags":918},[916],{"title":181,"path":182,"stem":183,"description":186,"icon":187,"tags":917},[189,15,190,191,192,193,194,31,195,196,197,198,199,200,201,202],[189,15,190,191,192,193,194,31,195,196,197,198,199,200,201,202],{"title":205,"path":206,"stem":207,"children":920,"description":210,"icon":211,"tags":976},[921,923,928,937,947,956,961,963,965,967],{"title":205,"path":206,"stem":207,"description":210,"icon":211,"tags":922},[213,214,215,31,216,35,217],{"title":219,"path":220,"stem":221,"children":924,"description":224,"icon":225,"tags":927},[925],{"title":219,"path":220,"stem":221,"description":224,"icon":225,"tags":926},[227,228,216,214,215],[227,228,216,214,215],{"title":231,"path":232,"stem":233,"children":929,"description":236,"icon":237,"tags":936},[930,932,933,934],{"title":231,"path":232,"stem":233,"description":236,"icon":237,"tags":931},[239,240,214,31,102,35,216],{"title":242,"path":243,"stem":244,"description":245,"icon":172},{"title":247,"path":248,"stem":249,"description":250,"icon":251},{"title":253,"path":254,"stem":255,"description":256,"icon":13,"tags":935},[239,258,259,62,260],[239,240,214,31,102,35,216],{"title":263,"path":264,"stem":265,"children":938,"description":268,"icon":269,"tags":946},[939,941,942,943,944],{"title":263,"path":264,"stem":265,"description":268,"icon":269,"tags":940},[271,272,273,214,31,102,35,216],{"title":242,"path":275,"stem":276,"description":277,"icon":278},{"title":247,"path":280,"stem":281,"description":282,"icon":278},{"title":284,"path":285,"stem":286,"description":287,"icon":278},{"title":253,"path":289,"stem":290,"description":291,"icon":13,"tags":945},[271,258,273,293,294],[271,272,273,214,31,102,35,216],{"title":297,"path":298,"stem":299,"children":948,"description":302,"icon":303,"tags":955},[949,951,953],{"title":297,"path":298,"stem":299,"description":302,"icon":303,"tags":950},[305,306,307,214,216,308],{"title":242,"path":310,"stem":311,"description":312,"icon":313,"tags":952},[305,306,307,315],{"title":253,"path":317,"stem":318,"description":319,"icon":13,"tags":954},[305,258,306,307,321,62],[305,306,307,214,216,308],{"title":324,"path":325,"stem":326,"children":957,"description":329,"icon":59,"tags":960},[958],{"title":324,"path":325,"stem":326,"description":329,"icon":59,"tags":959},[331,332,102,333,227,334,335],[331,332,102,333,227,334,335],{"title":338,"path":339,"stem":340,"description":341,"icon":29,"tags":962},[343,96,344,345],{"title":347,"path":348,"stem":349,"description":350,"icon":351,"tags":964},[353,96,344],{"title":355,"path":356,"stem":357,"description":358,"icon":359,"tags":966},[361,362,363,333],{"title":365,"path":366,"stem":367,"children":968,"description":370,"icon":371,"tags":975},[969,971,973],{"title":365,"path":366,"stem":367,"description":370,"icon":371,"tags":970},[373,374,375,376,377],{"title":242,"path":379,"stem":380,"description":381,"icon":172,"tags":972},[373,315,374,375,376],{"title":253,"path":384,"stem":385,"description":386,"icon":13,"tags":974},[373,258,388,389,62],[373,374,375,376,377],[213,214,215,31,216,35,217],{"title":393,"path":394,"stem":395,"children":978,"description":398,"icon":399},[979,980,981,982,983],{"title":393,"path":394,"stem":395,"description":398,"icon":399},{"title":401,"path":402,"stem":403,"description":404,"icon":405},{"title":407,"path":408,"stem":409,"description":410,"icon":411},{"title":413,"path":414,"stem":415,"description":416,"icon":417},{"title":419,"path":420,"stem":421,"children":984,"description":424,"icon":425},[985,986,987,988,989,990,991,992],{"title":419,"path":420,"stem":421,"description":424,"icon":425},{"title":427,"path":428,"stem":429,"description":430,"icon":431},{"title":433,"path":434,"stem":435,"description":436,"icon":437},{"title":439,"path":440,"stem":441,"description":442,"icon":443},{"title":445,"path":446,"stem":447,"description":448,"icon":449},{"title":451,"path":452,"stem":453,"description":454,"icon":455},{"title":457,"path":458,"stem":459,"description":460,"icon":461},{"title":463,"path":464,"stem":465,"description":466,"icon":467},{"title":469,"path":470,"stem":471,"children":994,"description":474,"icon":29,"tags":997},[995],{"title":469,"path":470,"stem":471,"description":474,"icon":29,"tags":996},[476,477,478,479,332,480,481,482],[476,477,478,479,332,480,481,482],{"id":487,"title":401,"body":999,"description":404,"extension":846,"icon":405,"lastUpdated":847,"meta":1217,"navigation":854,"path":402,"seo":1219,"sitemap":1220,"stem":403,"__hash__":857},{"type":489,"value":1000,"toc":1201},[1001,1005,1007,1025,1027,1029,1031,1045,1047,1051,1053,1063,1071,1075,1077,1081,1093,1095,1097,1103,1105,1107,1109,1113,1115,1119,1121,1123,1125,1127,1133,1135,1139,1141,1171,1173,1179,1181,1183],[492,1002,1003],{},[495,1004],{"alt":497,"src":498},[492,1006,501],{},[503,1008,1009,1013,1017,1021],{},[506,1010,1011],{},[509,1012,512],{"href":511},[506,1014,1015],{},[509,1016,518],{"href":517},[506,1018,1019],{},[509,1020,524],{"href":523},[506,1022,1023],{},[509,1024,530],{"href":529},[532,1026],{},[535,1028,512],{"id":537},[492,1030,540],{},[542,1032,1033,1037,1041],{},[506,1034,1035,550],{},[547,1036,549],{},[506,1038,1039,556],{},[547,1040,555],{},[506,1042,1043,562],{},[547,1044,561],{},[492,1046,565],{},[492,1048,568,1049,572],{},[547,1050,571],{},[535,1052,576],{"id":575},[492,1054,579,1055,583,1057,587,1059,591,1061,595],{},[547,1056,582],{},[547,1058,586],{},[547,1060,590],{},[547,1062,594],{},[492,1064,598,1065,603,1067,607,1069,611],{},[600,1066,602],{},[600,1068,606],{},[600,1070,610],{},[492,1072,614,1073,618],{},[547,1074,617],{},[620,1076,623],{"id":622},[492,1078,626,1079,630],{},[547,1080,629],{},[492,1082,633,1083,607,1085,607,1087,607,1089,646,1091,650],{},[600,1084,636],{},[600,1086,639],{},[600,1088,642],{},[600,1090,645],{},[509,1092,649],{"href":414},[535,1094,518],{"id":653},[492,1096,656],{},[658,1098,1099],{},[492,1100,1101,665],{},[547,1102,664],{},[667,1104],{"alt":669,"src":670},[492,1106,673],{},[620,1108,677],{"id":676},[492,1110,680,1111,684],{},[547,1112,683],{},[535,1114,524],{"id":687},[492,1116,690,1117,694],{},[547,1118,693],{},[667,1120],{"alt":697,"src":698},[492,1122,701],{},[492,1124,704],{},[535,1126,530],{"id":707},[492,1128,710,1129,714,1131,717],{},[547,1130,713],{},[547,1132,427],{},[620,1134,721],{"id":720},[492,1136,724,1137,728],{},[600,1138,727],{},[620,1140,732],{"id":731},[492,1142,735,1143,607,1145,607,1147,745,1149,607,1151,607,1153,607,1155,607,1157,607,1159,607,1161,607,1163,607,1165,607,1167,607,1169,779],{},[600,1144,738],{},[600,1146,741],{},[600,1148,744],{},[600,1150,748],{},[600,1152,751],{},[600,1154,754],{},[600,1156,757],{},[600,1158,760],{},[600,1160,763],{},[600,1162,766],{},[600,1164,769],{},[600,1166,772],{},[600,1168,775],{},[600,1170,778],{},[620,1172,783],{"id":782},[492,1174,786,1175,790,1177,795],{},[600,1176,789],{},[792,1178,794],{},[532,1180],{},[535,1182,801],{"id":800},[542,1184,1185,1189,1193,1197],{},[506,1186,1187,809],{},[509,1188,808],{"href":408},[506,1190,1191,815],{},[509,1192,814],{"href":428},[506,1194,1195,821],{},[509,1196,820],{"href":440},[506,1198,1199,826],{},[509,1200,413],{"href":414},{"title":828,"searchDepth":829,"depth":829,"links":1202},[1203,1204,1207,1210,1211,1216],{"id":537,"depth":829,"text":512},{"id":575,"depth":829,"text":576,"children":1205},[1206],{"id":622,"depth":835,"text":623},{"id":653,"depth":829,"text":518,"children":1208},[1209],{"id":676,"depth":835,"text":677},{"id":687,"depth":829,"text":524},{"id":707,"depth":829,"text":530,"children":1212},[1213,1214,1215],{"id":720,"depth":835,"text":721},{"id":731,"depth":835,"text":732},{"id":782,"depth":835,"text":783},{"id":800,"depth":829,"text":801},{"readingTime":1218},{"text":850,"minutes":851,"time":852,"words":853},{"title":401,"description":404},{"loc":402},1782689038581]