Skip to content
Updated Sep 26, 2026 by Barča Dvořáková · Owner: analysisactiveentityconfluence-migration Edit on GitHub

Entity: reportBlock ​

Entity Type: Database table

Description: A reportBlock represents a single inserted block (chart, table, or text) within a reportTemplate — what the block is (type + config) and where it sits in the template's order. Created via the block-insertion action described in Report Builder; the type-to-schema registry is independent from the Dashboard tile registry (dashboardBlock).

Data Attributes Table ​

Attribute NameDescriptionData TypeDefault ValueRequired (= Nullable)UniqueFormatValidationsIndexExample
idUnique identifier for the report block record.UUIDGenerated in code (app layer)YesYesUUID v7Must be a valid UUID v7.Primary Key01960000-0000-7000-8000-000000000401
tenantIdTenant this report block belongs to. Required on every entity — primary mechanism for data isolation across organisations.UUID-YesNoUUID v7Foreign Key → tenant.idname: idx_reportBlock_tenantId, type: btree01960000-0000-7000-8000-000000000099
reportTemplateIdThe report template this block belongs to.UUID-YesNoUUID v7Foreign Key → reportTemplate.idname: idx_reportBlock_reportTemplateId, type: btree01960000-0000-7000-8000-000000000301
typeIdentifies which block renderer draws this content and which schema its config must satisfy. Extensible — new values are added as new block renderers are supported; not a fixed enum. Independent registry from dashboardBlock.type.String-YesNoType-to-schema registry — see Report Builder, Block type registry and validation.Must match a registered block type.name: idx_reportBlock_type, type: btreeplaceholderChart
orderPosition of the block within its report template's linear sequence (not a 2D grid position — reports are ordered lists, not resizable grids).Integer-YesNo-Non-negative integer; on reorder, the full ordered set of a template's blocks is rewritten together.name: idx_reportBlock_reportTemplateId_order, type: btree2
configConfiguration describing what the block shows. Shape depends on type — e.g. for type = "text", config holds plain text content.JSON{}YesNoType-dependent — see Report Builder, Block type registry and validation.Validated on write against the required-key schema registered for type. Only presence of required keys is checked in this iteration.-{"content": "Q3 summary"}
createdAtTimestamp of entity creation (block insertion time). Immutable.Timestamp with time zoneSet in codeYesNoISO 8601--2026-08-19T10:05:00Z
updatedAtTimestamp of last entity update (e.g. moved to a new order position, or config edited).Timestamp with time zoneSet in codeYesNoISO 8601--2026-08-19T10:05:00Z
deletedAtTimestamp of soft delete — set when the block is removed from the template. Records with deletedAt IS NULL are considered active.Timestamp with time zonenullNoNoISO 8601--null
createdByIdentifier of the actor who created this record.String-YesNotype:actor--user:01960000-0000-7000-8000-000000000050
updatedByIdentifier of the actor who last updated this record.String-YesNotype:actor--user:01960000-0000-7000-8000-000000000050

Note. config's internal shape is not documented on the source page — it is validated only for presence of required keys against a registry described in the Report Builder feature, and is extensible per type. No JSON-DAT sibling file is created for it since no concrete shape is specified to document.

Audited fields ​

Recorded on created (in full), updated (changed only) and deleted (in full): reportTemplateId, type, order, config.

Excluded: none.

Every entry would carry subjectEntityType = reportTemplate / subjectEntityId = reportTemplateId — a block has no independent identity outside the template it belongs to, mirroring dashboardBlock/dashboardLayout.

Not registered for entityName resolution — identified by its position within a reportTemplateId, not a name a person would type.