MailMessageSummary mail.message-summary@1

Generated at from openvibe-contracts v0.419.0 and openvibe-sdk v0.161.0.

Version
1.0.0
Owner
mail
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

FieldTypeRequiredDescriptionConstraints
idstringyesThe mail server's message id (a JMAP Email id). Opaque outside OpenVibe.Mail.
  • minLength 1
  • maxLength 512
fromarray of stringyesThe sender addresses, as the mail server parsed them. An address list, not a display name.
  • maxItems 100
  • items: format email
  • items: maxLength 254
subjectstring | nullyesThe subject line, or null when the message had none.
  • maxLength 2000
received_atstring | nullyesWhen the mail server received the message, ISO 8601 UTC, or null when it did not record a time.
  • format date-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 }] }