ADR "mismatch" between vcard and GUI, formatted (LABEL) vs detailed address, leading to sync confusion #1900
Description
Steps to reproduce
Prereq: Existing "simple" contact, e.g. just FN set, already synched between Nextcloud and via DAVx5 to an Android device.
FYI in my case FOSS (F-Droid) App Simple-Contacts, v 6.13.0, Android 10, Nokia 7.2
- Change address in Simple-Contacts, make it two lines with a line break (not sure if line break is neccesary)
FYI Simple-Contacts per design does not use detailed addresses, just one multiline address field, finally stored as ADR->STREET - Sync back to Nextcloud
Remark: When contact is now downloaded from Nextcloud, NC creates NON-compliant V3.0 vcard with an ADR like
ADR;TYPE=home;LABEL="Address Changed^nin Simple-Contacts":;;Address Changed^nin Simple-Contacts;;;;
LABEL param inside ADR was introduced by RFC 6350, valid for vcard 4.0, ch. 6.3.1..
This LABEL param deprecates old v3.0 LABEL type defined in RFC 2426 ch. 3.2.2. Which had to be defined as separate vcard node, if vcard version is/should be 3.0 as used by Nextloud GUI export function.
FYI I've opened #1899 yesterday, got the impression that Nextcloud more or less is exporting V4.0 vcards although declarating them as V3.0
- Change address in Nextcloud
Downloaded from Nextcloud (V3.0 incompliant as described above) vcard looks as follows:
VERSION:3.0
PRODID:-//Sabre//Sabre VObject 4.3.0//EN
UID:ea51b1a6-1063-4cbd-ad42-f204cfa69763
FN:Först Last
N:Last;Först;;;
ADR;TYPE=home;LABEL="Address Changed^nin Simple-Contacts":;;geändert in Ne
xtcloud;;;;
REV;VALUE=DATE-AND-OR-TIME:20201029T113127Z
END:VCARD
IHMO keeping the previous LABEL value without showing it in GUI is more than confusing, and hard to detect(*)!
- Sync again
- Changed in Nextcloud address will NOT be shown on Android after synched via DAVx5. Both in Google Contacts App, and Simple-Contacts
That's what I mean with (*) hard to detect: As vice versa on Android only the formatted LABEL address is shown, I thought at first that this might be a DAVx5 bug.
FYI When synched to iOS, with native cardDAV support, detailed address seems to be used by default, in contrast to Android.
Expected behaviour
If desired by design both detailed address and formatted address, as defined by RFC, should be available in Nextcloudm both have to be shown/changeable in GUI.
If LABEL is used/created en passant, so hidden by design, it should be in sync/regenerated based on detailed address, to avoid the described above confusion.
Actual behaviour
Nextcloud keeps "hidden" formatted address, unchanged
Server configuration detail
Operating system: Linux 5.3.18-lp152.47-default #1 SMP Thu Oct 15 16:05:25 UTC 2020 (41f7396) x86_64
OpenSuse Leap 15.2
Webserver: Apache (apache2handler)
Database: mysql 10.4.14
PHP version:
7.4.6
Modules loaded: Core, date, libxml, pcre, filter, hash, Reflection, SPL, session, SimpleXML, standard, xml, mysqlnd, apache2handler, apcu, bcmath, bz2, ctype, curl, dom, mbstring, fileinfo, ftp, gd, gettext, gmp, iconv, imagick, intl, json, ldap, exif, mysqli, openssl, pcntl, PDO, pdo_mysql, pdo_sqlite, zlib, posix, soap, sockets, sqlite3, tokenizer, xmlreader, xmlwriter, zip, Phar, Zend OPcache
Nextcloud version: 20.0.1 - 20.0.1.1
Updated from an older Nextcloud/ownCloud or fresh install:
Upgraded from Owncloud long ago
Where did you install Nextcloud from:
RPM based from OpenSuse repos
Signing status
Array
(
)
List of activated apps
Enabled:
- accessibility: 1.6.0
- activity: 2.13.2
- admin_audit: 1.10.0
- audioplayer: 2.12.0
- bruteforcesettings: 2.0.1
- calendar: 2.1.2
- cloud_federation_api: 1.3.0
- comments: 1.10.0
- contacts: 3.4.1
- contactsinteraction: 1.1.0
- dashboard: 7.0.0
- dav: 1.16.0
- encryption: 2.8.1
- federatedfilesharing: 1.10.1
- federation: 1.10.1
- files: 1.15.0
- files_external: 1.11.1
- files_pdfviewer: 2.0.1
- files_rightclick: 0.17.0
- files_sharing: 1.12.0
- files_trashbin: 1.10.1
- files_versions: 1.13.0
- files_videoplayer: 1.9.0
- firstrunwizard: 2.9.0
- issuetemplate: 0.7.0
- logreader: 2.5.0
- lookup_server_connector: 1.8.0
- mail: 1.5.1
- music: 0.17.0
- nextcloud_announcements: 1.9.0
- notifications: 2.8.0
- oauth2: 1.8.0
- password_policy: 1.10.1
- photos: 1.2.0
- privacy: 1.4.0
- provisioning_api: 1.10.0
- recommendations: 0.8.0
- serverinfo: 1.10.0
- settings: 1.2.0
- sharebymail: 1.10.0
- spreed: 10.0.1
- support: 1.3.0
- survey_client: 1.8.0
- systemtags: 1.10.0
- tasks: 0.13.5
- text: 3.1.0
- theming: 1.11.0
- twofactor_backupcodes: 1.9.0
- twofactor_totp: 5.0.0
- updatenotification: 1.10.0
- user_status: 1.0.0
- viewer: 1.4.0
- weather_status: 1.0.0
- workflowengine: 2.2.0
Disabled:
- user_ldap
Configuration (config/config.php)
{
"updatechecker": false,
"instanceid": "***REMOVED SENSITIVE VALUE***",
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": [
"localhost:10080",
"***REMOVED SENSITIVE VALUE***",
"***REMOVED SENSITIVE VALUE***",
"***REMOVED SENSITIVE VALUE***"
],
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"overwrite.cli.url": "http:\/\/localhost:10080\/nextcloud",
"dbtype": "mysql",
"version": "20.0.1.1",
"dbname": "***REMOVED SENSITIVE VALUE***",
"dbhost": "***REMOVED SENSITIVE VALUE***",
"dbtableprefix": "oc_",
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"logtimezone": "UTC",
"installed": true,
"mail_smtpmode": "sendmail",
"mail_smtpsecure": "tls",
"mail_from_address": "***REMOVED SENSITIVE VALUE***",
"mail_domain": "***REMOVED SENSITIVE VALUE***",
"maintenance": false,
"appstore.experimental.enabled": true,
"theme": "",
"loglevel": 0,
"logfile": "\/var\/log\/nextcloud\/nextcloud.log",
"log_rotate_size": 10485760,
"app_install_overwrite": [
"tasks",
"contacts",
"unsplash",
"bruteforcesettings"
],
"mysql.utf8mb4": true,
"encryption.legacy_format_support": false,
"encryption.key_storage_migrated": false,
"memcache.local": "\\OC\\Memcache\\APCu"
}
Are you using external storage, if yes which one: local/smb/sftp/...
Are you using encryption: 1
Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/...
Client configuration
Browser: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36
Operating system:
Logs
Web server error log
Nextcloud log
Activity