Align presentation definition filter evaluation with JSON Schema semantics
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Empieza por matchFilter en vcr/pe y la sección filter-semantics de la Validate godoc, y después compáralos con el vendored JSON Schema validator en vcr/pe/schema/v2. Revisa la documentación de capture-group en docs/pages/deployment/policy.rst y la relación con selection-engine en #4253. Se considera terminado cuando haya un enfoque de compatibilidad decidido, se hayan actualizado el comportamiento de validación y evaluación, se hayan conservado o migrado los capture groups y se haya documentado el impacto en la versión.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
enumshadows every other keyword:type,constandpatternare not evaluated whenenumis set. JSON Schema ANDs all keywords.Filter.ConstandFilter.Enumare string-typed in Go: spec-valid numeric or boolean consts fail at parse with an unmarshal error, and values compare as strings only.patternis only evaluated whentypeis "string"; JSON Schema applies keywords per value type (a number trivially passespattern).- Numeric keywords (
minimum,maximum,multipleOf),minLength,formatand composition (allOf,anyOf,not) are not implemented. Since #4281 they are rejected bype.Validatefor own policy files instead of being silently dropped; remote PDs still parse leniently and match weaker than declared. - 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/jsonschemavalidates 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
matchFilteris 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).
- Lenguaje dominante
- Go
- Estrellas
- 29
- Forks
- 24
- Merge medio
- 2 d 18 h
- PR fusionados (30 d)
- 45
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de nuts-foundation/nuts-node
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
nuts-foundation/nuts-node#4450 ·
Los mantenedores suelen responder en 1 día
-
bug discuss
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
nuts-foundation/nuts-node#4436 ·
Los mantenedores suelen responder en 1 día
-
auth bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
nuts-foundation/nuts-node#4435 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
nuts-foundation/nuts-node#4321 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
nuts-foundation/nuts-node#4230 ·
Los mantenedores suelen responder en 1 día
Todos los issues de nuts-foundation/nuts-node
Issues similares
-
Project submission:Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
slavakurilyak/awesome-ai-agents#845 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
JakeChampion/lang#13132 ·
Los mantenedores suelen responder en 1 día
-
[BUG] deploy.restart_policy without condition drops the restart policyPosiblemente ocupada @akshat-lakhera la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
docker/compose#14383 · 1 comentario ·
Los mantenedores suelen responder en 1 día