Panel payload
The payload is what the box draws inside the payload box. A request doesn’t carry one: the integration that owns the action renders it from params, and an action your organization defined gets the generic layout. This page is the shape and the limits every renderer works within.
{
"title": "DEPLOY",
"subject": "api>prod",
"fields": [{ "label": "BY", "value": "keith" }, { "label": "SHA", "value": "9C1FA2" }],
"accent": "amber",
"severity": "elevated",
"logo": "<sha256 of a registered 24 by 24 bitmap>"
}
Fields
Section titled “Fields”| Field | What it is |
|---|---|
title |
The category, drawn in caps in the top row of the payload box. |
subject |
The thing itself, drawn large. Steps down a size past ten characters, and never truncates when it reads as money. |
fields |
Up to two label and value pairs. Any more move behind the DETAIL key. |
accent |
The payload box’s color. One of amber, green, cyan, violet, rose; anything else becomes amber. |
severity |
The system band’s color. One of low, elevated, critical; anything else becomes low. |
logo |
The sha256 of a 24 by 24 one bit bitmap registered with your organization. Anything else is dropped for a monogram. |
Limits
Section titled “Limits”Every limit is enforced on the server and again in firmware.
| FIELD | LIMIT | WHY |
|---|---|---|
| title | 17 characters, uppercased | The 24x24 logo tile eats 31px of that row. |
| subject | 20 characters | 10 at the large size. Longer steps down to 24px and wraps to two lines of 14. |
| subject, if it reads as money | 28 characters, never truncated | $470,000 cut to $470,0 reads as a smaller number and gets authorized. It steps down a size instead. Past what the box can draw the device elides visibly rather than painting past the border. |
| fields[].label | 4 characters, uppercased | Labels sit in a fixed column beside their value. This is why the digest label is SHA and not DIGEST. |
| fields[].value | 10 characters | Elided with an ASCII period, never a unicode ellipsis, which is three 4px blocks at 34px. |
| fields | 2 entries | A third shrinks type below the legible floor or pushes into the key legend. Extras move behind DETAIL. |
| accent | an enum | amber, green, cyan, violet, rose. An unknown value snaps to amber. Never a hex value, because a hex value could pass for chrome. |
| severity | an enum | low, elevated, critical. An unknown value snaps to low. It recolors the system band and draws nothing inside the payload box. |
| logo | a content hash | A 24x24 one-bit bitmap named by sha256 digest. Anything else is dropped for a monogram, so a payload cannot draw an arbitrary picture. |
| every character | 0x20 to 0x7e | One rune, one column. An undrawable rune becomes a question mark, one for one, so a lost character is visibly lost. |