Skip to content
Release: Australia · Updated: 2026-06-23 · Official documentation · View source

ACL types

Create ACLs on different components of the system.

Record ACLs

Record ACLs consist of table and field names.

  • The table name is the table that you want to secure. If other tables extend from this table, then the table is considered a parent table. ACLs for parent tables apply to any table that extends the parent table.
  • The field name is the field that you want to secure. Some fields are part of multiple tables because of table extension. ACLs for fields in a parent table apply to any table that extends the parent table.

ACLs can secure the following record operations:

OperationDescription
executeEnables users to execute client callable script includes and REST endpoint execution.
query\_matchEnables users to submit match queries\("is", "is not", "is empty", etc\).
conditional\_table\_query\_rangeEnables users to give partial ACL-access based on read ACLs. Created for the tables that have the read ACLs without Data condition and script.
query\_rangeEnables users to submit range queries\("starts with", "ends with", "contains", etc\) and sorting is unrestricted.
createEnables users to insert new records \(rows\) into a table.
readEnables users to display records from a table.
writeEnables users to update records in a table.
deleteEnables users to remove records from a table or drop a table.
edit\_task\_relationsEnables users to extend the Task \[task\] table.
edit\_ci\_relationsEnables users to extend the Configuration Item \[cmdb\_ci\] table.
save\_as\_templateEnables users to save a record as a template.
add\_to\_listPrevents users from viewing or personalizing specific columns in the list mechanic.Note: Conditions and scripts are not supported.
list\_editEnables users to update records \(rows\) from a list.
report\_onEnables users to report on tables.
report\_viewEnables users to report on field ACLs.
personalize\_choicesEnables users to configure the table or field.
data\_fabricAllows a data fabric table to reference a local table.

Record ACLs are processed in the following order:

  • Match the object against table ACLs.
  • Match the object against field ACLs.

This processing order ensures that users gain access to more specific objects before gaining access to more general objects. A user must pass both table and field ACLs to access a record object.

  • If a user fails a table ACL, the user is denied access to all fields in the table, even if the user passes a field ACL.
  • If a user passes a table ACL, but fails a field ACL, the user cannot access the field described by the field ACL condition.
Image omitted: acl-matching.png
ACL matching

Processor ACLs

Processor ACLs specify the processor you want to secure. For a list of available processors, navigate to System Definition > Processors.

By default, an ACL for the EmailClientProcessor is included to restrict the email client to users with the itil role.

Processor ACLs honor the STAR (*) rule if they can't find a more specific ACL for those resources.

Table ACLs

The user must first pass the table ACL. Since the base system includes STAR (*) table ACLs that match every table, the user must always pass at least one table ACL. The base system provides additional table ACLs to control access to specific tables.

Table ACLs are processed in the following order:

  1. Match the table name. For example, incident.
  2. Match the parent table name. For example, task.
  3. Match any table name (*). For example, *.

If a user fails all table ACLs, the user cannot access any fields in the table. If a user passes a table ACL, the system then evaluates the field ACLs.

Field ACLs

After a user passes a table ACL, field ACLs are processed in the following order:

  1. Match the table and field name. For example, incident.number.
  2. Match the parent table and field name. For example, task.number.
  3. Match any table (*) and field name. For example, *.number.
  4. Match the table and any field (*). For example, incident.*.
  5. Match the parent table and any field (*). For example, task.*.
  6. Match any table (*) and any field (*). For example, *.*.

A user must pass the table ACL to be granted access to the table's fields. For example, the user must first pass the table ACL for the incident table to access the Number field in the incident table.

The first successful field ACL evaluation stops ACL processing at the field level. When a user passes a field ACL, the system stops searching for other matching field ACLs. For example, if a user passes the field ACL for incident.number, the system stops searching for other ACLs that secure the Number field in the incident table.

Access to query information of inferred data is restricted for protected fields, therefore preventing return of predictive information.

UI page ACLs

UI page ACLs specify the UI page to be secured. For a list of available UI pages, navigate to System UI > UI Pages. When defining an ACL for a UI page, use the fully scoped page name. For example, x_myapp_mypage.

Note: You can use the STAR (*) character in the Name field on ui_page type ACLs to match any UI pages.

UI page ACLs honor the STAR (*) rule if they can't find a more specific ACL for those resources. For example, if you have a UI page named mysecretpage but don't define an ACL for this UI page, the STAR (*) rule for the UI page processor is used for access check.

ACLs can secure the following UI page operation:

OperationDescription
readAllows users to display the UI page.

Client-callable script include ACLs

Script include ACLs specify the client-callable script include to be secured. For a list of available script includes, navigate to System Definition > Script Includes. You can personalize the list to show the Client callable column.

The base system does not include any ACLs for client-callable script includes.

Client-callable script include ACLs honor the STAR (*) rule if they cannot find a more specific ACL for those resources.