WorkRally infinite canvas guide

Understand WorkRally canvas nodes, artboard rules, build-draft merge and overwrite modes, and project/canvas boundaries.

Project and canvas boundaries

  • workrally project list returns project IDs for asset create --project-id.
  • workrally canvas list returns canvas IDs for canvas build-draft and canvas generation.
  • A canvas asset usually belongs to a project and also needs a node on the canvas.

Eight node types

  • image, video, audio: actual media nodes backed by assets or tasks.
  • imageGenerator, videoGenerator: generation controls, normally created by the system.
  • artboard: a container for image, video and audio children.
  • text, freehand: labels and annotations, not artboard children.

Artboard rules

  • Artboards can contain only image, video and audio nodes.
  • Artboards cannot be nested.
  • Do not set extent: "parent" on artboard children or dragging can become locked.
  • If dimensions are omitted, the system supplies default artboard dimensions.
artboard-example.jsonjson
[
  {
    "id": "board_001", "type": "artboard",
    "position": { "x": 0, "y": 0 }, "data": {},
    "style": { "width": 600, "height": 800 }
  },
  {
    "id": "img_in_board", "type": "image",
    "position": { "x": 20, "y": 20 },
    "data": { "asset": { "id": "asset_abc123" } },
    "style": { "width": 256, "height": 256 },
    "parentId": "board_001"
  }
]

build-draft modes

build-draft.shbash
# Incremental merge
workrally canvas build-draft <canvas_id> --nodes '[...]'

# Delete nodes
workrally canvas build-draft <canvas_id> --delete-node-ids "id1,id2"

# Delete and add in one operation
workrally canvas build-draft <canvas_id> --nodes '[...]' --delete-node-ids "old1"

# Replace the entire canvas
workrally canvas build-draft <canvas_id> --nodes '[...]' --mode overwrite

The default is incremental merge:

  • An existing ID is updated.
  • A new ID is appended.
  • An omitted node remains unchanged.

Use overwrite only when intentionally rebuilding the entire canvas. In collaborative work, prefer incremental updates and explicit node deletion.