A whole working app in one file.
A complete app
This is a whole working app — nothing is elided:
app helpdesk "Helpdesk" {
tagline "Tickets from new to resolved."
category "Support"
icon inbox
tier free
}
entity Ticket "Ticket" plural "Tickets" {
subject: text required label "Subject"
reporter: text pii
priority: enum low, normal, high
owner: ref User on delete nullify
workflow {
initial New
states New, Triage, InProgress, Resolved
terminal Resolved
triage: New -> Triage
start: Triage -> InProgress requires owner
note: InProgress -> InProgress
resolve: InProgress -> Resolved requires resolution
}
}
query my_open(who: text) = select subject, priority from Ticket where owner == who sort priority desc limit 20
page dashboard "Dashboard" list {
board Ticket summary [subject, priority, owner] label "Open tickets"
stat "Unassigned" = count(Ticket where owner == null)
list from my_open(who: me) columns [subject, priority]
}
page ticket-detail "Ticket" detail Ticket {
jobs label "Workflow" summary [subject, priority, owner]
section "Details" {
field subject
field reporter
}
action "Resolve" event resolve confirm "Resolve this ticket?"
}
nav [dashboard, ticket-detail]
home dashboard
seed demo {
Ticket acme { subject: "Printer offline", priority: "high" } state Triage
}
Reading it in order: app carries the listing metadata; entity
declares typed fields and, inside workflow, the states and the
transitions written as event: From -> To; query is a named,
tenant-scoped read; page lays out blocks; nav and home
order the app; seed ships demo rows.