apache / couchdb

Seamless multi-master syncing database with an intuitive HTTP/JSON API, designed for reliability
https://couchdb.apache.org/
Apache License 2.0
6.15k stars 1.02k forks source link

Invoking update function when changing document in Fauxton #5041

Open hubodz opened 4 months ago

hubodz commented 4 months ago

Hello, I would like to add a simple functionality using update function in design document. I would like it to be invoked when a document is changed/created in Fauxton. Normally, one has to call the update function explicitly, but this (I believe) not possible with Fauxton.

Is there any way to achieve behaviour described above? Maybe it's possible to set an update function as default, so it doesn't require explicit call?

Thanks!

rnewson commented 4 months ago

It is not possible. Clients must call through to the appropriate _update handler url explicitly.

hubodz commented 4 months ago

Thank you! Do you think the idea I described could be proposed as enhancement to Couch, or there are reasons to not go that way?

rnewson commented 4 months ago

The idea has come up before but it is has always been rejected, for similar reasons to your other ticket.

What you can do is use a validate_doc_update function to ensure only valid updates are made (you can compare the new incoming update to the current document to ensure any state transition constraints) and provide an update handler to your clients to make it easier to create a valid update.