Jump to: navigation, search

Difference between revisions of "Trove/datastore-visibility"

(Database)
(ReST API)
Line 24: Line 24:
  
 
=== ReST API ===
 
=== ReST API ===
The admin users will be able to list all the datastore versions.
+
A. visibility attribute to the datastore version. It can be public/private.
The other users will be able to view only public datastore/datastore versions in their list.
+
B. adding a datastore version members table to add tenants for private datastores.
  
This filtering is only for the list calls, not for the GET call. This ensures that the customers can access the datastore if they are provided with the UUID of the datastore version.
+
(1) If visibility is public, then
 +
-all users
 +
*can view it in the list and
 +
*make a GET call on the datastore version
 +
-all admin
 +
*can view it in the list and
 +
*make a GET call on the datastore version
 +
(2) If visibility is private, then
 +
users who are members of the datastore version
 +
*can view it in the list and
 +
*make a GET call on the datastore version
 +
-all admin
 +
*can view it in the list and
 +
*make a GET call on the datastore version
 +
*add and remove tenants as members of a datastore version
  
 
== Comments/Questions From Community ==
 
== Comments/Questions From Community ==

Revision as of 19:28, 19 May 2014

Description

This blueprint suggests adding a visibility attribute to the datastore versions. This enables the datastore to be still active, but not visible to the users.

Blueprint: https://blueprints.launchpad.net/trove/+spec/datastore-visibility

Justification/Benefits

There might be some datastores, which the deployers require to be active but not visible to customers in production environment. This visibility flag ensures that only the datastore versions which have been marked as public are visible in the list. Example use case: Say we want to have an active datastore A in production and not expose it to customers yet. The visibility flag will ensure it is visible on the datastore list call only to admins.

FAQ: (1) Why is the flag a string visibility vs a boolean is_public? In glance, we have is_public as a boolean flag. But as we started introducing new features like image sharing, we realized that having a boolean made it harder to add more visibility related features. Hence, in order to keep it extensible, the visibility flag. The currently supported values for it will be 'public' which are visible to users and 'private' which are not visible to users.

Impacts

Configuration

None

Database

This involves

  • database migration of adding a column visibility to the datastore_versions table.
  • new table datastore_version_members which columns - id, datastore_version_id, tenant

ReST API

A. visibility attribute to the datastore version. It can be public/private.
B. adding a datastore version members table to add tenants for private datastores.

(1) If visibility is public, then -all users

*can view it in the list and 
*make a GET call on the datastore version

-all admin

*can view it in the list and 
*make a GET call on the datastore version

(2) If visibility is private, then

users who are members of the datastore version
*can view it in the list and 
*make a GET call on the datastore version

-all admin

*can view it in the list and 
*make a GET call on the datastore version
*add and remove tenants as members of a datastore version

Comments/Questions From Community