I understand the issue brought by Adam since in our CouchDb application, there 
is a need to have
a replicator role and the validation functions skip most of the tests if the 
role is set for the
current user.

On the other hand, at the current time, I am not in favour of making super 
users for the sake of
replication. Although it might solve the particular problem stated, it removes 
the ability for a
design document to enforce some "invariant" properties of a database.

Since there is already a way to allow a "replicator" to perform any changes 
(role + proper
validation function), I do not see the need for this change. Since the super 
replicator user
removes the ability that a database has to protect the consistency of its data, 
and that there
does not seem to be a work-around, I would rather not see this change pushed to 
CouchDb.

JP

On 11-08-16 10:26 AM, Adam Kocoloski wrote:
> One of the principal uses of the replicator is to "make this database look 
> like that one".  We're unable to do that in the general case today because of 
> the combination of validation functions and out-of-order document transfers.  
> It's entirely possible for a document to be saved in the source DB prior to 
> the installation of a ddoc containing a validation function that would have 
> rejected the document, for the replicator to install the ddoc in the target 
> DB before replicating the other document, and for the other document to then 
> be rejected by the target DB.
> 
> I propose we add a role which allows a user to bypass validation, or else 
> extend that privilege to the _admin role.  We should still validate updates 
> by default and add a way (a new qs param, for instance) to indicate that 
> validation should be skipped for a particular update.  Thoughts?
> 
> Adam

Reply via email to