fix(epcis): expose queryable identifiers for captured events - #2492
Open
branarakic wants to merge 12 commits into
Open
fix(epcis): expose queryable identifiers for captured events#2492branarakic wants to merge 12 commits into
branarakic wants to merge 12 commits into
Conversation
otReviewAgent
left a comment
There was a problem hiding this comment.
Review Agent completed this review and found no issues.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Return the stored event subject as a required
eventIDon every EPCIS query result, so callers can reuse it unchanged in the eventID filter. This covers caller-assigned and historical canonical DKG roots; it cannot reconstruct identifiers lost before storage.The legacy
toEpcisEventhelper accepts sparse generic rows and reconstructs available EPCIS fields without adding identity. A separate query decoder validates the subject as a safe absolute IRI and adds the required response eventID. Missing, blank-node, relative and unsafe query identities retain the 502 error contract. Shared field types preserve precise timestamps, locations, EPC arrays and provenance. Both converter and query-response contracts retain an open unknown index signature for existing dynamic-field inspection; only the validated query response promises a string identity. Capture still requires its type and timestamp.Validation: 185 offline EPCIS tests and coverage ratchets pass; 86 existing opt-in API E2E cases remain skipped. The sparse converter now explicitly tests valid URN and HTTPS identities as well as unusable ones, always omitting eventID. Query tests separately require reusable identity, including real-store round trips across visibility, finalization and subgraph paths. Package consumer types prove dynamic indexing still compiles while known fields remain precise and raw identity needs validation. EPCIS build/public types, repository lint, inventory and SPARQL checks pass. Earlier revisions additionally passed the CLI build.
Closes #708.