Release per July 8, 2020: v0.6.0

Version v0.6.0 corresponds to the eighth milestone in the project as supported by NLnet. Apart from many improvements, the main contribution of this release is that it is now possible to install InPlace on an end users' machine. However, functionality is still very limited.

See InPlace release v0.3.11 for instructions on how to install and use the program.

Major changes

  1. Optimization of inverted query application. See Optimizing inverted query application.
  2. Handling non-functional inverted query steps. When a step like binder is applied to a role, many roles can be in the result set (a single role can be bound by many others). With query inversion to determine the users that should receive a Delta in a Transaction, this leads to overzealous behaviour. Instead, we now skip the first step and apply it to the new binder directly.
  3. Couchdb Host and port configurable. Previously hard coded, these values now come from a configuration file. There is not yet a user interface for changing them, however.
  4. Public repository. Models now are retrieved from a public repository rather than a local database. For model development purposes, we retain the local version.
  5. Improved security. Perspectives users are Couchdb sytem administrators. However, we kept the passwords in plaintext in Couchdb. No longer so. This change involves a reshuffling of state in Perspectives, too. Passwords are no longer kept in persistent state.
  6. Installer for Linux and MacOS. The end user program InPlace can now be installed using either of two installation packages: a .dmg file for MacOS or an AppImage file for Linux.
  7. Auto-update. InPlace checks whether updates are available on startup, if so downloads them and installs the update when the user quits InPlace.

Minor changes

  1. Better Webpack externalisation. Modules such as React that are used in multiple Perspectives projects, need to be bundled only once.
  2. Session termination. Electron by default keeps its session cookie after session termination. Couchdb sessions do not expire. This makes for a very confusing user experience when multiple InPlace installations exist on a single machine. Solved by deleting the session cookie upon closing InPlace.
  3. Couchdb version 3.1.0. For Linux, version 2.3.1 of Couchdb is not available. The PDR now uses 3.1.0, which has better security provisions in many facets.
  4. Better user guidance on setting up.
  5. Clean up transactions after consuming them. The channel database used to communicate between two parties is now cleaned up. This prevents re-intepretation on re-starting InPlace.
  6. Prevent double App binding. On dragging the card of an App to the column "Models in use", the program created two bindings instead of one. This is because models are now loaded on the fly; it is actually not necessary to create a binding any more in this situation.

Documentation

Various documents have been updated and some new design documents have been added:

  1. Query Inversion is updated with an explication of how to handle non-functional steps.
  2. Optimizing inverted query application.