nextcloud / nextcloud/contacts

Support JSContact (exportation and importation).

Open
#5,353 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop enhancement
Dominant language
JavaScript
Stars
642
Forks
220
Avg merge
14h 39m
Merged PRs (30d)
51

Description

Is your feature request related to a problem? Please describe.

vCard (IETF RFC 6350)'s plain-text structure is decades old. This is demonstrated in how it lacks native support for modern contact attributes (examples include social media handles), without awkward hacks, its lines are length-limited, and its syntax is not reasily readable in plain-text form.

Describe the solution you'd like

Instead of nesting endless arrays, JSContact (IETF RFC 9553) utilises standard key-value maps, thereby making it significantly easier to read and update via API.

Describe alternatives you've considered

Because jCard (IETF RFC 7095) is a direct translation of the vCard data model into a JSON structure, the underlying semantics are exactly the same as vCard. Although this allows developers to pass contacts around in JSON (the modern standard format for APIs) without changing their backend vCard models, because it mirrors vCard's data model, it uses nested arrays rather than logical objects, making it clunky to work with, inside modern object-oriented programming or validation frameworks.

Additional context

This, ideally, replaces issues/3956, which requests jCard support.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading IETF RFC 9553 and the existing vCard and jCard handling referenced in this issue, then identify the repository entry points for contact import and export. The issue names no files or tests, so the work is complete only when both JSContact import and export behavior are defined and covered consistently with the app’s existing contact model.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.