Kanban Pane

The Kanban pane visualizes entity lifecycle as a board driven by state machines. Columns are auto-generated from state machine states, and dragging a card between columns issues a state transition command via the ControlBus. It provides operators with a tactile workflow view for managing entities through defined processes.

KanbanConfig

PropertyTypeDescription
machine_idMachineIdWhich state machine drives the board columns
card_fieldsVec<String>Entity snapshot fields to display on each card
entity_type_filterOption<ObjectType>Optional filter to restrict cards to a single ObjectType
show_count_badgesboolShow entity count badge on column headers (default: true)
column_widthf32Column width in pixels (default: 200)

Board Behavior

  • Auto-generated Columns: Each state in the machine becomes a column (e.g., "New", "In Progress", "Done")
  • Drag-and-drop: Moving a card to another column issues a state transition command via ControlBus
  • Entity Cards: Display entity ID plus selected fields from the EntitySnapshot
  • Count Badges: Column headers show the number of entities in each state
  • Horizontal Scroll: When the machine has many states, the board scrolls horizontally

Transition Validation

Drops are only accepted if the state machine defines a valid transition from the source state to the target state. Invalid drops are rejected with a visual indicator, and the card snaps back to its original column. Transition rules, including guard conditions defined by RuleCondition, are evaluated before the command is dispatched.

Keyboard Shortcuts

Scroll board left
Scroll board right
Ctrl + F
Search cards by entity ID
Esc
Clear card selection

YAML Configuration

yaml KanbanConfig auto-generated

Field Type Default Description
title String Optional title override (falls back to pane default).
machine_id String ID of the state machine whose states become columns.
card_fields Vec<String> [] Entity snapshot fields to display on each card (e.g. `["speed", "temp"]`).
entity_type_filter String Optional `ObjectType` name filter — only show entities of this type.
show_count_badges bool true Show entity-count badges on column headers.
column_width f32 200.0 Width of each column in logical pixels.
Example YAML
kanban:
  machine_id: hvac_lifecycle
  card_fields:
    - zone_name
    - temperature
    - last_service_date
  entity_type_filter: HvacUnit
  show_count_badges: true
  column_width: 240

Questions?

Reach out for help with integration, deployment, or custom domain codecs.