3.5 KiB
3.5 KiB
Contacts
Équivalent : Google Contacts Statut : Partiel (API proxy CardDAV)
Résumé
Carnet d'adresses unifié partagé entre tous les services Ulti Suite. Gère les contacts personnels, professionnels, groupes, et synchronisation avec sources externes (CardDAV, Google, etc.).
État d'implémentation réel (mai 2026)
Déjà implémenté
- API backend montée sous
/api/v1/contacts(si Nextcloud activé). - Endpoints list carnets, list contacts, create contact, delete contact, search.
- Client CardDAV Nextcloud intégré côté serveur.
Partiel / incomplet
- Pas d'update contact avec ETag.
- Pas de sync incrémentale via sync-token.
- Recherche globale suite ne s'appuie pas encore pleinement sur CardDAV.
Non commencé
- Import/export vCard et CSV côté API produit final.
- Fusion de doublons côté backend.
- Enrichissement interactions (mails/réunions/fichiers) en API contact.
Points de différenciation vs Google Contacts
- Carnet unifié cross-services natif (mail, agenda, meet, drive)
- Import/export CardDAV bidirectionnel
- Champs personnalisés illimités et typés
- Fusion intelligente de doublons (IA-assistée)
- Tags et groupes dynamiques (filtres auto-mis à jour)
Fonctionnalités
Core
- CRUD contacts (nom, emails, téléphones, adresses, organisations)
- Groupes / étiquettes
- Photo de profil
- Champs personnalisés
- Historique d'interactions (derniers mails, réunions, fichiers partagés)
Sync & import
- Import/export vCard, CSV
- Sync CardDAV bidirectionnelle
- Import depuis Google Contacts
- Détection et fusion de doublons
- Auto-complétion depuis l'historique mail
Intégration suite
- Suggestions dans Ultimail (compose, destinataires)
- Disponibilité agenda dans la fiche contact
- Fichiers partagés (Ultidrive) dans la fiche
- Lien direct vers Ultimeet
Intégration Nextcloud — étude technique
APIs CardDAV disponibles (confirmé)
Même instance Nextcloud qu'Ultidrive et Agenda. Endpoints :
| Opération | Méthode | Endpoint |
|---|---|---|
| Lister carnets | PROPFIND | /remote.php/dav/addressbooks/users/{user}/ |
| Lister contacts | REPORT (addressbook-query) | .../addressbooks/users/{user}/{book}/ |
| Créer contact | PUT | .../addressbooks/users/{user}/{book}/{uid}.vcf |
| Modifier contact | PUT | Même (avec If-Match etag) |
| Supprimer contact | DELETE | Même |
| Sync incrémentale | REPORT (sync-collection) | Via sync-token |
| Recherche | REPORT (addressbook-query) | Filtres sur FN, EMAIL, TEL, ORG, etc. |
Champs indexés (recherche rapide)
BDAY, UID, N, FN, TITLE, ROLE, NOTE, NICKNAME, ORG, CATEGORIES, EMAIL, TEL, IMPP, ADR, URL, GEO, CLOUD, X-SOCIALPROFILE
Avantages
- Carnet d'adresses système auto-populé avec tous les utilisateurs NC
- Partage de carnets entre utilisateurs
- Interopérable avec clients CardDAV (Apple Contacts, DAVx5, Thunderbird)
- Même backend que fichiers et calendrier → une seule instance à maintenir
Briques technologiques envisagées
| Besoin | Option retenue | Alternatives |
|---|---|---|
| Backend CardDAV | Nextcloud sabre/dav (même instance) | Radicale, Baikal |
| Client CardDAV (JS) | tsdav (TypeScript) | fetch + XML custom |
| Parsing vCard | vcard4 ou ical.js | — |
| Recherche avancée | Meilisearch (indexation custom) | NC search intégré |
| Auth | Partagée via Ulti Suite (OIDC → NC) | — |