One entry of a group’s commit log. The server decodes the group_id from the
entry to derive the topic. The signature is stored and returned, not
verified: it is made with a per-group key the server does not have. The
log position is EnvelopeMeta.cursor; the entry carries no sequence id.
Same order as the request. An identifier resolves to the inbox with its
latest non-revoked association, or to no inbox. Revocation can reveal an
older active association. Lookup uses normalized (identifier, kind), but
response entries echo original inputs, including duplicates.
Serialized MLS protocol message for a group. The server parses it to derive
the group_id and to set is_commit_or_proposal. It does not check membership.
Trailing bytes remain accepted and are returned verbatim.
Last-resort key package for one installation. The server validates it and
derives the topic from its installation key. Every upload is kept; the
newest per installation is served by QueryNewest. Query with a cursor on a
key-package topic is not supported.
Atomic: every envelope is stored or none is. No envelope count limit; the
request is at most 25 MiB, each envelope at most 1 MiB, and there are
at most 1000 distinct topics.
At most one identity update per inbox per request. A repeat of an envelope
already stored on its topic (same MessageHash) is not an error: the stored
meta is returned as success.
Same order as the request, including duplicates. An oversized response
can fail with a size error after commit. Retry exact envelope bytes;
failure to receive a response does not establish rollback.
One result per topic that has an envelope. A topic with no envelope is
absent from results. An oversized response fails with a transport size
error or RESOURCE_EXHAUSTED from an application check; omission never means
the byte budget was exhausted.
Up to limit matches across the queried topics, ascending within each
topic. The order across topics carries no meaning. Client rule: for each
topic that returned rows, set its cursor to that topic’s highest returned
sequence_id; leave every other cursor unchanged; if has_more, query again.
Each stored envelope appears once. An oversized encoded response fails
with a transport size error or RESOURCE_EXHAUSTED from an application check;
results are not silently omitted to fit.