Mandate.expired
A Mandate reached its expiresAt, so the Agent asks again before each Action it covered.
| Property | Value |
|---|---|
| Raised by | No Verb: a clock raises it |
| Noun | Mandate |
| Moves | Mandate active to expired when the Mandate reaches its expiresAt; Mandate paused to expired when the Mandate reaches its expiresAt |
| Wakes | None. |
Payload
Each delivery is an Event record. data holds the Mandate as it stands, and previous holds the state it left.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | required | Mandate.expired. |
at | datetime | required | When it happened. |
seq | integer | Its position in the namespace, one more than the Event before; any seq is a cursor into the history. | |
data | json | required | The Thing as the Action left it. |
data.mandate | Mandate | required | The Mandate as the change left it. |
data.mandate.expiresAt | datetime | required | When it lapses. |
data.mandate.limit | Limit | The Limit that bounds it. | |
data.mandate.verb | string | The Verb it covers, as Noun.verb. | |
data.mandate.topics | string[] | What it may act on; an Action outside them becomes an Approval. | |
data.mandate.channels | list of Channel | The Channels it may send through. | |
data.mandate.status | string | required | One of active, paused, revoked or expired. |
data.previous.status | string | required | The status before this Event: active. |
Example
{
"$id": "https: //api.sb/ leaseline.app/ events/ evt_pdCTmGu8mU",
"$type": "Event",
"name": "Mandate.expired",
"at": "2026-10-22T12: 00: 00Z",
"data": {
"mandate": {
"$id": "https: //api.sb/ leaseline.app/ mandates/ mandate_mKKPrmFQYD",
"$type": "Mandate",
"expiresAt": "2026-10-22T12: 00: 00Z",
"limit": "limit_UWHXYVKsJB",
"verb": "Example verb",
"topics": [
"Example topics"
],
"channels": [
"channel_EQ8se34AOW"
],
"status": "expired"
},
"previous": {
"status": "active"
}
},
"seq": 500
}