Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JSON Schema 2019-09 and JTD (v8) #1198

Closed
14 of 16 tasks
epoberezkin opened this issue Apr 27, 2020 · 3 comments
Closed
14 of 16 tasks

JSON Schema 2019-09 and JTD (v8) #1198

epoberezkin opened this issue Apr 27, 2020 · 3 comments

Comments

@epoberezkin
Copy link
Member

epoberezkin commented Apr 27, 2020

Problem

2019-09 introduced two extensions to draft-07 validation process, that are very difficult / impossible to implement in the current Ajv design, specifically:

  • unevaluatedKeyword that depends on annotation collection (specifically, collection of "evaluated" properties in visited and successfully validated branches), and requires validation of all dependent branches without short-circuiting.
  • recursiveRef that depends on dynamic ref scoping

In addition to that, it would help rethinking the definition of "keyword" in Ajv and eliminating the difference between "standard" and "custom" keyword (Ajv taxonomy) and replacing it with "applicators" and "vocabularies" of "assertions" and "annotations" (JSON Schema taxonomy).

Some other challenges that can be addressed:

TODO

  • types to support new taxonomy of keywords
  • formalise reference resolution algorithm simplify reference resolution implementation
  • formalise annotation collection algorithm only implemented to support unevaluatedProperties/Items
  • formalise code generation algorithm
  • split formats to a separate package
  • implement in typescript
  • drop draft4 support
  • restructure docs
@epoberezkin
Copy link
Member Author

Please comment on the questions here: #1247 (comment)

#1247 is the scope for the first release of v7-alpha.

@epoberezkin
Copy link
Member Author

v7.0.0-beta.0 release notes

@epoberezkin epoberezkin modified the milestones: 7.0.0, 8.0.0 Feb 10, 2021
@epoberezkin epoberezkin changed the title JSON Schema 2019-09 and JTD (v7) JSON Schema 2019-09 and JTD (v8) Feb 10, 2021
@epoberezkin epoberezkin unpinned this issue Mar 15, 2021
@epoberezkin
Copy link
Member Author

v8 now released too, with JSON Schema 2020-12 and JSON Type Definition support: https://ajv.js.org/v6-to-v8-migration.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

1 participant