Skip to content
This repository has been archived by the owner on Apr 14, 2023. It is now read-only.

v0.8.0

Compare
Choose a tag to compare
@JustinTervala JustinTervala released this 16 Apr 21:21
· 1541 commits to master since this release
9c670a0

Added

  • Multiple tools have been added to help develop workflows
    • Playbooks can be saved even if they are invalid. However, playbooks cannot
      be executed if they are invalid.
    • The playbook editor displays the errors on a workflow which must be solved
      before the workflow can be executed
    • You can now use Python's builtin logging module in an app, and the log
      messages will be displayed in the playbook editor
  • The metrics page has been introduced in the UI which displays simple metrics
    related to the execution of workflows and actions.
  • The devices used in the actions in workflows are now objects, enabling
    dynamic selection of the device used for the action. To further support this,
    an action in the Utilities app named get devices by fields allows you to
    query the devices database.
  • The ability to use a key-value storage has been created. This is now the
    mechanism used to push workflows and backs the SSE streams. Currently two
    options are available for key-value store, DiskCache, a SQLite-backed
    key-value storage, and Redis. By default Walkoff will use DiskCache, but it
    is recommended that users configure and use Redis.
  • The SSEs now use dedicated SseStream objects which are backed by the cache.
    These objects make constructing and using streams much easier.
    walkoff.see.InterfaceSseStream and walkoff.sse.FilteredInterfaceSseStream
    objects have been made available to use in custom interfaces.
  • A CaseLogger object which makes it much easier to log events to the case
    database has been created.

Changed

  • The interfaces.AppBlueprint used to construct interfaces has been modified
    to extend from walkoff.sse.StreamableBlueprint which in turn extends
    Flask's Blueprint. This makes the interface cleaner and more flexible.
  • Changes to the REST API
    • In the configuration resource:
      • workflow_path, logging_config_file, and zmq_requests have been
        removed from the API
      • The ability to edit the cache configuration has been added
    • In the playbook resources:
      • All execution elements have a read only list of human-readable errors
      • A workflow has a read only Boolean field "is_valid" which indicates if
        any of its execution elements have errors
  • All changes to the configuration will only be applied on server restart
  • Refactorings have been done to minimize the amount of global state used
    throughout Walkoff. Work will continue on this effort.
  • Metrics are now stored in the execution database
  • Changes to styling on the playbook editor

Deprecated

  • walkoff.helpers.create_sse_event has been deprecated and will be removed in
    version 0.10.0. Use walkoff.sse.SseEvent or the streams in walkoff.sse
    instead
    .

Fixed

  • Bug where branches where all branches weren't being evaluated in a workflow
  • Bug where object arguments could not be converted from strings

Contributor

  • Testing the backend now requires the additional the dependencies in
    requirements-test.txt
  • The minimum accepted unit test coverage for the Python backend is now 88%