skip to content
$registry / workers

kanban

v0.1.22

File-backed kanban board — tickets, threaded comments, agent assignment, the kanban:change and kanban:comment trigger types, and an injectable console board with agent profiles for planning and review.

worker
iiiverified
246 installs63 in 7d13 today
install
$iii trigger compose::add worker=kanban
binarylicense: Apache-2.0agentsboardconsole-uikanbantickets
  • macOS: arm64 · x64
  • Linux: arm64 · armv7 · x64
  • Windows: arm64 · x64

exact versions are immutable; binary and bundle artifacts are digest-pinned.

functions

30

kanban::activity::list

function

Read a ticket's activity timeline: field changes, lane moves, deletion and comment events, oldest first.

request
  • limitinteger· uint64min 0
  • sincestring
  • ticket_idstringrequired

    Ticket uuid or human-readable key (KAN-1, case-insensitive).

  • typesstring[]
response
  • activityobject[]required
    • actorstringrequired
    • atstringrequired
    • changesobject[]
      • fieldstringrequired
      • fromunknownrequired
      • tounknownrequired
    • comment_idstring
    • idstringrequired
    • seqinteger· uint64requiredmin 0
    • ticket_idstringrequired
    • typestringrequired

      ticket.created | ticket.updated | ticket.moved | ticket.deleted | ticket.restored | comment.created

  • countinteger· uint64requiredmin 0

kanban::agent::list

function

List assignable agent profiles, resolved through iii-directory with a fallback to the configured agents folder.

request
empty object
response
  • agentsobject[]required
    • colorstring
    • descriptionstring
    • iconstring
    • idstringrequired

      Agent profile id used as the ticket assignee.

    • logostring
    • modelstring
    • namestringrequired
  • errorstring
  • sourcestringrequired

    directory | agents-folder | unavailable

kanban::board::get

function

Read the board: every configured column with its tickets, the done column, every project and release with its counts, plus the resolved paths and priorities. Narrow it with statuses, updated_since, limit and parent_id / project_id / release_id (empty string = none), and ask for compact rows to keep the response small.

request
  • compactboolean

    Return the compact row (key, title, status, priority, assignee, comment_count) instead of the full summary.

  • include_deletedboolean

    Include soft-deleted tickets. Default false.

  • limitinteger· uint64min 0

    At most this many tickets per column, from the top of the column.

  • parent_idstring

    Only the subtasks of this ticket (uuid or key); empty string = tickets that are not subtasks.

  • project_idstring

    Only tickets in this project (id or name); empty string = tickets in no project.

  • release_idstring

    Only tickets in this release (id or name); empty string = tickets in no release.

  • statusesstring[]

    Only these column ids (board order kept). Omit for every column.

  • updated_sincestring

    Only tickets updated after this ISO timestamp — what changed since your last read.

response
  • board_filestringrequired
  • canceled_statusstring

    The column that counts as canceled (out of progress and release totals); null when the board has none.

  • columnsobject[]required

    The columns asked for (all by default), each with the tickets the filters kept.

    • idstringrequired
    • labelstringrequired
    • ticketsany of[]required
      any of (2)
      variant 1
      • assigneestring
      • comment_countinteger· uint64requiredmin 0
      • created_atstringrequired
      • deleted_atstring
      • idstringrequired
      • keystringrequired
      • labelsstring[]required
      • orderinteger· uint64requiredmin 0
      • parent_idstring
      • prioritystringrequired
      • project_idstring
      • release_idstring
      • statusstringrequired
      • titlestringrequired
      • updated_atstringrequired
      variant 2
      • assigneestring
      • comment_countinteger· uint64requiredmin 0
      • keystringrequired
      • prioritystringrequired
      • statusstringrequired
      • titlestringrequired
  • data_path_resolvedstringrequired
  • default_statusstringrequired
  • deleted_countinteger· uint64requiredmin 0
  • done_statusstringrequired

    The column that counts as done for progress, releases and subtasks.

  • id_prefixstringrequired
  • prioritiesstring[]required
  • projectsobject[]required

    Every project, archived ones included, by name.

    • archived_atstring

      Set when archived; an archived project refuses new tickets.

    • colorstring

      blue | purple | teal | green | amber | rose.

    • countsobjectrequired
    • created_atstringrequired
    • descriptionstring
    • doneinteger· uint64requiredmin 0

      Of those, the ones in the done column.

    • idstringrequired
    • leadstring

      Agent profile id, or `user`.

    • namestringrequired

      Unique among projects (trimmed, ASCII case ignored).

    • source_labelstring

      The label this project was converted from, if any.

    • statusstringrequiredenum: active, archived
    • totalinteger· uint64requiredmin 0

      Live tickets in the project.

    • updated_atstringrequired
  • releasesobject[]required

    Every release, by target date (none last) then name.

    • countsobjectrequired
    • created_atstringrequired
    • descriptionstring
    • doneinteger· uint64requiredmin 0
    • idstringrequired
    • namestringrequired

      Unique among releases (trimmed, ASCII case ignored).

    • projectsobject[]required

      Per-project breakdown, biggest first; `project_id: null` is "no project".

      • doneinteger· uint64requiredmin 0
      • project_idstring

        `null` for tickets in no project.

      • totalinteger· uint64requiredmin 0
    • released_atstring
    • reopenedinteger· uint64requiredmin 0

      Not-done live tickets of a released release (0 while it is not released).

    • source_labelstring

      The label this release was converted from, if any.

    • statusall ofrequired

      released: `released_at` is set. active: some live ticket is outside the first column. planned: otherwise.

      all of (1)
      variant 1
      valuestringenum: planned, active, released
    • target_atstring

      `YYYY-MM-DD`.

    • totalinteger· uint64requiredmin 0
    • updated_atstringrequired
  • ticket_countinteger· uint64requiredmin 0

    Every live ticket on the board, regardless of the filters above.

  • updated_atstringrequired

kanban::comment::create

function

Comment on a ticket, or reply to a comment by passing parent_id. Returns the new comment and the ticket (only its compact row with compact).

request
  • authorstring

    Agent profile id, or `user`. Defaults to `user`.

  • bodystringrequired

    Comment body. Markdown is rendered in the console.

  • compactboolean

    Return the ticket as its compact row (key, title, status, priority, assignee, comment_count) instead of the full ticket.

  • parent_idstring

    Comment id to reply to; replies stay one level deep.

  • ticket_idstringrequired

    Ticket uuid or human-readable key (KAN-1, case-insensitive).

response
  • commentobjectrequired
    • authorstringrequired

      Agent profile id, or `user`.

    • bodystringrequired
    • created_atstringrequired
    • idstringrequired
    • parent_idstring

      Set for a reply; replies stay one level deep.

    • ticket_idstringrequired
  • ticketany ofrequired

    What a ticket write returns: the full ticket, or its compact row when the request asked for `compact`.

    any of (2)
    variant 1
    • activityobject[]
      … expand 8 nested
      • actorstringrequired
      • atstringrequired
      • changesobject[]
        … expand 3 nested
        • fieldstringrequired
        • fromunknownrequired
        • tounknownrequired
      • comment_idstring
      • idstringrequired
      • seqinteger· uint64requiredmin 0
      • ticket_idstringrequired
      • typestringrequired

        ticket.created | ticket.updated | ticket.moved | ticket.deleted | ticket.restored | comment.created

    • assigneestring

      Agent profile id.

    • childrenobject[]required

      Live subtasks by ticket number.

      … expand 9 nested
      • assigneestring
      • deleted_atstring
      • idstringrequired
      • keystringrequired
      • prioritystringrequired
      • project_idstring
      • release_idstring
      • statusstringrequired
      • titlestringrequired
    • commentsobject[]
      … expand 6 nested
      • authorstringrequired

        Agent profile id, or `user`.

      • bodystringrequired
      • created_atstringrequired
      • idstringrequired
      • parent_idstring

        Set for a reply; replies stay one level deep.

      • ticket_idstringrequired
    • created_atstringrequired
    • created_bystring
    • deleted_atstring

      Set when soft-deleted; the row stays on disk.

    • descriptionstring
    • idstringrequired

      Internal uuid.

    • keystringrequired

      Human-readable id, e.g. KAN-1.

    • labelsstring[]
    • orderinteger· uint64min 0

      Position inside its column.

    • parentany of

      The parent, deleted or not; `null` for a ticket that is not a subtask.

      … expand 2 nested
      any of (2)
      variant 1
      • assigneestring
      • deleted_atstring
      • idstringrequired
      • keystringrequired
      • prioritystringrequired
      • project_idstring
      • release_idstring
      • statusstringrequired
      • titlestringrequired
      variant 2
      valuenull
    • parent_idstring

      Uuid of the parent ticket. One level deep: a parent has no parent.

    • prioritystringrequired
    • progressobjectrequired

      Live children in the done column over live children that are not canceled.

      … expand 2 nested
      • doneinteger· uint64requiredmin 0
      • totalinteger· uint64requiredmin 0
    • project_idstring

      Uuid of the project (several tickets, independent of the release).

    • release_idstring

      Uuid of the release.

    • statusstringrequired

      Column id.

    • titlestringrequired
    • updated_atstringrequired
    variant 2
    • assigneestring
    • comment_countinteger· uint64requiredmin 0
    • keystringrequired
    • prioritystringrequired
    • statusstringrequired
    • titlestringrequired

kanban::comment::list

function

Read a ticket's comments with filtering, mirroring the kanban:comment trigger: by author, excluding an author, roots only, or after a timestamp.

request
  • authorstring

    Only comments by exactly this author.

  • exclude_authorstring

    Skip comments by this author — e.g. your own.

  • include_deletedboolean
  • limitinteger· uint64min 0
  • parent_idstring
  • root_onlyboolean
  • sincestring

    ISO timestamp; only comments created after it.

  • ticket_idstringrequired

    Ticket uuid or human-readable key (KAN-1, case-insensitive).

response
  • commentsobject[]required
    • authorstringrequired

      Agent profile id, or `user`.

    • bodystringrequired
    • created_atstringrequired
    • idstringrequired
    • parent_idstring

      Set for a reply; replies stay one level deep.

    • ticket_idstringrequired
  • countinteger· uint64requiredmin 0

kanban::config::info

function

Resolved kanban settings: the folder the board file lives in, the columns, and the numbering prefix.

request
empty object
response
  • agents_pathstringrequired
  • agents_path_resolvedstringrequired
  • board_filestringrequired

    Absolute path of board.json.

  • canceled_statusstring

    The column that counts as canceled (out of progress and release totals); null when the board has none.

  • columnsobject[]required

    Board columns left to right.

    • idstringrequired

      Stable column id stored on tickets.

    • labelstringrequired

      Name shown on the board.

  • configuration_idstringrequired
  • data_pathstringrequired

    Configured path, as written.

  • data_path_resolvedstringrequired

    Absolute folder the board file is read from.

  • default_statusstringrequired
  • done_statusstringrequired

    The column that counts as done for progress, releases and subtasks.

  • id_prefixstringrequired
  • prioritiesstring[]required
  • project_rootstringrequired
  • subscribersobjectrequired
    • changeinteger· uintrequiredmin 0
    • commentinteger· uintrequiredmin 0

kanban::label::convert

function

Turn a label into a project or a release: create one (or reuse the one with that name, or pass an existing id) and file every ticket carrying the label under it. Reports which tickets were added, already there, in another project/release (kept unless replace) or deleted (skipped). Running it twice adds nothing; dry_run changes nothing.

request
  • descriptionstring

    Description of a project or release created by this call.

  • dry_runboolean

    Compute the buckets and change nothing.

  • idstring

    An existing project or release (id or name) to add the tickets to.

  • intoall ofrequired

    Convert into a project or a release.

    all of (1)
    variant 1
    valuestringenum: project, release
  • labelstringrequired

    The label to convert; matched ASCII case-insensitively.

  • mark_released_if_doneboolean

    Releases: mark the release released when every live ticket in it is done, dated at the last of them.

  • namestring

    Without `id`: the name of the project or release to create, or to reuse when one has this name.

  • remove_labelboolean

    Remove the label from the tickets that end up in the project or release. Default false.

  • replaceboolean

    Also move tickets that are in another project or release. Default false: they are kept where they are.

  • target_atstring

    Target date `YYYY-MM-DD` of a release created by this call.

response
  • bucketsall ofrequired

    Ticket keys per outcome, from where the tickets were before the call.

    all of (1)
    variant 1
    • addedstring[]required
    • already_herestring[]required
    • deletedstring[]required
    • in_otherstring[]required
  • createdbooleanrequired
  • entityany of

    The project or release after the conversion; with `dry_run`, the existing one or null.

    any of (2)
    variant 1
    any of (2)
    variant 1
    • archived_atstring

      Set when archived; an archived project refuses new tickets.

    • colorstring

      blue | purple | teal | green | amber | rose.

    • countsobjectrequired
    • created_atstringrequired
    • descriptionstring
    • doneinteger· uint64requiredmin 0

      Of those, the ones in the done column.

    • idstringrequired
    • leadstring

      Agent profile id, or `user`.

    • namestringrequired

      Unique among projects (trimmed, ASCII case ignored).

    • source_labelstring

      The label this project was converted from, if any.

    • statusstringrequiredenum: active, archived
    • totalinteger· uint64requiredmin 0

      Live tickets in the project.

    • updated_atstringrequired
    variant 2
    • countsobjectrequired
    • created_atstringrequired
    • descriptionstring
    • doneinteger· uint64requiredmin 0
    • idstringrequired
    • namestringrequired

      Unique among releases (trimmed, ASCII case ignored).

    • projectsobject[]required

      Per-project breakdown, biggest first; `project_id: null` is "no project".

      … expand 3 nested
      • doneinteger· uint64requiredmin 0
      • project_idstring

        `null` for tickets in no project.

      • totalinteger· uint64requiredmin 0
    • released_atstring
    • reopenedinteger· uint64requiredmin 0

      Not-done live tickets of a released release (0 while it is not released).

    • source_labelstring

      The label this release was converted from, if any.

    • statusall ofrequired

      released: `released_at` is set. active: some live ticket is outside the first column. planned: otherwise.

      … expand 1 nested
      all of (1)
      variant 1
      valuestringenum: planned, active, released
    • target_atstring

      `YYYY-MM-DD`.

    • totalinteger· uint64requiredmin 0
    • updated_atstringrequired
    variant 2
    valuenull
  • ticketsany of[]required

    The tickets that were changed.

    any of (2)
    variant 1
    • assigneestring
    • comment_countinteger· uint64requiredmin 0
    • created_atstringrequired
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • labelsstring[]required
    • orderinteger· uint64requiredmin 0
    • parent_idstring
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
    • updated_atstringrequired
    variant 2
    • assigneestring
    • comment_countinteger· uint64requiredmin 0
    • keystringrequired
    • prioritystringrequired
    • statusstringrequired
    • titlestringrequired

kanban::mention::get

function

Resolve a @kanban(id=…) chat mention to its pill, preview card and agent summary; null for an unknown id. Declares the kanban mention provider.

request
  • idstringrequired

    The id from the token.

response
any of (2)
variant 1
  • colorstring
  • dataunknown

    The domain object, for a worker's own preview renderer.

  • descriptionstring
  • fieldsobject[]

    Labelled values for the preview card (status, assignee, …).

    • labelstringrequired
    • tonestring

      `neutral`, `info`, `success`, `warning` or `danger`.

    • valuestringrequired
  • hintstring
  • iconstring
  • idstringrequired

    The canonical id (may differ from the one asked for, e.g. a key resolved to a uuid).

  • labelstringrequired
  • openany of

    What clicking the mention opens.

    any of (2)
    variant 1
    any of (3)
    variant 1
    • contextunknown
    • pagestringrequired

      Console page id (as registered with `host.pages`).

    variant 2
    • sessionstringrequired

      Session id to select.

    variant 3
    • urlstringrequired
    variant 2
    valuenull
  • summarystring

    One line for an agent: what the item is and its state. Defaults to the label, hint, description and fields.

  • updated_atstring

    RFC 3339 time of the item's last change.

variant 2
valuenull

kanban::mention::search

function

Search live tickets for the chat @kanban mention menu, by key (KAN-12, 12) or title words; best match first.

request
  • contextany of

    Where the search was asked from, for providers that rank by it.

    any of (2)
    variant 1
    • session_idstring
    • working_dirstring
    variant 2
    valuenull
  • limitinteger· uintmin 0

    Maximum rows (default 8, at most 50).

  • querystring

    What the user typed after `@<name>:`. Empty asks for the most relevant recent items.

response
  • itemsobject[]required
    • colorstring

      Overrides the provider's color for this row.

    • descriptionstring

      One line after the label ("in progress · high").

    • hintstring

      A short human handle shown before the label ("KAN-12").

    • iconstring

      Overrides the provider's icon for this row.

    • idstringrequired

      The id written into the token; stable for the item's lifetime.

    • labelstringrequired

      The item's name ("Fix login redirect").

kanban::on-config-change

function

Internal: re-read the kanban configuration after an operator change.

request
  • idstring

    Configuration id that changed.

response
  • okbooleanrequired

kanban::project::archive

function

Archive a project. Its tickets stay; an archived project refuses new tickets. Archiving an archived project changes nothing.

request
  • idstringrequired

    Project or release id, or its name.

response
  • archived_atstring

    Set when archived; an archived project refuses new tickets.

  • colorstring

    blue | purple | teal | green | amber | rose.

  • countsobjectrequired
  • created_atstringrequired
  • descriptionstring
  • doneinteger· uint64requiredmin 0

    Of those, the ones in the done column.

  • idstringrequired
  • leadstring

    Agent profile id, or `user`.

  • namestringrequired

    Unique among projects (trimmed, ASCII case ignored).

  • source_labelstring

    The label this project was converted from, if any.

  • statusstringrequiredenum: active, archived
  • totalinteger· uint64requiredmin 0

    Live tickets in the project.

  • updated_atstringrequired

kanban::project::create

function

Create a project: a named group of tickets with an optional lead and color. Names are unique (ASCII case ignored).

request
  • colorstring

    blue | purple | teal | green | amber | rose.

  • descriptionstring
  • leadstring

    Agent profile id, or `user`.

  • namestringrequired

    Required; unique among projects (ASCII case ignored).

response
  • archived_atstring

    Set when archived; an archived project refuses new tickets.

  • colorstring

    blue | purple | teal | green | amber | rose.

  • countsobjectrequired
  • created_atstringrequired
  • descriptionstring
  • doneinteger· uint64requiredmin 0

    Of those, the ones in the done column.

  • idstringrequired
  • leadstring

    Agent profile id, or `user`.

  • namestringrequired

    Unique among projects (trimmed, ASCII case ignored).

  • source_labelstring

    The label this project was converted from, if any.

  • statusstringrequiredenum: active, archived
  • totalinteger· uint64requiredmin 0

    Live tickets in the project.

  • updated_atstringrequired

kanban::project::list

function

List projects with their live ticket counts (total, done, per column). Archived projects only with include_archived.

request
  • include_archivedboolean

    Include archived projects. Default false.

response
  • projectsobject[]required
    • archived_atstring

      Set when archived; an archived project refuses new tickets.

    • colorstring

      blue | purple | teal | green | amber | rose.

    • countsobjectrequired
    • created_atstringrequired
    • descriptionstring
    • doneinteger· uint64requiredmin 0

      Of those, the ones in the done column.

    • idstringrequired
    • leadstring

      Agent profile id, or `user`.

    • namestringrequired

      Unique among projects (trimmed, ASCII case ignored).

    • source_labelstring

      The label this project was converted from, if any.

    • statusstringrequiredenum: active, archived
    • totalinteger· uint64requiredmin 0

      Live tickets in the project.

    • updated_atstringrequired

kanban::project::restore

function

Put an archived project back. Restoring a project that is not archived changes nothing.

request
  • idstringrequired

    Project or release id, or its name.

response
  • archived_atstring

    Set when archived; an archived project refuses new tickets.

  • colorstring

    blue | purple | teal | green | amber | rose.

  • countsobjectrequired
  • created_atstringrequired
  • descriptionstring
  • doneinteger· uint64requiredmin 0

    Of those, the ones in the done column.

  • idstringrequired
  • leadstring

    Agent profile id, or `user`.

  • namestringrequired

    Unique among projects (trimmed, ASCII case ignored).

  • source_labelstring

    The label this project was converted from, if any.

  • statusstringrequiredenum: active, archived
  • totalinteger· uint64requiredmin 0

    Live tickets in the project.

  • updated_atstringrequired

kanban::project::update

function

Rename a project or change its description, lead or color (null clears lead and color). The id accepts the project id or its name.

request
  • colorstring

    blue | purple | teal | green | amber | rose, or null to clear.

  • descriptionstring
  • idstringrequired

    Project id or name.

  • leadstring

    Agent profile id, `user`, or null to clear.

  • namestring
response
  • archived_atstring

    Set when archived; an archived project refuses new tickets.

  • colorstring

    blue | purple | teal | green | amber | rose.

  • countsobjectrequired
  • created_atstringrequired
  • descriptionstring
  • doneinteger· uint64requiredmin 0

    Of those, the ones in the done column.

  • idstringrequired
  • leadstring

    Agent profile id, or `user`.

  • namestringrequired

    Unique among projects (trimmed, ASCII case ignored).

  • source_labelstring

    The label this project was converted from, if any.

  • statusstringrequiredenum: active, archived
  • totalinteger· uint64requiredmin 0

    Live tickets in the project.

  • updated_atstringrequired

kanban::release::create

function

Create a release with an optional target date (YYYY-MM-DD). Names are unique (ASCII case ignored). Its status is derived from its tickets.

request
  • descriptionstring
  • namestringrequired

    Required; unique among releases (ASCII case ignored).

  • target_atstring

    Target date, `YYYY-MM-DD`.

response
  • countsobjectrequired
  • created_atstringrequired
  • descriptionstring
  • doneinteger· uint64requiredmin 0
  • idstringrequired
  • namestringrequired

    Unique among releases (trimmed, ASCII case ignored).

  • projectsobject[]required

    Per-project breakdown, biggest first; `project_id: null` is "no project".

    • doneinteger· uint64requiredmin 0
    • project_idstring

      `null` for tickets in no project.

    • totalinteger· uint64requiredmin 0
  • released_atstring
  • reopenedinteger· uint64requiredmin 0

    Not-done live tickets of a released release (0 while it is not released).

  • source_labelstring

    The label this release was converted from, if any.

  • statusall ofrequired

    released: `released_at` is set. active: some live ticket is outside the first column. planned: otherwise.

    all of (1)
    variant 1
    valuestringenum: planned, active, released
  • target_atstring

    `YYYY-MM-DD`.

  • totalinteger· uint64requiredmin 0
  • updated_atstringrequired

kanban::release::delete

function

Delete a release no ticket references (soft-deleted tickets included).

request
  • idstringrequired

    Project or release id, or its name.

response
  • deletedbooleanrequired

kanban::release::list

function

List releases by target date then name, each with its derived status (planned, active, released), live ticket counts, how many tickets were reopened after shipping, and a per-project breakdown.

request
empty object
response
  • releasesobject[]required
    • countsobjectrequired
    • created_atstringrequired
    • descriptionstring
    • doneinteger· uint64requiredmin 0
    • idstringrequired
    • namestringrequired

      Unique among releases (trimmed, ASCII case ignored).

    • projectsobject[]required

      Per-project breakdown, biggest first; `project_id: null` is "no project".

      • doneinteger· uint64requiredmin 0
      • project_idstring

        `null` for tickets in no project.

      • totalinteger· uint64requiredmin 0
    • released_atstring
    • reopenedinteger· uint64requiredmin 0

      Not-done live tickets of a released release (0 while it is not released).

    • source_labelstring

      The label this release was converted from, if any.

    • statusall ofrequired

      released: `released_at` is set. active: some live ticket is outside the first column. planned: otherwise.

      all of (1)
      variant 1
      valuestringenum: planned, active, released
    • target_atstring

      `YYYY-MM-DD`.

    • totalinteger· uint64requiredmin 0
    • updated_atstringrequired

kanban::release::reopen

function

Clear a release's released date. Tickets moved out when it shipped do not come back.

request
  • idstringrequired

    Project or release id, or its name.

response
  • countsobjectrequired
  • created_atstringrequired
  • descriptionstring
  • doneinteger· uint64requiredmin 0
  • idstringrequired
  • namestringrequired

    Unique among releases (trimmed, ASCII case ignored).

  • projectsobject[]required

    Per-project breakdown, biggest first; `project_id: null` is "no project".

    • doneinteger· uint64requiredmin 0
    • project_idstring

      `null` for tickets in no project.

    • totalinteger· uint64requiredmin 0
  • released_atstring
  • reopenedinteger· uint64requiredmin 0

    Not-done live tickets of a released release (0 while it is not released).

  • source_labelstring

    The label this release was converted from, if any.

  • statusall ofrequired

    released: `released_at` is set. active: some live ticket is outside the first column. planned: otherwise.

    all of (1)
    variant 1
    valuestringenum: planned, active, released
  • target_atstring

    `YYYY-MM-DD`.

  • totalinteger· uint64requiredmin 0
  • updated_atstringrequired

kanban::release::ship

function

Mark a release as released. Live tickets that are not done must go somewhere: move_open_to is another unreleased release (id or name), or null to take them out of any release; it is required when there are such tickets. Returns the release and the tickets moved.

request
  • idstringrequired

    Release id or name.

  • move_open_tostring

    Where the live tickets that are not done go: another release's id or name, or null to take them out of any release. Required when there are such tickets; the target must exist and not be released.

response
  • movedany of[]required

    The tickets that were not done and moved out of the release.

    any of (2)
    variant 1
    • assigneestring
    • comment_countinteger· uint64requiredmin 0
    • created_atstringrequired
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • labelsstring[]required
    • orderinteger· uint64requiredmin 0
    • parent_idstring
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
    • updated_atstringrequired
    variant 2
    • assigneestring
    • comment_countinteger· uint64requiredmin 0
    • keystringrequired
    • prioritystringrequired
    • statusstringrequired
    • titlestringrequired
  • releaseobjectrequired

    A deliverable that tickets are filed under. Its status is derived from the tickets; only `released_at` is stored.

    • countsobjectrequired
    • created_atstringrequired
    • descriptionstring
    • doneinteger· uint64requiredmin 0
    • idstringrequired
    • namestringrequired

      Unique among releases (trimmed, ASCII case ignored).

    • projectsobject[]required

      Per-project breakdown, biggest first; `project_id: null` is "no project".

      • doneinteger· uint64requiredmin 0
      • project_idstring

        `null` for tickets in no project.

      • totalinteger· uint64requiredmin 0
    • released_atstring
    • reopenedinteger· uint64requiredmin 0

      Not-done live tickets of a released release (0 while it is not released).

    • source_labelstring

      The label this release was converted from, if any.

    • statusall ofrequired

      released: `released_at` is set. active: some live ticket is outside the first column. planned: otherwise.

      all of (1)
      variant 1
      valuestringenum: planned, active, released
    • target_atstring

      `YYYY-MM-DD`.

    • totalinteger· uint64requiredmin 0
    • updated_atstringrequired

kanban::release::update

function

Rename a release or change its description or target date (null clears the date). The id accepts the release id or its name.

request
  • descriptionstring
  • idstringrequired

    Release id or name.

  • namestring
  • target_atstring

    Target date `YYYY-MM-DD`, or null to clear.

response
  • countsobjectrequired
  • created_atstringrequired
  • descriptionstring
  • doneinteger· uint64requiredmin 0
  • idstringrequired
  • namestringrequired

    Unique among releases (trimmed, ASCII case ignored).

  • projectsobject[]required

    Per-project breakdown, biggest first; `project_id: null` is "no project".

    • doneinteger· uint64requiredmin 0
    • project_idstring

      `null` for tickets in no project.

    • totalinteger· uint64requiredmin 0
  • released_atstring
  • reopenedinteger· uint64requiredmin 0

    Not-done live tickets of a released release (0 while it is not released).

  • source_labelstring

    The label this release was converted from, if any.

  • statusall ofrequired

    released: `released_at` is set. active: some live ticket is outside the first column. planned: otherwise.

    all of (1)
    variant 1
    valuestringenum: planned, active, released
  • target_atstring

    `YYYY-MM-DD`.

  • totalinteger· uint64requiredmin 0
  • updated_atstringrequired

kanban::ticket::create

function

Create a ticket on the board and return it; pass compact to get back only its compact row (key, title, status, priority, assignee, comment_count). Optionally make it a subtask (parent), or file it under a project or release (id or name).

request
  • actorstring

    Who is making the change. Defaults to `user`.

  • assigneestring

    Agent profile id.

  • compactboolean

    Return the compact row (key, title, status, priority, assignee, comment_count) instead of the full ticket.

  • descriptionstring
  • labelsstring[]
  • parentstring

    Make the new ticket a subtask of this ticket (uuid or key). The parent must be live and not a subtask itself.

  • prioritystring
  • projectstring

    Project id or name. An archived project refuses new tickets.

  • releasestring

    Release id or name.

  • statusstring

    Column id; defaults to the configured default_status.

  • titlestringrequired

    Required.

response
any of (2)
variant 1
  • activityobject[]
    • actorstringrequired
    • atstringrequired
    • changesobject[]
      … expand 3 nested
      • fieldstringrequired
      • fromunknownrequired
      • tounknownrequired
    • comment_idstring
    • idstringrequired
    • seqinteger· uint64requiredmin 0
    • ticket_idstringrequired
    • typestringrequired

      ticket.created | ticket.updated | ticket.moved | ticket.deleted | ticket.restored | comment.created

  • assigneestring

    Agent profile id.

  • childrenobject[]required

    Live subtasks by ticket number.

    • assigneestring
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
  • commentsobject[]
    • authorstringrequired

      Agent profile id, or `user`.

    • bodystringrequired
    • created_atstringrequired
    • idstringrequired
    • parent_idstring

      Set for a reply; replies stay one level deep.

    • ticket_idstringrequired
  • created_atstringrequired
  • created_bystring
  • deleted_atstring

    Set when soft-deleted; the row stays on disk.

  • descriptionstring
  • idstringrequired

    Internal uuid.

  • keystringrequired

    Human-readable id, e.g. KAN-1.

  • labelsstring[]
  • orderinteger· uint64min 0

    Position inside its column.

  • parentany of

    The parent, deleted or not; `null` for a ticket that is not a subtask.

    any of (2)
    variant 1
    • assigneestring
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
    variant 2
    valuenull
  • parent_idstring

    Uuid of the parent ticket. One level deep: a parent has no parent.

  • prioritystringrequired
  • progressobjectrequired

    Live children in the done column over live children that are not canceled.

    • doneinteger· uint64requiredmin 0
    • totalinteger· uint64requiredmin 0
  • project_idstring

    Uuid of the project (several tickets, independent of the release).

  • release_idstring

    Uuid of the release.

  • statusstringrequired

    Column id.

  • titlestringrequired
  • updated_atstringrequired
variant 2
  • assigneestring
  • comment_countinteger· uint64requiredmin 0
  • keystringrequired
  • prioritystringrequired
  • statusstringrequired
  • titlestringrequired

kanban::ticket::delete

function

Soft-delete a ticket: it leaves the board but stays in the board file. Deleting a deleted ticket changes nothing.

request
  • actorstring
  • idstringrequired

    Ticket uuid or human-readable key (KAN-1, case-insensitive).

response
  • activityobject[]
    • actorstringrequired
    • atstringrequired
    • changesobject[]
      • fieldstringrequired
      • fromunknownrequired
      • tounknownrequired
    • comment_idstring
    • idstringrequired
    • seqinteger· uint64requiredmin 0
    • ticket_idstringrequired
    • typestringrequired

      ticket.created | ticket.updated | ticket.moved | ticket.deleted | ticket.restored | comment.created

  • assigneestring

    Agent profile id.

  • childrenobject[]required

    Live subtasks by ticket number.

    • assigneestring
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
  • commentsobject[]
    • authorstringrequired

      Agent profile id, or `user`.

    • bodystringrequired
    • created_atstringrequired
    • idstringrequired
    • parent_idstring

      Set for a reply; replies stay one level deep.

    • ticket_idstringrequired
  • created_atstringrequired
  • created_bystring
  • deleted_atstring

    Set when soft-deleted; the row stays on disk.

  • descriptionstring
  • idstringrequired

    Internal uuid.

  • keystringrequired

    Human-readable id, e.g. KAN-1.

  • labelsstring[]
  • orderinteger· uint64min 0

    Position inside its column.

  • parentany of

    The parent, deleted or not; `null` for a ticket that is not a subtask.

    any of (2)
    variant 1
    • assigneestring
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
    variant 2
    valuenull
  • parent_idstring

    Uuid of the parent ticket. One level deep: a parent has no parent.

  • prioritystringrequired
  • progressobjectrequired

    Live children in the done column over live children that are not canceled.

    • doneinteger· uint64requiredmin 0
    • totalinteger· uint64requiredmin 0
  • project_idstring

    Uuid of the project (several tickets, independent of the release).

  • release_idstring

    Uuid of the release.

  • statusstringrequired

    Column id.

  • titlestringrequired
  • updated_atstringrequired

kanban::ticket::get

function

Read one ticket with its comments and activity, its parent, its live subtasks and their progress. The id accepts the internal uuid or the human-readable key.

request
  • idstringrequired

    Ticket uuid or human-readable key (KAN-1, case-insensitive).

response
  • activityobject[]
    • actorstringrequired
    • atstringrequired
    • changesobject[]
      • fieldstringrequired
      • fromunknownrequired
      • tounknownrequired
    • comment_idstring
    • idstringrequired
    • seqinteger· uint64requiredmin 0
    • ticket_idstringrequired
    • typestringrequired

      ticket.created | ticket.updated | ticket.moved | ticket.deleted | ticket.restored | comment.created

  • assigneestring

    Agent profile id.

  • childrenobject[]required

    Live subtasks by ticket number.

    • assigneestring
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
  • commentsobject[]
    • authorstringrequired

      Agent profile id, or `user`.

    • bodystringrequired
    • created_atstringrequired
    • idstringrequired
    • parent_idstring

      Set for a reply; replies stay one level deep.

    • ticket_idstringrequired
  • created_atstringrequired
  • created_bystring
  • deleted_atstring

    Set when soft-deleted; the row stays on disk.

  • descriptionstring
  • idstringrequired

    Internal uuid.

  • keystringrequired

    Human-readable id, e.g. KAN-1.

  • labelsstring[]
  • orderinteger· uint64min 0

    Position inside its column.

  • parentany of

    The parent, deleted or not; `null` for a ticket that is not a subtask.

    any of (2)
    variant 1
    • assigneestring
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
    variant 2
    valuenull
  • parent_idstring

    Uuid of the parent ticket. One level deep: a parent has no parent.

  • prioritystringrequired
  • progressobjectrequired

    Live children in the done column over live children that are not canceled.

    • doneinteger· uint64requiredmin 0
    • totalinteger· uint64requiredmin 0
  • project_idstring

    Uuid of the project (several tickets, independent of the release).

  • release_idstring

    Uuid of the release.

  • statusstringrequired

    Column id.

  • titlestringrequired
  • updated_atstringrequired

kanban::ticket::list

function

List tickets, optionally narrowed to a column, an assignee, an updated_since timestamp, a parent (its subtasks), a project or a release (empty string = none); compact rows carry only key, title, status, priority, assignee and comment_count.

request
  • assigneestring

    Agent profile id; empty string matches unassigned.

  • compactboolean

    Return the compact row (key, title, status, priority, assignee, comment_count) instead of the full summary.

  • include_deletedboolean
  • limitinteger· uint64min 0
  • parent_idstring

    Only the subtasks of this ticket (uuid or key); empty string = tickets that are not subtasks.

  • project_idstring

    Only tickets in this project (id or name); empty string = tickets in no project.

  • release_idstring

    Only tickets in this release (id or name); empty string = tickets in no release.

  • statusstring

    Column id.

  • updated_sincestring

    Only tickets updated after this ISO timestamp.

response
  • countinteger· uint64requiredmin 0
  • ticketsany of[]required
    any of (2)
    variant 1
    • assigneestring
    • comment_countinteger· uint64requiredmin 0
    • created_atstringrequired
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • labelsstring[]required
    • orderinteger· uint64requiredmin 0
    • parent_idstring
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
    • updated_atstringrequired
    variant 2
    • assigneestring
    • comment_countinteger· uint64requiredmin 0
    • keystringrequired
    • prioritystringrequired
    • statusstringrequired
    • titlestringrequired

kanban::ticket::move

function

Move a ticket to a column (and position inside it); used by the board drag and drop. Moving a ticket to where it already is changes nothing; a deleted ticket cannot be moved. Returns the ticket, or only its compact row with compact.

request
  • actorstring
  • compactboolean

    Return the compact row (key, title, status, priority, assignee, comment_count) instead of the full ticket.

  • idstringrequired

    Ticket uuid or human-readable key (KAN-1, case-insensitive).

  • indexinteger· uint64min 0

    Zero-based position in the target column.

  • statusstringrequired

    Target column id.

response
any of (2)
variant 1
  • activityobject[]
    • actorstringrequired
    • atstringrequired
    • changesobject[]
      … expand 3 nested
      • fieldstringrequired
      • fromunknownrequired
      • tounknownrequired
    • comment_idstring
    • idstringrequired
    • seqinteger· uint64requiredmin 0
    • ticket_idstringrequired
    • typestringrequired

      ticket.created | ticket.updated | ticket.moved | ticket.deleted | ticket.restored | comment.created

  • assigneestring

    Agent profile id.

  • childrenobject[]required

    Live subtasks by ticket number.

    • assigneestring
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
  • commentsobject[]
    • authorstringrequired

      Agent profile id, or `user`.

    • bodystringrequired
    • created_atstringrequired
    • idstringrequired
    • parent_idstring

      Set for a reply; replies stay one level deep.

    • ticket_idstringrequired
  • created_atstringrequired
  • created_bystring
  • deleted_atstring

    Set when soft-deleted; the row stays on disk.

  • descriptionstring
  • idstringrequired

    Internal uuid.

  • keystringrequired

    Human-readable id, e.g. KAN-1.

  • labelsstring[]
  • orderinteger· uint64min 0

    Position inside its column.

  • parentany of

    The parent, deleted or not; `null` for a ticket that is not a subtask.

    any of (2)
    variant 1
    • assigneestring
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
    variant 2
    valuenull
  • parent_idstring

    Uuid of the parent ticket. One level deep: a parent has no parent.

  • prioritystringrequired
  • progressobjectrequired

    Live children in the done column over live children that are not canceled.

    • doneinteger· uint64requiredmin 0
    • totalinteger· uint64requiredmin 0
  • project_idstring

    Uuid of the project (several tickets, independent of the release).

  • release_idstring

    Uuid of the release.

  • statusstringrequired

    Column id.

  • titlestringrequired
  • updated_atstringrequired
variant 2
  • assigneestring
  • comment_countinteger· uint64requiredmin 0
  • keystringrequired
  • prioritystringrequired
  • statusstringrequired
  • titlestringrequired

kanban::ticket::restore

function

Put a soft-deleted ticket back on the board. A subtask whose parent is deleted, gone or a subtask itself comes back detached (activity on both tickets, an event for each). Restoring a ticket that is not deleted changes nothing.

request
  • actorstring
  • idstringrequired

    Ticket uuid or human-readable key (KAN-1, case-insensitive).

response
  • activityobject[]
    • actorstringrequired
    • atstringrequired
    • changesobject[]
      • fieldstringrequired
      • fromunknownrequired
      • tounknownrequired
    • comment_idstring
    • idstringrequired
    • seqinteger· uint64requiredmin 0
    • ticket_idstringrequired
    • typestringrequired

      ticket.created | ticket.updated | ticket.moved | ticket.deleted | ticket.restored | comment.created

  • assigneestring

    Agent profile id.

  • childrenobject[]required

    Live subtasks by ticket number.

    • assigneestring
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
  • commentsobject[]
    • authorstringrequired

      Agent profile id, or `user`.

    • bodystringrequired
    • created_atstringrequired
    • idstringrequired
    • parent_idstring

      Set for a reply; replies stay one level deep.

    • ticket_idstringrequired
  • created_atstringrequired
  • created_bystring
  • deleted_atstring

    Set when soft-deleted; the row stays on disk.

  • descriptionstring
  • idstringrequired

    Internal uuid.

  • keystringrequired

    Human-readable id, e.g. KAN-1.

  • labelsstring[]
  • orderinteger· uint64min 0

    Position inside its column.

  • parentany of

    The parent, deleted or not; `null` for a ticket that is not a subtask.

    any of (2)
    variant 1
    • assigneestring
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
    variant 2
    valuenull
  • parent_idstring

    Uuid of the parent ticket. One level deep: a parent has no parent.

  • prioritystringrequired
  • progressobjectrequired

    Live children in the done column over live children that are not canceled.

    • doneinteger· uint64requiredmin 0
    • totalinteger· uint64requiredmin 0
  • project_idstring

    Uuid of the project (several tickets, independent of the release).

  • release_idstring

    Uuid of the release.

  • statusstringrequired

    Column id.

  • titlestringrequired
  • updated_atstringrequired

kanban::ticket::update

function

Update a ticket field (title, description, status, priority, assignee, labels, parent, project, release) and return the ticket (compact returns only its compact row). To change labels pass add_labels / remove_labels (they edit the current labels, so concurrent edits do not overwrite each other); labels replaces the whole set. parent makes the ticket a subtask (one level: the parent must be live and not a subtask, a ticket with subtasks cannot become one) and null detaches it; the activity is recorded on both tickets. project and release take an id or a name; null clears. A patch that changes nothing records and fires nothing.

request
  • actorstring
  • add_labelsstring[]

    Labels to add to the current ones; one already present (ASCII case ignored) is skipped. Applied after `labels` and `remove_labels`.

  • assigneestring

    Agent profile id, or null to unassign.

  • compactboolean

    Return the compact row (key, title, status, priority, assignee, comment_count) instead of the full ticket.

  • descriptionstring
  • idstringrequired

    Ticket uuid or human-readable key (KAN-1, case-insensitive).

  • labelsstring[]

    Replaces the whole label set. Prefer add_labels / remove_labels: they edit the labels the ticket has when the write runs, so concurrent label edits do not overwrite each other.

  • parentstring

    Ticket uuid or key to make this ticket a subtask of, or null to detach it. One level only: the parent must be live and not a subtask, and a ticket with subtasks cannot become one.

  • prioritystring
  • projectstring

    Project id or name, or null to clear. An archived project refuses new tickets.

  • releasestring

    Release id or name, or null to clear.

  • remove_labelsstring[]

    Labels to drop from the current ones (ASCII case ignored). Applied after `labels`, before `add_labels`.

  • statusstring
  • titlestring
response
any of (2)
variant 1
  • activityobject[]
    • actorstringrequired
    • atstringrequired
    • changesobject[]
      … expand 3 nested
      • fieldstringrequired
      • fromunknownrequired
      • tounknownrequired
    • comment_idstring
    • idstringrequired
    • seqinteger· uint64requiredmin 0
    • ticket_idstringrequired
    • typestringrequired

      ticket.created | ticket.updated | ticket.moved | ticket.deleted | ticket.restored | comment.created

  • assigneestring

    Agent profile id.

  • childrenobject[]required

    Live subtasks by ticket number.

    • assigneestring
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
  • commentsobject[]
    • authorstringrequired

      Agent profile id, or `user`.

    • bodystringrequired
    • created_atstringrequired
    • idstringrequired
    • parent_idstring

      Set for a reply; replies stay one level deep.

    • ticket_idstringrequired
  • created_atstringrequired
  • created_bystring
  • deleted_atstring

    Set when soft-deleted; the row stays on disk.

  • descriptionstring
  • idstringrequired

    Internal uuid.

  • keystringrequired

    Human-readable id, e.g. KAN-1.

  • labelsstring[]
  • orderinteger· uint64min 0

    Position inside its column.

  • parentany of

    The parent, deleted or not; `null` for a ticket that is not a subtask.

    any of (2)
    variant 1
    • assigneestring
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
    variant 2
    valuenull
  • parent_idstring

    Uuid of the parent ticket. One level deep: a parent has no parent.

  • prioritystringrequired
  • progressobjectrequired

    Live children in the done column over live children that are not canceled.

    • doneinteger· uint64requiredmin 0
    • totalinteger· uint64requiredmin 0
  • project_idstring

    Uuid of the project (several tickets, independent of the release).

  • release_idstring

    Uuid of the release.

  • statusstringrequired

    Column id.

  • titlestringrequired
  • updated_atstringrequired
variant 2
  • assigneestring
  • comment_countinteger· uint64requiredmin 0
  • keystringrequired
  • prioritystringrequired
  • statusstringrequired
  • titlestringrequired

kanban::ui-content

function

Serve the kanban worker's injected console UI assets (content function for its console:script / console:style / console:module triggers).

request
  • pathstringrequired

    The asset path from the trigger config (e.g. `state/page.js`).

response
  • contentstringrequired

    The asset source, verbatim.

  • content_typestringrequired

    MIME type the console should serve the asset with.

triggers

2

kanban:change

trigger

Fires after every kanban mutation with the whole ticket (parent, subtasks and progress included). Config: { ticket_id?, parent_id?, release_id?, events?, metadata? } — ticket_id and parent_id match the uuid or the human key (parent_id also fires for each subtask); release_id is a release id or name (fires for tickets in it and for tickets moved out of it).

invocation
  • eventsstring[]

    Event names to fire for (ticket.created, ticket.updated, ticket.moved, ticket.deleted, ticket.restored, comment.created). Omit for all.

  • metadataunknown

    Metadata attached to every invocation this binding receives.

  • parent_idstring

    Ticket uuid or human key of a parent: fires for the parent itself and for each of its subtasks.

  • release_idstring

    Release id or name: fires for a ticket in the release and for a ticket a write just moved out of it.

  • ticketany of

    `full` (default) delivers the whole ticket; `summary` only its board-card fields.

    any of (2)
    variant 1
    valuestringenum: full, summary
    variant 2
    valuenull
  • ticket_idstring

    Ticket uuid or human key. Omit to fire for every ticket.

return
  • activityany of
    any of (2)
    variant 1
    • actorstringrequired
    • atstringrequired
    • changesobject[]
      … expand 3 nested
      • fieldstringrequired
      • fromunknownrequired
      • tounknownrequired
    • comment_idstring
    • idstringrequired
    • seqinteger· uint64requiredmin 0
    • ticket_idstringrequired
    • typestringrequired

      ticket.created | ticket.updated | ticket.moved | ticket.deleted | ticket.restored | comment.created

    variant 2
    valuenull
  • atstringrequired
  • commentany of
    any of (2)
    variant 1
    • authorstringrequired

      Agent profile id, or `user`.

    • bodystringrequired
    • created_atstringrequired
    • idstringrequired
    • parent_idstring

      Set for a reply; replies stay one level deep.

    • ticket_idstringrequired
    variant 2
    valuenull
  • eventstringrequired
  • ticketany ofrequired

    The `ticket` field of a delivery: the whole ticket, or its summary when the binding asked for `ticket: summary`.

    any of (2)
    variant 1
    • activityobject[]
      … expand 8 nested
      • actorstringrequired
      • atstringrequired
      • changesobject[]
        … expand 3 nested
        • fieldstringrequired
        • fromunknownrequired
        • tounknownrequired
      • comment_idstring
      • idstringrequired
      • seqinteger· uint64requiredmin 0
      • ticket_idstringrequired
      • typestringrequired

        ticket.created | ticket.updated | ticket.moved | ticket.deleted | ticket.restored | comment.created

    • assigneestring

      Agent profile id.

    • childrenobject[]required

      Live subtasks by ticket number.

      … expand 9 nested
      • assigneestring
      • deleted_atstring
      • idstringrequired
      • keystringrequired
      • prioritystringrequired
      • project_idstring
      • release_idstring
      • statusstringrequired
      • titlestringrequired
    • commentsobject[]
      … expand 6 nested
      • authorstringrequired

        Agent profile id, or `user`.

      • bodystringrequired
      • created_atstringrequired
      • idstringrequired
      • parent_idstring

        Set for a reply; replies stay one level deep.

      • ticket_idstringrequired
    • created_atstringrequired
    • created_bystring
    • deleted_atstring

      Set when soft-deleted; the row stays on disk.

    • descriptionstring
    • idstringrequired

      Internal uuid.

    • keystringrequired

      Human-readable id, e.g. KAN-1.

    • labelsstring[]
    • orderinteger· uint64min 0

      Position inside its column.

    • parentany of

      The parent, deleted or not; `null` for a ticket that is not a subtask.

      … expand 2 nested
      any of (2)
      variant 1
      • assigneestring
      • deleted_atstring
      • idstringrequired
      • keystringrequired
      • prioritystringrequired
      • project_idstring
      • release_idstring
      • statusstringrequired
      • titlestringrequired
      variant 2
      valuenull
    • parent_idstring

      Uuid of the parent ticket. One level deep: a parent has no parent.

    • prioritystringrequired
    • progressobjectrequired

      Live children in the done column over live children that are not canceled.

      … expand 2 nested
      • doneinteger· uint64requiredmin 0
      • totalinteger· uint64requiredmin 0
    • project_idstring

      Uuid of the project (several tickets, independent of the release).

    • release_idstring

      Uuid of the release.

    • statusstringrequired

      Column id.

    • titlestringrequired
    • updated_atstringrequired
    variant 2
    • assigneestring
    • comment_countinteger· uint64requiredmin 0
    • created_atstringrequired
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • labelsstring[]required
    • orderinteger· uint64requiredmin 0
    • parent_idstring
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
    • updated_atstringrequired
  • ticket_idstringrequired
  • ticket_keystringrequired

kanban:comment

trigger

Fires when a comment is added, optionally filtered by author. Config: { ticket_id? | parent_id?, author?, exclude_author?, root_only? } — ticket_id is one ticket; parent_id is a ticket and all its subtasks (uuid or human key).

invocation
  • authorstring

    Fire only for comments by exactly this author.

  • exclude_authorstring

    Fire for every author except this one — pass your own profile id.

  • parent_idstring

    Ticket uuid or human key of a parent: comments on the parent or on any of its subtasks.

  • root_onlyboolean

    Ignore replies; fire only for top-level comments.

  • ticketany of

    `full` (default) delivers the whole ticket; `summary` only its board-card fields.

    any of (2)
    variant 1
    valuestringenum: full, summary
    variant 2
    valuenull
  • ticket_idstring

    Ticket uuid or human key. Give this or `parent_id`; a binding with neither never fires.

return
  • atstringrequired
  • authorstringrequired
  • commentobjectrequired
    • authorstringrequired

      Agent profile id, or `user`.

    • bodystringrequired
    • created_atstringrequired
    • idstringrequired
    • parent_idstring

      Set for a reply; replies stay one level deep.

    • ticket_idstringrequired
  • eventstringrequired

    Always `comment.created`.

  • ticketany ofrequired

    The `ticket` field of a delivery: the whole ticket, or its summary when the binding asked for `ticket: summary`.

    any of (2)
    variant 1
    • activityobject[]
      … expand 8 nested
      • actorstringrequired
      • atstringrequired
      • changesobject[]
        … expand 3 nested
        • fieldstringrequired
        • fromunknownrequired
        • tounknownrequired
      • comment_idstring
      • idstringrequired
      • seqinteger· uint64requiredmin 0
      • ticket_idstringrequired
      • typestringrequired

        ticket.created | ticket.updated | ticket.moved | ticket.deleted | ticket.restored | comment.created

    • assigneestring

      Agent profile id.

    • childrenobject[]required

      Live subtasks by ticket number.

      … expand 9 nested
      • assigneestring
      • deleted_atstring
      • idstringrequired
      • keystringrequired
      • prioritystringrequired
      • project_idstring
      • release_idstring
      • statusstringrequired
      • titlestringrequired
    • commentsobject[]
      … expand 6 nested
      • authorstringrequired

        Agent profile id, or `user`.

      • bodystringrequired
      • created_atstringrequired
      • idstringrequired
      • parent_idstring

        Set for a reply; replies stay one level deep.

      • ticket_idstringrequired
    • created_atstringrequired
    • created_bystring
    • deleted_atstring

      Set when soft-deleted; the row stays on disk.

    • descriptionstring
    • idstringrequired

      Internal uuid.

    • keystringrequired

      Human-readable id, e.g. KAN-1.

    • labelsstring[]
    • orderinteger· uint64min 0

      Position inside its column.

    • parentany of

      The parent, deleted or not; `null` for a ticket that is not a subtask.

      … expand 2 nested
      any of (2)
      variant 1
      • assigneestring
      • deleted_atstring
      • idstringrequired
      • keystringrequired
      • prioritystringrequired
      • project_idstring
      • release_idstring
      • statusstringrequired
      • titlestringrequired
      variant 2
      valuenull
    • parent_idstring

      Uuid of the parent ticket. One level deep: a parent has no parent.

    • prioritystringrequired
    • progressobjectrequired

      Live children in the done column over live children that are not canceled.

      … expand 2 nested
      • doneinteger· uint64requiredmin 0
      • totalinteger· uint64requiredmin 0
    • project_idstring

      Uuid of the project (several tickets, independent of the release).

    • release_idstring

      Uuid of the release.

    • statusstringrequired

      Column id.

    • titlestringrequired
    • updated_atstringrequired
    variant 2
    • assigneestring
    • comment_countinteger· uint64requiredmin 0
    • created_atstringrequired
    • deleted_atstring
    • idstringrequired
    • keystringrequired
    • labelsstring[]required
    • orderinteger· uint64requiredmin 0
    • parent_idstring
    • prioritystringrequired
    • project_idstring
    • release_idstring
    • statusstringrequired
    • titlestringrequired
    • updated_atstringrequired
  • ticket_idstringrequired
  • ticket_keystringrequired