Linking Between Boards¶
Use standard Markdown links to connect boards. Dataface rewrites them at
render time so the same YAML works in both dft serve and Cloud.
Root-relative paths¶
Paths start with / and are relative to the dashboard namespace root —
not the file system. You never type a storage prefix like faces/.
text: | [Open tickets](/zendesk/tickets/list?status=open) [Ticket detail](/zendesk/tickets/detail?id={{ ticket_id }})
/zendesk/tickets/list resolves to the board stored at
faces/zendesk/tickets/list.yml (or dashboards/… in Cloud).
Relative paths¶
../ and ./ resolve against the current board's directory.
If you are on zendesk/tickets/list:
| Link | Resolves to |
|---|---|
./detail |
zendesk/tickets/detail |
../overview |
zendesk/overview |
text: | [Detail view](./detail?id={{ ticket_id }}) [Back to overview](../overview)
Query parameters and variables¶
Query strings on links map directly to dashboard variables. This is how you pass context between boards:
text: | [See ticket](/zendesk/tickets/detail?id={{ ticket_id }}&status={{ status }})
Suffix stripping¶
You can optionally include .md, .yml, or .yaml suffixes — Dataface
strips them automatically:
text: | [Tickets](/zendesk/tickets/list.md)
resolves identically to /zendesk/tickets/list.
External links¶
Links starting with http://, https://, mailto:, or # are never
rewritten — they pass through unchanged.
Branch propagation (Cloud)¶
In Cloud, if the current request includes a branch query parameter,
outbound board links automatically inherit it (unless the link already
specifies its own branch).
List / detail convention¶
Teams can standardize recognizable path segments for common board roles:
…/list— filtered overview or table…/detail— single-entity board (variables in query, e.g.?id=)
This is a naming convention, not enforced by Dataface.