Data entitlements

Data Control Entitlements allow you to set up permissions for who can view, edit, or approve data within a table. Note that this was formerly called "Design Controls"

Overview

Data Entitlements define who has access to do what on your Cinchy platform. These access controls are universally set at a cellular level, meaning that you can configure user access in the way that best supports your use case.

You can set entitlements such that specific users can view, edit, delete, or insert data you want them to access.

Cinchy supports user-based, role-based, and attribute-based access controls.

User-based controls

User-based controls are entitlements given to specific users. This is done via the Users column.

Defining access based on a user means that even if the user changes their role, team, group, etc., they will still maintain their data entitlements.

Role-Based Controls

Role-based controls are entitlements given to set(s) or users based on their role in your environment. For example, you are able to define that only the Product team has access to insert records into a Product Roadmap table. Instead of configuring the entitlements user by user, which takes time and can lead to incorrect data when/if employees shift teams, you can configure it such that any user within the Product team automatically maintains the same level of control across the board.

In Cinchy, this is done via the Groups column.

Attribute-based controls

Attribute-based controls are entitlements given to a user(s) based on a defined set of tags. This can include attributes such as their team, their role, their security clearance, their location, etc.

Defining entitlements based on attributes allows you to drill even deeper into the specificity of which users can do what on your tables.

In Cinchy, you can set up an infinite number of attributes based on your specific use case(s). This is done via Row Filters.

For example, if you have an Employee table that contains salary information visible only to certain people, you can configure a Row Filter such that the logged in user MUST have at least one of the following attributes to be able to see it:

  • The user to whom the salary belongs

  • Their manager

  • All VP level executives

  • The CEO

You are able to add as many attributes into your Row Filter as needed. For example you could only allow a user with the following set of tags to view a row: Located in Toronto, on the Marketing Team, and with a Security Clearance level of 2.

Change entitlements

  1. When viewing a table, click on Data Controls > Entitlements from the left navigation menu (Image 1).

  1. Currently both the table creator and anyone in the Cinchy Administrators group has access to perform any action on any objects. You can give granular entitlements at a Group or a User level, for both viewing and editing access (Image 2).

  1. In the above scenario, John Smith is part of the Developers group. They're able to view all columns via the entitlement to the Developers group, and they're able to edit both the First Name and Last Name column through different entitlements.

Table-level entitlements

Table-level entitlements apply to the entire table.

Marketplace

Approving this entitlement enables users to see and search for the table in the Marketplace/Homepage.

Bulk Export

Approving this entitlement enables users to export data from the table via the Manage Data screen (Image 3).

Direct Query

Approving this entitlement enables users to query the data from the table directly in the Query Builder (Image 4).

Design Table

Approving this entitlement enables users to alter the structure of the table.

This is a builder/administrative function and shouldn't be granted to end users.

Design Controls

Approving this entitlement enables users to change the permissions on a table.

This is a builder/administrative function and shouldn't be granted to end users.

Column-level entitlements

Column-level entitlements apply only to columns.

View All Columns

Approving this entitlement enables users to view all columns within the table.

Note that this applies to any new columns that are added to the table after providing this permission as well.

View Specific Columns

This is a drop down where you can select the specific columns you want to grant view access to for users.

Edit All Columns

Approving this entitlement enables users to edit all columns within the table.

Note that this applies to any new columns that are added to the table after providing this permission as well.

Giving a user edit permission will also give them view permission.

Edit Specific Columns

This is a drop down where you can select the specific columns you want to grant edit access to for users.

Giving a user edit permission will also give them view permission.

Approve All Columns

Approving this entitlement enables users to approve all columns within the table. This also allows users to approve Create and Delete requests.

Note that this applies to any new columns that are added to the table after providing this permission as well.

Approve permissions only apply when Change Approvals are enabled.

Giving a user approve permission will also give them view permission.

Approve Specific Columns

This is a drop down where you can select the specific columns you want to grant approve access to for users.

Approve permissions only apply when Change Approvals are enabled.

Giving a user approve permission will also give them view permission.

Link columns require both permission to the column within the table and the column in the link column itself.

Row-level entitlements

Row-level entitlements apply to specific rows. Used in conjunction with Column Level entitlements this allows for granular cell level entitlements.

Insert Row

Approving this entitlement enables users to create new rows in the table.

Delete Row

Approving this entitlement enables users to delete rows in the table.

Viewable & Editable Row Filter

This is a CQL fragment that applies a filter to which rows will be viewable or editable. Think of the column entitlements and the fragment as a SQL statement applied to the table.SELECT {Edit Selected Columns} WHERE {Editable Row Filter}

Examples for Row Filter

Most of these examples will be with the editable row filter so it's easy to see the underlying data for comparison. However this can be done for viewable row data as well.

Sample data

(Image 5)

Example

With the following entitlements (Image 6):

  • Edit Specific Columns: Age

  • Editable Row Filter: [Age] > 30

Example with viewable data

(Image 7)

  • View Specific Columns: First Name, Last Name

  • Viewable Row Filter: [End Date] IS NULL OR [End Date] > GetDate()

Layer on another entitlement

(Image 8)

  • View Specific Columns: All

  • Edit Specific Columns: First Name, Last Name, Age

  • Viewable Row Filter: [First Name] = 'John'

  • Editable Row Filter: [First Name] = 'John'

Example for current user

(Image 9)

For the All Users group:

(Image 10)

  • View All Columns: Check

  • Edit Selected Columns: First Name, Last Name

  • Editable Row Filter: [User Account].[Cinchy Id] = CurrentUserId()

To allow a user to edit certain fields of their own data, you will need an association from a user to the [Cinchy].[Users] table. You can then use the following function to allow edit for that user, where [...] is the chain of link columns to get to the Users table.

[...].[Cinchy Id] = CurrentUserId()

Last updated