Accessing NoSQL collections

From DreamFactory
Jump to: navigation, search
DreamFactoryTutorialsAccessing NoSQL collections
Line 7: Line 7:
 
Roles govern HTTP access to the REST API endpoints in DreamFactory. When you [set up a NoSQL database] in the 'Services' tab, no collections are accessible by default (unless you are a DreamFactory Admin).
 
Roles govern HTTP access to the REST API endpoints in DreamFactory. When you [set up a NoSQL database] in the 'Services' tab, no collections are accessible by default (unless you are a DreamFactory Admin).
  
You can give access to specific NoSQL collections by [[DreamFactory/Tutorials/Setting up user roles|setting up user roles]].  
+
You can give access to specific NoSQL collections by following the examples below.  
  
 
### Example - Enable HTTP access to NoSQL collections for a role
 
### Example - Enable HTTP access to NoSQL collections for a role
Line 19: Line 19:
 
<br>
 
<br>
  
[[File:Roles-sql.png|1000px]]
+
[[File:Roles-nosql.png|1000px]]
  
 
### Example - Creating and updating role permissions with the REST API
 
### Example - Creating and updating role permissions with the REST API
Line 27: Line 27:
 
[[File:Swagger-role-cu.png|1000px]]
 
[[File:Swagger-role-cu.png|1000px]]
  
For example, the POST below to the /system/role API will create a role called 'ios-address-book' with full HTTP API access to the contact table and the contact_group_relationship table.
+
For example, the POST below to the /system/role API will create a role called 'ios-address-book' with full HTTP API access to the contact collection and the account collection.
  
 
<pre>
 
<pre>

Revision as of 21:50, 23 October 2015

      1. Tutorial

Setting up role-based access to NoSQL collections.

      1. Background

Roles govern HTTP access to the REST API endpoints in DreamFactory. When you [set up a NoSQL database] in the 'Services' tab, no collections are accessible by default (unless you are a DreamFactory Admin).

You can give access to specific NoSQL collections by following the examples below.

      1. Example - Enable HTTP access to NoSQL collections for a role

1. Log into the DreamFactory admin console as an Admin. 2. Click on 'Roles' > 'Create'. 3. In the 'Access' tab, select your NoSQL database API for 'Service', the collection name for 'Component', HTTP verbs for 'Access', and API for 'Requestor'. Repeat for each collection you are exposing to this role.

Note: You can also allow script-only access to collections. This allows you to grant access to a collection by server-side scripts invoked by the API call, while not exposing direct access to the collection by the API.


Roles-nosql.png

      1. Example - Creating and updating role permissions with the REST API

You can create and update role permissions directly with the API. Click on 'API Docs' in the DreamFactory Admin Console and view the '/system/role' API calls.

Swagger-role-cu.png

For example, the POST below to the /system/role API will create a role called 'ios-address-book' with full HTTP API access to the contact collection and the account collection.

{
  "resource": [
    {
      "name": "ios-address-book",
      "description": "Role for users accessing the iOS address book app",
      "is_active": true,
      "role_service_access_by_role_id": [
        {
          "service_id": 6,
          "component": "_table/contact",
          "verb_mask": 31,
          "requestor_mask": 1
        },
        {
          "service_id": 6,
          "component": "_table/contact_group_relationship",
          "verb_mask": 31,
          "requestor_mask": 1
        }
      ]
    }
  ]
}