Releases: raveljs/ravel
Releases · raveljs/ravel
Release 0.17.4
Fix for #133
Release 0.17.3
Loosening restrictions on (optional) hiredis version, to increase compatibility with node versions as 6.x.x+ is developed.
Release 0.17.2
Release 0.17.1
Fixing critical bug in passport_init
Release 0.17.0
- adding a few properties to
AuthenticationProvider
superclass
Release 0.16.0
- Heavy focus on documentation improvements. README is now comprehensive. API docs are now hosted at http://raveljs.github.io/docs/latest/.
- Refactoring of
DatabaseProvider
andAuthenticationProvider
to simplify development process for Ravel plugin developers. There are minor changes on the user-side, which will be reflected in updates to the READMEs for currentDatabaseProvider
s andAuthenticationProvider
s in their corresponding 0.16.x releases. - Added a new lifecycle decorator
@koaconfig
for configuring the underlying koa app in ways which cannot be accomplished through Ravel. Generally not meant to be used, but should be available just in case. hiredis
is now an optional dependency, and can be installed alongside Ravel if desired.- Barring any further bugfixes or minor tweaks, this release will likely lead directly into 1.0.0.
Release 0.15.0
Critical API refactoring before 1.0 release. There are several (minor) API-breaking changes in this release:
- Resources and Routes previously offered REST-oriented response middleware via
@before('respond')
. This has now been made smarter and enabled by default. Please eliminate any instances of@before('respond')
in your code. - Resources and Routes previously offered auth-oriented middleware via
@before('authorize')
and@before('authorizeRedirect')
. These have been merged and migrated into a single, configurable decorator@authenticate
.@before('authorize')
simply becomes@authenticate
and@before(authorizeRedirect)
becomes@authenticate({redirect:true})
.@authorize
is available asRoutes.authorize
orResource.authorize
. - Resources and Routes previously offered database-oriented transaction middleware via
@before('transaction')
. This has been deprecated in favour of a new decorator@transaction
. Simply replace all instances of@before('transaction')
with@transaction
to replicate the same behaviour or, for more control, specifying exactly which connections to open is supported via@transaction('mysql')
or the like (use the name of the provider).@transaction
is available asRoutes.transaction
orResource.transaction
. Ravel.Error
subclasses should no longer supplyconstructor
tosuper()
(this parameter was completely unused). Rather, they should callsuper(msg, code)
instead.- The
@authconfig
Module
API has been significantly refactored to bring it back in line with passport.js naming conventions.getUserById
is nowdeserializeUser
,getOrCreateUserByProfile
is nowdeserializeOrCreateUser
, andverifyCredentials
is nowverify
. Additionally, serialization is now customizable, so you will also need to add aserializeUser(profile)
function which returns aPromise
resolving withprofile.id
or another serialization scheme. It is now up to you how you choose to uniquely identify user objects and what you choose to store in the user session. - To make it easier for
@authconfig
modules to content with multiple authentication methods in a single app,verify()
now receives the name of the relevantAuthenticationProvider
as its first argument. AuthorizationProvider
is nowAuthenticationProvider
, andapp.get('authorization providers')
is nowapp.get('authentication providers')
to reduce confusion. Authentication provider packages will need updating.
Release 0.14.2
Better logging for uncaught errors within ES6 Promises
Release 0.14.1
Changing koa session cookies back to httpOnly. Switch was made in error.
Release 0.14.0
Two major breaking changes in this release:
Ravel#registerSimpleParameter
is nowRavel#registerParameter
- Transaction functionality now supports the opening and closing of connections to specific database providers, rather than all of them every time. This will improve efficiency in applications connecting to several different databases. Examples of change are below:
before:
const before = Resource.before;
class MyResource extends Resource {
...
@before('transaction')
getAll(ctx) {
...
}
}
after:
const transaction = Resource.transaction;
class MyResource extends Resource {
...
// open all connections
@transaction()
getAll(ctx) {
...
}
// open some connections
@transaction('mysql', 'rethinkdb')
get(ctx) {
...
}
}