98 lines
3.5 KiB
Markdown
98 lines
3.5 KiB
Markdown
# 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) | — |
|