- specId:
- 2421222b-7139-4d72-b6da-abb1ef3203aa
- createdAt:
- 2026-07-19T18:57:55.569Z
- contentHash:
- sha256:cecae9d6…
- validation:
- 0.2 ·
- registry:
- 0.2
API: https://rapidui.dev/api/specs/2421222b-7139-4d72-b6da-abb1ef3203aa
Draft Review
Operations-first RUI (v0.2). Full operations inspector ships in Phase 5 — showing summary counts below.
- Entities
- 1
- Operations
- 2
- Transitions
- 1
- browse·Inbox
- read·Review draft
Raw JSON
{
"app": {
"title": "Draft Review"
},
"version": "0.2",
"entities": [
{
"id": "ent-drafts",
"label": "Inbox",
"entrypoints": [
"op-inbox"
],
"operationIds": [
"op-inbox",
"op-read-draft"
]
}
],
"operations": [
{
"id": "op-inbox",
"data": {
"mode": "api",
"read": {
"path": "/api/drafts",
"method": "GET",
"valuePath": "items"
}
},
"type": "browse",
"route": "/inbox",
"title": "Inbox",
"entityId": "ent-drafts",
"presentation": {
"filter": {
"field": "status",
"label": "Status",
"options": [
{
"label": "Pending",
"value": "pending"
},
{
"label": "Approved",
"value": "approved"
},
{
"label": "Rejected",
"value": "rejected"
}
]
},
"layout": "table",
"columns": [
{
"key": "id",
"label": "ID",
"format": "string"
},
{
"key": "preview",
"label": "Preview",
"format": "string"
},
{
"key": "ticketId",
"label": "Ticket",
"format": "string"
},
{
"key": "model",
"label": "Model",
"format": "string"
},
{
"key": "confidence",
"label": "Confidence",
"format": "number"
},
{
"key": "status",
"label": "Status",
"format": "badge"
}
]
}
},
{
"id": "op-read-draft",
"data": {
"mode": "api",
"read": {
"path": "/api/drafts/{draftId}",
"method": "GET"
}
},
"type": "read",
"route": "/inbox/{draftId}",
"title": "Review draft",
"params": [
"draftId"
],
"context": {
"breadcrumb": {
"label": "Inbox",
"operation": "op-inbox"
}
},
"entityId": "ent-drafts",
"presentation": {
"layout": "detail",
"actions": [
{
"id": "op-approve",
"type": "act",
"label": "Approve",
"invoke": {
"path": "/api/drafts/{draftId}/approve",
"method": "POST"
},
"variant": "primary",
"outcomes": {
"error": {
"stay": true
},
"success": {
"navigate": "op-inbox"
}
}
},
{
"id": "op-reject",
"type": "act",
"label": "Reject",
"invoke": {
"path": "/api/drafts/{draftId}/reject",
"method": "POST"
},
"variant": "danger",
"outcomes": {
"error": {
"stay": true
},
"success": {
"navigate": "op-inbox"
}
}
}
],
"sections": [
{
"title": "Summary",
"fields": [
{
"key": "ticketId",
"label": "Source ticket",
"format": "string"
},
{
"key": "model",
"label": "Model",
"format": "string"
},
{
"key": "confidence",
"label": "Confidence",
"format": "number"
},
{
"key": "status",
"label": "Status",
"format": "string"
}
]
},
{
"title": "Draft reply",
"fields": [
{
"key": "body",
"label": "Reply",
"format": "text"
}
]
},
{
"title": "Context",
"fields": [
{
"key": "ticketSubject",
"label": "Ticket subject",
"format": "string"
},
{
"key": "customerMessage",
"label": "Customer message",
"format": "text"
}
]
}
]
}
}
],
"transitions": [
{
"to": "op-read-draft",
"map": {
"draftId": "id"
},
"from": "op-inbox",
"trigger": "row"
}
]
}