New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

serverbone

Package Overview
Dependencies
Maintainers
4
Versions
126
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

serverbone

Serverside additions to backbone to serve collections and models as express apps

  • 0.8.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
147
increased by673.68%
Maintainers
4
Weekly downloads
 
Created
Source

Serverbone TravisCI Coverage Status

Introduction

Serverbone.js is a server-side Rest API framework that supports multiple data stores on Node.js. Especially, you can combine multiple data stores such as a document store (e.g. MongoDB using backbone-db-mongodb), and a key-value store for indexes (e.g. Redis using backbone-db-redis). The project is based on the following modules:

The goals of the framework are:

  • Define models using JSON configuration (based on JSON Schema, implemented by backbone-blueprint)
  • Mount models & collections CRUD easily into HTTP verbs by using Resource. E.g. HTTP POST should call Model.create.
  • Provide basis for implementing resource level fine grained ACL

Examples

Components

Models

BaseModel

BaseModel extends backbone-blueprint's ValidatingModel providing e.g. Model lifecycle conventions, ACL related functionality & CRUD helpers.

FlatModel

Model for storing strings/numbers. Meant to be used together with ValueIndexMixin.

JSONModel

Model for storing raw JSON data in the id field. Meant to be used together /w JSONIndexMixin.

Collections

BaseCollection

Base Collection for most other Collections

IndexCollection

Deprecated

IndexMixin

Mixin for creating collections, that can have their indexes stored in other databases from the main db of the Collection.

JSONIndexMixin

Mixin for Collections that store JSON data in model's id field.

MultiIndexMixin

Mixin for reading values from multiple indexes, i.e. joins multiple Redis sets.

ValueIndexMixin

Mixin for Collections that store plain strings into Redis sets.

ACL

ACL permissions are defined in the Model's schema as role: [actions]. Permissions may be defined in Model level (which applies to all properties) or per property (which overrides Model level permissions). For example:

permissions: {
	admin: ['*'],
	owner: ['update', 'destroy'],
	'*': ['read', 'create']
}

This would give admin role permission to all verbs. owner can update & destroy Model. Finally world (indicated by *) can read models & create new Model instances. How roles are defined is up to the application to implement. You should override Model's getRoles for implementing custom functionality.

Resource

Provides mapping Model/Collection CRUD operation into HTTP verbs, thus adding routes into express application. By default the following routes are added:

GET /

Maps to Collection.fetch.

POST /

Maps to Collection.post (creates a new model).

GET /:id

Maps to Model.fetch (fetches model with given id).

PUT /:id

Maps to Model.update (updates model with given id).

DELETE /:id

Maps to Model.delete (delete model with given id).

Utils

async

Helpers for running async functions.

response_utils

Handles sending JSON/error responses.

How to develop

Testing

make test

View code coverage reports

make check-coverage
open coverage/lcov-report/index.html

Keywords

FAQs

Package last updated on 02 Nov 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc