{"id":23577531,"url":"https://github.com/couchbaselabs/node-ottoman","last_synced_at":"2025-05-15T01:08:16.269Z","repository":{"id":11776784,"uuid":"14315304","full_name":"couchbaselabs/node-ottoman","owner":"couchbaselabs","description":"Node.js ODM for Couchbase","archived":false,"fork":false,"pushed_at":"2024-12-06T07:57:41.000Z","size":23336,"stargazers_count":289,"open_issues_count":17,"forks_count":98,"subscribers_count":127,"default_branch":"master","last_synced_at":"2025-04-13T23:53:47.015Z","etag":null,"topics":["couchbase","nodejs","nosql-database","typescript"],"latest_commit_sha":null,"homepage":"https://ottomanjs.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/couchbaselabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-11-11T22:23:29.000Z","updated_at":"2025-03-11T16:07:54.000Z","dependencies_parsed_at":"2024-06-10T20:23:14.705Z","dependency_job_id":"c0b98496-7541-460a-bcd8-596f7f3a8f9e","html_url":"https://github.com/couchbaselabs/node-ottoman","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbaselabs%2Fnode-ottoman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbaselabs%2Fnode-ottoman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbaselabs%2Fnode-ottoman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbaselabs%2Fnode-ottoman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/couchbaselabs","download_url":"https://codeload.github.com/couchbaselabs/node-ottoman/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254154732,"owners_count":22023695,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["couchbase","nodejs","nosql-database","typescript"],"created_at":"2024-12-26T22:29:27.343Z","updated_at":"2025-05-15T01:08:11.260Z","avatar_url":"https://github.com/couchbaselabs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![CI](https://github.com/couchbaselabs/node-ottoman/workflows/CI/badge.svg)\n[![codecov](https://codecov.io/gh/couchbaselabs/node-ottoman/branch/master/graph/badge.svg)](https://codecov.io/gh/couchbaselabs/node-ottoman)\n[![npm version](https://badge.fury.io/js/ottoman.svg)](https://badge.fury.io/js/ottoman)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)\n\n# Introduction\n\nOttoman is an ODM built for Couchbase and Node.js.\n\nOttoman's goal is to provide a better development experience while using Couchbase,\nbringing to developers a reliable tool to build systems that are easy to design, maintain, and scale.\n\n## Installation\n\n```\nnpm install ottoman\n```\n\nThat's it, you are ready to use Ottoman.\n\n### Dependencies Matrix\n\nSupported version are:\n\n| Ottoman | Nodejs  | Couchbase SDK | Couchbase Server |\n|---------|---------|---------------|------------------|\n| ^2.0.0  | ^12.0.0 | ^4.2.0        | ^7.2.0           |\n\n***Notice: make sure you are using supported versions***\n\n## Getting started\n\n```javascript\nconst { connect, model, start, close } = require('ottoman');\n\nconst main = async () =\u003e {\n  await connect(\"couchbase://localhost/travel-sample@admin:password\");\n\n  const User = model('User', { name: String });\n\n  const user = new User({ name: 'Jane Doe' });\n\n  await start();\n\n  await user.save();\n  console.log('Nice Job!');\n\n  await close();\n}\n\nmain();\n```\n\nYou should see results similar to the following:\n\n```\nNice Job!\n```\n\n::: tip Note\nIf you are using the legacy version of Ottoman, check out the [V1 docs](https://v1.ottomanjs.com/).\n:::\n\n\n## Ottoman v2 main goals\n\n- To add support to Couchbase SDK 3.x and above\n- To add typescript support.\n- To have a powerful query builder built-in.\n- To allow adding indexes to improve queries performance.\n- To have extendable Schemas using statics, methods, hooks.\n- To have Pluggable Schemas.\n\n## Documentation\n\nCheck out our [examples](https://ottomanjs.com/docs/first-app) and [docs](https://ottomanjs.com/docs/quick-start) for typescript and javascript implementation.\n\n## Questions\n\nFor questions and support please use [the official forum](https://forums.couchbase.com/) or [contact community](http://couchbase.com/communities/nodejs).\nPlease make sure to read the [Issue Reporting Checklist](https://github.com/couchbaselabs/node-ottoman/issues) before opening an issue.\n\n## Changelog\n\nDetailed changes for each release are documented in the [release notes](https://docs.couchbase.com/nodejs-sdk/current/project-docs/ottoman-release-notes.html).\n\n## Stay In Touch\n\n- [Blog](https://blog.couchbase.com/?s=ottoman)\n\n## Contributions\n\nThank you to all the people who already contributed to Couchbase Ottoman!\n\n### Guide for Developers\n\n1. [Install Couchbase Server Using Docker](https://docs.couchbase.com/server/current/install/getting-started-docker.html).\n\n::: tip Note\nCheck results on [http://localhost:8091/](http://localhost:8091/) couchbase web client.\n:::\n\n\n2. Get the repo and install dependencies\n\n```\n$ git clone https://github.com/couchbaselabs/node-ottoman.git\n$ cd node-ottoman\n$ yarn install\n```\n\n3. Available scripts\n\n```\n$ yarn dev\n$ yarn build\n$ yarn lint\n$ yarn test\n$ yarn test --coverage\n$ yarn docs\n$ yarn docs:dev\n```\n\n## Deploying Ottoman to NPM\n\n- Pull master branch from repo\n- yarn install\n- ensure version number is bumped\n- yarn build\n- yarn is:ready\n\n## Publishing to NPM\n\nWhen publishing a new package to NPM, please follow the following steps:\n\n- git pull (master branch)\n- update the `package.json` file w/ new version\n- yarn install \u0026\u0026 yarn build\n- yarn test:legacy (Use `test:legacy` Until CB 7 Release)\n- yarn pack (ensure package is packing as intended)\n- npm publish (--tag alpha or --tag beta)\n- push changes to `package.json` file w/ new version\n- deploy docs *if required\n\nOnce package is published, *update the docs:\n\n- yarn docs:dev (preview site)\n- yarn docs (generate docs directory)\n- copy files in `docs/.vuepress/dist` to ottomanjs-site\n- ensure CNAME file is correct\n- git push changes to ottomanjs-site\n\n## License\n\n© Copyright 2021 Couchbase Inc.\n\nLicensed under the Apache License, Version 2.0.\nSee [the Apache 2.0 license](http://www.apache.org/licenses/LICENSE-2.0).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcouchbaselabs%2Fnode-ottoman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcouchbaselabs%2Fnode-ottoman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcouchbaselabs%2Fnode-ottoman/lists"}