A thin layer acting as glue for Dogwater and Bedwetter. It will expose a RESTful CRUD interface based on your models.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



A hapi plugin that will expose a RESTful CRUD interface using your Dogwater models and Bedwetter's route-handler.

E.g.: If you've defined a Person model through Dogwater, using this plugin will automatically expose the following routes:

GET /person 			List all Persons
GET /person/{id}		Get one Person by id
POST /person 			Create a new Person
POST /person/{id}		Update a Person by id
PATCH /person/{id}		Update a Person by id
DELETE /person/{id}		Delete a Person by id


This plugin uses ES6 features and it works like charm with iojs > 2.0. If you are planing to use it with non ES6-enabled engines, consider using Babel.js.

npm install --save crudy

Don't forget that hapi, Dogwater and Bedwetter should be already dependencies of your project, defined in the package.json file. These are in facts peer-dependencies.


This module can be used as common Hapi.js plug-in, configuring it in the plugin section of the manifest.json of your application:

	"crudy": {
		"person": {
			"config": {
				"tags": ["api"],
				"notes": "Notes...",
				"handler": {
					"bedwetter": {
						"prefix": "/api/v1"
			"actions": {
				"find": true,
				"findOne": true

or using the server.register() method and passing this object as options.

Note that you can pass routes-specific options to the plug-in: prefixes, notes, tags...

Using the actions section you can define which actions should be provided by crudy.

Possible actions are:

  • find
  • findOne
  • create
  • update
  • destroy

If no configuration is passed to the plugin, it will expose the complete CRUD interface, as in the example above.


npm test


Contributions are welcome. Send me your pull-request or open an issue.


  • Per-action options (Auth, ACL, Prefix, ...)
  • Use Joi for validation in order to unlock Hapi-compliant documentation (lout/swagger)
  • Better Unit testing
  • Test coverage