himalaya/cairn/changes/pimdir-collection-id-is-the-mailbox/delta.md
2026-08-28 21:54:04 +02:00

1.6 KiB

cairn change
delta pimdir-collection-id-is-the-mailbox

REMOVED Requirements

Requirement: pimdir names a mailbox the way its server does

ADDED Requirements

Requirement: A pimdir mailbox is its collection id

The pimdir backend SHALL show and accept a mailbox as the store's collection id, verbatim: the collection imap/INBOX is the mailbox imap/INBOX. It SHALL NOT derive, strip or accept a shortened spelling, and no configuration SHALL offer one.

The id is opaque to the store, which neither parses nor validates it (pimdir SPEC 9.2) and models hierarchy through parent rather than through a separator. Any shortening is therefore a guess at the producer's convention, and one that makes a single mailbox answer to two spellings. This is the JMAP backend's shape, whose ids are opaque server strings, and [mailbox.alias] is the shortcut for both.

Mailbox.name SHALL carry the collection row's own name rather than one derived from the id.

A mailbox matching no collection of the account SHALL be refused naming the ones it holds. It SHALL NOT be passed to the store unresolved, which reads as a mailbox that exists and is empty.

Scenario: A mailbox is addressed by its collection id

  • GIVEN a pimdir account over a store whose mail collections are keyed imap/<name>
  • WHEN the mailboxes are listed and one is addressed as imap/INBOX
  • THEN both columns read imap/INBOX and the command targets that collection

Scenario: A shortened name is not a mailbox

  • GIVEN the same account
  • WHEN a command addresses INBOX
  • THEN it is refused naming the collections the account holds