wolkenkit
Documentation
News
DocumentationGetting startedUpdating wolkenkitChangelog

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 and await
    • JavaScript code is often asynchronous. In the past, you had to use callbacks for this. Now wolkenkit supports the new async and await 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.
  • [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 called projections, in flows they are called reactions. This better describes what is actually happening. See updating an application for details.
  • [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 the require 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.
  • 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.
  • 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
  • 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.
  • Improved compatibility with Internet Explorer 11
    • The wolkenkit SDK now supports Internet Explorer 11 without requiring additional polyfills.
  • Fixed OpenID Connect strict mode
  • Fixed transferOwnership and authorize commands
    • So far, it was possible to use the commands transferOwnership and authorize as constructor commands, i.e. to create new aggregates, although this didn't make sense. This has been fixed.
  • 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.
  • 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
  • Updated PostgreSQL to 9.6.4
    • There was a security issue in PostgreSQL 9.6.2. With wolkenkit 1.1.0 PostgreSQL has been updated to 9.6.4.
  • Fixed compatibility with Docker 17.05 and above
    • With CLI 1.0.2, wolkenkit is compatible with Docker backends running on Docker 17.05 and above.
    • See thenativeweb/wolkenkit#5 for details.
  • 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.
  • 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.