public-inbox-glossary - Man Page
glossary for public-inbox
Description
public-inbox combines several independently-developed protocols and data formats with overlapping concepts. This document is intended as a guide to identify and clarify overlapping concepts with different names.
This is mainly intended for hackers of public-inbox, but may be useful for administrators of public-facing services and/or users building tools.
Terms
- IMAP UID, NNTP article number, on-disk Xapian docid
- A sequentially-assigned positive integer. These integers are per-inbox, or per-extindex. This is the - numcolumn of the- overtable in- over.sqlite3
- tid, THREADID
- A sequentially-assigned positive integer. These integers are per-inbox or per-extindex. In the future, this may be prefixed with - Tfor JMAP (RFC 8621) and RFC 8474. This may not be strictly compliant with RFC 8621 since inboxes and extindices are considered independent entities from each other.- This is the - tidcolumn of the- overtable in- over.sqlite3
- blob
- For email, this is the git blob object ID (SHA-(1|256)) of an RFC-(822|2822|5322) email message. 
- IMAP EMAILID, JMAP Email Id
- To-be-decided. This will likely be the git blob ID prefixed with - grather than the numeric UID to accommodate the same blob showing up in both an extindex and inbox (or multiple extindices).
- newsgroup
- The name of the NNTP newsgroup, see public-inbox-config(5). 
- IMAP (folder|mailbox) slice
- A 50K slice of a newsgroup to accommodate the limitations of IMAP clients with public-inbox-imapd(1). This is the - newsgroupname with a- .$INTEGER_SUFFIX, e.g. a newsgroup named- inbox.testwould have its first slice named- inbox.test.0, and second slice named- inbox.test.1and so forth.- If implemented, the RFC 8474 MAILBOXID of an IMAP slice will NOT have the same Mailbox Id as the public-facing full JMAP mailbox. 
- inbox name, public JMAP mailbox name
- The HTTP(S) name of the public-inbox ( - publicinbox.<name>.*). JMAP will use this name rather than the newsgroup name since public-facing JMAP will be part of the PSGI code and not need a separate daemon like public-inbox-nntpd(1) or public-inbox-imapd(1)
- epoch
- A git repository used for blob storage. See "GIT EPOCHS" in public-inbox-v2-format(5). 
- keywords, (IMAP|Maildir) flags, mbox Status + X-Status
- Private, per-message keywords or flags as described in RFC 8621 section 10.4. These are conveyed in the - Status:and- X-Status:headers for mbox(5), as system IMAP FLAGS (RFC 3501 section 2.3.2), or Maildir info flags.- public-inbox-watch(1) ignores drafts and trashed (deleted) messages. lei-import(1) ignores trashed (deleted) messages, but it imports drafts. 
- labels, private JMAP mailboxes
- For lei(1) users only. This will allow lei users to place the same email into one or more virtual folders for ease-of-filtering. This is NOT tied to public-inbox names, as messages stored by lei may not be public. - These are similar in spirit to arbitrary freeform "tags" in mail software such as notmuch(1) and non-system IMAP FLAGS. 
- volatile metadata (VMD)
- For lei(1) users only, this refers to the combination of keywords and labels which are subject to frequent change independently of immutable message content. 
- IMAP INTERNALDATE, JMAP receivedAt, rt: search prefix
- The first valid timestamp value of Received: headers (top first). If no Received: header exists, the Date: header is used, and the current time if neither header(s) exist. When mirroring via git, this is the git commit time. 
- IMAP SENT*, JMAP sentAt, dt: and d: search prefixes
- The first valid timestamp value of the Date: header(s). If no Date: header exists, the time from the Received: header is used, and then the current time if neither header exists. When mirroring via git, this is the git author time. 
Copyright
Copyright 2021 all contributors <mailto:meta@public-inbox.org>
License: AGPL-3.0+ <http://www.gnu.org/licenses/agpl-3.0.txt>
See Also
public-inbox-v2-format(5), public-inbox-v1-format(5), public-inbox-extindex-format(5), gitglossary(7)