couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Curt Arnold (JIRA)" <>
Subject [jira] Commented: (COUCHDB-442) Add a "view" or "format" function to process source doc on query
Date Wed, 29 Jul 2009 20:18:14 GMT


Curt Arnold commented on COUCHDB-442:

Not sure if I'm understanding the first sentence.  I am specifically suggesting additional
code that is part of a view.  A view/format/display function  that would be a peer to the
map and reduce function which could be used to process the matched documents so that only
the information that is necessary to support the related business function is exposed.  Something
analogous to being able to included only certain columns in a SQL view.

The case was a hypothetical and you would definitely need to partition information across
documents if users who could not see the SSN could update other parts of the info on an individual.
 However, if you start defining 20 different business functions and each has need to see a
slightly different subset of the data, then trying to accomplish that through partitioning
(either document or database) becomes untenable.  Partitioning sensitive info into a different
database then would cost you the ability to do views that combined sensitive and less-sensitive

Having the extra function which executes when serializing is an optimization over emitting
a part of the document at map time, but it seems like it would be a very desirable optimization
when authentication and authorization is more mature and could be useful now.  Just trying
to get things that fall out from the authentication and authorizations discussions visible
in JIRA for elaboration and consideration.

> Add a "view" or "format" function to process source doc on query
> ----------------------------------------------------------------
>                 Key: COUCHDB-442
>                 URL:
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: JavaScript View Server
>            Reporter: Curt Arnold
> It is common practice to emit pairs like {key, null} and then query with ?include_docs=true
to retrieve the documents that were responsible for the entries.  However, the full document
may include information that is privileged or the full document may be substantially larger
than the information needed to be transferred to the client.
> The proposed enhancement is to allow defining a "view" function in addition to the existing
"map" and "reduce" on a view.  If specified, the view function would take the id, key, value
and doc and return a JSON value that would be added as the "view" member to the row in the
result set.
> One of the use cases on
is to be able to specify that a user can retrieve the values from a view, but not add include_docs
since that may expose information that they are not authorized to view.  Without the "view"
function, there would be pressure to start pushing things into the emitted value.
> Production of views would be likely controlled using a include_views=true in the query

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message