Skip to content
Kumquat
Esc
↑↓navigate↵open⌘Jpreview

Task Schemas

Filter fields, sort options and the status transition graph. None of it varies by page or caller, so the client fetches it once per session rather than on every board refresh.

Only filter_schema touches the database — the other two are module constants.

Cached under one key for everyone: the answer depends on the collection, never on the caller. Deliberately no lock=True, though the two DISTINCT scans are the expensive part: cashews already collapses concurrent identical calls within a process, so a cold cache costs one pair of scans per replica. The distributed lock would be taken on every hit, waits on a busy loop, and outlives a SIGKILLed holder by the full TTL.

GET/api/v1/tasks/schema
Authorization
AuthorizationBearer token · headerrequired
or
AuthorizationOAuth2 access token · headerrequired
Responses
200Successful Response
successboolean
default: true
dataTaskSchemas | any
Show properties
Any of:
TaskSchemas
filter_schemaobjectrequired
sort_schemaobjectrequired
status_schemaobjectrequired
field_policyobjectrequired
any
any
messagestring | any
Show properties
Any of:
string
string
any
any
errorsstring[] | any
Show properties
Any of:
string[]
Array of string
string
any
any
Request
curl -X GET "/api/v1/tasks/schema" \
  -H "Authorization: Bearer YOUR_TOKEN"
Response
{
  "success": true,
  "data": {
    "filter_schema": {},
    "sort_schema": {},
    "status_schema": {},
    "field_policy": {}
  },
  "message": "string",
  "errors": [
    "string"
  ]
}