feat: Provide Dynamic Read API Endpoint for Guardian Policy Data #5796#6074
feat: Provide Dynamic Read API Endpoint for Guardian Policy Data #5796#6074gayanath8 wants to merge 5 commits into
Conversation
- Added GET /policy-data/query endpoint to query VC documents - Supports filtering by system fields, option.* fields, and document.credentialSubject fields - Filter operators: eq, ne, in, nin, gt, gte, lt, lte, contains - Supports pagination (page, pageSize up to 200) and sorting with ASC/DESC - Added endpoint documentation under docs/guardian/standard-registry/policies/dynamic-data-query Signed-off-by: gayanath8 <gayanathr@xeptagon.com>
…o feature/5796
…o feature/5796
…o feature/5796
…into feature/5796
|
Hi @Pyatakov |
Issue Labels
#5796
Requirements
Summary of Changes
GET /policy-data/query— Read-only endpoint that returns paginated Verifiable Credential (VC) documents committed by a published policy. The caller supplies a policy ID, schema name and optional field-level filters; the service resolves the schema IRI internally, applies safe MongoDB operator translation, and returns matching documents with pagination metadata.Query Parameters
policyIdschemaNameInstaller Activity Report)filterssort-for descending (e.g.-createDate)page1)pageSize200(default:20)Filter Options
1. System Fields (direct MongoDB document properties)
ownerassignedToassignedToGroupgrouphederaStatusNEW|ISSUE|REVOKE|SUSPEND|RESUME|FAILEDsignaturetypedraftediteddisconnectedpolicyIdschema#MySchema)tagmessageIdtopicIdhashcreateDateupdateDate2. Option Fields
Any
option.*sub-field stored by the policy engine.3. Document Credential Fields
Any
document.credentialSubject[n].fieldXpath cached by the grid columns.Bracket notation
[0]and dot notation.0.are both accepted.Filter Operators
contains$regex{"op": "contains", "value": "Voluptatem"}eq$eq{"op": "eq", "value": "Pass"}ne$ne{"op": "ne", "value": "Fail"}in$in{"op": "in", "value": ["Pass", "Conditional"]}nin$nin{"op": "nin", "value": ["Germany"]}gt$gt{"op": "gt", "value": 5000}gte$gte{"op": "gte", "value": 80}lt$lt{"op": "lt", "value": 100}lte$lte{"op": "lte", "value": 70}1. No Filters Defaults
2. Custom Page and Size
3. Sort By Filed 3 (Number Field)
4. Different Filters
5. Multiple Filters
Validations