roboto.domain.dashboards.record#
Module Contents#
- class roboto.domain.dashboards.record.DashboardAccessibility#
Bases:
roboto.compat.StrEnumControls who can view a dashboard.
On create/update requests this is a knob that the server folds into
DashboardRecord.owner_principal_id. OnDashboardRecordit is a derived computed field — always in sync with the owner principal so API consumers never need to parse the principal string themselves.- Organization = 'organization'#
All members of the organization owning the dashboard can view it.
- User = 'user'#
Just the user who created the dashboard can view it.
- class roboto.domain.dashboards.record.DashboardRecord(/, **data)#
Bases:
pydantic.BaseModelA wire-transmissible representation of a dashboard
- Parameters:
data (Any)
- property accessibility: DashboardAccessibility#
organization when owned by the org principal, user otherwise.
- Type:
Derived from
owner_principal_id- Return type:
- created: datetime.datetime#
Timestamp when the dashboard was created.
- created_by: str#
User ID of the dashboard’s creator. Audit metadata only; ownership is carried by
owner_principal_id.
- 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.
- dashboard_id: str#
Unique identifier for the dashboard.
- modified: datetime.datetime#
Timestamp when the dashboard was last modified.
- modified_by: str#
User ID of the last user to modify the dashboard.
- 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.
- org_id: str#
Organization ID that owns the dashboard.
- owner_principal_id: str#
Principal that owns the dashboard, serialized in the
RobotoPrincipalptype:idformat.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.
- 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_definitionis 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 asbase_revisionwhen writing a new definition, so a write built on a stale copy can be rejected rather than silently erasing someone else’s edit.