Skip to content

hyper63/hyper-adapter-couchdb

Repository files navigation

hyper-adapter-couchdb

A Data port adapter that uses CouchDB in the hyper service framework

Nest Badge Test Current Version


Getting Started

hyper.config.js

import { default as couchdb } from 'https://x.nest.land/hyper-adapter-couchdb@VERSION/mod.js'

export default {
  app,
  adapter: [
    { port: 'data', plugins: [couchdb({ url: 'http://localhost:5984' })] },
  ],
}

The value of the connection url should be in the following format:

[protocol]://[key]:[secret]@[host]:[port]

When a new database is created, the following roles will be added to the security document:

  • db-admin
  • db-user

Using this adapter, you will not have any access to the _users table or the _replicator table

Credentials from ENV VARS

When using this adapter, you will need to configure three environment variables, one for the server-admin credentials, so that the adapter can create/delete databases, and one for the db-admin user so a search index can be created. And finally one for the db-user user to manage documents.

.env

DATA_SVR_ADMIN=XXX_URL
DATA_DB_ADMIN=XXX_URL
DATA_DB_USER=XXX_URL

Installation

This is a Deno module available to import from nest.land

deps.js

export { default as couchdb } from 'https://x.nest.land/hyper-adapter-couchdb@VERSION/mod.js'

Features

  • Create a CouchDB datastore
  • Remove a CouchDB datastore
  • Create a document in a CouchDB datastore
  • Retrieve a document in a CouchDB datastore
  • Update a document in a CouchDB datastore
  • Remove a document from a CouchDB datastore
  • List documents in a CouchDB datastore
  • Query documents in a CouchDB datastore
  • Index documents in a CouchDB datastore
  • Bulk create documents in a CouchDB datastore

Methods

This adapter fully implements the Data port and can be used as the hyper Data service adapter

See the full port here

Contributing

Contributions are welcome! See the hyper contribution guide

Testing

./scripts/test.sh

To lint, check formatting, and run unit tests

Setup a standalone couchdb server using docker

Dockerfile

FROM couchdb:3.1.1

RUN echo '[couchdb]' > /opt/couchdb/etc/local.d/10-single-node.ini
RUN echo 'single_node=true' >> /opt/couchdb/etc/local.d/10-single-node.ini

Then run

docker build -t single-couchdb:1 .
docker run -d -p 5984:5984 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password --name couch single-couchdb:1

License

Apache-2.0