couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Travis Paul ...@visPaul.me>
Subject Re: Using Json schema in validate function
Date Wed, 06 Feb 2013 23:33:18 GMT
Here's an example bare bones CouchApp using JSON schema validation:
https://github.com/TravisPaul/couchapp-schema

Take a look at the validate_doc_update.js and it should make sense. To test
it out push it CouchDB and try to create a new document in Futon, it will
give you error messages until it conforms to the schema. I included a
schema called "quiz" that might resemble a quiz document.

Hope that helps,


On Tue, Feb 5, 2013 at 10:04 AM, Travis Paul <Tr@vispaul.me> wrote:

> I use JSV in my validation functions, though I had to modify JSV a bit to
> get it to cooperate.
> you also can't throw arrays from the validate doc update function so you
> have to work around that, see here:
> https://issues.apache.org/jira/browse/COUCHDB-1635
>
> I can't comment on performance since I'm not doing anything crazy, but it
> works.
>
> I'll try to put an example of what I'm doing on github after work and
> reply here.
>
>
> On Tue, Feb 5, 2013 at 4:20 AM, Dave Cottlehuber <dch@jsonified.com>wrote:
>
>> On 5 February 2013 09:52, Ian Mayo <ian@planetmayo.com> wrote:
>> > I'm familiar with the use of a validate function in CouchDb, and have a
>> > js-crafted one doing a good job right now.
>> >
>> > But, I'm interested in moving to a higher-level validation, through use
>> of
>> > a json-schema:
>> > http://json-schema.org/
>> >
>> > I've only just become aware of the JSV validator, written in Javascript:
>> > https://github.com/garycourt/JSV
>> >
>> > Has anybody managed to use JSV in a CouchDb validate function?  Are
>> there
>> > any examples online?
>> >
>> > Personally, I think there would be great merit in providing 'native'
>> json
>> > schema validation within CouchDb - it really seems a "grown-up" way of
>> > maintaining the quality of a document database (accepting that there are
>> > still many use cases that rely on a completely schema free design).
>> >
>> > Cheers,
>> > Ian
>>
>> Hi Ian,
>>
>> TL;DR this should not be difficult to do within a validation function,
>> *but* you might find performance takes a hit.
>>
>> I have some old links on this but don't recall anybody posting
>> anything concrete, and I found a way not to need it.
>>
>>
>> http://mail-archives.apache.org/mod_mbox/couchdb-user/201104.mbox/%3CBANLkTimqV0bbZrPY-12eSpL9yRGKWmau9g@mail.gmail.com%3E
>>
>> This person had a crack but never revealed any secret sauce:
>>
>> http://daemon.co.za/2012/05/dynamic-forms-json-schema/
>> http://daemon.co.za/2012/05/replacing-couchdb-views-with-elasticsearch/
>>
>> Simon might have more details to share:
>> https://cloudant.com/blog/schemas-in-couchdb/
>>
>> From a performance perspective you are likely to find this painful.
>>
>> https://github.com/k3nn7/json-validator
>>
>> Would likely work as an erlang validation function, with some work
>> required. But at least its mochiweb based already.
>>
>> A+
>> Dave
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message