User Attributes

What is User Attribute?

User Attributes are users' metadata that can be used by admins to control what data each user can access in Dataset's Row-level Permission.

Once defined, a User Attribute will be created globally for all Users and User Groups. These User Attribute values can be assigned to Dataset fields as filter values to restrict the data retrieved from that Dataset.


Sample Use-cases of User Attributes

Row-level Permission control for Reporting (Datasets, Dashboards)

Please navigate to Row Level Permission to understand more on how it works.


Row-level Permission using System Email

In the following example, you have a data model that maps user's emails with data records you allow them to see.

Let's say each store manager has an account in Holistics. You can set up permission settings in your dataset to match managers.manager_email with the system attribute h_email, so each manager can only retrieve data from the stores that link to their manager_id when logging in to Holistics.

Customize Dimension / Measure / Label each user can see (coming soon)

You can add User Attributes into your expression to control data returned from queries.

// AML
case(
when: account_manager_email == H.current_user.h_email, then: customer_name,
else: 'redacted'
)

Filtering in Email Schedules (coming soon)

For recipients who have Holistics accounts, you can also control what data they see by using User Attributes as filter values.

In the following example, each store manager has an account in Holistics (recipients), the scheduled email each manager receives will be filtered by the store they can access.

Types of User Attributes

There are two types of User Attributes.

  • System User Attributes: These are predefined attributes by Holistics and cannot be modified.
  • Custom User Attributes: These are admin-defined attributes to customize the experience for their users.

System User Attributes

System User Attributes are provided by Holistics, prefixed with h_ and cannot be modified by any users.

Here is the list of System Attributes we currently support

  • h_email: email of a user account

Note: You cannot create custom User Attributes beginning with h_ since this keyword is reserved for System Attributes.


Custom User Attributes

Holistics allows admins to add and manage custom attributes of other users for more flexible permission control. For example, you can create extra fields to control Dataset Permission such as country_access, department, etc.

Notes:

  • You cannot set User Attribute values for other admin users and admin users are not restricted by RLP.
  • The default value of each User Attribute is Inherit from groups.

View & Manage User Attributes

To view and manage User Attributes of a User, visit the User Management page, and then select Attributes in the actions panel of a user you want to view. The Edit User Attribute values modal will appear, and you can view, add, or edit the values of each User Attribute.


1. Add New User Attributes

To create a new attribute, click Add or manage User Attributes button at the bottom left of the User Attributes modal. The User Attributes Management will appear, and here you can add new User Attributes that are applicable to all Users and User Groups in the system.

Here are settings for each User Attribute:

  • Name: must be standardized and unique within an organization's scope, as this will be used across Holistics's Analytics Modeling Language (coming soon). Attribute's name can only contain lowercase letters, numbers, underscores, and cannot start with a number.
  • Label: a user-friendly way to display the Attribute name.
  • Type: Currently there are four types: Text, TrueFalse, Number. Date. These types need to match with Dataset's field types in Row-level Permission Settings.
    - **Text**: To specify an array of string values, for example, Country, Department...
    - **TrueFalse**: To specify `f` for false value, `t` for true value
    - **Number**: To specify an array of number values, for example, User ID, Store ID...
    - **Date:** To specify a date or date range

2. Edit User Attribute values

After setting up User Attributes, you can set values of each User Attribute in Edit User Attributes values view.

There are 3 input types: Inherit from Groups, Manual Input, All.

2.1 Inherit from Groups

Inherit from Groups combines all the attribute values of all the Groups a user belongs to.

Inherit from Groups is a default type of all User Attribute, and if the user doesn't belong to any group, the value will be empty.

For example, you have a User Attribute country and a list of Europe managers. Instead of adding each country in Europe to each manager's country, you can create a group called Europe which its country attribute contains all the countries in Europe, and add all managers to that group.

2.2 Manual Input

Manual Input allows you to manually set the values of an Attribute for the User.

Some notes:

  • You can only input the values that their types match the type of the User Attribute.
  • Empty value means the User doesn't have any values for this Attribute.

2.3 All

If you want to get all available values of a Dataset's field, you can leverage the ALL input type. With this type, the user will not be restricted by permission controls tied to that Attribute.

For instance, if you have a CEO who manage all merchants and department of all countries, you only need to change his User Attribute's values to All.


3. Delete User Attributes

You can only delete a User Attribute if it is not used anywhere in Holistics. Click Add or manage Attributes to open User Attributes management modal and click Delete to remove the User Attribute you no longer need.

Notes:

  • The attribute will be deleted for all Users and Groups .
  • Delete action cannot be undone.
  • If an attribute has been used in Dataset Permission Settings, you need to delete that permission rule first.