You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2020/08/24 02:22:38 UTC

[james-project] 09/13: JAMES-3359 Mailbox/set documentation

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit da64b84965ce0f2646dece74f89a338311c758ea
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Aug 20 16:08:40 2020 +0700

    JAMES-3359 Mailbox/set documentation
---
 .../jmap-rfc-8621/doc/specs/spec/mail/mailbox.mdown     | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/server/protocols/jmap-rfc-8621/doc/specs/spec/mail/mailbox.mdown b/server/protocols/jmap-rfc-8621/doc/specs/spec/mail/mailbox.mdown
index b92eee3..954584f 100644
--- a/server/protocols/jmap-rfc-8621/doc/specs/spec/mail/mailbox.mdown
+++ b/server/protocols/jmap-rfc-8621/doc/specs/spec/mail/mailbox.mdown
@@ -12,6 +12,11 @@ A **Mailbox** object has the following properties:
 - **id**: `Id` (immutable; server-set)
   The id of the Mailbox.
 - **name**: `String`
+
+<aside class="notice">
+  "name" should not contain the IMAP hierarchy delimiter ".".
+</aside>
+
   User-visible name for the Mailbox, e.g., "Inbox". This MUST be a Net-Unicode string [@!RFC5198] of at least 1 character in length, subject to the maximum size given in the capability object. There MUST NOT be two sibling Mailboxes with both the same parent and the same name. Servers MAY reject names that violate server policy (e.g., names containing a slash (/) or control characters).
 - **parentId**: `Id|null` (default: null)
   The Mailbox id for the parent of this Mailbox, or `null` if this Mailbox is at the top level. Mailboxes form acyclic graphs (forests) directed by the child-to-parent relationship. There MUST NOT be a loop.
@@ -160,6 +165,10 @@ This is a standard "/queryChanges" method as described in [@!RFC8620], Section 5
 
 ## Mailbox/set
 
+<aside class="notice">
+  Implemented
+</aside>
+
 This is a standard "/set" method as described in [@!RFC8620], Section 5.3, but with the following additional request argument:
 
 - **onDestroyRemoveEmails**: `Boolean` (default: false)
@@ -174,6 +183,14 @@ For **destroy**:
 - `mailboxHasEmail`: The Mailbox has at least one Email assigned to it, and
   the *onDestroyRemoveEmails* argument was `false`.
 
+<aside class="notice">
+Restrictions:
+ - "parentId" updates only succeeds if the given mailbox has no child.
+ - all updates to shared mailboxes by a sharee are forbidden.
+ - Updates to server-set fields are rejected, even if they match the server value.
+ - as "role" and "sortOrder" are server-set by the current James implementation, updating them is not supported.
+</aside>
+
 ## Example
 
 Fetching all Mailboxes in an account:


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org