MailMessageSummary mail.message-summary@1
Generated at from
openvibe-contracts v0.419.0 and
openvibe-sdk v0.161.0.
- Version
- 1.0.0
- Owner
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/mail/message-summary.v1.json
One message in a mask, burner or agent inbox, as OpenVibe.Mail's list API returns it: the id, the senders, the subject and the time. It deliberately has no preview and no body: a message body is read only by the verification-code endpoint, in memory, and is never part of a list, an event or a database row. additionalProperties is false so a field like body, preview or html fails the contract rather than leaking into an API.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
id | string | yes | The mail server's message id (a JMAP Email id). Opaque outside OpenVibe.Mail. |
|
from | array of string | yes | The sender addresses, as the mail server parsed them. An address list, not a display name. |
|
subject | string | null | yes | The subject line, or null when the message had none. |
|
received_at | string | null | yes | When the mail server received the message, ISO 8601 UTC, or null when it did not record a time. |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: one
{
"id": "maaaaad",
"from": [
"[email protected]"
],
"subject": "Your verification code",
"received_at": "2026-11-07T12:00:00Z"
}Rejected: carries-body
{
"id": "maaaaad",
"from": [
"[email protected]"
],
"subject": "Your verification code",
"received_at": "2026-11-07T12:00:00Z",
"body": "Your verification code is 918273"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('mail.message-summary@1', value); // { valid, errors: [{ path, message }] }