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

v0.6.0

Compare
Choose a tag to compare
@JustinTervala JustinTervala released this 03 Jan 14:40
· 2203 commits to master since this release
2065229

[0.6.0]

2018-01-03

Introducing roles, messages, and notifications

Added

  • Administrators can now create custom roles and assign users to those roles.
    Each resource of the server endpoint is protected by a permission, and roles
    can be created which combine resource permissions.
  • Messages and notifications
    • Actions can now send messages to users
    • Messages can be used to convey information to users or to pause a workflow
      and wait for a user to approve its continued execution
    • When a user receives a message, a notification will appear
  • Easy updates
    • An update script is provided to update to the most recent version if one is
      available. This script includes custom workflow migration scripts and
      database migration scripts generated by SqlAlchemy-Alembic. These are a work in progress.
      • Note: Database migrations only work for default database locations and
        using SQLite. This can be changed in the alembic.ini file
    • This script also includes utility functions for backing up the WALKOFF directory, cleaning pycache, setting up WALKOFF after an update, etc.
  • Explicit failure return codes for actions
    • Return codes which indicate a failure of the action can be marked with
      failure: true. This will cause an ActionExecutionError event to be sent
  • Explicit success default return codes for actions
    • The default return code for an action can be specified with
      default_return: YourReturnHere
  • Internal ZeroMQ addresses can be configured through the UI

Changed

  • Significant repository restructure
    • This repository restructure combined the core and server packages into
      a single walkoff package and moved modules such as appcache and
      devicedb out of the apps package
    • Top-level scripts with the exception of walkoff.py are now located in the
      scripts directory
    • These changes make the Walkoff project follow a more canonical repository
      structure, and are one step towards being able to install walkoff using
      pip, our eventual goal.
  • Classes have been moved out of the server.context.Context class. They were
    located there to remove circular dependencies, but they have been moved into
    their own submodule.
  • The interface.__init__ module has been split into multiple modules
  • The Sphinx Python documentation has been relocated to the docs directory
    and can be generated using make html. Additionally, they now use the
    ReadTheDocs theme.
  • Google Protocol Buffer message structure has been significantly altered.
  • Tags used for action, condition, and transform decorators have been
    encapsulated in a WalkoffTag enum
  • setup_walkoff.py no longer explicitly calls Gulp

Security

  • JWT structure changes
    • JWTs' identity is now the user ID, not the username
    • JWT claims are now the username and a list of role IDs this user
      possesses. These claims are populated on login, and require
      reauthentication to be updated.