app.role_assignments
TableRow level security on
People assigned to canon workforce roles on a project (Section 7.4 People, playbook Personnel Roster and Roles Library). The role is one of the 61 canon workforce roles; its staffing ratio and ratio basis are read from canon (xpms.dim_role), never copied. A person holds a role on a project once while it is Proposed or Active.
Primary key: id
| Column | Type | Nullable | Description |
|---|---|---|---|
| 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.References app.organizations.id |
| project_id | uuid | No | Project the role is worked on.References app.projects.id |
| scope_node_id | uuid | Yes | Scope node of the project, when narrower than the project.References app.scope_nodes.id |
| role_code | text | No | Canon workforce role (xpms.dim_role).References xpms.dim_role.role_code |
| person_id | uuid | No | Person assigned, an active member of the org when assigned. External people work through engagements (A28).References app.people.id |
| requisition_id | uuid | Yes | Requisition the assignment fills, when it came from one.References app.requisitions.id |
| staffing_basis | app.staffing_basis | No | Ratio when planned from the canon staffing ratio (the role has one), Fixed when the canon basis is a fixed count per tier, Declared otherwise. |
| starts_on | date | Yes | First day in the role. |
| ends_on | date | Yes | Last day in the role. |
| assignment_state | app.role_assignment_state | No | Assignment state. Changes only through app.transition_role_assignment. |
| deleted_at | timestamp with time zone | Yes | 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 | Yes | Person who inserted the row, or null for a platform process. Set by the database.References app.people.id |
| updated_at | timestamp with time zone | No | When the row last changed. Set by the database. |
| updated_by | uuid | Yes | Person who last changed the row, or null for a platform process. Set by the database.References app.people.id |