This repository has been archived by the owner on Apr 14, 2023. It is now read-only.
v0.5.0
Changes
Version 0.5.0 includes lots of new features including:
- New user-friendly playbook editor
- Custom interfaces with event handling
- Interfaces are no longer attached to apps; they are now their own plugins and are contained in the
interfaces
directory - Interfaces can use new decorator functions to listen and respond to all events in Walkoff as they occur
- Interfaces are no longer attached to apps; they are now their own plugins and are contained in the
- Better triggers
- Triggers are no longer specified in the database. Instead, each individual action in a workflow can have its own set of conditions which can act as breakpoints in a workflow. You can send data to them through the server and have that data validated against a set of conditions before the action can resume.
- You can still start a workflow from the beginning through the server
- Renamed workflow components for clarity
- "steps" have been renamed "actions"
- "next steps" have been renamed "branches"
- "flags" have been renamed "conditions"
- "filters" have been renamed "branches"
- App-specific conditions and transforms
- Conditions and transforms are now located in apps rather than in core, so they can be more easily created
- Script used to start the server has been renamed
walkoff.py
- Host and port can now be specified on the command line
- Unfortunately, event-driven actions have been broken for some time now. We have removed this functionality, but are working on an even better replacement for them in the meantime
- Branches now contain a "priority" field which can be used to determine the order in which the branches of a given action are evaluated
- Arguments to actions, conditions, and transforms which use references can select which component of the referenced action's output to use.
- HTTPS is enabled by default if certificates are placed in the
.certificates
directory.
This version introduces a variety of backward-breaking changes, but we have also included two scripts,migrate_workflows.py
andmigrate_api.py
which should ease this transition.
Detailed changes
- We have removed accumulated risk from workflows and risk from steps. This feature will be readded at a future date
- We have removed widgets from the backend. This feature will be reimplemented later.
- Playbook file format changes
- Branches are now contained outside of actions, creating two top-level fields.
- Branches have a
source_uid
and adestination_uid
instead of just aname
field - The
start
step on a workflow is indicated with the start step's UID instead of its name - The
app
andaction
fields of actions, conditions, and transforms have been renamedapp_name
andaction_name
respectively. - Conditions and transforms contain an
app_name
field instead of just anaction
field - We have removed the
widgets
field and therisk
field from actions - Devices for actions are specified by id rather than by name
- Actions'
inputs
field, as well as conditions' and transforms'args
field has been renamedarguments
and is now a complete JSON object - Playbooks now contain a
walkoff_version
field which will be used to indicate which version of WALKOFF created them. This will be helpful in the future to migrate workflows to new formats
- ZeroMQ keys are contained in the
.certificates
directory - Minor changes to api.yaml schema
dataIn
has been renameddata_in
termsOfService
has been renamedterms_of_service
externalDocs
has been renamedexternal_docs
and is always an array
- Scripts to create Sphinx documentation have been added to the repository
- Performance of worker processes has been improved by removing gevent from child processes and reducing polling
- The blinker Signals used to trigger events have been wrapped in a WalkoffEvent enum
- Internal sockets used for ZeroMQ communication have been moved to
core.config.config
- Backend support for adding roles to users has been removed. All users are administrators as they have been in previous releases. There was never a UI component for this feature, and it was breaking some other components for editing users. Roles will be readded in the next release.
- Actions which are defined inside of a class must supply a device, or the workflow will fail on initialization
- The REST API to get the APIs of apps has been enhanced significantly and returns all of the API
Contributor changes
- Coverage.py is used to generate test coverage report. Travis-CI will fail if the code coverage is below 81% This percentage will rise over time