Status Updates

Post, delete, query, and subscribe to project status updates — a colored health category plus rich-text commentary, dated and attributed to a user.


Status updates are project-level health check-ins: a traffic-light category — GREEN, ORANGE, or RED — paired with rich-text commentary, stamped with a reporting date, and attributed to the user who posted it. They give a workspace a running record of “how is this going?” alongside its records. This section covers posting and deleting status updates, fetching a single update or a paginated, filterable list for a project, and subscribing to real-time create and delete events.

Status updates always belong to a workspace (a Project in the API). A project can hide the feature entirely via its hideStatusUpdate setting, but that’s a UI toggle — it does not block the API operations described here.

Status updates are immutable

There is no edit operation in the public API. Once a status update is posted, its category and text are fixed — to change one, delete it with deleteStatusUpdate and post a fresh one with createStatusUpdate.

The StatusUpdate type

StatusUpdate is the shape returned by createStatusUpdate, the statusUpdate query, and every element of StatusUpdateList.statusUpdates.

FieldTypeDescription
idID!Unique identifier for the status update.
htmlString!The commentary as sanitized rich-text HTML.
textString!The commentary as plain text (the fallback for the same body as html).
dateDateTime!The reporting date the update is for. Distinct from createdAt — the UI lets you backdate it.
categoryStatusUpdateCategory!The health signal: GREEN, ORANGE, or RED.
createdAtDateTime!When the update was posted.
updatedAtDateTime!When the row was last touched.
userUser!The author. Select id, fullName, email.
projectProject!The workspace this update belongs to.
commentCountInt!Number of comments on this update.
isReadBooleanWhether the calling user has read this update.
isSeenBooleanWhether the calling user has seen this update in the feed.

Comments attach to a status update through the polymorphic Comment model (category: STATUS_UPDATE, categoryId set to the update’s id) — read and write them with the comment operations, and read the count here via commentCount.

The StatusUpdateCategory enum

StatusUpdateCategory is the traffic-light health signal carried by every status update. It is set at creation and never changes.

ValueMeaning
GREENOn track / healthy.
ORANGEAt risk / needs attention.
REDOff track / blocked.

Pages in this section

PageWhat it covers
Post & delete status updatescreateStatusUpdate (with CreateStatusUpdateInput) and the deleteStatusUpdate mutation, plus the auth rules and the immutability gotcha.
Query & subscribe to status updatesFetch one with statusUpdate(id), list a project’s updates with statusUpdateList (filtering, ordering, cursor pagination), and subscribe to real-time create/delete events with subscribeToStatusUpdate.

Product nouns to schema types

Use the UI word in prose and the schema name in code. The mapping for this section:

UI / docs wordSchema type / field
Status updateStatusUpdate
Health categoryStatusUpdateCategory (GREEN / ORANGE / RED)
Workspace / ProjectProject
AuthorUser
Update list pageStatusUpdateList