mirror of
https://github.com/lennart-k/rustical.git
synced 2026-01-29 22:48:14 +00:00
docs: Add document to track progress of CardDAV support
This commit is contained in:
175
docs/developers/rfcs/rfc6352.md
Normal file
175
docs/developers/rfcs/rfc6352.md
Normal file
@@ -0,0 +1,175 @@
|
||||
# RFC 6352 (CardDAV)
|
||||
|
||||
## ☑ 1. Introduction and Overview
|
||||
|
||||
## ☑ 2. Conventions
|
||||
|
||||
## ☐ 3. Requirements Overview
|
||||
|
||||
## ☑ 4. Address Book Data Model
|
||||
|
||||
### ☑ 4.1 Address Book Server
|
||||
|
||||
## ☐ 5. Address Book Resources
|
||||
|
||||
### ☐ 5.1 Address Object Resources
|
||||
|
||||
- vCard objects MUST have a unique UID
|
||||
- Right now the uniqueness is not enforced in store_sqlite :(
|
||||
|
||||
#### ☐ 5.1.1 Data Type Conversion
|
||||
|
||||
Again, the client can use content negotiation to
|
||||
request that data be returned in a specific media type by specifying
|
||||
appropriate attributes on the CARDDAV:address-data XML element used
|
||||
in the request body (see Section 10.4).
|
||||
|
||||
- [ ] Accept address-data attributes
|
||||
|
||||
#### ☐ 5.1.1.1 Additional Precondition for GET
|
||||
|
||||
- Make sure that Accept header matches content type
|
||||
|
||||
### ☐ 5.2 Address Book Collections
|
||||
|
||||
## ☑ 6. Address Book Feature
|
||||
|
||||
### ☑ 6.1 Address Book Support
|
||||
|
||||
#### ☑ 6.1.1 Example: Using OPTIONS for the Discovery of Support for CardDAV
|
||||
|
||||
### ☐ 6.2 Address Book Properties
|
||||
|
||||
#### ☑ 6.2.1 CARDDAV:addressbook-description Property
|
||||
|
||||
#### ☑ 6.2.2 CARDDAV:supported-address-data Property
|
||||
|
||||
#### ☑ 6.2.3 CARDDAV:max-resource-size Property
|
||||
|
||||
### ☐ 6.3 Creating Resources
|
||||
|
||||
#### ☑ 6.3.1 Extended MKCOL Method
|
||||
|
||||
##### ☑ 6.3.1.1 Example - Successful MKCOL Request
|
||||
|
||||
#### ☐ 6.3.2 Creating Address Object Resources
|
||||
|
||||
- [x] If-None-Match support
|
||||
|
||||
##### ☐ 6.3.2.1 Additional Preconditions for PUT, COPY, and MOVE
|
||||
|
||||
- [ ] Make sure UID is unique
|
||||
|
||||
##### ☑ 6.3.2.2 Non-Standard vCard Properties and Parameters
|
||||
|
||||
##### ☑ 6.3.2.3 Address Object Resource Entity Tag
|
||||
|
||||
## ☑ 7. Address Book Access Control
|
||||
|
||||
### ☑ 7.1 Additional Principal Properties
|
||||
|
||||
#### ☑ 7.1.1 CARDDAV:addressbook-home-set Property
|
||||
|
||||
#### ☑ 7.1.2 CARDDAV:principal-address Property
|
||||
|
||||
## ☐ 8. Address Book Reports
|
||||
|
||||
### ☐ 8.1 REPORT Method
|
||||
|
||||
- [ ] DAV:expand-property REPORT
|
||||
|
||||
### ☑ 8.2 Ordinary Collections
|
||||
|
||||
### ☑ 8.3 Searching Text: Collations
|
||||
|
||||
#### ☑ 8.3.1 CARDDAV:supported-collation-set Property
|
||||
|
||||
### ☐ 8.4 Partial Retrieval (Optional)
|
||||
|
||||
### ☑ 8.5 Non-Standard Properties and Parameters
|
||||
|
||||
### ☑ 8.6 CARDDAV:addressbook-query Report
|
||||
|
||||
#### ☐ 8.6.1 Limiting Results
|
||||
|
||||
#### ☑ 8.6.2 Truncation of Results (does not apply)
|
||||
|
||||
#### ☐ 8.6.3 Example: Partial Retrieval of vCards Matching NICKNAME
|
||||
|
||||
#### ☐ 8.6.4 Example: Partial Retrieval of vCards Matching a Full Name or Email Address
|
||||
|
||||
#### ☐ 8.6.5 Example: Truncated Results
|
||||
|
||||
### ☐ 8.7 CARDDAV:addressbook-multiget Report
|
||||
|
||||
#### ☑ 8.7.1 Example: CARDDAV:addressbook-multiget Report
|
||||
|
||||
#### ☐ 8.7.2 Example: CARDDAV:addressbook-multiget Report
|
||||
|
||||
- [ ] Check for content-type of requested data
|
||||
|
||||
```
|
||||
<C:address-data content-type='text/vcard' version='4.0'/>
|
||||
```
|
||||
|
||||
## ☑ 9. Client Guidelines
|
||||
|
||||
### ☑ 9.1 Restrict the Properties Returned
|
||||
|
||||
### ☑ 9.2 Avoiding Lost Updates
|
||||
|
||||
### ☑ 9.3 Client Configuration
|
||||
|
||||
### ☐ 9.4 Finding Other Users' Address Books
|
||||
|
||||
- [ ] Implement DAV:principal-property-search REPORT [RFC3744]
|
||||
|
||||
## ☑ 10. XML Element Definitions
|
||||
|
||||
### ☑ 10.1 CARDDAV:addressbook XML Element
|
||||
|
||||
### ☑ 10.2 CARDDAV:supported-collation XML Element
|
||||
|
||||
### ☑ 10.3 CARDDAV:addressbook-query XML Element
|
||||
|
||||
### ☑ 10.4 CARDDAV:address-data XML Element
|
||||
|
||||
- [ ] Support content-type and version
|
||||
|
||||
#### ☐ 10.4.1 CARDDAV:allprop XML Element (does not apply, is for vCard props)
|
||||
|
||||
#### ☐ 10.4.2 CARDDAV:prop XML Element (does not apply, is for vCard props)
|
||||
|
||||
### ☑ 10.5 CARDDAV:filter XML Element
|
||||
|
||||
#### ☑ 10.5.1 CARDDAV:prop-filter XML Element
|
||||
|
||||
#### ☑ 10.5.2 CARDDAV:param-filter XML Element
|
||||
|
||||
#### ☑ 10.5.3 CARDDAV:is-not-defined XML Element
|
||||
|
||||
#### ☑ 10.5.4 CARDDAV:text-match XML Element
|
||||
|
||||
### ☑ 10.6 CARDDAV:limit XML Element
|
||||
|
||||
#### ☑ 10.6.1 CARDDAV:nresults XML Element
|
||||
|
||||
### ☑ 10.7 CARDDAV:addressbook-multiget XML Element
|
||||
|
||||
## ☑ 11. Service Discovery via SRV Records
|
||||
|
||||
## ☑ 12. Internationalization Considerations
|
||||
|
||||
## ☑ 13. Security Considerations
|
||||
|
||||
## ☑ 14. IANA Consideration
|
||||
|
||||
### ☑ 14.1 Namespace Registration
|
||||
|
||||
## ☑ 15. Acknowledgments
|
||||
|
||||
## ☑ 16. References
|
||||
|
||||
### ☑ 16.1 Normative References
|
||||
|
||||
### ☑ 16.2 Informative References
|
||||
@@ -75,7 +75,9 @@ nav:
|
||||
- OpenID Connect: setup/oidc.md
|
||||
- Developers:
|
||||
- developers/index.md
|
||||
- Relevant RFCs: developers/rfcs.md
|
||||
- Relevant RFCs:
|
||||
- developers/rfcs.md
|
||||
- RFC 6352: developers/rfcs/rfc6352.md
|
||||
- Frontend: developers/frontend.md
|
||||
- Debugging: developers/debugging.md
|
||||
- Cargo docs: /rustical/_crate/rustical/
|
||||
|
||||
Reference in New Issue
Block a user