Return forbidden error if encountered on any shard

This commit fixes an issue which caused HTTP 500 errors to be
returned when an authorized user attempted to access a database
that they did not have permission to access, when cassim is
disabled.

Instead of returning an internal server error once all shards
have failed to open we add a receive clause so that we throw
a forbidden error if one is encountered on any shard. This is the
same approach we already take for unauthorized errors.

Closes COUCHDB-2948

This closes #38
1 file changed
tree: 4b2710221f40a33efa3f8a11ec41f581c68cc39c
  1. include/
  2. priv/
  3. src/
  4. .travis.yml
  5. LICENSE
  6. README.md
  7. rebar.config
README.md

fabric

Fabric is a collection of proxy functions for CouchDB operations in a cluster. These functions are used in CouchDB as the remote procedure endpoints on each of the cluster nodes.

For example, creating a database is a straightforward task in CouchDB 1.x, but for a clustered CouchDB, each node that will store a shard for the database needs to receive and execute a fabric function. The node handling the request also needs to compile the results from each of the nodes and respond accordingly to the client.

Fabric is used in conjunction with ‘Rexi’ which is also an application within CouchDB.

Getting Started

Fabric requires R13B03 or higher and can be built with rebar.

License

Apache 2.0