Skip to content

app.projects

TableRow level security on

One engagement with jurisdiction, phase and gates (Section 4.5.1, Section 7.4 Scope). Project data is readable by project members and assigned people, not the whole org (invariant 2).

Primary key: id

Columns of app.projects
ColumnTypeNullableDescription
iduuidNoPrimary key, UUID v7.
org_iduuidNoOwning org. A row never moves to another org.References app.organizations.id
workspace_iduuidYesWorkspace that scopes the project, when the org uses workspaces.References app.workspaces.id
venue_iduuidYesPrimary venue; its jurisdiction supplies responding agencies (engagement contract project_authority).References app.venues.id
client_counterparty_iduuidYesClient the project is produced for.References app.counterparties.id
project_keytextNoTwo to five capital letters, unique per org (for example NWL). Record display keys are {project_key}-{sequence}.
nametextNoProject name.
jurisdiction_idtextYesJurisdiction resolved for the project at gate 1 (Section 3.5). NULL until resolved; an unresolved jurisdiction answers no permit or code question.References xpms.jurisdiction.jurisdiction_id
region_codetextYesCost region the project prices in (Bible tab 12).References xpms.dim_region.region_code
tier_codetextYesTier of experience (Bible tab 07).References xpms.dim_tier.tier_code
current_phase_codetextNoCurrent gated phase. Changes only through app.pass_gate (invariant 9).References xpms.dim_phase.phase_code
project_stateapp.project_stateNoProject lifecycle state. Changes only through app.transition_project.
production_stateapp.production_stateNoProduction lifecycle state. Changes only through app.transition_production; Closed refuses new spend (invariant 10).
time_zonetextNoIANA time zone the project's typed local times are entered in.
starts_ondateYesFirst production day.
ends_ondateYesLast production day.
archived_attimestamp with time zoneYesWhen the project was archived. Archived projects stay searchable behind a filter (Section 4.10).
deleted_attimestamp with time zoneYesSoft delete time. A row with deleted_at set is ignored by every access helper.
created_attimestamp with time zoneNoWhen the row was inserted. Set by the database.
created_byuuidYesPerson who inserted the row, or null for a platform process. Set by the database.References app.people.id
updated_attimestamp with time zoneNoWhen the row last changed. Set by the database.
updated_byuuidYesPerson who last changed the row, or null for a platform process. Set by the database.References app.people.id
currencycharacter(3)NoBase currency of the project (ISO 4217). Defaults to the currency of the jurisdiction's country, then the org's base currency setting, when the caller gives none.References private.currencies.currency_code
descriptiontextYesWhat the project is, in sentence case.
anchor_ondateYesAnchor date (usually the show day) that template day offsets count from.
budget_envelope_minorbigintYesBudget envelope approved for the project, in minor units of currency; NULL when none is set.