I agree that this wasn't very well described at first and I will attempt to do so better now...but this is not just a simple matter of documenting something that exists, but rather leading to SDK-level and server-level product enhancements as well as a comprehensive vision on how we want to provide this to customers. Either way, our customers are specifically asking for this information and we do not have it to provide them, so whatever form we decide to present it, it is still very much an open issues.
The ultimate goal is to point a user at a set of documentation that explains how they would programmatically setup and manage a Couchbase Server cluster. The reasons for this range from automating a production deployment to allowing developers to manipulate their own deployments without having to go into our UI. We do officially support the usage of each of the various API's below in whatever capacity and features that are available for them.
I can understand that this might not be fully under the control of the documentation team, but I would expect that they can make at least a skeleton of what information would need to be filled in and help own the process of filling it out. It's also certainly not on the critical path for 3.0, but in the same respect is relevant and missing for all versions of the software both past and future.
The below functionality would need to be documented for:
-Directly to the REST API
-From each SDK (not all SDK's currently provide all the functionality...I would expect separate enhancement requests to be created and prioritized accordingly)
The minimal functionality needing to be documented for each of the above is:
-Headless installation of one or more Couchbase Server nodes
-Setting of server quota
-Setting of admin username and password
-Adding node to cluster and rebalancing
-Applying and publishing design documents and views
This minimal set is what would be required for an environment to provide a "template" for the setup of Couchbase Server.
Nice-to-have functionality would be:
-Retrieving statistics and configuration information (cluster, buckets, XDCR)
-Configuring non-default disk paths for indexes and data directories
-Editing a bucket after it is created
-Deleting a bucket
-Removing nodes from a cluster
-Triggering failover of a node
-Configuring read-only user