Design, develop and organize code

§Plugins

Seneca plugins enable you to build awesome microservices, incredibly fast. Some plugins are maintained in-house, while others are provided by the community.

On this page, we provide an npm link and total downloads per month for any plugins we find or publish ourselves, so you only need to look in one place.

§Core plugins

Seneca includes a number of core plugins by default. It does this in order to ensure that you can create a working microservice out of the box.

§Web

version downloads

Provides a web service API routing layer for Seneca action patterns. It translates HTTP requests with specific URL routes into action pattern calls. It’s a built-in dependency of the Seneca module, so you don’t need to include it manually.

§Transport

version downloads

Provides the HTTP and TCP transport channels for microservice messages. It’s a *built-in dependency of the Seneca module, so you don’t need to include it manually.

§Feature plugins

Use these plugins to kick-start your application development. They provide the basic business logic for many common use cases, like user accounts, shopping carts and administration. You can customize their behavior by overriding their actions.

§User

version downloads

Provides business logic for complete user management, such as login, logout, registration and password handling, using Seneca’s expressive action-based API. This module complements Auth (below).

§Auth

version downloads

Provides the business logic for authentication via HTTP. Adds the ability to set up simple win/fail-style conditions. The User plugin complements this one nicely.

§JSON REST API

version downloads

Provides the ability to expose your data entities as a REST API. Works via pattern matching actions to HTTP verbs. Removes the need for additional plumbing to expose entities as resources.

§Data editor

version downloads

Provides an administrative interface for editing all the data in your system. This plugin can be used alone, but also pairs well with seneca-admin. Inspired by the Django admin interface.

§Admin

version downloads

Provides an administration console that returns interesting data about your microservice, including streaming log, status summaries and action patterns. Can be locked to admin for safety purposes.

§Email

version downloads

Provides email delivery business logic, including the ability to have templates. Works with many different providers. Works well with the User plugin for handling things like welcome mails and password reminders.

§Account

version downloads

Provides a user account system for managing multiple users in an account. Handles account creation and management, and user management within a given account. The User plugin compliments this one nicely.

§Project

version downloads

Provides all the actions needed to manage a project. Use this plugin to build out microservices that have the concepts of ownership, grouping, and starting, stopping and loading of some type of work. Works well with the Accounts plugin.

§Perm

version downloads

Provides a permissions system for actions. This plugin works by wrapping existing actions with a permission checking action. If the permission test passes, the parent action can proceed. If not, a permission error is generated.

§VCache

version downloads

Provides a data caching mechanism for data entities. Using this module will give your Seneca app a big performance boost. The caching mechanism goes beyond simple key-based caching using memcached. In addition, a smaller “hot” cache is maintained within the Node.js process. Data entities are given transient version numbers and these are used to synchronize the hot cache with memcached.

§Cart

version downloads

Provides complete shopping cart management business logic. This plugin works really well with the built-in data entity API. Adds actions for adding, removing and editing items in a container (cart).

§Pay

version downloads

Provides all the necessary components to build payments into your microservice. Includes support for Paypal express payments in the box. Makes setting up payment redirects a breeze.

§CMS

version downloads

Provides a simple content management system. Use it to create a more specialized system that fits your needs. Handles the management of a system’s unique entities in a more coarse fashion than using the Entity API directly (which is used internally by this plugin).

§Settings

version downloads

Rich settings for user accounts. Can handle many different types of values including ratings, toggles, colors and ranges.

§Storage plugins

Storage plugins work with our built-in Entity API. Storage plugins can be used on a per-entity basis, so feel free to mix and match. Each plugin is named after the storage it supports, making it simple to find the right solution.

§Mongo store

version downloads

§Postgres store

version downloads

§MySQL store

version downloads

§Level store

version downloads

§JSON file store

version downloads

§Redis store

version downloads

§Dynamo store

version downloads

§HANA store

version downloads

§SQLite store

version downloads

§Riak store

version downloads

§Cassandra store

version downloads

§CouchDB store

version downloads

§SimpleDB store

version downloads

§Transport plugins

Seneca supports many different transports. Use the one that fits best with your project right now; swap it out if you scale. Each plugin is named after the transport it supports, making it easy to find the right solution.

§Transport

version downloads

§RabbitMQ

version downloads

§Kafka

version downloads

§Redis

version downloads

§Load-Balance

version downloads

§Beanstalk

version downloads

§Queue

version downloads

§ActiveMQ

version downloads

§AMQP

version downloads

§Redis Queue

version downloads

§NATS

version downloads

§NSQ

version downloads

§Stomp

version downloads

§Redis Sync

version downloads

§MQ Light

version downloads

§Got a plugin to share?

Our docs are open source. Simply fork the senecajs.org repository, add your plugin to the appropriate section, and send us on a pull request - that way, other people can find your awesome plugin easily.

Issues? From spelling errors to broken tutorials and everything in between, report them here.