Free cookie consent management tool by TermsFeed

Field-Level Security

On This Page

What is field-level security?

Field-level security controls who can see which fields in a record type. By default, any user with Viewer permission to the record type can see all fields. Field-level security lets you restrict specific fields to designated groups so that sensitive data is only visible to the right users.

For example, an Employee record type stores all employee information, including social security numbers. Employee names, titles, and departments can be visible to all application users. However, social security numbers must only be visible to users in the human resources (HR) group.

Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to closeimages/fls-example.png

Field-level security lets you specify that only users in the HR group can see the social security number field. If a user is not in the HR group and views an interface that references the social security field, the field displays null values or is hidden entirely. The behavior depends on where the user views the field.

Supported record types for field-level security

Field-level security is available on record types that use Optimized Data Access (synced) or Direct Data Access with features enabled (unsynced).

Field-level security is not available on legacy record types. Instead, if you're using a legacy record type, you can configure the showWhen parameter in your interface components to show or hide fields from certain users.

Where is field-level security applied?

Field-level security applies automatically throughout your applications and Process HQ. Field-level security does not apply in Appian Designer. Developers can use all available fields when building apps, while field-level security ensures that only the right users see the right fields at runtime.

Field-level security behaves differently depending on where users view the field. The following sections describe how field-level security affects users who do not have access to a field in each location.

Field-level security in Process HQ

If a user does not have access to a field, field-level security enforces the following behavior in Process HQ:

Field-level security in Appian Designer

Field-level security is not applied in Appian Designer. Developers can see all fields regardless of their field-level security configuration. Developers must test and validate field-level security configurations in their applications to confirm the expected behavior.

Field-level security in applications

If a user does not have access to a field, field-level security enforces the following behavior in applications:

  • Interface components: The field still displays in the component, but the values are null. You can use the a!doesUserHaveAccess() function to hide fields from the component if a user does not have access to see them.
  • Queries: The field is not returned in the output of a!queryRecordType() or a!queryRecordByIdentifier().
  • Filters and sorts: An error appears when the user tries to view a query or interface that uses the field to filter or sort data.
  • User filters: The user filter is hidden.
  • Search: The user cannot search by that field. For optimal performance and a consistent user experience, developers can limit the search to fields that are available to all users.
  • Common fields in a relationship: The field is hidden or null in the locations listed in this section. Configuring field-level security on a common field does not impact the security on the related record type. Even if a common field is hidden from a user, the user can still access the related record fields from that relationship if those fields are not also secured.
  • Real-time custom record fields: The real-time custom record field displays null values in applications. The real-time custom record field is hidden from the dataset in Process HQ.
  • Sync-time custom record fields: The sync-time custom record field still displays and the field values are visible. Developers must avoid using sensitive fields in sync-time custom record field configurations, or configure the custom record field to hide the sensitive data. For example, if users must not see the revenue field, a developer can create a sync-time custom record field that shows a range of revenue values (high, medium, or low).

Configure field-level security

You can configure field-level security on any field in your record type, except the primary key field.

To configure field-level security:

  1. In the record type, go to Field-Level Security.
  2. Click Edit Field Security next to the field you want to secure.
  3. Choose Who can see this field:
    • By default, All users who can see the record type is selected.
    • Select Only users… to specify which groups of users can see the field. Enter the name of the groups or use the Browse List option to select the groups.

    Tip:  If you don't have a group created yet, click to create a new group and automatically add that group to the field's security.

  4. Click OK.
  5. Click SAVE.

Feedback