[SERVER-51013] Improve granularity of $jsonSchema validation errors in the case of inversion Created: 17/Sep/20 Updated: 06/Dec/22 |
|
| Status: | Backlog |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Mihai Andrei | Assignee: | Backlog - Query Execution |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | qexec-team | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Query Execution
|
| Participants: |
| Description |
|
Currently, any $jsonSchema validator expression which features a negation will simply state that the child expression or the schema matched (ex. given expression {$nor: [{$jsonSchema: {}}]} or {$jsonSchema: {not: {}}} and the document {}, you will get "schema matched" in the first case and "child expression matched" the second case). This ticket tracks the work necessary to make inversion provide detailed errors. Note that this has a surprising amount of complexity, namely because of the semantics of various $jsonSchema keywords and the way that some keywords are translated into MatchExpression. |
| Comments |
| Comment by Mihai Andrei [ 18/Sep/20 ] |
|
I don't think we need a follow up epic (at the very least, I wouldn't want one). Between keeping it on the backlog and closing it as won't do, I would strongly prefer the latter. |
| Comment by David Storch [ 18/Sep/20 ] |
|
I'm flagging for scheduling. Do we want to house this within a follow-up epic, just keep it on the backlog, or close it as "Won't Do"? |