Skip to content

Entity Management

Entities are the foundational elements of your authorization model. They define the actors (who can act) and resources (what can be acted upon) in your system.

  • Principals — Who can perform actions (e.g., User, Admin, ServiceAccount)
  • Resources — What can be accessed (e.g., Document, Order, Project)
  • Properties — Entity attributes used in conditions (ABAC model) (e.g., department, owner, status)
  • Permissions — Actions allowed on a resource (e.g., read, write, delete, approve)

The list view displays all entities defined in your tenant with their usage statistics:

Entity list view showing principals and resources with usage statistics
ColumnDescription
NameEntity name (clickable to access details)
DescriptionOptional entity description
GroupsNumber of groups defined for this entity
RulesNumber of rules using this entity
  • Warning icon: Displayed if the entity has properties but no primary key defined
  • Count badges: Show the number of associated groups and rules

Two modes are available via the buttons at the top of the page:

  1. List: Tabular view of entities
  2. Diagram: Graphical visualization of the data model

  1. Click the New Entity button
  2. Fill in the information:
    • Name: Entity name (3-20 characters, starts with a letter, alphanumeric + underscore only)
    • Description: Optional description
  3. Confirm creation

The entity is created and you are automatically redirected to its detail page in edit mode.


The entity detail page includes several tabs:

  • Name and description: Editable in edit mode (click on the text to edit)
  • Lock button: Toggle between read-only mode and edit mode
  • Audit information: Creation date, creator, last modification

This tab manages the entity’s properties (attributes).

TypeDescription
stringText value
numericNumeric value
booleanBoolean value (true/false)
dateDate or timestamp
Entity referenceLink to another entity
  1. Click Add property
  2. Fill in:
    • Name: Property name (required)
    • Type: Data type
    • Collection: Check if the property is a collection/set
    • Description: Optional description
  3. Confirm

The primary key uniquely identifies each instance of the entity. It is required to:

  • Reference the entity in other entities
  • Use the entity in authorization rules
  • Create groups based on this entity

To define a primary key:

  1. Hover over a primitive type property
  2. Click the key icon that appears
  3. Confirm the change

Note: Only primitive type properties (string, numeric, boolean, date) can be defined as primary key.

This tab defines the possible actions on the entity when it is used as a resource.

  1. Click Add action
  2. Fill in:
    • Code: Unique action identifier (required)
    • Description: Action description
  3. Confirm

Common action examples: read, write, delete, approve, share, export

This tab manages the entity’s data (instances).

  1. Click Upload CSV
  2. Select your CSV file
  3. Columns must match the entity’s property names
  • Download Template: Downloads a CSV template with the correct columns

The diagram visualizes your data model with relationships between entities.

Entity diagram showing data model relationships between entities

Each entity is represented by a card containing:

  • Entity name
  • Properties with their types (colored badges)
  • Key icon for the primary key
  • Associated actions/permissions
ColorType
GreenString
BlueNumeric
OrangeBoolean
PurpleDate
GrayEntity reference
  • Zoom: Use controls or mouse wheel
  • Pan: Click and drag to navigate
  • Mini-map: Overview in the bottom corner

Big-ACL automatically generates a Cedar schema from your entity definitions.

  1. From the entity list, click Cedar Schema
  2. The JSON schema is displayed in a modal window
  • Copy: Copy the schema to clipboard
  • Download: Export the schema as JSON file

The Cedar schema includes:

  • All entity definitions and their properties
  • Actions defined on each entity
  • Relationships between entities
  • Principal/Resource mappings based on your rules

An entity can only be deleted if it is not referenced anywhere:

  • No rule uses the entity as subject or resource
  • No group is defined on this entity
  • No other entity has a property referencing this entity

If references exist, the delete button is disabled and a tooltip indicates the blocking items.


  • Use singular names (e.g., User rather than Users)
  • Adopt a consistent convention (PascalCase recommended for entities)
  • Choose explicit, business-oriented names
  1. Identify your principals: Who are the actors in your system?
  2. Identify your resources: What do these actors need to act upon?
  3. Define properties: What attributes are needed for authorization conditions?
  4. Establish relationships: How are entities related to each other?
  5. List actions: What operations are possible on each resource?
  • Always define a primary key before using the entity
  • Prefer a stable technical identifier (e.g., id, code)
  • Avoid attributes that are likely to change

To implement an effective ABAC model:

  1. Add descriptive properties to your entities (department, role, clearanceLevel…)
  2. Use these properties in the when and unless conditions of your rules
  3. Leverage entity references for complex conditions

Here is an example authorization model for a document management application:

EntityRolePropertiesActions
UserPrincipalid (PK), email, department, role-
DocumentResourceid (PK), title, owner, status, classificationread, write, delete, share
ProjectResourceid (PK), name, membersview, edit, manage
  • Document.ownerUser (the document owner)
  • Project.membersUser[] (project members, collection)
  • A User can read a Document when principal.department == resource.owner.department
  • A User can delete a Document when principal.id == resource.owner.id
  • A User can view a Project when principal in resource.members