KB-7FD8
MOW Unified Canvas — Mock Data Contract (v1)
3 min read Revision 1
mowunified-canvasmock-datadata-contract2026-05-29
MOW Unified Canvas — Mock Data Contract (v1)
Describes mock-data.json deployed at the preview
(.../ui-preview/mow/unified-canvas/v1/mock-data.json). Generated from Component 3 of the spec.
Mock only — no production data, no secrets. All ids are fabricated UUID-shaped strings.
Top-level shape
{
"schema_ref", "generated_by", "generated_at",
"traffic_light_legend": { green|yellow|red|gray|blue|orange : meaning },
"tiers": { T6, T5, T4, T3, T2, T1 : { context: CanvasContext, nodes: CanvasNode[] } },
"states": { normal, proposal, instance, governance_alert }
}
Coverage matrix
| Concern | Where in mock |
|---|---|
| All 6 tiers (T6→T1) | tiers.* each with context + nodes |
| Breadcrumb growth | tiers.Tn.context.breadcrumb (deepens T6→T1) |
| Default view = T3 | states.normal.active_tier = T3 |
| child_preview max-3 + overflow | tiers.T2.nodes[*].child_preview + child_count |
| Traffic-light variety | green/yellow/red/gray across T2 nodes |
| automation_level | full_auto / agent_in_loop / human_in_loop / manual on T1–T2 |
| permission_actions | [view], [view,propose], [view,propose,admin] |
| proposal_count badge | tiers.T3.nodes[0], tiers.T2 NV03 (2) |
| Proposal Mode | states.proposal + sample_proposals[] (edit + add) |
| Instance Mode (9-state) | states.instance.node_instance_overrides (completed/in_progress/overdue/created/assigned/waiting_for_approval) |
| SLA traffic light (green/yellow/red/blue/orange) | per instance override |
| Governance-alert / freeze (Đ32/37) | states.governance_alert.alert (1/2 approvals, freeze_active) |
| Large-scale | states.governance_alert.large_scale_demo (47 children, +44 overflow) |
Domain content (faithful to PHU-LUC-A)
Hierarchy: Thương mại quốc tế (T6) → Incomex Sài Gòn (T5) → Nhân sự (T4) → Tuyển dụng (T3) → Tuyển sinh (T2) → NV01..NV06 (Tiếp nhận, Sàng lọc, Phỏng vấn, Thu hồ sơ, Đào tạo, Xuất cảnh) → T01..T03 tasks (T1).
Backend-validation TODO (Claude Code, after approval)
Each CanvasNode field must be mapped to an existing PG column / Directus field (reuse-first, no new
tables) during the live PG survey — see spec Component 3 + the master handoff pack Branch H.
iu_ref must resolve to a real IU; workflow_ref/task_type_ref to existing rows.