Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Align presentation definition filter evaluation with JSON Schema semantics

Đang mở
#4,413 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Ít trao đổi
Công nghệ
go
Lĩnh vực
backend

Hướng nghiên cứu

Bắt đầu với matchFilter trong vcr/pe và phần filter-semantics của Validate godoc, sau đó so sánh chúng với vendored JSON Schema validator trong vcr/pe/schema/v2. Xem lại tài liệu về capture-group trong docs/pages/deployment/policy.rst và mối quan hệ với selection-engine trong #4253. Được xem là hoàn tất khi đã quyết định phương án tương thích, cập nhật hành vi validation và evaluation, giữ nguyên hoặc di chuyển các capture groups, và ghi lại ảnh hưởng đến release.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Context

PEX defines a field's filter as a full JSON Schema (our own wire schema declares it as a draft-07 $ref), but matchFilter in vcr/pe implements a subset with semantics that deviate from JSON Schema. The load-time validator added in #4281 documents and flags the consequences (see the filter-semantics section in the Validate godoc), but the underlying evaluation is unchanged. This issue tracks the deliberate decision whether and how to align.

Current deviations

  1. enum shadows every other keyword: type, const and pattern are not evaluated when enum is set. JSON Schema ANDs all keywords.
  2. Filter.Const and Filter.Enum are string-typed in Go: spec-valid numeric or boolean consts fail at parse with an unmarshal error, and values compare as strings only.
  3. pattern is only evaluated when type is "string"; JSON Schema applies keywords per value type (a number trivially passes pattern).
  4. Numeric keywords (minimum, maximum, multipleOf), minLength, format and composition (allOf, anyOf, not) are not implemented. Since #4281 they are rejected by pe.Validate for own policy files instead of being silently dropped; remote PDs still parse leniently and match weaker than declared.
  5. Consequence of 1-4: numeric claim values cannot be value-constrained at all. Documented guidance is to issue filterable claims as strings.

Considerations

  • The evaluation machinery is already vendored: santhosh-tekuri/jsonschema validates the PD documents themselves (vcr/pe/schema/v2). Filter-level evaluation would be wiring, not a new dependency, and schemas can be compiled once at PD load.
  • The capture-group value extraction in matchFilter is a documented feature (docs/pages/deployment/policy.rst, "Extracting substrings with regular expressions") with no JSON Schema counterpart. Any alignment must preserve it or provide a migration.
  • Changing filter semantics changes live matching behavior for counterparty-supplied PDs as well as own policies; this needs release notes and possibly a compatibility window.
  • Ecosystem context: OpenID4VP 1.0 replaces PEX with DCQL. Decision 2026-07-16: PEX field matching stays (DCQL is less expressive for our field-binding use); eventual dual support is an option. That bounds how much to invest here.

Relates to #4253 (the selection engine consumes filter evaluation results; pe.Validate encodes the current semantics and must be updated together with any change here).

Ngôn ngữ chính
Go
Star
29
Fork
24
Merge trung bình
2 ngày 18 giờ
Pull request đã merge (30 ngày)
45

Chuẩn bị môi trường

  • Có Dockerfile hoặc tệp Docker Compose
  • Không có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của nuts-foundation/nuts-node

Tất cả issue của nuts-foundation/nuts-node

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.