draft-ietf-jmap-jscontact-00.txt   draft-ietf-jmap-jscontact-01.txt 
JMAP R. Stepanek JMAP R. Stepanek
Internet-Draft FastMail Internet-Draft FastMail
Intended status: Standards Track M. Loffredo Intended status: Standards Track M. Loffredo
Expires: August 10, 2020 IIT-CNR Expires: August 13, 2020 IIT-CNR
February 7, 2020 February 10, 2020
JSContact: A JSON representation of contact data JSContact: A JSON representation of contact data
draft-ietf-jmap-jscontact-00 draft-ietf-jmap-jscontact-01
Abstract Abstract
This specification defines a data model and JSON representation of This specification defines a data model and JSON representation of
contact card information that can be used for data storage and contact card information that can be used for data storage and
exchange in address book or directory applications. It aims to be an exchange in address book or directory applications. It aims to be an
alternative to the vCard data format and to be unambiguous, alternative to the vCard data format and to be unambiguous,
extendable and simple to process. In contrast to the JSON-based extendable and simple to process. In contrast to the JSON-based
jCard format, it is not a direct mapping from the vCard data model jCard format, it is not a direct mapping from the vCard data model
and expands semantics where appropriate. and expands semantics where appropriate.
skipping to change at page 1, line 37 skipping to change at page 1, line 37
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 10, 2020. This Internet-Draft will expire on August 13, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 39 skipping to change at page 2, line 39
2.3.2. phones . . . . . . . . . . . . . . . . . . . . . . . 7 2.3.2. phones . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.3. online . . . . . . . . . . . . . . . . . . . . . . . 8 2.3.3. online . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.4. preferredContactMethod . . . . . . . . . . . . . . . 8 2.3.4. preferredContactMethod . . . . . . . . . . . . . . . 8
2.3.5. preferredContactLanguages . . . . . . . . . . . . . . 8 2.3.5. preferredContactLanguages . . . . . . . . . . . . . . 8
2.4. Address and Location properties . . . . . . . . . . . . . 9 2.4. Address and Location properties . . . . . . . . . . . . . 9
2.4.1. addresses . . . . . . . . . . . . . . . . . . . . . . 9 2.4.1. addresses . . . . . . . . . . . . . . . . . . . . . . 9
2.5. Additional properties . . . . . . . . . . . . . . . . . . 10 2.5. Additional properties . . . . . . . . . . . . . . . . . . 10
2.5.1. anniversaries . . . . . . . . . . . . . . . . . . . . 10 2.5.1. anniversaries . . . . . . . . . . . . . . . . . . . . 10
2.5.2. personalInfo . . . . . . . . . . . . . . . . . . . . 11 2.5.2. personalInfo . . . . . . . . . . . . . . . . . . . . 11
2.5.3. notes . . . . . . . . . . . . . . . . . . . . . . . . 11 2.5.3. notes . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5.4. categories . . . . . . . . . . . . . . . . . . . . . 12 2.5.4. categories . . . . . . . . . . . . . . . . . . . . . 11
2.6. Common JSCard types . . . . . . . . . . . . . . . . . . . 12 2.6. Common JSCard types . . . . . . . . . . . . . . . . . . . 12
2.6.1. LocalizedString . . . . . . . . . . . . . . . . . . . 12 2.6.1. LocalizedString . . . . . . . . . . . . . . . . . . . 12
2.6.2. Resource . . . . . . . . . . . . . . . . . . . . . . 12 2.6.2. Resource . . . . . . . . . . . . . . . . . . . . . . 12
3. JSCardGroup . . . . . . . . . . . . . . . . . . . . . . . . . 12 3. JSCardGroup . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1. Properties . . . . . . . . . . . . . . . . . . . . . . . 13 3.1. Properties . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.1. uid . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1.1. uid . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.2. name . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1.2. name . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.3. cards . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1.3. cards . . . . . . . . . . . . . . . . . . . . . . . . 13
4. Implementation Status . . . . . . . . . . . . . . . . . . . . 13 4. Implementation Status . . . . . . . . . . . . . . . . . . . . 13
4.1. IIT-CNR/Registro.it . . . . . . . . . . . . . . . . . . . 14 4.1. IIT-CNR/Registro.it . . . . . . . . . . . . . . . . . . . 14
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14
6. Security Considerations . . . . . . . . . . . . . . . . . . . 14 6. Security Considerations . . . . . . . . . . . . . . . . . . . 14
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.1. Normative References . . . . . . . . . . . . . . . . . . 14 7.1. Normative References . . . . . . . . . . . . . . . . . . 14
7.2. Informative References . . . . . . . . . . . . . . . . . 15 7.2. Informative References . . . . . . . . . . . . . . . . . 16
7.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 16 7.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17
1. Introduction 1. Introduction
This document defines a data model for contact card data normally This document defines a data model for contact card data normally
used in address book or directory applications and services. It aims used in address book or directory applications and services. It aims
to be an alternative to the vCard data format [RFC6350] and to to be an alternative to the vCard data format [RFC6350] and to
provide a JSON-based standard representation of contact card data. provide a JSON-based standard representation of contact card data.
The key design considerations for this data model are as follows: The key design considerations for this data model are as follows:
skipping to change at page 7, line 27 skipping to change at page 7, line 27
by the entity represented by this card. In contrast to a job title, by the entity represented by this card. In contrast to a job title,
the roles might differ for example in project contexts. the roles might differ for example in project contexts.
2.3. Contact and Resource properties 2.3. Contact and Resource properties
2.3.1. emails 2.3.1. emails
Type: "Resource[]" (optional). Type: "Resource[]" (optional).
An array of Resource objects where the values are URLs in the An array of Resource objects where the values are URLs in the
[RFC6068] "mailto" scheme or free-text email addresses. Types are: "mailto" scheme [RFC6068] or free-text email addresses. The default
value of the "type" property is "email". If set, the type MUST be
o "personal" The address is for emailing in a personal context. "email" or "other".
o "work" The address is for emailing in a professional context.
o "other" The address is for some other purpose. A label property
MAY be included to display next to the address to help the user
identify its purpose.
2.3.2. phones 2.3.2. phones
Type: "Resource[]" (optional). Type: "Resource[]" (optional).
An array of Resource objects where the values are URIs scheme or An array of Resource objects where the values are URIs scheme or
free-text phone numbers. Typical URI schemes are the [RFC3966] "tel" free-text phone numbers. Typical URI schemes are the [RFC3966] "tel"
or [RFC3261] "sip" schemes, but any URI scheme is allowed. Resource or [RFC3261] "sip" schemes, but any URI scheme is allowed. Types
types are: are:
o "voice" The number is for calling by voice. o "voice" The number is for calling by voice.
o "fax" The number is for sending faxes. o "fax" The number is for sending faxes.
o "pager" The number is for a pager or beeper. o "pager" The number is for a pager or beeper.
o "other" The number is for some other purpose. A label property o "other" The number is for some other purpose. A label property
MAY be included to display next to the number to help the user MAY be included to display next to the number to help the user
identify its purpose. identify its purpose.
The following labels are pre-defined for phone resources:
o "private" The phone number should be used in a private context.
o "work" The phone number should be used in a professional context
2.3.3. online 2.3.3. online
Type: "Resource[]" (optional). Type: "Resource[]" (optional).
An array of Resource objects where the values are URIs or usernames An array of Resource objects where the values are URIs or usernames
associated with the card for online services. Types are: associated with the card for online services. Types are:
o "uri" The value is a URI, e.g. a website link. o "uri" The value is a URI, e.g. a website link.
o "username" The value is a username associated with the entity o "username" The value is a username associated with the entity
skipping to change at page 9, line 31 skipping to change at page 9, line 20
2.4. Address and Location properties 2.4. Address and Location properties
2.4.1. addresses 2.4.1. addresses
Type: Address[] (optional). Type: Address[] (optional).
An array of Address objects, containing physical locations. An An array of Address objects, containing physical locations. An
Address object has the following properties: Address object has the following properties:
o type: "String" (optional, default "other"). Specifies the context o context: "String" (optional, default "other"). Specifies the
of the address information. The value MUST be either one of the context of the address information. The value MUST be either one
following values, registered in a future RFC, or a vendor-specific of the following values, registered in a future RFC, or a vendor-
value: specific value:
* "home" An address of a residence. * "private" An address of a residence.
* "work" An address of a workplace. * "work" An address of a workplace.
* "billing" An address to be used for billing. * "billing" An address to be used for billing.
* "postal" An address to be used for delivering physical items. * "postal" An address to be used for delivering physical items.
* "other" An address not covered by the above categories. * "other" An address not covered by the above categories.
o label: "String" (optional). A label describing the value in more o label: "String" (optional). A label describing the value in more
skipping to change at page 12, line 28 skipping to change at page 12, line 23
o language: "String" (optional). The [RFC5646] language tag of this o language: "String" (optional). The [RFC5646] language tag of this
value, if any. value, if any.
o localizations: "String[String]" (optional). A map from [RFC5646] o localizations: "String[String]" (optional). A map from [RFC5646]
language tags to the value localized in that language. language tags to the value localized in that language.
2.6.2. Resource 2.6.2. Resource
A Resource object has the following properties: A Resource object has the following properties:
o type: "String" (mandatory). Specifies the context of the o context: "String" (optional) Specifies the context in which to use
resource. This MUST be taken from the set of values specified for this resource. Pre-defined values are:
the respective property.
o label: "String" (optional). A label describing the value in more * "private": The resource may be used to contact the card holder
detail, especially if the type property has value "other" (but MAY in a private context.
be included with any type).
* "work": The resource may be used to contact the card holder in
a professional context.
* "other": The resource may be used to contact the card holder in
some other context. A label property MAY be help to identify
its purpose.
o type: "String" (optional). Specifies the property-specific
variant of the resource. This MUST be taken from the set of
allowed types specified in the respective contact method property.
o labels: "String[Boolean]" (optional). A set of labels that
describe the value in more detail, especially if the type property
has value "other" (but MAY be included with any type). The keys
in the map define the label, the values MUST be "true".
o value: "String" (mandatory). The actual resource value, e.g. an o value: "String" (mandatory). The actual resource value, e.g. an
email address or phone number. email address or phone number.
o mediaType: "String" (optional). Used for properties with URI o mediaType: "String" (optional). Used for properties with URI
values. Provides the media type [RFC2046] of the resource values. Provides the media type [RFC2046] of the resource
identified by the URI. identified by the URI.
o isPreferred: Boolean (optional, default: false). Whether this o isPreferred: Boolean (optional, default: false). Whether this
resource is the preferred for its type. This SHOULD only be one resource is the preferred for its type. This SHOULD only be one
 End of changes. 13 change blocks. 
37 lines changed or deleted 39 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/