[ 
https://issues.apache.org/jira/browse/COUCHDB-835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jason Smith updated COUCHDB-835:
--------------------------------

    Attachment: 0003-Support-a-whitelist-for-modifying-the-config-via-HTT.patch

Patch 3: Whitelist sample implementation and unit tests

> Whitelisting which config variables may be changed via HTTP
> -----------------------------------------------------------
>
>                 Key: COUCHDB-835
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-835
>             Project: CouchDB
>          Issue Type: New Feature
>          Components: HTTP Interface
>    Affects Versions: 1.0
>         Environment: Linux, Erlang R13B03
>            Reporter: Jason Smith
>            Priority: Minor
>         Attachments: 
> 0001-Refactor-read-only-config-handlers-to-be-near-each-o.patch, 
> 0002-Refactor-PUT-and-DELETE-config-handlers-to-a-wrapper.patch, 
> 0003-Support-a-whitelist-for-modifying-the-config-via-HTT.patch, 
> 0004-Document-the-whitelist-process.patch
>
>
> A database rite of passage is partitioning responsibility into system 
> administrators and DBAs. CouchDB has reached this point. Congratulations!
> The _config API allows changing the .ini file completely over authenticated 
> HTTP, without requiring the CouchDB admin to log in to the server OS. 
> Unfortunately, some configuration settings are OS-oriented (http.port, 
> couchdb.view_index_dir); others are strictly database settings 
> (uuids.algorithm); and still others must be decided case-by-case (log.level, 
> couchdb.max_document_size).
> In short, CouchDB should support a whitelist, with which the system 
> administrator can specify which _config values are may be modified by the 
> DBA, and which are read-only.
> I propose that this whitelist is itself a config option, 
> httpd.config_whitelist. If it is undefined, there is no whitelist and no 
> change of behavior. If specified, the whitelist is an Erlang list of 2-tuples 
> of the format:
>     [{section1, key1}, {section2, key2}, {section_with_wildcard, "*"}, ...]
> When processing a PUT or DELETE, CouchDB confirms inclusion of the 
> section/key in the whitelist.
> I foresee two modes of operation:
> * DBA is top dog: The whitelist includes {httpd,config_whitelist} itself. 
> Thus the DBA may modified the list later over HTTP. The whitelist is just a 
> safeguard against accidental changes.
> * Sysadmin is top dog: The whitelist does not include 
> {httpd,config_whitelist}. The DBA is unable to change the list and may only 
> ask politely for updates to the policy.
> (In any case, you can always edit the .ini file and _restart from the server 
> OS.)

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

Reply via email to