---
name: "public-inbox-glossary"
section: "7"
platform: "linux"
package: "public-inbox"
version: "1.9.0-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/public-inbox-glossary"
---

# public-inbox-glossary(7)

glossary for public-inbox

## NAME

public-inbox-glossary - 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 `"num"` column of the `"over"` table 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 `"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"`

- 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 `"g"` rather 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)](/public-inbox-config/5.md).

- IMAP (folder\|mailbox) slice

  A 50K slice of a newsgroup to accommodate the limitations of IMAP clients with [**public-inbox-imapd**(1)](/public-inbox-imapd/1.md).  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.

- 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)](/public-inbox-nntpd/1.md) or [**public-inbox-imapd**(1)](/public-inbox-imapd/1.md)

- epoch

  A git repository used for blob storage.  See "GIT EPOCHS" in [**public-inbox-v2-format**(5)](/public-inbox-v2-format/5.md).

- 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)](/mbox/5.md), as system IMAP FLAGS (RFC 3501 section 2.3.2), or Maildir info flags.

  [**public-inbox-watch**(1)](/public-inbox-watch/1.md) ignores drafts and trashed (deleted) messages.  [**lei-import**(1)](/lei-import/1.md) ignores trashed (deleted) messages, but it imports drafts.

- labels, private JMAP mailboxes

  For [**lei**(1)](/lei/1.md) 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)](/notmuch/1.md) and non-system IMAP FLAGS.

- volatile metadata (VMD)

  For [**lei**(1)](/lei/1.md) 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-v2-format/5.md), [**public-inbox-v1-format**(5)](/public-inbox-v1-format/5.md), [**public-inbox-extindex-format**(5)](/public-inbox-extindex-format/5.md), [**gitglossary**(7)](/gitglossary/7.md)
