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

Unify path handling #2153

Open
sdirix opened this issue Jun 29, 2023 · 0 comments · May be fixed by #2346
Open

Unify path handling #2153

sdirix opened this issue Jun 29, 2023 · 0 comments · May be fixed by #2346
Assignees
Milestone

Comments

@sdirix
Copy link
Member

sdirix commented Jun 29, 2023

At the moment we maintain two different paths in JSON Forms:

  • The scope JSON Pointer paths used in UI Schema to resolve to subschemas of the handed over JSON Schema
  • The dot-separated path paths (lodash format) to resolve to entries in the form-wide data object

The JSON Pointers are well defined and JSON Forms support escaping of their special characters (/ and ~).
The dot-separated paths however don't support escaping, leading to errors when a . is contained within the path. This was already reported in #1631 and #1849

To fix the issues and to harmonize path handling in JSON Forms we should settle on JSON Pointers for all paths. As a consequence data paths would change from person.name to /person/name.

Benefits:

  • Well defined path format for which we already support escaping
  • By keeping the data path as a string (in contrary to changing it to an array) we preserve memoization in the application frameworks (especially React, Vue).
  • No more converting between paths, for example can be easily compared to AJV's JSON Pointers

Downside:

  • Breaks custom code which manually modified or created paths

Therefore it should be released only with a 4.0 version and be mentioned in the MIGRATION guide.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants