Tenants and Users
We currently have an application based on Alfresco ECM, and we are evaluating whether to migrate to Nuxeo. Multi-tenancy is a big deal in this regard. I'm currently evaluating Nuxeo Platform 7.1 on Mac have 3 questions on this topic
Nuxeo documentation says:
Once tenant isolation is activated (see below), the following items are isolated and can only be seen from their tenant:
- Vocabularies (I10subjects and I10coverage)
However, the users seem to be global. If I create a user named UserOne on “Tenant One” (Domain One) and the log to “Tenant 2” (Domain Two) and try to create a user named “UserOne“, I get an error: “User Already Exists”. I can't find UserOne if I do a search, but if I try to create it, it fail. This is confusing.
Are users maintained globally and assigned to unique tenants? Is there any way to have users created per tenants?
Question # 2
Based on the above, if users are global, is it possible to have one user administer two tenants? I have created a user SuperAdmin (which I don't assign to any tenant in the user creation page) and I I set it as tenant administrator for both “Tenant 1” and “Tenant 2” in the “manage tenant” page. When the user logs in, it doesn't see either Tenant 1 or Tenant 2. As a matter of fact the user doesn't see any tenant unless I assign it to a tenant in the user management screen.
Question # 3
Since we are implementing our own UI on top of the ECM (now Alfresco, potentially Nuxeo) API access is a must. Does Nuxeo implement either REST or Java API calls for the following?
- Create Tenant
- Delete Tenant
- Edit Tenant
- Export Tenant
- Import Tenant
Can anybody help understand how multitenancy works in Nuxeo?
I've had the same issues on question 1, and may have found a solution, I've created a Jira issue on this, and Nuxeo is currently checking this.
Question 3: You'll have to create your own rest API for this. This can be done relatively easily by creating a new webmodule.
Hope this helps a little bit.
Kind regards, Bauke
At this moment I cannot share it, as the code still needs to be checked and verified. I've currently shared the code with Nuxeo, and they are looking into this.
for question three, If you install the Nuxeo IDE in Eclipse, you can easily create a new "webengine project" With this you can create new websites, but also new REST calls. Please look at: http://doc.nuxeo.com/display/NXDOC/WebEngine+Tutorials for more info on creating webengine projects
Kind regards, Bauke Roo
PS: it's better to "add a new comment" instead of posting an "answer"
It would be interesting to know how many Nuxeo clients are actually using multi-tenancy. My biggest concern is security in separation of data - that is, no possible chance of leakage between containers. In other Nuxeo and non-Nuxeo based solutions I have added my own API layer to implement multi-tenancy and this provides the most flexibility at the cost of additional development cycles.
Thank you so much for your answer. Im totally new to Nuxeo, so I don't know how easy it is to write a web module, or even what a web module is, but I'll look into that.
You mentioned that you may have found a solution. Would you mind sharing it, or were you referring to the Jira issue you logged?