Quail is a Node.js framework that generates a MongoDB REST API from models and controllers, inspired by Sails.js. Version 1.1.27 provides automatic CRUD blueprints for any model, protected by an ACL system and JWT authentication. It also includes rate limiting via express-brute and support for embedded documents. Unlike Sails, Quail uses ACL for route management instead of a separate policy system, and it enforces authentication by default, requiring explicit ACL entries to expose endpoints. The package is released as a CLI tool (quail-cli) and depends on MongoDB. However, development appears to be in maintenance mode with infrequent updates.
npm install quail-restNo compatibility data collected yet for this library.
Verified import paths — ran on the pinned version, not inferred.
Creates a new Quail project, adds a User model and controller, configures ACL to enable CRUD, then starts the server and creates a user.
Consider using express-rate-limit or similar actively maintained rate-limiting middleware if you fork the project.
Edit config/acl.js and add your controller actions under not_authenticated or authenticated as needed.
If upgrading from v1.0.x, update config/acl.js to use the new format: module.exports = { routes: { authenticated: {}, not_authenticated: {} } }.Use the command line: quail create myapp instead of calling package functions programmatically.
Ensure mongod is running, or export MONGODB_URL='mongodb://localhost:27017/mydb'
Change port in config/env/development.js or kill the process using port 3000.
Start MongoDB: mongod (or use mongosh).
Run 'quail add-controller user' to create controller for User model.
Check that you created a model: quail add-model user (note: creates User model). Controller must match model name case-sensitively.