Skip to content
New issue

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

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

Already on GitHub? # 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.

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