app.records
TablaSeguridad a nivel de fila activa
One table for all 26 record kinds (Bible tab 24, Section 3.10). Kind attributes live in 1:1 extension tables. A record is readable by its project's members and the people assigned to it, not the whole org (invariant 2). Canceled records are retained, never deleted.
Clave primaria: id
| Columna | Tipo | Admite nulos | Descripción |
|---|---|---|---|
| id | uuid | No | Primary key, UUID v7. |
| org_id | uuid | No | Owning org, derived from app.projects on insert; never accepted from the caller and never changed.Hace referencia a app.organizations.id |
| project_id | uuid | No | Project the record belongs to. Never changes.Hace referencia a app.projects.id |
| scope_node_id | uuid | Sí | Scope node of the same project the record sits under.Hace referencia a app.scope_nodes.id |
| record_number | bigint | No | Sequence number within the project, issued by private.next_sequence on insert. The display key is {project_key}-{record_number}, read through app.record_display_key. |
| record_kind | text | No | One of the 26 canon record kinds. Never changes after insert.Hace referencia a xpms.dim_record_subtype.record_kind |
| record_subtype | text | Sí | Kind-scoped subtype (Bible tab 25). The composite foreign key with record_kind refuses a subtype of another kind.Hace referencia a xpms.dim_record_subtype.record_subtype |
| record_state | text | No | One of the nine record states (Bible tab 26). Changes only through app.transition_record.Hace referencia a xpms.dim_record_state.record_state |
| title | text | No | Title in the kind's title grammar, validated on write with a correction message. |
| phase_code | text | Sí | Gated phase the record belongs to.Hace referencia a xpms.dim_phase.phase_code |
| urid | text | Sí | URID category the record works on (dimension 2).Hace referencia a xpms.dim_category.cat_urid |
| xyz | xpms.xyz_tag | No | XYZ schema-family tag: X Resource, Y Process, Z Timeline. |
| xyz_basis | app.xyz_basis | No | Basis of the XYZ tag: Category (equals the URID category's tag) or Declared. |
| owner_party_id | uuid | Sí | Person who owns the record and does the work.Hace referencia a app.people.id |
| accountable_party_id | uuid | Sí | Person accountable for the record's outcome.Hace referencia a app.people.id |
| starts_at | timestamp with time zone | Sí | Start of the record's window. |
| ends_at | timestamp with time zone | Sí | End of the record's window; not before starts_at. |
| due_at | timestamp with time zone | Sí | When the record is due. |
| time_zone | text | Sí | IANA zone the record's local times were typed in; NULL means the project's zone. |
| blocker_text | text | Sí | What blocks the record. Required while the record is Blocked. |
| replan_reason | text | Sí | Why the record was replanned. Required while the record is Deferred. |
| deleted_at | timestamp with time zone | Sí | Soft delete time. A row with deleted_at set is ignored by every access helper. |
| created_at | timestamp with time zone | No | When the row was inserted. Set by the database. |
| created_by | uuid | Sí | Person who inserted the row, or null for a platform process. Set by the database.Hace referencia a app.people.id |
| updated_at | timestamp with time zone | No | When the row last changed. Set by the database. |
| updated_by | uuid | Sí | Person who last changed the row, or null for a platform process. Set by the database.Hace referencia a app.people.id |
| parent_record_id | uuid | Sí | Summary record this record rolls up to, in the same project (work breakdown).Hace referencia a app.records.id |
| wbs_code | text | Sí | Work breakdown structure code, dot separated (1.2.1). |
| description | text | Sí | What the record involves, in sentence case. |
| sop_id | uuid | Sí | Standard operating procedure that governs the work.Hace referencia a app.sops.id |
| team_code | text | Sí | Canon team (Bible teams) that does the work.Hace referencia a xpms.dim_team.team_id |