Skip to content

Kanban

<!-- generated:meta -->

Grupui
Planeresource
Spec structKanbanSpec

<!-- /generated:meta -->

Kapan Memakai

kind: Kanban adalah papan kolom drag-drop — tiap kartu satu record entity, tiap kolom satu nilai status, drag antar kolom = transisi state.

Kapan memakai Kanban:

  • Status sebagai dimensi kerja utama (support queue, order fulfillment, triage)
  • Pemindahan status = aksi utama

Kapan TIDAK pakai Kanban:

  • Operasi utama sort/filter/edit banyak kolom → kind: Table

Sumber kontrak: docs/spec/frontend/06-page-kinds.md §4.

Contoh Manifest

yaml
apiVersion: formspec.dev/v1
kind: Kanban
metadata: { name: support-board, module: helpdesk }
spec:
  entity: helpdesk.ticket
  status_field: status      # wajib — field state machine/enum yang jadi kolom
  realtime: true

Atribut

<!-- generated:attributes -->

AtributTipeWajibContohDeskripsi
publicbooleantrueIf true (default), a route /module/kanban/<name> is auto-generated.
entitystringhelpdesk.ticket
status_fieldstringstatus
columns[]KanbanColumn
card_templateKanbanCard
realtimebooleandefault true (§12)
filters[]FilterSpec
fixed_filters[]FilterSpec
searchboolean
row_actions[]TableAction
max_cards_per_columninteger
sortablebooleanenable within-column drag-to-reorder
position_fieldstringfield storing user-adjustable position (e.g. "queue_position")

<!-- /generated:attributes -->

Gotchas

  • status_field WAJIB saat ini — zero-config derivasi kolom masih Open (tracking docs/plan/kanban-full-implementation.md).
  • Drag = state transition — memanggil action via transisi cocok; guard state machine dievaluasi server-side (otoritas). Transisi tidak dideklarasi → tidak ada drop target; server tolak STATE_TRANSITION_ERROR.
  • Permission drag = permission action transisi itu.
  • sortable: true butuh position_field — kombinasi tanpa itu tidak valid (manifest validation wajib menolak).
  • drag_guard & wip_limit masih Open — pengganti sementara max_cards_per_column.
  • No-silent-drop — kolom ramai paginasi cursor-based, tak boleh motong kartu tanpa indikator "muat lebih".
  • Cross-ref: docs/spec/frontend/06-page-kinds.md §4 · ai_skills/formspec-kinds

Standar terbuka (CC0) dengan implementasi referensi.