Changelog
Read what has changed in wolkenkit.
2.0.0
The following significant changes have been made since wolkenkit 1.2.0
:
- [BREAKING] Updated APIs to use
async
andawait
- JavaScript code is often asynchronous. In the past, you had to use callbacks for this. Now wolkenkit supports the new
async
andawait
keywords, which allow you to write asynchronous code much more easily and legibly. This primarily affects defining commands in the write model, handling events in the read model, and reacting to events in flows. Additionally this affects writing command middleware and using services in general. See updating an application for details.
- JavaScript code is often asynchronous. In the past, you had to use callbacks for this. Now wolkenkit supports the new
- [BREAKING] Updated the wording of the APIs for read models and flows
- In the past, you had to provide a
when
block in read models and in flows. Unfortunately, the distinction was not very clear, and the behavior of these blocks was not consistent. In read models these blocks are now calledprojections
, in flows they are calledreactions
. This better describes what is actually happening. See updating an application for details.
- In the past, you had to provide a
- [BREAKING] Removed
<script>
tag support for the wolkenkit SDK- In older wolkenkit versions, you were able to integrate the wolkenkit SDK using either a
<script>
tag in an HTML file, or by using therequire
function. From now on, wolkenkit only supports the second option. While this works on Node.js out of the box, you have to use a bundler such as webpack when building an application for the browser. See connecting to an application for details.
- In older wolkenkit versions, you were able to integrate the wolkenkit SDK using either a
- Added support for installing wolkenkit using Vagrant
- So far, you had to setup Docker and Node.js before installing wolkenkit. Now there are ready-made virtual machines, available for VirtualBox and VMware, that you can run by installing using Vagrant.
- Added the option to set environment variables
- From time to time you want to configure an application at runtime, not at compile-time, e.g. to provide credentials to different environments. You can now set environment variables using an application's
package.json
file.
- From time to time you want to configure an application at runtime, not at compile-time, e.g. to provide credentials to different environments. You can now set environment variables using an application's
- Added a curated list of blog posts
- When getting started with wolkenkit, you may be interested in the thoughts and experiences of other people. That's why there now is a curated list of blog posts that deal with wolkenkit, DDD, event-sourcing and CQRS.
- Added a curated list of articles
- When getting started with wolkenkit, you may be interested in what IT magazines think and write about it. That's why there now is a curated list of articles that deal with wolkenkit, DDD, event-sourcing and CQRS.
- Added a
Local
authentication strategy for testing- Additionally to the OpenID Connect authentication strategy there is now a
Local
authentication strategy that you can use in tests as a custom identity provider. This way you can easily test with multiple identities.
- Additionally to the OpenID Connect authentication strategy there is now a
- Updated installation guide for Windows
- So far, you had to use Hyper-V and Docker Machine to setup wolkenkit on Windows. Now you only need Hyper-V which makes installing on Windows much easier. The installation instructions can be found at installing on Windows.
- Updated
wolkenkit init
to work in non-empty directories- It was not yet possible to run the
wolkenkit init
command in a non-empty directory, as this could lead to existing files being overwritten accidentally. Now there is the--force
flag to disable this check and overwrite any existing files.
- It was not yet possible to run the
- Improved compatibility with Internet Explorer 11
- The wolkenkit SDK now supports Internet Explorer 11 without requiring additional polyfills.
- Fixed OpenID Connect strict mode
- The OpenID Connect strict mode didn't work, because there was a problem in verifying the JWT's nonce. This has been fixed.
- Fixed
transferOwnership
andauthorize
commands- So far, it was possible to use the commands
transferOwnership
andauthorize
as constructor commands, i.e. to create new aggregates, although this didn't make sense. This has been fixed.
- So far, it was possible to use the commands
- Fixed replaying incompatible aggregates
- If you tried to replay an existing aggregate, but with the wrong aggregate type, the application crashed in an uncontrolled way. This has been fixed.
- Contributions by the community
For details on how to update to version 2.0.0
see updating the CLI and updating an application.
1.2.0
The following significant changes have been made since wolkenkit 1.1.0
:
- Updated wolkenkit to use Node.js
8.9.1
- Now that Node.js 8.x has become the new LTS version, wolkenkit now runs on Node.js
8.9.1
.
- Now that Node.js 8.x has become the new LTS version, wolkenkit now runs on Node.js
- Rewritten the wolkenkit CLI using Node.js
- The wolkenkit CLI was rewritten using Node.js, so you can now install it using npm, either globally or into the local context of your application.
- Fixed a bug in detecting expired OpenID Connect tokens in the wolkenkit client SDK
- When using the OpenID Connect authentication strategy, expired tokens were sometimes mistakenly regarded as valid by the wolkenkit client SDK. This has been fixed.
- Contributions by the community
For details on how to update to version 1.2.0
see updating the CLI and updating an application.
1.1.0
The following significant changes have been made since wolkenkit 1.0.1
:
- Added support for wolkenkit on Windows
- wolkenkit now runs on Windows 10 with Hyper-V and Docker Machine. The installation instructions can be found at installing on Windows.
- See thenativeweb/wolkenkit#3 for details.
- Updated PostgreSQL to
9.6.4
- There was a security issue in PostgreSQL
9.6.2
. With wolkenkit1.1.0
PostgreSQL has been updated to9.6.4
.
- There was a security issue in PostgreSQL
- Fixed compatibility with Docker
17.05
and above- With CLI
1.0.2
, wolkenkit is compatible with Docker backends running on Docker17.05
and above. - See thenativeweb/wolkenkit#5 for details.
- With CLI
- Fixed invalid read query handling in HTTP API
- There was a bug that caused invalid read queries to bring down the HTTP API. With wolkenkit
1.1.0
this has been fixed.
- There was a bug that caused invalid read queries to bring down the HTTP API. With wolkenkit
- Fixed a critical security issue in authorizing commands
- In certain circumstances wolkenkit failed to authorize commands correctly. This has been fixed.
- Contributions by the community
For details on how to update to version 1.1.0
see updating the CLI and updating an application.
1.0.1
The following significant changes have been made since wolkenkit 1.0.0
:
- Fixed wolkenkit init
- There was an error in the CLI that occured while initializing new wolkenkit applications. wolkenkit CLI 1.0.1 fixes this issue.
- See thenativeweb/wolkenkit#1 for details.
- Contributions by the community
For details on how to update to version 1.0.1
see updating the CLI.