couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Franck Eyraud <franck+couchd...@nospam.yrnm.net>
Subject Re: Writing a Plugin : know couchdb core
Date Sat, 14 Dec 2013 09:02:07 GMT
Hello,

It seems that plugin discussions don't create passionate debates... It's 
a pity because it is really a good feature, and since from what I 
understood taht the couchdb core might be reduced in the future, plugins 
will be always used more.

Maybe creating a plugin is not a in itself problem. I watched the 
interesting talk[1] from Jason Smith which is a very good start. And it 
made me realize that writing a plugin is in fact equivalent to writing a 
bit of code in couchdb core.

So what I need is to learn what a couchdb developer knows : couchdb 
architecture and API.

Is there any resource online where I can learn this stuff ? A quick 
start guide to develop in couchdb (especially for people who never used 
erlang before) ? Or is the only way to dig inside couchdb git tree and 
try to understand ? Before doing this, I want to be sure I won't loose 
too much time. So please people who entered the couchdb project later, 
how did you reach your level ?

Thanks for your help,

Franck

[1] 
http://www.youtube.com/watch?v=saNjXpE1h1Y&list=PLJa_sXrJUZb8ZuaQShicg6oWI682Bavjb&index=9
On 05/12/2013 19:05, Franck Eyraud wrote:
> Hello,
>
> I cross post this since it seems better to follow up on the developers 
> mailing list.
>
> I started to work from Jan's my-first-couchdb-plugin to adapt the LDAP 
> feature from chao into a couchDB plugin.
> https://github.com/franck-eyraud/ldap-auth-couchdb-plugin
>
> Up to now, I managed to do it, by adding an auth handler.
>
> But in order to develop a plugin, I would need to know where it is 
> possible to hook to change behaviour.
>
> I'd say that a list of pluggable points of the code, from people who 
> know very well the couchdb architecture, would be very useful. I 
> didn't find such resource on the web, and I have the feeling that it 
> doesn't exist. Would it be possible to have such a list, even in draft 
> version just to begin. I can then contribute to the documentation to 
> help future plugin developers.
>
> Up to now I only counted three public plugins, including two real ones 
> : CouchPerUser, GeoCouch and MyFirstCouchdbPlugin (and the new born 
> LdapAuth)
>
> I would like to know for instance if features that act more deep 
> inside the couchdb engine, such as the validate_doc_read function, 
> could be made as plugin ?
>
> Thank you for your help,
>
> Franck
>
> On 15/09/2013 14:45, Jason Smith wrote:
>> Hi, Aurélien.
>>
>> I think LDAP is a great candidate to convert to a plugin. The 
>> foundation is
>> there however it is still more developer-focused than user-focused.
>>
>> Probably the best starting place is Jan's example plugin:
>>
>> https://github.com/janl/my-first-couchdb-plugin
>>
>> On Sun, Sep 15, 2013 at 7:38 PM, Aurélien Bénel <aurelien.benel@utt.fr>
>> wrote:
>>> No idea?
>>> Any plugin expert out there?
>>>
>>>> Hi everyone,
>>>>
>>>> In version 1.4, the feature that excites me the most is the plugin 
>>>> system. I see it as a way to foster innovation on CouchDB, letting 
>>>> people
>>>> test unstable features, without having to weaken the core of CouchDB.
>>>>
>>>> However, I haven't found much on the Web about what can be done 
>>>> exactly
>>>> as a plugin, and how difficult it is to turn a "feature hidden in some
>>>> developer’s git repository" into a plugin.
>>>>
>>>> As an example of a long forgotten (yet needed) feature, let's take 
>>>> the LDAP authentication handler (
>>>> https://github.com/chao/couchdb/commits/ldap_auth). Could it be 
>>>> turned into
>>>> a plugin? Would it be easy?
>>>>
>>>>
>>>> Regards,
>>>>
>>>> Aurélien
>


Mime
View raw message