diff --git a/docs/developers/rfcs/rfc6352.md b/docs/developers/rfcs/rfc6352.md new file mode 100644 index 0000000..f2684d2 --- /dev/null +++ b/docs/developers/rfcs/rfc6352.md @@ -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 + + ``` + + ``` + +## ☑ 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 diff --git a/mkdocs.yml b/mkdocs.yml index a5d6f6d..3733854 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -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/