> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nextedy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Set Entity Permissions

> Control read and write access to entity properties and navigation properties in your Nextedy POWERSHEET data model using the `readable` and `updatable` flags.

export const LastReviewed = ({date}) => {
  if (!date) return null;
  const formatted = new Date(`${date}T00:00:00Z`).toLocaleDateString("en-US", {
    year: "numeric",
    month: "long",
    day: "numeric",
    timeZone: "UTC"
  });
  return <p className="mt-10 text-sm text-gray-400 dark:text-zinc-500 not-prose">
      Last reviewed on {formatted}
    </p>;
};

<Info title="Verify in application">
  This page is based on code-level analysis. Verify permission behavior in your Polarion environment, as server-side enforcement may vary by version.
</Info>

<Steps>
  <Step title="Open the Data Model">
    1. Navigate to **Administration > Nextedy Powersheet > Data Models**
    2. Select the data model to edit
    3. Locate the entity type under `domainModelTypes` where you want to configure permissions
  </Step>

  <Step title="Set Property-Level Permissions">
    Each property in an entity type can have `readable` and `updatable` flags to control visibility and editability:

    ```yaml theme={null}
    domainModelTypes:
      UserNeed:
        polarionType: userNeed
        properties:
          id:
            readable: true
            updatable: false
          title:
            readable: true
            updatable: true
          description:
            readable: true
            updatable: true
          severity:
            readable: true
            updatable: false
          outlineNumber:
            readable: true
            updatable: false
    ```
  </Step>
</Steps>

## Permission Flag Reference

| Flag        | Default | Effect when `false`                  |
| ----------- | ------- | ------------------------------------ |
| `readable`  | `true`  | Property is hidden from the sheet UI |
| `updatable` | `true`  | Property is displayed as read-only   |

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/3Zik2OH750CE3kB4/powersheet/diagrams/guides/data-model/set-permissions/diagram-1.svg?fit=max&auto=format&n=3Zik2OH750CE3kB4&q=85&s=9468811a34266c679a7a8f160b3c0de0" alt="diagram" style={{ width: "480px", maxWidth: "100%" }} width="480" height="160" data-path="powersheet/diagrams/guides/data-model/set-permissions/diagram-1.svg" />
</Frame>

<Steps>
  <Step title="Configure System-Level Read-Only Properties">
    Some properties are enforced as read-only regardless of your data model settings:

    * `id` -- the work item identifier. This is a built-in property and is always read-only.

    Other properties become read-only only when explicitly declared in the entity type:

    * `outlineNumber` -- the document hierarchy position. Unlike `id`, `outlineNumber` is **not** a built-in property. It must be declared under `properties` for the entity type before it appears on the sheet, and it is treated as read-only when declared (the server controls outline numbers automatically).

    For `Document` entity types, properties like `moduleFolder`, `moduleName`, `title`, and `type` are also read-only after creation.

    <Note title="System fields override data model settings">
      Setting `updatable: true` on `id` has no effect -- it is always enforced as read-only by the server. The same applies to `outlineNumber` once you declare it: the server ignores `updatable: true` and keeps the value under its control.
    </Note>
  </Step>

  <Step title="Set User-Level Permissions">
    Nextedy Powersheet also enforces user-level permissions for document and model administration. These are determined by the user's Polarion roles:

    * **document.admin.read** -- can view sheet configuration
    * **document.admin.write** -- can modify sheet configuration
    * **model.admin.read** -- can view data model configuration
    * **model.admin.write** -- can modify data model configuration

    A top-level `readOnly` flag is also evaluated, which makes the entire powersheet read-only when the user lacks write permissions or the license is invalid.

    <Tip title="Use permissions with formatters for layered control">
      Combine data model permissions with [column-level read-only settings](/powersheet/guides/sheet-configuration/configure-read-only-column) for fine-grained control. Data model permissions apply globally, while formatters can be conditional.
    </Tip>
  </Step>

  <Step title="Apply Permissions to Navigation Properties">
    Permissions can also be set on relationship navigation properties via the `direct` and `back` definitions:

    ```yaml theme={null}
    relationships:
      - from: UserNeed
        to: SystemRequirement
        cardinality: one-to-many
        storage: linkedWorkItems
        linkRole: refines
        direct:
          name: systemRequirements
        back:
          name: userNeeds
    ```

    Navigation property permissions are inherited from the target entity type's permission settings. If the target entity has `updatable: false`, the relationship column will also be read-only.
  </Step>
</Steps>

## Verify

After saving your data model changes, open a powersheet document. You should now see:

* Properties with `readable: false` are **not displayed** as columns
* Properties with `updatable: false` are displayed but **cannot be edited** (cells appear greyed out)
* `id` remains read-only regardless of settings; `outlineNumber`, when declared, is also enforced as read-only by the server

## See Also

* [Configure Read-Only Column](/powersheet/guides/sheet-configuration/configure-read-only-column) -- make individual columns read-only in sheet configuration
* [Add a Custom Property](/powersheet/guides/data-model/add-custom-property) -- define properties on entity types
* [Create an Entity Type](/powersheet/guides/data-model/create-entity-type) -- define new entity types with properties
* [Apply Column Styles](/powersheet/guides/sheet-configuration/apply-style) -- visual styling for read-only columns

<LastReviewed date="2026-07-02" />
