You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content.mkd
+20-9Lines changed: 20 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -208,7 +208,7 @@ A _property update_ occurs when the WebDAV properties of the collection or its m
208
208
209
209
A server SHOULD support a `depth` of 0 and MAY support `1` and `infinite`. In case of `infinite`, the limitations described in {{Section 3.3 of RFC6578}} apply: notifications about changes in members which are not supported by the `DAV:sync-collection` report may not be sent.
210
210
211
-
2. The optional `{DAV:}prop` element (as it may be used in a `PROPFIND` request) specified a list of properties that the client is interested in. The list of properties MUST NOT contain properties that represent a content update, especially `{DAV:}getetag`, `{DAV:}getlastmodified` and `{DAV:}sync-token`. If the `{DAV:}prop` element is not present or empty, the server chooses the properties that it considers to be useful for the client. If the `{DAV:}prop` element is present, but contains properties for which property update notifications are not supported, the server MAY ignore those properties, or treat the request as if it was sent with empty `{DAV:prop}`.
211
+
2. The optional `{DAV:}prop` element (as it may be used in a `PROPFIND` request) specified a list of properties that the client is interested in. The list of properties MUST NOT contain properties that represent a content update, especially `{DAV:}getetag`, `{DAV:}getlastmodified` and `{DAV:}sync-token`. If the `{DAV:}prop` element is not present or empty, the server chooses the properties that it considers to be useful for the client. If the `{DAV:}prop` element is present, but contains properties for which property update notifications are not supported, the server MAY ignore those properties (instead of rejecting the request with a `trigger-not-supported` response).
212
212
213
213
### Response
214
214
@@ -218,7 +218,7 @@ Allowed response codes:
218
218
* 204 if the subscription was registered
219
219
* 403 with precondition `invalid-subscription` when the request doesn't contain a valid `subscription`
220
220
* 403 with precondition `push-not-available` if WebDAV-Push is not available for this collection or if the user is not allowed to register a push subscription for it
221
-
* 403 with precondition `trigger-not-supported` when the request doesn't contain a trigger of when a requested trigger is not supported by the server or the collection
221
+
* 403 with precondition `trigger-not-supported` when the request doesn't contain a trigger or when a requested trigger is not supported by the server or the collection
222
222
* other response code with usual HTTP/WebDAV semantics
223
223
224
224
When a subscription is registered the first time, the server creates a URL that identifies that registration (registration URL) which can be used to remove the subscription. The server MUST send the registration URL in the `Location` header.
The `trigger-not-supported` element contains the trigger(s) that are not supported, together with the sync level/depth. If certain requested properties of a property update notification request are not supported, the `{DAV:}prop` element contains only the unsupported properties. If multiple triggers are not supported, the server can return either all of them or the first one and then abort the request.
242
+
The `trigger-not-supported` precondition element contains the trigger(s) that are not supported, together with the sync level/depth. If certain requested properties of a property update notification request are not supported, the `{DAV:}prop` element contains only the unsupported properties. If multiple triggers are not supported, the server can return either all of them or the first one and then abort the request.
245
243
246
244
247
245
## Subscription Updates
@@ -330,14 +328,27 @@ An invalid subscription is a subscription that push notifications can't be deliv
330
328
A server MAY use some logic like remembering the last successful delivery plus some tolerance interval to defer removal of an invalid subscription for some time. Doing so will make WebDAV-Push more reliable in case of temporary problems and avoid temporal "holes" between subscription removal and re-registration.
331
329
332
330
331
+
333
332
# CalDAV/CardDAV
334
333
335
-
[^todo] Specific implementation notes for CalDAV/CardDAV. Especially a recommendation of what clients shall subscribe to and why:
334
+
WebDAV-Push can be used with CalDAV ({{RFC4791}}) and CardDAV ({{RFC6352}}) to provide short-time update notifications when collections (calendars, address books) or entries (contacts, events, …) change.
335
+
336
+
Depending on the features of a CalDAV/CardDAV client, it could for instance subscribe to:
337
+
338
+
- content updates of a home-set to become notified about new collections,
339
+
- content updates of a collection (usually with a sync-level of 1) to become notified about modified entries,
340
+
- property updates of a collection (usually with a depth of zero) to become notified about changes of properties like display name, calendar color and access permissions,
341
+
- property updates (for instance display name) of a principal to update real names of collection owners.
336
342
337
-
* homesets → content updates may trigger calendar list refresh
338
-
* calendars / address books → content updates may trigger sync, property updates may trigger calendar meta-data refresh
339
-
* principals → keep displayed user data up-to-date
343
+
CalDAV/CardDAV servers that support WebDAV-Push SHOULD support:
340
344
345
+
- content updates with a `{DAV:}sync-level` of at least 1 on
346
+
-`calendar-home-set` and `addressbook-home-set` collections,
347
+
- calendars and address books (collections which have a `{DAV:}resourcetype` of `{CALDAV:}calendar` or `{CARDDAV:}addressbook`),
348
+
- scheduling inbox and outbox collections (collections which have a `{DAV:}resourcetype` of `{CALDAV:}schedule-inbox` or `{CALDAV:}schedule-outbox` as defined in {{Section 2 of RFC6638}});
349
+
- property updates with a `{DAV:}depth` of at least 0 on
350
+
- calendars and address books,
351
+
- principals (collections with have a `{DAV:}resourcetype` of `{DAV:}principal` as defined in {{Section 4 of RFC3744}}).
0 commit comments