Pydio Cells API v1.6 question

Cells v1.6.1

I am attempting to use Postman to play with the API. I have successfully authenticated and can create a cell under a particular user. However, I’ve run into an odd problem. If I create two cells with the same title e.g. “testtitle” then the “Path” component necessary for creating folders will be “testtitle” and “testtitle-1”. In order to create folders in these separately I need to use the Path with the Tree API (e.g. testtitle/new folder or testtitle-1/new folder), which means I need to be able to get the Path in order to distinguish between two cells with the same title. In the API docs this appears to be done using GET “/a/share/cell/{{cell_uuid}}” which should return a “RootNodes” array. Unfortunately, for no apparent reason and only when using Postman, this API call is only returning a subset of the documented data and is not including “RootNodes”. This means I can’t get the path name and therefore I cannot distinguish between two cells with the same title.

(1) There’s something weird going on that only happens when I use Postman because if I watch what happens in the browser with the Pydio network calls then GET “/a/share/cell/{{uuid}}” will return RootNodes as expected. It’s just my API calls from Postman that seem to be returning a limited subset of the data. Could it be a security thing? I’m using the documented “cells-front” client user to do OAuth2, exactly as described in the API docs explaining how to use Postman for Cells v1.

(2) This is maybe a bit of a rant, but why does the Tree API use slug paths for the root instead of uuids? Speaking as a software engineer myself, it seems counter-intuitive to use a label that has the potential to be non-unique in a situation where the uuid would remove any chance of conflict. I’ve already run into issues where my API failures have resulted in incorrect slugs due to some faulty logic in the slug numbering (the wrong “name” was ending up in the idx_…_tree table somehow). I fixed these in the SQL manually and haven’t seen them again since fixing my API calls to work correctly though.

Hello, @scott.bentley,

Could you try the following:

  • PUT your cell
  • Wait 1 second (when you create the cell, it need to be indexed by Pydio Cells and that is why you did not see the path in the PUT method response)
  • Then use the GET /a/share/cell/{uuid} endpoint

You should see something that should look like this

"RootNodes": [
        {
            "Uuid": "085f6f1b-5da2-4275-a787-8b57ed1230cd",
            "Path": "lalalalaadada",
            "Type": "COLLECTION",
            "Size": "36",
  • Could you confirm me that cell appears on the WebUI list when create it with postman?

  • Could you show me the body of the requests that you use with Postman?

@scott.bentley,

after some more testing we found a bug that happens when you use an external client such as Postman, we are going to work on this.

If you want to create some Cells programmatically you can make use of the cells-sdk go.

Thank you zayn, I’ve added a 2s wait into Postman after cell creation and it works perfectly now.

I’m using PHP in my framework that I’m trying to create a connector for Pydio, I’m not well versed in Go. It looks like the cells-sdk-go is command-line? Is there a way to use it directly in PHP?