This repository has been archived by the owner on Apr 14, 2023. It is now read-only.
v1.0.0-beta.1
adpham95
released this
09 Aug 21:45
·
464 commits
to master
since this release
[1.0.0-beta.1]
This update introduces a number of new features, including an App Editor in the UI, more granular role-based permissions, and a "bootloader" for automating deployment of WALKOFF.
Included are the massive re-architecture changes from 1.0.0-alpha.1 and 1.0.0-alpha.2 for which we did not make a GitHub release (changelogs below).
Added
- App Editor for editing app files and building Docker images from said apps. You can use this to change apps while WALKOFF is running, without restarting the whole stack.
- More granular RBAC where permissions on individual workflows and global variables can be restricted to specific roles.
- Execution results display on individual nodes to aid in identifying results.
- Bootloader container to automate deployment and teardown of the WALKOFF stack.
- Autogenerated walkoff_client Python package for interfacing with WALKOFF API. Work in progress.
- JSON editor GUI for editing arrays and objects in action parameters.
- JSON editor GUI for editing Workflow and Global Variables
Changed
- Dashboards renamed to Reports. Lots of work still to do here.
- Condition and Transform exceptions now get passed up into workflow results for easier debugging.
- Common config location to minimize number of locations where ports, service names, etc. need to change when configuring WALKOFF.
- WALKOFF now runs only on Docker Swarm, no longer with plain Docker Compose.
- All services now follow a walkoff_core, walkoff_app, or walkoff_resource naming scheme to disambiguate services from other stacks.
- Exceptions in Apps are now propagated correctly to action results.
- All WALKOFF services that need to be exposed now route through NGINX.
Security
- WALKOFF now uses HTTPS behind NGINX using a self-signed certificate.
Fixed
- Worker's workflow_types are now tagged with a _walkoff_type to prevent ambiguity with user provided data
- SSH app updated to allow more conventional use of wildcards, relative/absolute paths, etc.
- Conditions no longer cause entire subtrees to be cancelled, only the immediate successors.
- walkoff_default Docker network is attachable by default for external services to attach to us.
- Endpoints for PUT now correctly use resource IDs in path parameters.
- Importing a workflow with the same name as an existing one should no longer overwrite the original.
- Umpire scaling heartbeat slowed down to reduce race conditions - will be replaced with on-demand, resource aware scaling in future.
- Queued actions are correctly cleaned up when aborting a workflow.
- Enforced startup order of all the services to avoid busywaiting when services aren't up.
- Reduced intensity of "Server not responding" pop-up.
- Database commit issues relating to Workflow errors resolved.
- Parameters are correctly passed through to node status messages on the frontend.
- Actions now enforce results being JSON serializable, preventing issues with serializing Python objects.
- Action console logger reconnected to frontend.
[1.0.0-alpha.2]
This update includes numerous bugfixes and a number of reintroduced features. This release wasn't tagged, so the changelog is included here.
Added
- Trigger nodes allow you to pause workflow execution until webhook for the trigger is hit with data
- Basic Condition nodes allow you to perform branching execution in a more flowchart-like manner
- Basic Transform nodes allow you to write code snippets to transform/remap/select action results on the fly (UI support pending)
- Parallel Action node types in the workflow editor allow you to parallelize actions on a specified parameter
- Display UUIDs for workflow and workflow nodes in UI
- Portainer container creates UI for docker management
Changed
- WALKOFF now runs utilizing stack deploy, allowing for the use of external Docker secrets
- App version no longer required in app_name in api.tyaml
- CRUD endpoints now accept resource names as keys when applicable
- Globals can now be arbitrary JSON (UI support pending)
- Builtins build location moved to Umpire and is only built once on startup
Removed
Security
- Implemented AES-256 encryption/decryption for Global Variables. Exclusive-access decryption based on account level standing still needs to be implemented in the future. Currently, any GET request to the API gateway will return a decrypted Global Variable, regardless of account.
Fixed
- Workflow import/export
- Workflow validation (still needs work); workflows can be saved in an incomplete state again
- Validate workfow name uniqueness when creating workflows
- Testing suite (still needs expansion)
- Uniqueness constraints on CRUD operations
- Dereferencing Global and Workflow variables in workflows
- Ability to override starting parameters in a workflow execution
- Ability to update/delete encrypted Global Variables
- Hide global values by default on Globals tab
- Default boolean parameters to false
- Copying and pasting of nodes in workflow editor
- Accessing action results before conditionals in parameters that follow it
[1.0.0-alpha.1]
This update includes a near-complete rewrite of the workflow execution logic, and a considerable refactor of the
server in preparation for a future move to an asynchronous framework. The following changes are not exhaustive.
Added
- "Umpire" added, which handles building and replication of Worker and App containers.
Changed
- Docker Compose is required. Python 3.7 is required if running components locally (primarily for development).
- Execution logic completely rewritten to support containerized architecture from the ground up.
- Apps now live in their own containers, separate from workers.
- Apps should now be (internally) stateless
- Kubernetes support has been removed in favor of using Docker Swarm API.
- Playbooks removed, Workflows can now be grouped by tags instead.
- unittest has been replaced with pytest
- Redis is now the primary communication channel between components (removing ZMQ and Kafka).
- SQLite database should no longer be used if running locally for development.
- Workflow Execution page has been overhauled aesthetically.
Removed
- Triggers have been temporarily removed, but are targeted for a near-future 1.1 release.