https://github.com/hyper63/hyper-adapter-couchdb
CouchDB adapter for Hyper Data port
https://github.com/hyper63/hyper-adapter-couchdb
Last synced: about 1 year ago
JSON representation
CouchDB adapter for Hyper Data port
- Host: GitHub
- URL: https://github.com/hyper63/hyper-adapter-couchdb
- Owner: hyper63
- License: apache-2.0
- Created: 2021-06-17T16:32:31.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2023-11-28T23:42:04.000Z (over 2 years ago)
- Last Synced: 2025-01-13T05:41:39.985Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 192 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
hyper-adapter-couchdb
A Data port adapter that uses CouchDB in the hyper service framework
---
- [Table of Contents](#table-of-contents)
- [Getting Started](#getting-started)
- [Credentials from ENV VARS](#credentials-from-env-vars)
- [Installation](#installation)
- [Features](#features)
- [Methods](#methods)
- [Contributing](#contributing)
- [Testing](#testing)
- [Setup a standalone couchdb server using docker](#setup-a-standalone-couchdb-server-using-docker)
- [License](#license)
## Getting Started
`hyper.config.js`
```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](https://nest.land/package/hyper-adapter-couchdb)
deps.js
```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](https://docs.hyper.io/oss/data-api) adapter
See the full port [here](https://nest.land/package/hyper-port-data)
## Contributing
Contributions are welcome! See the hyper
[contribution guide](https://docs.hyper.io/contributing-to-hyper)
## 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
```sh
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