Skip to main content
Version: v5.1

Permission model

Use a Permission model object to define the permissions certain Users or UserGroups have for resources under a given namespace. In your Permission model object, you can define the actions that the permission permits, such as READ, EDIT, DELETE, and SHARE.

Platform services and the Passport Service#

In the platform, each service manages the permissions for its own resource types but all permissions are stored in the Passport Service.

Figure: Services, permissions, and the Passport Service data model

Permission object model#

Each permission relates to the following possible platform objects:

The following model architecture demonstrates the possible objects related to a Permission.

Figure: Objects related to a permission

Creating a Permission object#

To create a permission on the platform, construct a Permission object based on the Permission model schema and post it to the Passport Service with one of the following options:

Permission lookups#

You can look up permissions with the GET /passportsvc/api/v1/permissions REST API endpoint in the two following ways:

  1. By IRN: Gets the permissions with IRN patterns that cover the IRN you pass.
  2. By pattern: Get permissions that have IRNs that match a pattern you pass.

For more information, see Permission lookups.

Permission authorization#

The following diagram demonstrates the data flow for a NamedUserItem request with permission authentication:

NumberRequest/respose
1API request GET /nameduseritems/:id to get a NamedUserItem from the Item Service
2The Item Service requests the permissions from the Passport Service with GET /PERMISSIONS
3The Passport Service responds with a Permission response to the Item Service.
3.1The Item Service authorizes based on permissions
4The API response that contains the requested NamedUserItem