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 listreturns project IDs forasset create --project-id.workrally canvas listreturns canvas IDs forcanvas build-draftand 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,videoandaudionodes. - 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 overwriteThe 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.