[JMAP] draft-ietf-jmap-filenode-14: alreadyExists existingId vs. §5 discoverability
Mehdi Kouhen <mehdi.kouhen@ovhcloud.com> Fri, 25 September 2026 16:16 UTC
Received: from 2.mo15.mail-out.ovh.net (2.mo15.mail-out.ovh.net [5.135.90.179]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by mx.ietf.org (Postfix) with ESMTPS id 713D530 for <jmap@ietf.org>; Fri, 25 Sep 2026 16:16:31 +0000 (UTC)
Authentication-Results: mx.ietf.org; dkim=pass header.d=ovhcloud.com header.s=mailout header.b=fbUIb2E6; dmarc=pass (policy=quarantine) header.from=ovhcloud.com; spf=pass (mx.ietf.org: domain of mehdi.kouhen@ovhcloud.com designates 5.135.90.179 as permitted sender) smtp.mailfrom=mehdi.kouhen@ovhcloud.com
Received: from DAGFR11EX2.OVH.local (unknown [10.110.58.157]) by mo15.mail-out.ovh.net (Postfix) with ESMTPS id 4hrwn40zxGz3wky for <jmap@ietf.org>; Fri, 25 Sep 2026 16:16:24 +0000 (UTC)
Received: from DAGFR11EX3.OVH.local (172.16.2.113) by DAGFR11EX2.OVH.local (172.16.2.112) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Fri, 25 Sep 2026 18:16:23 +0200
Received: from DAGFR11EX3.OVH.local ([fe80::4519:4339:5982:97ac]) by DAGFR11EX3.OVH.local ([fe80::4519:4339:5982:97ac%7]) with mapi id 15.02.2562.049; Fri, 25 Sep 2026 18:16:23 +0200
From: Mehdi Kouhen <mehdi.kouhen@ovhcloud.com>
To: "jmap@ietf.org" <jmap@ietf.org>
Thread-Topic: draft-ietf-jmap-filenode-14: alreadyExists existingId vs. §5 discoverability
Thread-Index: AQHdTQk1xeAfWr3Kwki8VzUv7cwXzQ==
Date: Fri, 25 Sep 2026 16:16:23 +0000
Message-ID: <43B87D95-640C-4E5C-851B-4C8BEC176B48@corp.ovh.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [109.190.254.25]
x-ovh-corplimit-skip: true
Content-Type: text/plain; charset="utf-8"
Content-ID: <68E113081127EA4E91CE19D4BCBC7DAB@corp.ovh.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
x-ovh-tracer-id: 11409869656223472584
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: dmFkZTF6a0cfTfKVliJ48FR+xg+B5EEIC95O3LEI0e5O4tKtSphwjRwx6CuHZtirgXRTIL0Ba4oH0skhlpXxEH8BVWLiAmDheQ3FZPmsuvUfWwAG4qkvHXQSydCyq8/6LJfsRvbk47lb9KUjag+yKJ0FNNXkq+tq4Km6Y6BffurHnR79o9qfRkxsR+Zrg1WwBAI0ngjIw+Yzy1B6v5Vx5M1ShdxCgPRiJRgsd22uwxxtuxHYE/OgfV0OOZeH3QTJUqOoDlSKD/DkjznVuxoLSjSLz90MMnrYnlQ68FH37w2dUF+GpQY7blap5cZsx8roU4DZbl2yWM4eJDIHLISvTDG//4hFGGP2vqbYFccmmoz7GzvPYWy22p34NfHmvOp7N4uoA0TmFr77YlLksvclfP5X1c2oAmqlGjTK/wy5w2lxjATsfQOKxGmsbQYN5batrVwsxK3C9N/dC42KnEX1tsApeiM7PwAMw0nOzC5uFcuRrWncYBiDaDjnoEun6uXbnNVjDhUfeblICflKsFfSKUd5X632NA22YZtGo8YHqNNWKQebF2lMENCTlS4qduVoXa4iQwOmRX7R0dOJpMfRQoLtsspj2gGRxI3aYuTg5/ThsbNnEI6rlYQH+sEPFQkDKQjQbDt9ZOj4I/LUwyw5YnMuJmY5nRBQvOO3XO4d+UkJBEUR3A
DKIM-Signature: a=rsa-sha256; bh=P6pd4xhMkRqeoTIwULDZMr3IPfZYDJ+sPoUn1XqHUfY=; c=relaxed/relaxed; d=ovhcloud.com; h=From; s=mailout; t=1790352984; v=1; b=fbUIb2E6GbvjPC0Owudoj+dzd4UBUY5gSXdu5h9BGXYgniHJuWPhJv5rYUbXJqgveIRwbHfP MB+/fvycVwT8sN/aXJUlOrVokM2aKnO7NQ0gwaXqZb4TGeINJ5++BbUnBvDUXCCTZVSbJCUlJA1 JBcJ5d1Dpt1ZFNhmgXYWbDKo=
X-Spamd-Bar: /
Message-ID-Hash: LMI4RVVTDNNSOT35N3Z66BAE4KEXUMDV
X-Message-ID-Hash: LMI4RVVTDNNSOT35N3Z66BAE4KEXUMDV
X-MailFrom: mehdi.kouhen@ovhcloud.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-jmap.ietf.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.10
Precedence: list
Subject: [JMAP] draft-ietf-jmap-filenode-14: alreadyExists existingId vs. §5 discoverability
List-Id: JSON Meta Access Protocol <jmap.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/cGtXBJtcUW796ZJMyhC9AIy3E5c>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jmap>
List-Help: <mailto:jmap-request@ietf.org?subject=help>
List-Owner: <mailto:jmap-owner@ietf.org>
List-Post: <mailto:jmap@ietf.org>
List-Subscribe: <mailto:jmap-join@ietf.org>
List-Unsubscribe: <mailto:jmap-leave@ietf.org>
Hi, Implementing draft-ietf-jmap-filenode-14, we ran into two requirements that cannot both be satisfied for a shared directory. I could not find this raised before. Section 3.2.3 (FileNode/set): "alreadyExists" [...] The SetError object MUST include an existingId property with the id of the existing FileNode. Section 5 (Access Control): Nodes which are not "discoverable" MUST return notFound errors if fetched with FileNode/get and MUST NOT be returned in response to FileNode/query. They collide when a user may create a child but not read one. `mayAddChildren` and `mayRead` are independent in FilesRights, so a drop box is expressible: Bob creates a name that collides with a sibling he cannot discover. Section 3.2.3 says return its id; Section 5 says that node must not appear in his answers. The disclosure itself obviously cannot be closed completely, as the "alreadyExists" itself discloses that a sibling of that name exists. However, preventing the disclosure of the id and limiting the disclosure to "existence" seems worth doing. If the working group agrees the Section 5 intent should win, one way to resolve it would be to amend the Section 3.2.3 error definition: "alreadyExists" -- a create or update would cause a name collision with an existing sibling FileNode, and onExists is null. The SetError object MUST include an existingId property with the id of the existing FileNode, unless that FileNode is not discoverable by the requesting user (see Section 5), in which case the server MUST NOT include existingId and SHOULD return "forbidden" instead. This cuts against Neil's push to make Metadata's existingId a MUST [1], but a client cannot use the id of a node it may not fetch, so nothing is lost. Precedent for "forbidden" is already here: Blob/convert picks among notFound, invalidProperties and forbidden by what the user may do. Metadata will hit the same collision once it has a visibility model, so the general shape may be worth settling once. Thanks, [1] https://mailarchive.ietf.org/arch/msg/jmap/jKJw9Zk3-82Sid3Qzld7Jebfd6I/ -- Mehdi KOUHEN IT Tech Leader PU.Seald https://www.ovhcloud.com/
- [JMAP] draft-ietf-jmap-filenode-14: alreadyExists… Mehdi Kouhen
- [JMAP] Re: draft-ietf-jmap-filenode-14: alreadyEx… Bron Gondwana