J'évalue actuellement les solutions possibles au problème follwing:réplication sélective avec CouchDB
Un ensemble d'entrées de données doit être synchonized entre plusieurs clients, où chaque client peut seule vue (ou même connaître l'existence de) un sous-ensemble des données. Chaque client "possède" certains des éléments, et la décision qui d'autre peut lire ou modifier ces éléments ne peut être faite que par le propriétaire. Pour compliquer encore plus cette situation, chaque élément (et chaque révision d'élément) doit avoir un identifiant unique égal pour tous les clients. Alors que ce dernier semble être une tâche parfaite pour CouchDB (et qu'un modèle de données basé sur un document correspond parfaitement à mes besoins), je ne suis pas sûr que le sous-système d'authentification/autorisation de CouchDB puisse répondre à ces exigences: possible de restaurer l'accès en écriture en utilisant des fonctions de validation, il ne semble pas y avoir moyen d'autoriser l'accès en lecture. Toutes les solutions que j'ai trouvées pour ce problème proposent d'acheminer toutes les demandes de CouchDB via un proxy (ou une couche d'application) qui gère l'autorisation. La question est donc: est-il possible d'implémenter une couche d'autorisation qui filtre les requêtes à la base de données afin que l'accès soit accordé uniquement aux documents auxquels le client demandeur a accès en lecture et utilise toujours le mécanisme de réplication de CouchDB? Simplifié, il s'agirait d'une sorte de «réplication sélective» où seuls certains documents, et non toute la base de données, seraient répliqués.
Je serais également reconnaissant pour les directions à quelques informations détaillées sur la façon dont la réplication fonctionne. Le wiki de CouchDB et même le livre "Guide défini" ne sont pas trop spécifiques à ce sujet.
Merci (et andyuk, aussi). On dirait que couchDB est vraiment en train de devenir ce que je cherche. – FRotthowe
avez-vous un exemple de travail? Cependant, la réplication filtrée n'est pas sécurisée. L'utilisateur peut toujours accéder à toutes les données via _all_docs et obtenir – Kinesias
8 ans plus tard? Je ne crains pas :) – kolosy