Code Repositories xandikos / v0.0.3 notes / dav-compliance.md
v0.0.3

Tree @v0.0.3 (Download .tar.gz)

dav-compliance.md @v0.0.3view markup · raw · history · blame

This document aims to document the compliance with various RFCs.

rfc4918.txt (Core WebDAV) (obsoletes rfc2518)

Mostly supported.

HTTP Methods

  • PROPFIND [supported]
  • PROPPATCH [supported]
  • MKCOL [supported]
  • DELETE [supported]
  • PUT [supported]
  • COPY [not implemented]
  • MOVE [not implemented]
  • LOCK [not implemented]
  • UNLOCK [not implemented]

HTTP Headers

  • (9.1) Dav [supported]
  • (9.2) Depth ['0, '1' and 'infinity' are supported]
  • (9.3) Destination [only used with COPY/MOVE, which are not supported]
  • (9.4) If [not supported]
  • (9.5) Lock-Token [not supported]
  • (9.6) Overwrite [only used with COPY/MOVE, which are not supported]
  • (9.7) Status-URI [not supported]
  • (9.8) Timeout [not supported, only used for locks]

DAV Properties

  • (15.1) creationdate [supported]
  • (15.2) displayname [supported]
  • (15.3) getcontentlanguage [supported]
  • (15.4) getcontentlength [supported]
  • (15.5) getcontenttype [supported]
  • (15.6) getetag [supported]
  • (15.7) getlastmodified [supported]
  • (15.8) lockdiscovery [supported]
  • (15.9) resourcetype [supported]
  • (15.10) supportedlock [supported]
  • (RFC2518 ONLY - 13.10) source [not supported]

rfc3253.txt (Versioning Extensions)

Broadly speaking, only features related to the REPORT method are supported.

HTTP Methods

  • REPORT [supported]
  • CHECKOUT [not supported]
  • CHECKIN [not supported]
  • UNCHECKOUT [not supported]
  • MKWORKSPACE [not supported]
  • UPDATE [not supported]
  • LABEL [not supported]
  • MERGE [not supported]
  • VERSION-CONTROL [not supported]
  • BASELINE-CONTROL [not supported]
  • MKACTIVITY [not supported]

DAV Properties

  • DAV:comment [supported]
  • DAV:creator-displayname [not supported]
  • DAV:supported-method-set [not supported]
  • DAV:supported-live-property-set [not supported]
  • DAV:supported-report-set [supported]
  • DAV:predecessor-set [not supported]
  • DAV:successor-set [not supported]
  • DAV:checkout-set [not supported]
  • DAV:version-name [not supported]
  • DAV:checked-out [not supported]
  • DAV:chcked-in [not supported]
  • DAV:auto-version [not supported]

DAV Reports

  • DAV:expand-property [supported]
  • DAV:version-tree [not supported]

rfc5323.txt (WebDAV "SEARCH")

Not supported

HTTP Methods

  • SEARCH [not supported]

DAV Properties

  • DAV:datatype [not supported]
  • DAV:searchable [not supported]
  • DAV:selectable [not supported]
  • DAV:sortable [not supported]
  • DAV:caseless [not supported]
  • DAV:operators [not supported]

rfc3744.txt (WebDAV access control)

Not really supported

DAV Properties

  • DAV:alternate-uri-set [not supported]
  • DAV:principal-URL [supported]
  • DAV:group-member-set [not supported]
  • DAV:group-membership [supported]
  • DAV:owner [supported]
  • DAV:group [not supported]
  • DAV:current-user-privilege-set [supported]
  • DAV:supported-privilege-set [not supported]
  • DAV:acl [not supported]
  • DAV:acl-restrictions [not supported]
  • DAV:inherited-acl-set [not supported]
  • DAV:principal-collection-set [not supported]

DAV Reports

  • DAV:acl-principal-prop-set [not supported]
  • DAV:principal-match [not supported]
  • DAV:principal-property-search [not supported]
  • DAV:principal-search-property-set [not supported]

rfc4791.txt (CalDAV)

Fully supported.

DAV Properties

  • CALDAV:calendar-description [supported]
  • CALDAV:calendar-home-set [supported]
  • CALDAV:calendar-timezone [supported]
  • CALDAV:supported-calendar-component-set [supported]
  • CALDAV:supported-calendar-data [supported]
  • CALDAV:max-resource-size [supported]
  • CALDAV:min-date-time [supported]
  • CALDAV:max-date-time [supported]
  • CALDAV:max-instances [supported]
  • CALDAV:max-attendees-per-instance [supported]

HTTP Methods

  • MKCALENDAR [not supported]

  • DAV Reports

  • CALDAV:calendar-query [supported]
  • CALDAV:calendar-multiget [supported]
  • CALDAV:free-busy-query [supported]

rfc6352.txt (CardDAV)

Fully supported.

DAV Properties

  • CARDDAV:addressbook-description [supported]
  • CARDDAV:supported-address-data [supported]
  • CARDDAV:max-resource-size [supported]
  • CARDDAV:addressbook-home-set [supported]
  • CARDDAV:princial-address [supported]

DAV Reports

  • CARDDAV:addressbook-query [supported]
  • CARDDAV:addressbook-multiget [supported]

rfc6638.txt (CardDAV scheduling extensions)

DAV Properties

  • CALDAV:schedule-outbox-URL [supported]
  • CALDAV:schedule-inbox-URL [supported]
  • CALDAV:calendar-user-address-set [supported]
  • CALDAV:calendar-user-type [supported]

rfc6764.txt (Locating groupware services)

Most of this is outside of the scope of xandikos, but it does support DAV:current-user-principal

rfc7809.txt (CalDAV Time Zone Extensions)

Not supported

DAV Properties

  • CALDAV:timezone-service-set [supported]
  • CALDAV:calendar-timezone-id [not supported]

rfc5397.txt (WebDAV Current Principal Extension)

DAV Properties

  • CALDAV:current-user-principal [supported]

Proprietary extensions

Custom properties used by various clients

  • CARDDAV:max-image-size [supported]

https://github.com/apple/ccs-calendarserver/blob/master/doc/Extensions/caldav-ctag.txt - DAV:getctag [supported]

https://github.com/apple/ccs-calendarserver/blob/master/doc/Extensions/caldav-proxy.txt - DAV:calendar-proxy-read-for [supported] - DAV:calendar-proxy-write-for [supported]

Apple-specific Properties

  • calendar-color [supported]
  • getctag [supported]

inf-it properties

  • headervalue [supported]
  • settings [supported]
  • addressbook-color [supported]

rfc5995.txt (POST to create members)

Fully supported.

DAV Properties

  • DAV:add-member [supported]

HTTP Methods

  • POST [supported]

rfc5689 (Extended MKCOL)

Fully supported

HTTP Methods

  • MKCOL [supported]

rfc7529.txt (WebDAV Quota)

DAV properties

  • {DAV:}quote-available-bytes [supported]
  • {DAV:}quote-used-bytes [supported]