[ https://issues.apache.org/jira/browse/COUCHDB-2541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14282693#comment-14282693 ]
Alexander Shorin commented on COUCHDB-2541: ------------------------------------------- I propose for us to have such and ships with our releases. Don't have such, but may be worth to write a one. This is very creative issue with a lot of possible solutions and fun. There are actually a lot of couchdb cli tools over github: in nodejs, ruby, python...dozens of them. They all shares more or less the same issues: - Attempt to provide console interface as a mirror of the HTTP API. That's not a good since our HTTP API is simple enough (or, if not, it should be) to use curl/httpie etc. console tools to work with it; - Lack of support or outdated; - Different target audience. Such tool should focus on CouchDB operators goals and needs and care in first place about support, maintenance and health diagnostic; - Uncontrolled deps. For instance, my formerly loved [couchup|https://github.com/sreeix/couchup] brings to you full featured ruby couchdb client and iterative json parser which you have to compile from C; - No one made in Erlang. I don't see any existed ones as candidates for contribution since this will eventually cause additional runtime dependency from some scripting language. Python has all known sad story. Ruby has a problems if you don't keep it up-to-dated. Node.js has now not an easy times. Only Perl seems to be a stable one (; However, this point is very arguable. `couchdb` script is one the made in bash? I don't feel that this will be a simple in implementation, but indeed it will be simple in realization (sorry Windows). > couchdbctl > ---------- > > Key: COUCHDB-2541 > URL: https://issues.apache.org/jira/browse/COUCHDB-2541 > Project: CouchDB > Issue Type: New Feature > Security Level: public(Regular issues) > Reporter: Alexander Shorin > > couchdbctl is CouchDB control service utility that aims to help users manage > and inspect their CouchDB instance, keeping it well and health. > Few ideas what it may do: > - register users with easy: > {code} > $ couchdbctl users add Jan > Password: > {code} > hides routines to create /_users/org.couchdb.users:Jan document with all > required fields; > - run service operations: > {code} > $ couchdbctl db compact > {code} > - connect to node and provide shell: > {code} > $ couchdbctl attach > {code} > - run security audit as like as > [audit-couchdb|https://github.com/iriscouch/audit_couchdb] or > [couchdb-auditor|https://github.com/kxepal/python-couchdb-auditor] does; > {code} > $ couchdbctl audit > {code} > - see erltop; > {code} > $ couchdbctl top > {code} > - monitor stats and active tasks in realtime; > - run replications with single command without worry about JSON and required > fields: > {code} > $ couchdbctl replicate foo http://example.com/bar --continuous --create-target > {code} > - check cluster health, add/remove nodes to it; > - explain errors in logs: > {code} > $ couchdbctl errors > [error] [<0.125.0>] {error_report,<0.30.0>, > {<0.125.0>,crash_report, > [[{initial_call,{couch_file,init,['Argument__1']}}, > {pid,<0.125.0>}, > {registered_name,[]}, > {error_info, > {exit, > {{badmatch,{error,eacces}}, > [{couch_file,init,1, > ... > eacess error - insufficient or invalid permissions, please verify that > couchdb user has all r permissions to the following paths: > /var/lib/couchdb - read+write > /var/log/couchdb - read+write > /etc/couchdb - read+write > /usr/lib64/couchdb/erlang/lib/couch-2.0.0/priv/lib - read > {code} > And so on and so forth. It's easy to find how this utility may improve users > experience with CouchDB by simplifying common maintaining routes. -- This message was sent by Atlassian JIRA (v6.3.4#6332)