couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andy Wenk <andyw...@apache.org>
Subject Re: [PROPOSAL] Allow rewrites to be JS function
Date Sun, 18 Oct 2015 19:36:15 GMT
Hey Johs,

thanks a lot for this. I need some time to dig into it. We need a place to
write the user stories / use case down. So I suggest we find good place at
the cwiki. So I suggest to use
https://cwiki.apache.org/confluence/display/COUCHDB/Enhancement+Proposals .
Do you have write access there? If not, please ping me.

Great work!

All the best

Andy

P.S.: Jan already mentioned the feature freeze. Please take it not as a
demotivation but as the possibility to have a bit more time to work on it.

On 17 October 2015 at 17:32, Johs Ensby <johs@b2w.com> wrote:

> Andy,
> I will make my first use case for function in _rewrite a high level one:
> to create a standalone server that is an all-in-one DB server, application
> server, api server and web server.
>
> I have played with the build of CouchDB 2 with rewrite function
> implemented that  ermouth put up on the irish AWS community AMI list and
> the new use cases are endless.
> First, I find that there are a few things that people fail to notice about
> ddocs.
> you need a tool to build a ddoc, editing JSON is not a viable option. The
> Ddoc Lab of ermouth is in a class of its own. If you havent tried it yet,
> do so from http://ddoc.me/ <http://ddoc.me/>. Installing on your own
> couch it is as easy as storing the application, all included as one
> document in any database. Ddoc Lab is a component oriented IDE with syntax
> checking, less preprosessor and other build tools that let you keep a well
> organized ddoc as a source project (in one couchdb document) and you
> publich a ddoc to any target db.
> with this tool you can organize your js modules and templates etc and
> basically...
> set up the API of your application in a ddoc. You can switch between
> databases and their ddoc functionality based on username, role or
> geolocation and limit access to parts of the Couch API as needed
>
> This is the method I would recommend to explore powerful simplicity with
> function in rewrites
> redirect port 80 directly to couch
> set up 2 vhosts, one for public access pointing to youdb/_design/api and
> one for sysadm pointing to /
> for admin use Fauxton and Ddoc Lab on the sysadm vhost
> you are set to develop great systems, no big tool stack to learn, just
> bring in whatever js modules you like, the template engine you like, the
> router you like, the HTML5 stuff you like..
> .. or just write some very compact js code in one place where you ealier
> had to mess around with a whole stack of tools and systems
>
> below is the req object that the function takes
>
> Johs
>
>
>
> The rewrite function has this syntax
> function(req) {
>         .. your code that will
>         return
>                 path
>                 // optional
>                 headers
>                 method // you can change this on the fly
>                 code
>                 body
> }
>
> the function receives this req object
> method
> path
> raw_path
> query
> headers
>         Accept
>         Accept-Encoding
>         Connection
>         Host
>         Upgrade-Insecure-Requests
>         User-Agent
>         x-couchdb-vhost-path
> body
> peer
> cookie
> userCtx
> db
> name
> roles
> secObj
>
> > On 1. okt. 2015, at 13.40, Andy Wenk <andywenk@apache.org> wrote:
> >
> > Johs,
> >
> > Yes for sure! That's always great. Maybe you can also write some user
> stories (given when then) or scribble some graphics. Everything is useful
> and will fasten the process ;-)
> >
> > Cheers
> >
> > Andy
> >
> > On 1 Oct 2015 12:38, "Johs Ensby" <johs@b2w.com <mailto:johs@b2w.com>>
> wrote:
> > Thanks for this Andy,
> >
> > I can contribute to the discussion of the feature seen from a user
> perspective.
> > Would it be appropriate to present some use cases?
> >
> > best
> > Johs
> >
> > > On 1. okt. 2015, at 12.33, Andy Wenk <andywenk@apache.org <mailto:
> andywenk@apache.org>> wrote:
> > >
> > > Johs,
> > >
> > > Let me please show the steps needed.
> > >
> > > * discuss the feature very clearly on the dev@. Please make sure that
> core
> > > developers as committers with commit bits are involved
> > >
> > > * code the feature. Make sure to implement tests
> > >
> > > * send a pull request and show it to dev@
> > >
> > > * finally the community will accept or decline the feature (this will
> > > involve refactoring and changes)
> > >
> > > As Alex said. The PMC or Jan do not decide about the feature.
> > >
> > > All the best
> > >
> > > Andy
> > > On 1 Oct 2015 11:21, "Alexander Shorin" <kxepal@gmail.com <mailto:
> kxepal@gmail.com>> wrote:
> > >
> > >> On Thu, Oct 1, 2015 at 12:07 PM, Johs Ensby <johs@b2w.com <mailto:
> johs@b2w.com>> wrote:
> > >>> will you welcome ermouths rewrite contribution?
> > >>
> > >> The decision is depends on the implementation. If it will be good, why
> > >> not? Finally, CouchDB is open source project: we cannot forbid people
> > >> right for contributions, we only welcome them.
> > >>
> > >>> Arguments against couchapps has to do with performance and the folly
> in
> > >> competing with node.js.
> > >>
> > >> Performance question for the new _rewrite implementation is very
> > >> depends on query server. Once it can process this kind of functions,
> > >> you may use something better than JS to gain better performance. That
> > >> could be Erlang native query server, or luerl-based one, or else you
> > >> like.
> > >>
> > >> --
> > >> ,,,^..^,,,
> > >>
> >
>
>


-- 
Andy Wenk
Hamburg - Germany
RockIt!

GPG fingerprint: C044 8322 9E12 1483 4FEC 9452 B65D 6BE3 9ED3 9588

https://people.apache.org/keys/committer/andywenk.asc

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