Is there a best practice of creating multi tenant application?
Hi, I have question about creating multi tenant application. In order to create multi tenant application, I tried these things: 1. I downloaded 'License Pool Manager' from AppStore , and imported module package into my application . 2. I related 'LicensePool' Entity with all entities of my application. 3. I added "X-path constraint" to each entities such as : 4. I created "before commit event" to all entities, which relate entity to LicensePool entity . Is there any other solution to create multi tenant application? I want to know best practice. Best regards.
Creating a multi-tenant application can start with your steps:
Connect all entities to an entity 'tenant'. You can consider connecting not all directly but via another entity
Fill the tenant data in Before commit events
Change the access rules (use path to user).
Access rules on specializations: don't use attributes of the generalization.
Tick 'Apply entity access' on all relevant microflows.
Mind the scheduled events. In some cases you need a special user to run parts of. That is too complex to describe here.
Create conversion microflow in case of an existing assocation
Take care of standard modules like excelimporter. It needs extra attention to make them multitenant. None of the appstore is multi-tenant.
Webservices: connect the webservice user to a tenant as well and give all external parties separate accounts.
Check needed app-engines on the cloud because the database load/queries are heavier
It would need a full blog to describe all steps in detail. This is only a short list.