1.0.0
Sails v1.0 comes with a host of new features and improvements as well as some breaking changes to previous versions. Please see the migration guide if you're upgrading from a previous version of Sails!
- [ENHANCEMENT] Introduce Actions 2 -- ability to declare actions as Machines in individual files. See the Actions and controllers and Action target syntax docs for more info.
- [ENHANCEMENT] Introduce Helpers -- the successor to services. See the Helpers docs for more info.
- [BUGFIX] Improve path resolution in moduleloader for Windows f13bb77
- [BUGFIX] Fix output for virtual requests that have non 2xx/3xx status codes and no body 525c7c5
- [REMOVAL] Remove support for (undocumented) "action/model" route syntax for binding routes to blueprint actions
- [BUGFIX] Fix issue causing Sails to sometimes crash when using Redis sessions if it receives a request after the Redis server has unexpectedly disconnected 3f29dce
- [ENHANCEMENT] Add
sails.getActions()
method to return a dictionary of registered Sails actions 5598179 - [ENHANCEMENT] Add
sails.registerAction()
method to programmatically register a Sails action dd9af88 - [ENHANCEMENT] Add
exposeLocalsToBrowser
local in all views - [ENHANCEMENT] Add
sails.registerActionMiddleware()
to programmatically register middleware to be applied to one or more actions 2c281d5 - [ENHANCEMENT] Allow explicitly defined actions in Sails config via
sails.config.controllers.moduleDefinitions
3b264fa, 4ad23dd - [BUGFIX] Default
req.options.populate
to the value of `sails.config.blueprints.populate d8f4df8 - [ENHANCEMENT] Add
sails.reloadActions()
method to reload actions from disk / config while an app is running df2ee46 - [ENHANCEMENT] Allow loaded modules (actions, controllers, policies, models, etc.) to have any file extension besides
.md
and .txt
(which are ignored). Direct support for anything besides plain Javascript has been removed; variants like CoffeeScript and TypeScript can be used by registering them in the app.js
file. See the Using CoffeeScript tutorial for an example. - [REMOVAL] Remove support for custom blueprints. These can easily be replaced by regular actions. See the migration guide for more info. 0fd4362
- [REMOVAL] Remove support for blueprint route target syntax 0fd4362
- [REMOVAL] Remove deprecated
dontFlattenConfig
option 56c9b5b - [ENHANCEMENT] Humanize config vars that are loaded from the environment 7eb6af6
- [REMOVAL] Remove most Resourceful PubSub methods, leaving just
.subscribe()
, .unsubscribe()
and .publish()
. c981c6e - [ENHANCEMENT] Expose Sails generator for programmatic use e008a6b
- [UPGRADE] Upgrade to Express 4.14.0. Thanks to josebaseba for his help in the transition to Express 4!
- [ENHANCEMENT] Improved CORS support. See the migration guide and CORS docs for more info.
- [REMOVAL] Removed
req.validate()
functionality. Use Actions 2 instead, which automatically validate parameters. 68fa8ff - [ENHANCEMENT] Updated syntax for policies. See the migration guide and the policies documentation for more details. 66d2b2d
- [ENHANCEMENT] Automatically sort routes to avoid wildcards swallowing static routes. See the sort-route-addresses module for more info on route sorting.
- [ENHANCEMENT] Combine CORS and CSRF hooks into new "Security" hook. See the migration guide for more details.
- [ENHANCEMENT] Update CSRF configuration and replace
/csrfToken
route with an action that can be bound to any route. See the migration guide and CSRF docs for more info. 7328c05 - [REMOVAL]
res.created()
will no longer be included by default. 7988866 - [BUGFIX] Ignore default installed hooks when searching
node_modules
for hooks. #3855. - [SECURITY] Don't serve CSRF token via websockets 50b0684
- [INTERNAL] Bring EJS layout code into Sails rather than relying on the unmaintained
ejs-locals
package d3ba9bd - [REMOVAL] Remove handlebars dependency and support for layouts in view engines other than EJS. See the migration guide for more details. ae7e656, 9f1f2fb
- [ENHANCEMENT] Don't set NODE_ENV based on Sails environment, except in special circumstances. See the migration guide for more details. cf20d07, abbf1f7
- [ENHANCEMENT] Make session hook
routesDisabled
use Sails route address syntax (including regular expression syntax) aba8f2f - [BUGFIX] Supply
res.locals._csrf
to all routes when CSRF protection is enabled. Fixes #3865 - [REMOVAL] Remove Consolidate dependency -- view template engines are now configurable via the
sails.config.views.getRenderFn
setting. See the migration guide for more details. 6316452 - [REMOVAL] Remove deprecated RPS "firehose" 86b88
- [REMOVAL] Remove deprecated 0.9.x socket support 6464d8f
- [BUGFIX] Update and standardize precedence of route param, query and body in
req.param()
and req.allParams()
820d1eb - [REMOVAL] Remove JSONP support from blueprints. CORS is fairly ubiquitous now. effd6c3
- [REMOVAL] Remove deprecated
sails.getBaseUrl
method. d0fe4ff - [INTERNAL] Remove
sails-util
1fee468 - [INTERNAL] Remove grunt, sockets and ORM hooks 48750d7, 07c59ce
- [REMOVAL] Remove deprecated
req.params.all()
method 9c6b217 - [BUGFIX] Correctly load custom adapters (stored in either
FooAdapter.js
files or in subfolders) #3884 - [INTERNAL] Add benchmarks 6b4ba32
- [ENHANCEMENT] Requests for assets will skip running session middleware by default 3c5ddf7
- [ENHANCEMENT] Support
routesDisabled
for sessions in virtual requests a00cf78 - [INTERNAL] Standardize log level for warnings to always use "debug" except for warning related to security.
- [ENHANCEMENT] Add 404, 500 and
startRequestTimer
to middleware order automatically (and remove them from default sails.config.http.middleware.order) a22e4e7, f788e39 - [REMOVAL] Remove the
handleBodyParserError
middleware from the stack, use the onBodyParserError
option in Skipper instead. f788e39 - [BUGFIX] Take locale into account in views.render() #3833
- [ENHANCEMENT] Allow session adapter to be required directly 039d245
- [REMOVAL] Remove support for Express 3 session adapters 628a55b
- [INTERNAL] Switch from i18n to i18n-2. See the migration guide for more details. 4a90de2
- [BUGFIX] Fail to lift Sails if
connect-redis
can't initialize. #3590 - [REMOVAL] Remove
method-override
from default middleware list. 575c4a3 - [BUGFIX] Use _.clone() instead of _.cloneDeep() for config overrides, to preserve things like Redis clients passed into config. 1b970b6
- [ENHANCEMENT] Update
sails.config.globals
functionality. See the migration guide for more details. 44c6d9b - [ENHANCEMENT] Add
sails.config.session.onDisconnect
and sails.config.session.onReconnect
functions 1e55c63 - [ENHANCEMENT] Add
sails.config.sockets.adapterOptions.onDisconnect
and sails.config.sockets.adapterOptions.onReconnect
functions 3a25971 - [DEPRECATION] Deprecate
.jsonx()
cdcc3c0 - [INTERNAL] Update default responses 510504e
- [REMOVAL] Remove update-via-POST blueprint route 5c3814d
- [INTERNAL] Disconnect Redis session client when Sails is lowering 80fb71b
- [UPGRADE] Upgrade EJS dependency to v2.5.3 6bfad70
- [REMOVAL] Removed deprecated
connect-flash
middleware c5c4900 - [REMOVAL] Removed 16 unused dependencies (see full list here)
Also see the Waterline changelog.