Debugging JSON overrides

May 22, 2024

This section shows how to debug the json overrides on a content by providing the following information:

  • the priority of the override
  • the module providing the override
  • the file name of the override
  • the nodetype associated with the override
  • if permissions are used in the override
{
  forms {
    editForm(uuidOrPath: "/sites/digitall/home/area-main", uiLocale: "en", locale: "en") {
      mergedItems {
        priority
        bundleName
        filename
        condition {
          nodeType
          withPermission
        }
      }
    }
  }
} 

It will return the following payload for /sites/digitall/home/area-main:

{
  "data": {
    "forms": {
      "editForm": {
        "mergedItems": [
          {
            "priority": 1,
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/nt_base.json",
            "condition": {
              "nodeType": "nt:base",
              "withPermission": null
            }
          },
          {
            "priority": 1,
            "bundleName": "site-settings-seo",
            "filename": "/META-INF/jahia-content-editor-forms/forms/jmix_description_move_section.json",
            "condition": {
              "nodeType": "jmix:description",
              "withPermission": null
            }
          },
          {
            "priority": 1,
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/fieldsets/jmix_skinnable.json",
            "condition": {
              "nodeType": "jmix:skinnable",
              "withPermission": null
            }
          },
          {
            "priority": 1,
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/fieldsets/jmix_cache.json",
            "condition": {
              "nodeType": "jmix:cache",
              "withPermission": null
            }
          },
          {
            "priority": 1.1,
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/nt_base_orderable.json",
            "condition": {
              "nodeType": "nt:base",
              "withPermission": null
            }
          },
          {
            "priority": 2,
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/mix_title.json",
            "condition": {
              "nodeType": "mix:title",
              "withPermission": null
            }
          },
          {
            "priority": 2,
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/jmix_channelSelection.json",
            "condition": {
              "nodeType": "jmix:channelSelection",
              "withPermission": null
            }
          },
          {
            "priority": 2,
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/jmix_tagged.json",
            "condition": {
              "nodeType": "jmix:tagged",
              "withPermission": null
            }
          },
          {
            "priority": 2,
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/jmix_contributeMode.json",
            "condition": {
              "nodeType": "jmix:contributeMode",
              "withPermission": null
            }
          },
          {
            "priority": 2,
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/jmix_listSizeLimit.json",
            "condition": {
              "nodeType": "jmix:listSizeLimit",
              "withPermission": null
            }
          }
        ]
      }
    }
  }
}

It's also possible to get the full details of the item:

{
  forms {
    editForm(uuidOrPath: "/sites/digitall/home/area-main", uiLocale: "en", locale: "en") {
      mergedItems {
        bundleName
        filename
        form {
          name
          sections {
            name
            fieldSets {
              fields {
                name
              }
            }
          }
        }
        fieldSet {
          name
          fields {
            name
          }
        }
      }
    }
  }
}

It will return the following payload:

{
  "data": {
    "forms": {
      "editForm": {
        "mergedItems": [
          {
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/nt_base.json",
            "form": {
              "name": "nt:base",
              "sections": [
                {
                  "name": "content",
                  "fieldSets": []
                },
                {
                  "name": "classification",
                  "fieldSets": []
                },
                {
                  "name": "metadata",
                  "fieldSets": []
                },
                {
                  "name": "layout",
                  "fieldSets": []
                },
                {
                  "name": "options",
                  "fieldSets": [
                    {
                      "fields": [
                        {
                          "name": "ce:systemName"
                        }
                      ]
                    }
                  ]
                },
                {
                  "name": "seo",
                  "fieldSets": [
                    {
                      "fields": [
                        {
                          "name": "jcr:description"
                        }
                      ]
                    }
                  ]
                },
                {
                  "name": "listOrdering",
                  "fieldSets": []
                },
                {
                  "name": "visibility",
                  "fieldSets": []
                },
                {
                  "name": "permissions",
                  "fieldSets": []
                }
              ]
            },
            "fieldSet": null
          },
          {
            "bundleName": "site-settings-seo",
            "filename": "/META-INF/jahia-content-editor-forms/forms/jmix_description_move_section.json",
            "form": {
              "name": "jmix:description",
              "sections": [
                {
                  "name": "seo",
                  "fieldSets": [
                    {
                      "fields": [
                        {
                          "name": "jcr:description"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "fieldSet": null
          },
          {
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/fieldsets/jmix_skinnable.json",
            "form": null,
            "fieldSet": {
              "name": "jmix:skinnable",
              "fields": []
            }
          },
          {
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/fieldsets/jmix_cache.json",
            "form": null,
            "fieldSet": {
              "name": "jmix:cache",
              "fields": []
            }
          },
          {
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/nt_base_orderable.json",
            "form": {
              "name": "nt:base",
              "sections": [
                {
                  "name": "listOrdering",
                  "fieldSets": [
                    {
                      "fields": [
                        {
                          "name": "ce:manualOrdering"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "fieldSet": null
          },
          {
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/mix_title.json",
            "form": {
              "name": "mix:title",
              "sections": [
                {
                  "name": "content",
                  "fieldSets": [
                    {
                      "fields": [
                        {
                          "name": "jcr:title"
                        },
                        {
                          "name": "ce:systemName"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "fieldSet": null
          },
          {
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/jmix_channelSelection.json",
            "form": {
              "name": "jmix:channelSelection",
              "sections": [
                {
                  "name": "visibility",
                  "fieldSets": [
                    {
                      "fields": [
                        {
                          "name": "j:channelSelection"
                        },
                        {
                          "name": "j:channelIncludeOrExclude"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "fieldSet": null
          },
          {
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/jmix_tagged.json",
            "form": {
              "name": "jmix:tagged",
              "sections": [
                {
                  "name": "classification",
                  "fieldSets": [
                    {
                      "fields": [
                        {
                          "name": "j:tagList"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "fieldSet": null
          },
          {
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/jmix_contributeMode.json",
            "form": {
              "name": "jmix:contributeMode",
              "sections": [
                {
                  "name": "listOrdering",
                  "fieldSets": [
                    {
                      "fields": [
                        {
                          "name": "j:editableInContribution"
                        },
                        {
                          "name": "j:contributeTypes"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "fieldSet": null
          },
          {
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/jmix_listSizeLimit.json",
            "form": {
              "name": "jmix:listSizeLimit",
              "sections": [
                {
                  "name": "listOrdering",
                  "fieldSets": [
                    {
                      "fields": []
                    }
                  ]
                }
              ]
            },
            "fieldSet": null
          }
        ]
      }
    }
  }
}

And by adding a filter, get quickly which file is modifying a specific value:

{
  forms {
    editForm(uuidOrPath: "/sites/digitall", uiLocale: "en", locale: "en") {
      hasPreview
      mergedItems(filter:{filters:{fieldName:"form.hasPreview", evaluation:NOT_EMPTY}}) {
        bundleName
        filename
        form {
          hasPreview
        }
      }
    }
  }
} 

It will return the following payload:

{
  "data": {
    "forms": {
      "editForm": {
        "hasPreview": false,
        "mergedItems": [
          {
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/nt_base.json",
            "form": {
              "hasPreview": true
            }
          },
          {
            "bundleName": "jcontent",
            "filename": "/META-INF/jahia-content-editor-forms/forms/jnt_virtualsite.json",
            "form": {
              "hasPreview": false
            }
          }
        ]
      }
    }
  }
}