Jump to: navigation, search

Difference between revisions of "Murano/Specifications/Per Tenant Isolation"

Line 6: Line 6:
  
 
==Realization==
 
==Realization==
In current implementation all files are grouped by data types and stored in corresponding directories. All those directories are located inside "Servicies" derectory along with manifests files (service definitions).
+
In current implementation all files are grouped by data types and stored in corresponding directories. All those directories are located inside "Servicies" derectory along with manifests files (service definitions). Since Metadata Server works on file system the best solution for data isolation would be dividing data into separate folders.  
Since Metadata Server works on file system the best solution for data isolation would be dividing data into separate folders. Each folder named by tenant_id for an each user. Users belong to the same tenant will have equal rights on file modification. Except tenant folders on the main level folder that contains all shared files will be exist - "Common" folder. This folder will have the same structure as tenant folders have but will be non-editable. There will be only one way to edit this folder - by coping files directly to "Common" folder (''Note: files should be copied to the correct place and all client and server cache should be cleaned'').  In case where name of file from tenant folder will coincide with name of file from the "Common" - file from tenant folder will be used.
+
 
 +
===Directory structure===
 +
* Tenant folders
 +
Separate folder named by tenant_id for an each tenant will created. Users belong to the same tenant will have equal rights on file modification. This folder should be created on first uploading request.
 +
 
 +
* Common folder
 +
Except tenant folders on the main level there will be "Common" folder that contains all shared resources. This folder wil be non-editable. There will be only one way to edit it - by coping files directly to "Common" folder (''Note: files should be copied to the correct place and all client and server cache should be cleaned'').  In case where name of file from tenant folder will coincide with name of file from the "Common" - file from tenant folder will be used.
  
 
===Client Cache Structure===
 
===Client Cache Structure===
Line 18: Line 24:
 
In case of name coincidence of common and tenant files common service would be invalid.
 
In case of name coincidence of common and tenant files common service would be invalid.
  
===Importing and exporting servicies===
+
==Importing and exporting servicies==
 +
Shared services should be exportable. And should be an opportunity to import new service to tenant-only environment.

Revision as of 15:09, 23 December 2013

Per-Tenant Isolation (for Murano-v0.4)

Introduction

Murano Metadata Repository Server was introduced in Murano-v0.4 release. But there is no any restrictions: any user is able to edit any service definition or file. To prevent that new per-tenant isolation feature would be added to murano-v0.4.1 release.

Realization

In current implementation all files are grouped by data types and stored in corresponding directories. All those directories are located inside "Servicies" derectory along with manifests files (service definitions). Since Metadata Server works on file system the best solution for data isolation would be dividing data into separate folders.

Directory structure

  • Tenant folders

Separate folder named by tenant_id for an each tenant will created. Users belong to the same tenant will have equal rights on file modification. This folder should be created on first uploading request.

  • Common folder

Except tenant folders on the main level there will be "Common" folder that contains all shared resources. This folder wil be non-editable. There will be only one way to edit it - by coping files directly to "Common" folder (Note: files should be copied to the correct place and all client and server cache should be cleaned). In case where name of file from tenant folder will coincide with name of file from the "Common" - file from tenant folder will be used.

Client Cache Structure

  • Murano Conductor cache organizations will stay the same - it has per-task isolation, so diffirent task could be in different tenant.
  • Murano Dashbord cache should be organized by tenant: one folder with tenant name stores separate cache.

UI Changes

In Murano Dashboard only minor changes should be made. During table rendering in "Service Definitions" section all shared servicies and files that are stored in "Common" folder will have no permitions to modify or delete. In case of name coincidence of common and tenant files common service would be invalid.

Importing and exporting servicies

Shared services should be exportable. And should be an opportunity to import new service to tenant-only environment.