Skip to content

Document JSON Schema compliance status and known limitations #129

@sergiobayona

Description

@sergiobayona

Summary

Create documentation that clearly outlines the current JSON Schema compliance status, known limitations, and roadmap.

Current Status

  • 23 of 916 tests passing (2.5% compliance rate)
  • Most tests skipped due to architectural constraints, not missing features

Documentation Should Include

1. Architectural Constraints

  • EasyTalk models are always objects (can't test primitive root schemas)
  • Test data must be Hash (arrays/primitives as root data not supported)

2. Unsupported JSON Schema Features

Document which JSON Schema draft-7 features are not supported:

  • not keyword
  • anyOf / allOf at root level (property-level oneOf IS supported)
  • $ref to remote schemas
  • dependencies
  • if/then/else
  • patternProperties
  • propertyNames
  • additionalItems
  • Boolean schemas

3. Supported Features

Document what IS fully supported:

  • Basic type validation (string, integer, number, boolean, array)
  • String constraints (minLength, maxLength, pattern, format, enum)
  • Numeric constraints (minimum, maximum, exclusiveMin/Max, multipleOf)
  • Array constraints (minItems, maxItems, uniqueItems)
  • Nested object validation
  • T::OneOf, T::AnyOf, T::AllOf for property types
  • compose for schema composition

4. Validation Gaps

Document known gaps between JSON Schema validation and ActiveModel validation:

  • Empty string handling (presence vs type)
  • Error path granularity differences

Files to Create/Modify

  • docs/JSON_SCHEMA_COMPLIANCE.md (new)
  • Update README.md to reference compliance doc

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationjson-schema-complianceIssues related to JSON Schema compliance testingpriority: mediumJSON Schema compliance and testing improvements

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions