HighQ API - 403 Access Denied on Folder Metadata Update

Hi everyone,

I'm working on a HighQ implementation where I need to pass data from one iSheet to the "Folder metadata" iSheet when a new iSheet item is created. The Folder metadata iSheet has several custom columns that I intend to update via the API.

To achieve this, I'm using the PUT request:
/{version}/isheet/{isheetid}/items/{itemid}
to update the relevant columns. However, when I attempt either a PUT or GET request, I receive a 403 Access Denied error.

Context & Troubleshooting Steps:

  • I can create, view, edit, and delete folders within the web UI.
  • I can retrieve folder details using the GET request:
    /{version}/folders/{folderid}
  • I do not believe it's a permission issue, as I can perform all folder operations via the UI.
  • I tested creating a folder via the API, then attempted to access it—but I still get the 403 error when trying to update its metadata.

My Questions:

  1. Are there any specific API permissions or settings I might be missing?
  2. Do folder metadata iSheets require a different API approach for updates?
  3. Has anyone encountered this issue and found a solution?

Any insights or guidance would be greatly appreciated! Thanks in advance.

Parents
  • 0
    Thomson Reuters Thomson Reuters staff member

    Hello,

    No special permission is required to update the file metadata iSheet. However, the application does not allow updates to system-generated file metadata columns such as "folder," "created by," "created at," "modified by," and "modified at." You can update the custom columns you have created without any restrictions.

    When updating custom columns in the file metadata iSheet, ensure that system-generated columns are not included in the payload, as this will result in a 403 error. Only send the columns you wish to update. Please refer to the sample below:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <isheet>
        <data>
          <item itemid="826006">
            <column attributecolumnid="16108">
              <rawdata>
                <value>API Update</value>
              </rawdata>
           </column>
         </item>
      </data>
    </isheet>

    If you continue to experience issues, please share your payload for further assistance.

    Thank you!

  • Also PLEASE give indication when are TR going to provide the API endpoint to obtain the Folder iSheet meta-data item ID from the Folder ID?

    It's missing from the suite of similar endpoints for Document and Task meta-data iSheets.  It's been years and years, and still no endpoint! We don't use folder meta-data feature because of this basic missing ability!

  • This was the root of the issue. I had the Folder ID but not the Item ID.

    I ended up using the /{version}/isheet/{isheetid}/items endpoint to get a list of folders, to find the Item ID of the specific folder I wanted to update.

    It would be much more efficient if TR exposed an endpoint to obtain Item ID from the Folder ID.

  • As you indicate, not really a scalable approach when you have thousands of folders. You can use iSheet advanced searching to narrow the search results, but this only works on Folder name, not eaxctly great when your folder name is 2018, for example, and there are several hundreds of them in all the various folder structures.

    Another laugable gotcha is when you copy a file using the API, you don't receive back the new File ID when (async) operation is completed! You have to go 'find' it in the new location based on name, size, date etc 

  • Reply
    • As you indicate, not really a scalable approach when you have thousands of folders. You can use iSheet advanced searching to narrow the search results, but this only works on Folder name, not eaxctly great when your folder name is 2018, for example, and there are several hundreds of them in all the various folder structures.

      Another laugable gotcha is when you copy a file using the API, you don't receive back the new File ID when (async) operation is completed! You have to go 'find' it in the new location based on name, size, date etc 

    Children
    No Data