app.project_objectives
TableRow level security on
Measurable objectives of a project, recorded at gate 1 (canon criterion G1.OBJECTIVES_STATED): one target per metric, which gate 8 measures against (G8.MEASUREMENT_REPORTED). Drafted while gate 1 is open; once it is passed only a gate approver changes them, and every change lands in the audit ledger.
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 objective is for.References app.projects.id |
| metric_code | text | No | Metric the objective sets a target for (app.measurement_metrics); one live objective per metric.References private.measurement_metrics.metric_code |
| direction | app.objective_direction | No | At Least (met by reaching the target) or At Most (met by staying within it). |
| target_value | numeric | No | Target figure, in unit_code. |
| unit_code | text | No | Unit of the target, of the metric's dimension; reports convert it.References private.measurement_units.unit_code |
| note | text | Yes | Why the target was chosen or how it is measured. |
| 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 |
| deleted_at | timestamp with time zone | Yes | Soft delete time. A row with deleted_at set is ignored by every access helper. |