Scroll to navigation



public-inbox-glossary - glossary for public-inbox


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.


A sequentially-assigned positive integer. These integers are per-inbox, or per-extindex. This is the "num" column of the "over" table in "over.sqlite3"
A sequentially-assigned positive integer. These integers are per-inbox or per-extindex. In the future, this may be prefixed with "T" for 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 "tid" column of the "over" table in "over.sqlite3"

For email, this is the git blob object ID (SHA-(1|256)) of an RFC-(822|2822|5322) email message.
To-be-decided. This will likely be the git blob ID prefixed with "g" rather than the numeric UID to accommodate the same blob showing up in both an extindex and inbox (or multiple extindices).
The name of the NNTP newsgroup, see public-inbox-config(5).
A 50K slice of a newsgroup to accommodate the limitations of IMAP clients with public-inbox-imapd(1). This is the "newsgroup" name with a ".$INTEGER_SUFFIX", e.g. a newsgroup named "inbox.test" would have its first slice named "inbox.test.0", and second slice named "inbox.test.1" and 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.

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)
A git repository used for blob storage. See "GIT EPOCHS" in public-inbox-v2-format(5).
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.

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.

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.
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.
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 2021 all contributors <>

License: AGPL-3.0+ <>


public-inbox-v2-format(5), public-inbox-v1-format(5), public-inbox-extindex-format(5), gitglossary(7)

1993-10-02 public-inbox.git