Skip to content

0.2.9 ✔️

Summary

This release introduces capabilities that provide more control over variables within flows, like default values, internal variables, and strict requirements and key mapping for server variables. A future breaking change is detailed in the deprecation notice.

Context

Server variables have always been easy to use; simply create a server variable, and it’s magically available to use in a flow. This convenience also has drawbacks. If a flow has access to more server variables than it requires, there is a security consideration.

Secondly, when a flow has implicit dependencies on it’s server environment, it becomes more tedious to export and import that flow into another Sirveo server, because those implicit dependencies (server variables) must be configured as well.

As variable configuration can now be handled explicitly in each flow, these and other drawbacks and ergonomic limitations are mitigated, and in some cases eliminated.

Breaking changes

None, but see the migration guide below to prepare for a planned breaking change.

Deprecations

The way in which server variables are made available to flows is changing. Since the first public release (0.0.5-alpha), server variables were made available to flows in this manner:

In this release, and at least the next three releases, server variables are now made available to flows in this manner:

This provides the new behaviour on an opt-in basis. When backwards compatibility is removed - possibly in the fourth release after 0.2.9 - only the new behaviour will be available:

When a Sirveo server is upgraded to 0.2.9, none of it’s existing flows will have any variables configured. As such, the deprecated behaviour applies, and flows will work as expected.

Fixes

No known issues.

Features

Flow variable definitions 🔥

  • ⚡ flows now supports the configuration of flow variables
  • ⚡ flows only run when all their required variables are available as server variables
  • ⚡ flow variables may be optional, with or without default values
  • ⚡ flow variables may be internal, which are not populated from server variables
  • ⚡ flow variables can map server variables to internal variables which has different keys
  • ⚡ ui: the flow editor has a new variables tab to configure flow variables

 

Password hashing nodes

  • ⚡💠 new node: password hash (experimental)
  • ⚡💠 new node: password compare (experimental)

 

Enhancements

  • 🔼 ui: flow editor highlights experimental nodes
  • 🔼 ui: flow editor orders nodes by custom order then tag then type

Internal

  • ⚙️ flow definitions support variable configuration
  • ⚙️ flow validation includes variable definitions
  • ⚙️ flow engine: implement backwards compatibility for deprecated server variable behaviour
  • ⚙️ flow engine: abort flow execution if a required flow variable is not available in server variables