Skip to main content
See also: Properties | Data Model Types | Relationships

Permission Architecture

diagram
Powersheet permissions operate at two distinct levels within the data model YAML:
  1. Property-level — the readable and updatable flags on each property definition within an entity type
  2. Navigation property-level — permission settings on the direct and back objects within relationship definitions
Both levels use the same two boolean flags to control access.

Property-Level Permissions

Individual properties on entity types support readable and updatable flags that control field-level access. These flags are set within the data model YAML under each entity type’s properties map.

Permission Flags

Setting readable: false does not simply hide a column in the UI. The property is completely excluded from the data payload sent to the client. This means the value is never loaded, never transmitted, and never available to column bindings, queries, or client-side logic. Use this for properties that contain sensitive data or internal identifiers that should not leave the server.

Permission Combinations

The isReadOnly flag on a column definition controls whether a specific column is editable in the sheet UI. The updatable flag on a property controls whether the underlying data field can be modified at all. If updatable: false is set on the property, the field is read-only regardless of the column’s isReadOnly setting.

Configuring Property Permissions in YAML

Basic Example

Properties without explicit permission flags inherit the defaults (readable: true, updatable: true):
All three properties above are visible and editable.

Mixed Permissions Example

Apply explicit permission flags to restrict individual properties:
In this configuration:
  • id — visible but cannot be edited (system identifier)
  • title — explicitly set to visible and editable (same as default)
  • outlineNumber — explicitly declared and marked visible but read-only (managed automatically by Polarion)
  • description and severity — inherit defaults (visible and editable)

Hiding Sensitive Properties

To prevent a property from being transmitted to the client at all, set readable: false:
The internalClassification property is completely excluded from the data payload. No column binding can reference it, and it does not appear in query results returned to the client.

Built-in Property Permissions

Certain properties have inherent permission characteristics based on their role in the Polarion data model. The following table lists common built-in properties and their typical permission settings:
Unlike id and title, outlineNumber is not an implicit built-in property of every entity type. To use it, you must explicitly declare it in the entity type’s properties map in your data model YAML. When declared, it is typically configured as readable: true, updatable: false because its value is managed automatically by Polarion based on the document hierarchy.
Built-in property behavior may vary depending on the Polarion version and project configuration. Verify the exact behavior of each built-in property in your environment.

Entity Types and Permission Scoping

Permission flags are scoped to each entity type independently. The same property name can have different permissions on different entity types:
In this example, severity is editable on UserNeed entities but read-only on SystemRequirement entities.

Special Entity Types

Relationships in the data model define navigation properties that allow traversal between entity types. Each relationship has a direct and optionally a back direction, and each direction can carry its own permission settings.
The navigation property permission system is under active development. The behavior described below reflects the current implementation, but changes are expected. Updated documentation will follow as the feature stabilizes.

Relationship YAML with Navigation Directions

The direct object defines the forward navigation property (from source to target), while the back object defines the reverse navigation property (from target back to source). Each can have independent permission settings that control whether the navigation path is available and whether new links can be created through it.

Read-Only Mode

The sheet can enter a global read-only mode through several mechanisms. When read-only mode is active, all properties behave as if updatable: false regardless of their individual settings.
When any of the conditions above is met, the sheet enters read-only mode. Individual updatable: true settings on properties are overridden. The sheet displays all readable properties but prevents any modifications.

Permission Decision Flow

The following table summarizes how the final editability of a field is determined: Checks are evaluated in order. A false result at any step short-circuits subsequent checks for that field.

Complete YAML Example

A data model demonstrating permission controls across multiple entity types with varied access levels:
This example demonstrates:
  • Chapter.title — visible but read-only (structural headings should not be edited through the sheet)
  • UserNeed.id — visible but read-only (system identifier)
  • UserNeed.outlineNumber — explicitly declared as visible but read-only (auto-managed by Polarion; this property must be declared explicitly to appear in the model)
  • UserNeed.internalNotes — hidden entirely (readable: false); never transmitted to the client
  • SystemRequirement.severity — visible but read-only (locked for this entity type)
  • DesignRequirement properties — all defaults (visible and editable)

Best Practices

Use Views when you want to show or hide columns for different user workflows — the data is still loaded but specific columns are toggled. Use readable: false when the data itself must not leave the server.

Last modified on July 10, 2026