Skip to content

DSA Permissions Basics

dglogik edited this page Oct 30, 2019 · 1 revision

Root level or global permissions and node-level permissions are set in the server.json file. Project permissions are set in the DGLux UI.

Permission structure

This is a basic permission definition structure in server.json file.

[permissionGroup, permissionValue]

permissionGroup could have one of the following values: username, dsId, custom group name or default.

permissionValue could have one of the following values: config, write, read, list, none.

Global or default permissions

This sets permissions for users defined in users.json for the entire DSA server instance. The following structure has to be set in server.json

   "defaultPermission": [
      [":config","config"],
      [":write","write"],
      [":read","read"],
      [":user","read"],
      [":trustedLink","write"],
      ["default","none"]
   ]

Important Note:

Setting global permission in server.json is mandatory to enable permissions on nodes. Otherwise, the broker ignores the permission settings.

Node level permissions

How to set permission for the node:

The following list of users available in the system.

 

If you log in as UserA who doesn't have any write permissions. Trying to add a param, this is not working.

 

Now log in as a super user (e.g., dgSuper).

 

Set the following permission for the MySQL DSLink -> DGLuxDG (DB connection) DB Connection details.

 

Permission Details:

Path: /downstream/MySQL/DgluxDB

Permissions: [["userA","write"], ["default","none"]]

Right click on /sys -> Update Permissions

Provide the above details and click Invoke.

 

The same permission could be verified using /sys -> Get Permissions for the same Path.

 

Restart the server:

 

Check the updated permissions in the DSA server's conns.json file.

Now log in as UserA for which the permissions have been set and try to add an attribute on the node.

 

This time the operation is successful.

In the same way, you can use permissions with groups.


More on DSA permission model

Protocol
 ◌ Design
 ◌ Initializing Connection
 ◌ Node API
  ◌ Methods
  ◌ Broker
   ◌ Broker Discovery
  ◌ Configs
  ◌ Value Types
 ◌ Tokens
 ◌ Quality of Service
DSLink Manager
 ◌ dslink.json
 ◌ Startup Command
SDK Development
 ◌ Implementation Guide
DSA Server
 ◌ Installation
 ◌ Update Server
 ◌ Server Configuration
 ◌ CLI Tools
 ◌ DSA Permission Basics
 ◌ DSA Permission Model
  ◌ Permission List for the Root
 ◌ Authentication
  ◌ OpenID Connect
  ◌ Password Hasher
 ◌ DGLux Server SSL (HTTPS)
 ◌ Docker
 ◌ Audit
 ◌ Data Node
 ◌ Install NGINX with DSA Server
 ◌ Configure Ubuntu Linux to auto start DSA server
 ◌ Troubleshooting

Clone this wiki locally