StackStorm 2.3: Something for Everyone!

June 19, 2017
By Lindsay Hill

StackStorm 2.3 is out, and there’s something in it for everyone. Big API improvements for developers, Web UI fixes for users, and RBAC & LDAP enhancements for Enterprise customers. Plus plenty of pack changes for everyone. Here’s the full details:

Changes For Everyone!

API Overhaul

We know, we know, we’ve been promising API documentation forever. Well, here it is: api.stackstorm.com.

But there’s a lot more going on here than just API documentation. With one of our largest ever Pull Requests, touching 108 files (!), Kirill has completely overhauled the way our APIs are defined and maintained. We are now using the OpenAPI specification (formerly known as Swagger). This is good for everyone in the long run: Less maintenance for us, auto-generated clients & documentation for users, and simpler, more reliable code that uses a common standard.

Web UI Improvements

The web UI has had some love. First, thanks to Sahil Lele for PR 351. This makes it much easier to review execution output in the Web UI. It adds buttons for wrapping long lines, and hiding/displaying newline characters.

Here’s what a typical execution output looked like before:

See the stderr output in the middle, that scrolls off to the right? Difficult to read, right? Let’s see what happens when we click the new “WRAP LINES” button:

Looking better already. But those \n characters are annoying. So let’s click “SHOW NEWLINES”:

Much more readable!

Here’s a few other changes we’ve made:

  • Actions parameters are now listed with required parameters first, followed by alphabetical order
  • Drop-down lists now work properly on Windows browsers (Yes. Yes, in 2017, cross-platform browser compatibility is still a hassle).
  • You can now enter an array of objects as a parameter

Pack-Related Changes

We’ve made a few changes to pack configuration and management. Here’s some things to watch out for:

  • Packs that use the old-style config.yaml will now generate a warning on reload. Version 2.4 will raise a fatal error if you still have the old-style configuration. Upgrade any remaining packs to config.schema.yaml now. Check the docs for details.
  • If your config.schema.yaml defines an item as having a default value, but required: false, it will now return that default value if you didn’t define it in your configuration. Makes much more sense than the previous approach, where the default value was only returned if you had required: true.
  • Invalid semver version strings (e.g. 2.0) are no longer supported. You must switch to full semver-style version strings, e.g. 2.0.2. This was originally deprecated in StackStorm v2.1.0.
  • The dest_server parameter has been removed from the linux.scp action. Going forward simply specify the server as part of the source and / or destination arguments.
  • New actions in the ChatOps pack: chatops.match, chatops.match_and_execute and chatops.run.

New RBAC/LDAP Features

Lots of improvements here for our Enterprise users. The biggest one is that you can now automatically grant roles, based upon LDAP group membership. This makes it much simpler to manage users in LDAP environments. Just add new users to the right groups in LDAP/AD, and they’ll get granted the right roles.

We’ve added new API and CLI options to retrieve user role assignment information. Check out commands like st2 role list, st2 role-assignment-list, and more. Actions run through the API will also now include the rbac dictionary with user and roles_action_context attributes.

We’ve also added RBAC controls for more endpoints, such as traces, API_KEY_CREATE, timers, webhooks, policies and more.

Thanks to one of our favorite customers for their help developing & testing these capabilities.

Note: RBAC, LDAP and Workflow Designer are only available in Brocade Workflow Composer. Check this table for feature comparison, and sign up for a free 90-day trial.

Miscellaneous Bugfixes & Improvements

Here’s a few smaller bugfixes and improvements:

  • You can now provide a custom list of attribute names to mask in log messages, by setting the log.mask_secrets_blacklist configuration option.
  • Trigger payload validation can now be disabled (you were always meant to be able to, but that was broken).
  • Lower default TTLs can be set for user access tokens.
  • Variables and parameter values now support non-ASCII (Unicode) characters.
  • Fixed bug with querying Mistral task status that could result in 100% CPU usage.

And as always, here’s the full changelog.

New & Updated Packs

We’ve added quite a few new and updated packs over the last few months. Here’s just a few:

New packs:
* Active Directory thanks to Nick @ Encore Technologies
* Netbox – DigitalOcean IPAM tool
* A10 – A10 ADC
* Prometheus – Prometheus Monitoring/TSDB

Updates:
* PagerDuty – new library, APIv2 and aliases. If you’re using PagerDuty, you must upgrade before PagerDuty shuts down their old API.
* Kubernetes – updates for v1.5.
* Kafka – GCP Stackdriver support.
* AWS – ChatOps aliases.
* Azure – Resource Manager support.

NB: All Exchange packs have been updated to use config.schema.yaml. You should upgrade your packs, and migrate their configuration before StackStorm 2.4 is released.

A Thank You

As ever, thank you to you, our user, contributors and friends, for the bug reports and code contributions. Here’s just a few of those who’ve helped out recently:
Cody A Ray, Andrew Regan, John Anderson, Sean Reifschneider, Carles Figuerola, Anthony Shaw, Nick Maludy, nullkarma

There are many others, and we have not forgotten you. Thanks for everything you do!

How Do I Upgrade?

As usual: Backup first. You can then use apt/yum to upgrade the ST2 packages.

A few things to watch for:

  • Pack validation has been tightened up with recent versions. You may need to modify your packs, especially if you’re upgrading from pre-2.1 versions. Pay attention to warnings and errors when ST2 is restarted. A good design pattern is to set up a new ST2 system, and load your packs and workflows into that system, to check that everything validates correctly.
  • Update the st2 pack before starting the rest of the upgrades, with st2 pack install st2

Read the general upgrade guidelines, and check the version-specific upgrade notes for more details.

If you run into problems, join our Slack community for help.

So What’s Next?

We’re already working on our next release. Our current plan is to knock off some of the annoying little bugs and issues that have been hanging around for a while. It’s not as exciting as new features, but we know that it makes a real difference to you. If you’ve got a pet-peeve, make sure that it’s logged – or if someone else has already logged it, add a ‘+1’.

We are working on features too: major ones are Pack installation & configuration via the Web UI, and a new st2.ask feature, which will let you pause workflows and seek approval before continuing.

Questions/issues/suggestions for new features? Hit us up on Slack, or via GitHub.