From user-return-13496-apmail-couchdb-user-archive=couchdb.apache.org@couchdb.apache.org Thu Nov 04 07:40:55 2010 Return-Path: Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: (qmail 71789 invoked from network); 4 Nov 2010 07:40:54 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 4 Nov 2010 07:40:54 -0000 Received: (qmail 1238 invoked by uid 500); 4 Nov 2010 07:41:24 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 1063 invoked by uid 500); 4 Nov 2010 07:41:21 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 1042 invoked by uid 99); 4 Nov 2010 07:41:20 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 Nov 2010 07:41:20 +0000 X-ASF-Spam-Status: No, hits=2.9 required=10.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [209.85.160.180] (HELO mail-gy0-f180.google.com) (209.85.160.180) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 Nov 2010 07:41:14 +0000 Received: by gyg8 with SMTP id 8so1210439gyg.11 for ; Thu, 04 Nov 2010 00:40:52 -0700 (PDT) MIME-Version: 1.0 Received: by 10.42.220.3 with SMTP id hw3mr144366icb.26.1288856450579; Thu, 04 Nov 2010 00:40:50 -0700 (PDT) Received: by 10.231.152.65 with HTTP; Thu, 4 Nov 2010 00:40:50 -0700 (PDT) In-Reply-To: References: Date: Thu, 4 Nov 2010 18:40:50 +1100 Message-ID: Subject: Re: Considering couchdb for webapp From: Nicholas Orr To: user@couchdb.apache.org Content-Type: multipart/alternative; boundary=20cf3056449de73f8c0494354654 X-Virus-Checked: Checked by ClamAV on apache.org --20cf3056449de73f8c0494354654 Content-Type: text/plain; charset=ISO-8859-1 On Thu, Nov 4, 2010 at 8:08 AM, Trond Olsen wrote: > I wondered if someone would like to comment on how suitable couchdb would > be > for a webapp I'm developing? > > The app functions like a traditional desktop application and I need a > web-based storage solution that users can subscribe to. The documents to be > stored would mostly range from 1-10kb with occasional larger 1-50mb ones. I > will need to tag documents and let users retrieve groups of documents by > tag, but only transmit names/urls and not whole content. In addition, each > "primary" document might have several other separate "configuration" > documents associated with it that should be queryable on-demand by users. > > When you say documents do you mean actual documents like a letter, resume, instructions etc? Well anyway based on the general/vague information you have given sounds like couchdb would work. I'm using it for a quoting tool (vehicle finance) and pdf generator (html/css templates stored in couchdb, combine json data with these templates, produce pdf) - works great :) > I see that couchdb supports version-control but get scraped when the > database is compactified. What options are available if I want to > server-controlled diffs stored in updated documents (both doc and > attachments)? > > CouchDB doesn't support version control, what you are looking at there is http://guide.couchdb.org/draft/consistency.html If you want version control, your application needs to have it. Like if you want a picture to be 100x100 and show up on the right of the page, couchdb doesn't control this, your app does. > Last question concerns security. Ideally I would like to support both > single > user and groups control per document with private or public access. > http://www.youtube.com/watch?v=oHKvV3Nh-CI jchris - simple screencast about write security http://wiki.apache.org/couchdb/Security_Features_Overview - from what I can tell you can authorise readers at the database level, I couldn't find anything about auth per document for reading. because of this I just put security stuff at the application level... hopefully this answers your questions enough to take the next step :) --20cf3056449de73f8c0494354654--