Skip to main content

CI codecov npm version Commitizen friendly License semantic-release

Introduction

Ottoman is an ODM built for Couchbase and Node.js.

Ottoman's goal is to provide a better development experience while using Couchbase, bringing to developers a reliable tool to build systems that are easy to design, maintain, and scale.

Installation​

npm install ottoman

That's it, you are ready to use Ottoman.

Dependencies Matrix​

Supported version are:

OttomanNodejsCouchbase SDKCouchbase Server
^2.3.0^12.0.0^4.4.6^7.2.0

Notice: make sure you are using supported versions

Getting started​

const { connect, model, start, close } = require('ottoman');

const main = async () => {
await connect("couchbase://localhost/travel-sample@admin:password");

const User = model('User', { name: String });

const user = new User({ name: 'Jane Doe' });

await start();

await user.save();
console.log('Nice Job!');

await close();
}

main();

You should see results similar to the following:

Nice Job!
Note

If you are using the legacy version of Ottoman, check out the V1 docs.

Ottoman v2 main goals​

  • To add support to Couchbase SDK 3.
  • To add typescript support.
  • To have a powerful query builder built-in.
  • To allow adding indexes to improve queries performance.
  • To have extendable Schemas using statics, methods, hooks.
  • To have Pluggable Schemas.

Documentation​

Check out our examples and docs for typescript and javascript implementation.

Questions​

For questions and support please use the official forum or contact community. Please make sure to read the Issue Reporting Checklist before opening an issue.

Changelog​

Detailed changes for each release are documented in the release notes.

Stay In Touch​

Contributions​

Thank you to all the people who already contributed to Couchbase Ottoman!

Guide for Developers​

  1. Install Couchbase Server Using Docker.
Tip

Check results on http://localhost:8091/ couchbase web client.

  1. Get the repo and install dependencies
$ git clone https://github.com/couchbaselabs/node-ottoman.git
$ cd node-ottoman
$ yarn install
  1. Available scripts
$ yarn dev
$ yarn build
$ yarn lint
$ yarn test
$ yarn test --coverage
$ yarn docs
$ yarn docs:dev

Deploying Ottoman to NPM​

  • Pull master branch from repo
  • yarn install
  • ensure version number is bumped
  • yarn build
  • yarn is:ready

Publishing to NPM​

When publishing a new package to NPM, please follow the following steps:

  • git pull (master branch)
  • update the package.json file w/ new version
  • yarn install && yarn build
  • yarn test:legacy (Use test:legacy Until CB 7 Release)
  • yarn pack (ensure package is packing as intended)
  • npm publish (--tag alpha or --tag beta)
  • push changes to package.json file w/ new version
  • deploy docs *if required

Once package is published, *update the docs:

  • yarn docs:dev (preview site)
  • yarn docs (generate docs directory)
  • copy files in docs/.vuepress/dist to ottomanjs-site
  • ensure CNAME file is correct
  • git push changes to ottomanjs-site

License​

© Copyright 2021 Couchbase Inc.

Licensed under the Apache License, Version 2.0. See the Apache 2.0 license.