-
-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
This issue tracks leftover tasks or future enhancements for the JSON Schema linter and canonicalizer. These were identified during GSoC work and should be considered for future development.
1. Documentation
- Move existing rule documentations to the JSON Schema CLI repo for now, so they are more visible and semi-official until we upstream them properly.
2. Reference Handling
- Break schemas when necessary and use
rereference()in rules that transform applicators, to ensure$refpointers stay correct.
3. Non-auto-fixable Rules
Implement rules that cannot be safely auto-fixed, but should instead produce a clear user-friendly lint message.
-
conflicting_readonly_writeonly.json -
const_and_enum_conflict.json -
examples_must_validate.json -
forbid_empty_enum.json -
format_type_mismatch.json -
incoherent_exclusive_limits.json -
incoherent_inclusive_limits.json -
mincontains_greater_than_maxcontains.json -
mincontains_zero_without_maxcontains.json -
no_actionable_text_in_title_description.json -
oneof_min_branches.json -
require_absolute_draft_uri.json -
require_description_title.json -
require_schema_declaration.json -
top_level_id_must_be_absolute.json -
unbounded_collection_limits.json -
unique_branches_in_oneof.json -
unresolved_ref_pointer.json
4. Additional Rule Enhancements
- Extend
unnecessary_allof_wrapper_propertiesto work on older dialects, not just modern ones. - Improve diagnostics in
duplicate_anyof_branchesby highlighting which specific branches are duplicated. - Improve diagnostics in
duplicate_enum_valuesby highlighting which specific enum entries are duplicated. - Do not warn about
contentMediaTypeorcontentSchemawithoutcontentEncodingifcontentEncodingis available through a$ref - Prevent
patternalongsideenumorconst - Lint that
patternandpatternPropertiesonly have ECMA-262 compliant regexes
5. TODOs Inside Existing Rules
Specifically in UnnecessaryAllOfWrapperModern:
- Add logic to check for type intersections in
typearrays, not just direct equality. - Create a separate rule that removes a keyword if it is exactly equal to an instance of the same keyword already present outside the wrapper.
Metadata
Metadata
Assignees
Labels
No labels