---
sidebar:
  hidden: true
title: roboto.domain.dashboards.record
---
## Module Contents

### DashboardAccessibility

```python
class roboto.domain.dashboards.record.DashboardAccessibility
```

`from roboto.domain.dashboards import DashboardAccessibility`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/dashboards/record.py#L15-L30)

Bases: `roboto.compat.StrEnum`

Controls who can view a dashboard.

On create/update requests this is a knob that the server folds into [`DashboardRecord.owner_principal_id`](/reference/python-sdk/roboto/domain/dashboards/record#roboto.domain.dashboards.record.DashboardRecord.owner_principal_id). On [`DashboardRecord`](/reference/python-sdk/roboto/domain/dashboards/record#roboto.domain.dashboards.record.DashboardRecord) it is a derived computed field — always in sync with the owner principal so API consumers never need to parse the principal string themselves.

**Attributes**

- **DashboardAccessibility.Organization** = `'organization'`: All members of the organization owning the dashboard can view it.
- **DashboardAccessibility.User** = `'user'`: Just the user who created the dashboard can view it.

### DashboardRecord

```python
class roboto.domain.dashboards.record.DashboardRecord(/, **data: Any)
```

`from roboto.domain.dashboards import DashboardRecord`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/dashboards/record.py#L33-L97)

Bases: `pydantic.BaseModel`

A wire-transmissible representation of a dashboard

**Parameters**

- **data** (`Any`)

**Attributes**

- **DashboardRecord.created** (`datetime.datetime`): Timestamp when the dashboard was created.

- **DashboardRecord.created_by** (`str`): User ID of the dashboard's creator. Audit metadata only; ownership is carried by [`owner_principal_id`](/reference/python-sdk/roboto/domain/dashboards/record#roboto.domain.dashboards.record.DashboardRecord.owner_principal_id).

- **DashboardRecord.dashboard_definition** (`dict[str, Any]`): The dashboard definition as a JSON object.

  Opaque to the platform, which stores and returns it verbatim. The definition is self-describing: it carries its own schema version, and the client that understands the schema is the one that reads it.

- **DashboardRecord.dashboard_id** (`str`): Unique identifier for the dashboard.

- **DashboardRecord.modified** (`datetime.datetime`): Timestamp when the dashboard was last modified.

- **DashboardRecord.modified_by** (`str`): User ID of the last user to modify the dashboard.

- **DashboardRecord.name** (`str`): Human-readable name for the dashboard. Unique per owner within an organization; dashboards with different owners may share a name, so by-name lookups can match more than one dashboard.

- **DashboardRecord.org_id** (`str`): Organization ID that owns the dashboard.

- **DashboardRecord.owner_principal_id** (`str`): Principal that owns the dashboard, serialized in the [`RobotoPrincipal`](/reference/python-sdk/roboto/principal#roboto.principal.RobotoPrincipal) `ptype:id` format.

  `org:<org_id>` for organization-wide dashboards, `user:<user_id>` for personal dashboards. This is the sole source of truth for org-wide vs personal — a dashboard is org-wide exactly when its owner is the org principal. Ownership anchors authorization — a personal dashboard is editable by its owner or an org admin, an org-wide dashboard by any org member — and scopes name uniqueness: dashboard names are unique per owner within an organization.

- **DashboardRecord.revision** (`int`) = `0`: How many times the dashboard definition has been written, starting at 0.

  A definition-generation counter, not a row version: it advances only when [`dashboard_definition`](/reference/python-sdk/roboto/domain/dashboards/record#roboto.domain.dashboards.record.DashboardRecord.dashboard_definition) is replaced, and is deliberately untouched by a rename or an accessibility change. Clients never set it — the server owns it — but they must echo the value they loaded back as `base_revision` when writing a new definition, so a write built on a stale copy can be rejected rather than silently erasing someone else's edit.

**Properties**

- **DashboardRecord.accessibility** (`DashboardAccessibility`): Derived from [`owner_principal_id`](/reference/python-sdk/roboto/domain/dashboards/record#roboto.domain.dashboards.record.DashboardRecord.owner_principal_id): organization when owned by the org principal, user otherwise.
