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

29 lines
1.6 KiB
Markdown

---
cairn: delta
change: 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