StackStorm (aka "IFTTT for Ops") is event-driven automation for auto-remediation, incident responses, troubleshooting, deployments, and more for DevOps and SREs. Includes rules engine, workflow, 160 integration packs with 6000+ actions (see https://exchange.stackstorm.org) and ChatOps. Installer at https://docs.stackstorm.com/install/index.html
APACHE-2.0 License
Bot releases are hidden (Show)
Add new runners: winrm-cmd
, winrm-ps-cmd
and winrm-ps-script
.
The winrm-cmd
runner executes Command Prompt commands remotely on Windows hosts using the
WinRM protocol. The winrm-ps-cmd
and winrm-ps-script
runners execute PowerShell commands
and scripts on remote Windows hosts using the WinRM protocol.
To accompany these new runners, there are two new actions core.winrm_cmd
that executes remote
Command Prompt commands along with core.winrm_ps_cmd
that executes remote PowerShell commands.
(new feature) #1636
Contributed by Nick Maludy (Encore Technologies).
Add new ?tags
, query param filter to the /v1/actions
API endpoint. This query parameter
allows users to filter out actions based on the tag name . By default, when no filter values are
provided, all actions are returned. (new feature) #4219
Add a new standalone standalone st2-pack-install
CLI command. This command installs a pack
(and sets up the pack virtual environment) on the server where it runs. It doesn't register the
content. It only depends on the Python, git and pip binary and st2common
Python package to be
installed on the system where it runs. It doesn't depend on the database (MongoDB) and message
bus (RabbitMQ).
It's primary meant to be used in scenarios where the content (packs) are baked into the base
container / VM image which is deployed to the cluster.
Keep in mind that the content itself still needs to be registered with StackStorm at some later
point when access to RabbitMQ and MongoDB is available by running
st2ctl reload --register-all
. (new feature) #3912 #4256
Add new /v1/stream/executions/<id>/output[?output_type=all|stdout|stderr]
stream API
endpoint.
This API endpoint returns event source compatible response format.
For running executions it returns any output produced so far and any new output as it's produced.
Once the execution finishes, the connection is automatically closed.
For completed executions it returns all the output produced by the execution. (new feature)
Add new core.inject_trigger
action for injecting a trigger instance into the system.
Keep in mind that the trigger which is to be injected must be registered and exist in the system.
(new feature) #4231 #4259
Add support for ?include_attributes
query param filter to all the content pack resource
get all (list) API endpoints (actions, rules, trigger, executions, etc.). With this query
parameter user can control which API model attributes (fields) to receive in the response. In
situations where user is only interested in a subset of the model attributes, this allows for a
significantly reduced response size and for a better performance. (new feature) (improvement)
#4300
Add new action_sensor.emit_when
config option which allows user to specify action status for
which actiontrigger is emitted. For backward compatibility reasons it defaults to all the action
completed states. (improvement) #4312 #4315
Contributed by Shu Sugimoto.
Improve performance of schedule action execution (POST /v1/executions
) API endpoint.
Performance was improved by reducing the number of duplicated database queries, using atomic
partial document updates instead of full document updates and by improving database document
serialization and de-serialization performance. (improvement) #4030 #4331
Ported existing YAQL and Jinja functions from st2common to Orquesta. (new feature)
Add error entry in Orquesta workflow result on action execution failure. (improvement)
st2 key list
command now defaults to --scope=all
aka displaying all the datastore values
(system and current user scoped) . If you only want to display system scoped values (old behavior)
you can do that by passing --scope=system
argument to the st2 key list
command
(st2 key list --scope=system
). (improvement) #4221
The orquesta conductor implemented event based state machines to manage state transition of
workflow execution. Interfaces to set workflow state and update task on action execution
completion have changed and calls to those interfaces are changed accordingly. (improvement)
Change GET /v1/executions/<id>/output
API endpoint so it never blocks and returns data
produced so far for running executions. Behavior for completed executions is the same and didn't
change - all data produced by the execution is returned in the raw format.
The streaming (block until execution has finished for running executions) behavior has been moved
to the new /stream/v1/executions/<id>/output
API endpoint.
This way we are not mixing non-streaming (short lived) and streaming (long lived) connections
inside a single service (st2api). (improvement)
Upgrade mongoengine
(0.15.3) and pymongo
(3.7.1) to the latest stable version. Those
changes will allow us to support MongoDB 3.6 in the near future.
New version of mongoengine
should also offer better performance when inserting and updating
larger database objects (e.g. executions). (improvement) #4292
Trigger parameters and payload schema validation is now enabled by default
(system.validate_trigger_parameters
and system.validate_trigger_payload
config options
now default to True
).
This means that trigger parameters are now validated against the parameters_schema
defined on
the trigger type when creating a rule and trigger payload is validated against payload_schema
when dispatching a trigger via the sensor or via the webhooks API endpoint.
This provides a much safer and user-friendly default value. Previously we didn't validate trigger
payload for custom (non-system) triggers when dispatching a trigger via webhook which meant that
webhooks API endpoint would silently accept an invalid trigger (e.g. referenced trigger doesn't
exist in the database or the payload doesn't validate against the payload_schema
), but
TriggerInstanceDB
object would never be created because creation failed inside the
st2rulesengine
service. This would make such issues very hard to troubleshoot because only
way to find out about this failure would be to inspect the st2rulesengine
service logs.
(improvement) #4231
Improve code metric instrumentation and instrument code and various services with more metrics.
Also document various exposed metrics. Documentation can be found at
https://docs.stackstorm.com/latest/reference/metrics.html (improvement) #4310
Add new metrics.prefix
config option. With this option user can specify an optional prefix
which is prepended to each metric key (name). This comes handy in scenarios where user wants to
submit metrics from multiple environments / deployments (e.g. testing, staging, dev) to the same
backend instance. (improvement) #4310
Improve st2 execution tail
CLI command so it also supports Orquesta workflows and arbitrarily
nested workflows. Also fix the command so it doesn't include data from other unrelated running
executions. (improvement) #4328
Change default NGINX configuration to use HTTP 308 redirect, rather than 301, for plaintext requests.
#4335
Improve performance of the GET /v1/actions/views/overview
API endpoint. (improvement) #4337
Fix an issue with AttributeError: module 'enum' has no attribute 'IntFlag'
error which would
appear when using Python 3 for a particular pack virtual environment and running on RHEL /
CentOS. (bug fix) #4297
Fix a bug with action runner throwing an exception and failing to run an action if there was an
empty pack config inside /opt/stackstorm/configs/
. (bug fix) #4325
Fix action_sensor.enable
config option so it works correctly if user sets this option to a
non-default value of True
. (bug fix) #4312 #4315
Contributed by Shu Sugimoto.
Update GET /v1/actions/views/entry_point/<action ref>
to return correct Content-Type
response header based on the entry point type / file extension. Previously it would always
incorrectly return application/json
. (improvement) #4327
winexe
-based Windows runners are now deprecated. They will be removed in StackStorm 3.1.pywinrm
-based Windows runners. SeePublished by Kami over 6 years ago
Update st2
CLI to inspect COLUMNS
environment variable first when determining the
terminal size. Previously this environment variable was checked second last (after trying to
retrieve terminal size using various OS specific methods and before falling back to the default
value).
This approach is more performant and allows user to easily overwrite the default value or value
returned by the operating system checks - e.g. by running COLUMNS=200 st2 action list
.
(improvement) #4242
Update st2client/setup.py
file to dynamically load requirements from
st2client/requirements.txt
file. The code works with pip >= 6.0.0, although using pip 9.0.0
or higher is strongly recommended. (improvement) #4209
Update st2
CLI to use a more sensible default terminal size for table formatting purposes if
we are unable to retrieve terminal size using various system-specific approaches.
Previously we would fall back to a very unfriendly default of 20 columns for a total terminal
width. This would cause every table column to wrap and make output impossible / hard to read.
(improvement) #4242
Fixed a bug where secret: true
was not applying to full object and array trees. (bugfix) #4234
Reported by @jjm
Contributed by Nick Maludy (Encore Technologies).
Mark password
http-runner
parameter as a secret. (bug fix) #4245
Reported by @daniel-mckenna
Published by enykeev over 6 years ago
Orchestra - new StackStorm-native workflow engine. This is currently in beta. (new feature)
Added metrics for collecting performance and health information about the various ST2 services and functions. (new feature) #4004 #2974
When running a dev (unstable) release include git revision hash in the output when using st2 --version CLI command. (new feature) #4117
Update rules engine to also create rule enforcement object when trigger instances fails to match a rule during the rule matching / filtering phase due to an exception in the rule criteria (e.g. invalid Jinja expression, etc.).
This change increases visibility into rules which didn't match due to an exception. Previously this was only visible / reflected in the rules engine log file. (improvement) #4134
Add new GET /v1/ruleenforcements/views[/] API endpoints which allow user to retrieve RuleEnforcement objects with the corresponding TriggerInstance and Execution objects. (new feature) #4134
Add new status field to the RuleEnforcement model. This field can contain the following values - succeeded (trigger instance matched a rule and action execution was triggered successfully), failed (trigger instance matched a rule, but it didn't result in an action execution due to Jinja rendering failure or other exception). (improvement) #4134 #4152
Add trigger type reference based filtering to the /v1/triggerinstances API endpoint - e.g. /v1/triggerinstances?trigger_type=core.st2.webhook. (new feature) #4151
Add new --python3 flag to st2 pack install CLI command and python3 parameter to packs.{install,setup_virtualenv} actions. When the value of this parameter is True, it uses python3 binary when creating virtual environment for that pack (based on the value of actionrunner.python3_binary config option).
Note 1: For this feature to work, Python 3 needs to be installed on the system, virtualenv package installed on the system needs to support Python 3 (it needs to be a recent version) and pack in question needs to support Python 3.
Note 2: This feature is experimental and opt-in. (new feature) #4016 #3922 #4149
Add two new Jinja filters - basename (os.path.basename) and dirname (os.path.dirname). #4184
Contributed by Florian Reisinger (@reisingerf).
Update st2 CLI to create the configuration directory and file, and authentication tokens with secure permissions (eg: readable only to owner) #4173
Refactor the callback module for the post run in runner to be more generic. (improvement)
Update various Python dependencies to the latest stable versions (gunicorn, gitpython, python-gnupg, tooz, flex). #4110
Update all the service and script entry points to use /etc/st2/st2.conf as a default value for the config file location.
This way users don't need to explicitly provide --config-file CLI argument when running various scripts (e.g. st2-track-result, st2-apply-rbac-definitions, etc.) and when they just want to use a default config file. (improvement) #4111
Update st2 CLI to print a warning if a non-unicode system locale which would prevent StackStorm to function correctly in some scenarios is used. (improvement) #4127 #4120
Upgrade various internal Python library dependencies to the latest stable versions (kombu, amqp, gitpython, pytz, semver, oslo.utils). (improvement) #4162
Move from keyczar library to cryptography library for handling symmetric encryption and decryption (secret datastore values).
Note: This change is fully backward compatible since it just changes the underlying backend and implementation details. The same underlying encryption algorithm is used (AES256 in CBC mode with HMAC signature). (improvement) #4165
Fixed a bug where secrets in pack configs weren't being masked.
Recently we introduced support for nested objects and arrays. Secret parameters within these nested objects and arrays were not being masked. The fix involves us fully traversing deeply nested objects and arrays and masking out any variables marked as secret. This means we now support pack config JSON schemas with type: object and its corresponding parameters: {} stanza, along with type: array and its corresponding items: {} stanza. We still do NOT support JSON schema combinations that includes the anyOf, allOf, oneOf, and not keywords. (bug fix) #4139
Contributed by Nick Maludy (Encore Technologies).
Style clean up to transport queues module and various config modules. (improvement)
Fixed CLI help for st2 action-alias match and execute. (#4174).
Fix regression in ?include_attributes query param filter in the /v1/executions API endpoint. (bug fix) #4226
Published by Kami over 6 years ago
Reduce load on LDAP server and cache user groups response in an in-memory cache when RBAC
remote LDAP group to local RBAC role synchronization feature is enabled.
Previously on authentication the code would hit LDAP server multiple times to retrieve user
groups. With this change, user LDAP groups are only retrieved once upon authentication and
cached and re-used in-memory by default for 120 seconds.
This reduces load on LDAP server and improves performance upon regular and concurrent user
authentication.
This functionality can be disabled by setting cache_user_groups_response
LDAP
authentication backend kwarg to false
.
Note: This change only affects users which utilize RBAC with remote LDAP groups to local RBAC
roles synchronization feature enabled. (enterprise) (bug fix) #4103 #4105
Fix an issue (race condition) which would result in not all the remote LDAP groups being
synchronized with local RBAC roles if a user tried to authenticate with the same auth token
concurrently in a short time frame.
Note: This issue only affects users which utilize RBAC with remote LDAP groups to local RBAC
roles synchronization feature enabled. (enterprise) (bug fix) #4103 #4105
Fix an issue with some sensors which rely on select.poll()
(FileWatch, GithubSensor, etc.)
stopped working with StackStorm >= 2.7.0.
StackStorm v2.7.0 inadvertently introduced a change which broke a small set of sensors which
rely on select.poll()
functionality. (bug fix) #4118
Throw if id
CLI argument is not passed to the st2-track-result
script. (bug fix) #4115
Fixed pack config's not properly rendering Jinja expressions within lists. (bugfix) #4121
Contributed by Nick Maludy (Encore Technologies).
Fixed pack config rendering error throw meaningful message when a Jinja syntax error is
encountered. (bugfix) #4123
Contributed by Nick Maludy (Encore Technologies).
Published by Kami over 6 years ago
When creating a pack environment during the pack installation, we now pass --no-download
flag
to the virtualenv
binary. This way version of pip, wheel and distutils which is enforced by
virtualenv is used instead of downloading the latest stable versions from PyPi.
This results in more reproducible pack virtual environments and we also ensure pip 9.0 is used (
there are some known issues with pip 10.0).
If for some reason you want to revert to the old behavior, you can do that by passing
no_download=False
parameter to the packs.setup_virtualenv
action. #4085
st2 pack search
and POST /api/v1/packs/index/search
API endpoint so it doesn'tPublished by Kami over 6 years ago
Update st2 execution tail
command so it supports double nested workflows (workflow ->
workflow -> execution). Previously, only top-level executions and single nested workflows
(workflow -> execution) were supported. (improvement) #3962 #3960
Add support for utf-8 / unicode characters in the pack config files. (improvement) #3980 #3989
Contributed by @sumkire.
Added the ability of st2ctl
to utilize environment variables from /etc/default/st2ctl
(for Ubuntu/Debian) and /etc/sysconfig/st2ctl
(RHEL/CentOS). This allows
deployments to override COMPONENTS
and ST2_CONF
in a global location
so st2ctl
can start/stop/restart selected components and utilize a non-default
location for st2.conf
.
(new feature) #4027
Contributed by Nick Maludy (Encore Technologies).
Add support for new optional content_version
runner parameter to the Python and Local Shell
Script runner. This parameter can contain a git commit hash / tag / branch from a pack git
repository and runner will ensure this revision of the pack content (Python action / local shell
script action) is used for a particular action execution.
Keep in mind that providing this parameter only ensures a particular revision of the pack content
is used. Python runner virtual environment and dependencies are outside of this scope.
Note: To be able to utilize this functionality, git version >= 2.5.0 must be installed on the
system.
(new feature) #3997
Update windows runner to correctly handle and use timeout
action execution status.
(improvement) #4047
Add missing scope
, decrypt
and encrypt
arguments to the datastore management
related methods on the SensorService class. (improvement) #3895 #4057 #4058
Reported by @djh2020, @mxmader.
Modified RabbitMQ connection error message to make clear that it is an MQ connection issue. #3992
Additional refactor which makes action runners fully standalone and re-distributable Python
packages. Also add support for multiple runners (runner modules) inside a single Python package
and consolidate Python packages from two to one for the following runners: local runners, remote
runners, windows runners. (improvement) #3999
Upgrade eventlet library to the latest stable version (0.22.1) (improvement) #4007 #3968
Increase maximum retry delay for action.retry
policy from 5 seconds to 120 seconds. Because
of the way retries are currently implemented (they are not st2notifier service restart safe),
long retry delays are not recommended. For more information on this limitation please refer to
the documentation - https://docs.stackstorm.com/reference/policies.html#retry. #3630 #3637
Update Python runner so it throws a more user-friendly exception in case Python script tries to
access a key in self.config
dictionary which doesn't exist. (improvement) #4014
Update various Python dependencies to the latest stable versions (apscheduler, gitpython,
pymongo, stevedore, paramiko, tooz, flex, webob, prance).
Refactored mistral runner to support callback from mistral instead of relying on st2resultstracker.
This reduces the unnecessary traffic and CPU time by querying the mistral API. Included a command to
manually add a state entry for Mistral workflow execution to recover from any callback failures.
(improvement)
Throw a more user-friendly error when writing pack data files to disk and when an invalid file
path is provided (e.g. path is outside the pack directory, etc.). (improvement) #4039 #4046
Change the output object returned by Windows runners so it matches the format from the local and
remote runner.
Note: This change is backward incompatible - result
attribute has been removed (same
information is available in stdout
attribute), exit_code
renamed to return_code
and
two new attributes added - succeeded
and failed
.
For more information, please refer to the upgrade notes. #4044 #4047
Fix Python runner actions and Argument list too long
error when very large parameters are
passed into the action. The fix utilizes stdin
to pass parameters to the Python action wrapper
process instead of CLI argument list. (bug fix) #1598 #3976
Fix a regression in POST /v1/webhooks/<webhook name>
API endpoint introduced in v2.4.0
and add back support for arrays. In 2.4.0 support for arrays was inadvertently removed and
only objects were supported. Keep in mind that this only applies to custom user-defined
webhooks and system st2
webhook still requires input to be an object (dictionary).
(bug fix) #3956 #3955
Fix a bug in the CLI causing st2 execution pause
and st2 execution resume
to not work. (bugfix) #4001
Contributed by Nick Maludy (Encore Technologies).
Fixed missing "paused" status option from "st2 execution list" help output. (bugfix) #4037
Contributed by Ben Hohnke (NTT Communications ICT Solutions)
Fix "st2 pack install" command so it doesn't require access to pack index (index.stackstorm.org)
when installing a local pack (pack name starting with "file://"). (bug fix) #3771 #3772
Fix rules engine so it correctly handles and renders action parameters which contain Jinja
expressions and default values. (bug fix) #4050 #4050
Reported by @rakeshrm.
Make sure observer
system role also grants pack_search
permission. (bug fix) #4063 #4064
Reported by @SURAJTHEGREAT.
Fix st2 webhook get -h which was asking for a name or id as opposed to the URL of the webhook.
Also, fix st2 webhook list to explicitly add a webhook column. (bugfix) #4048
Published by Kami over 6 years ago
https://stackstorm.com/2018/01/25/new-year-new-stackstorm-v2-6-released/
Add new get_user_info
method to action and sensor service. With this method, user can
retrieve information about the user account which is used to perform datastore operations inside
the action and sensor service. (new feature) #3831
Add new /api/v1/user
API endpoint. This API endpoint is only available to the authenticated
users and returns various metadata on the authenticated user (which method did the user use to
authenticate, under which username the user is authenticated, which RBAC roles are assignment to
this user in case RBAC is enabled, etc.) (new feature) #3831
The /api/v1/match_and_execute
API endpoint matches a single alias and executes multiple times
if the alias format has a match_multiple
key set to true
. Please refer to the
documentation for usage. #3884
Contributed by @ahubl-mz.
Add ability to share common code between python sensors and python actions. You can now place
common code inside a lib
directory inside a pack (with an __init__.py
inside lib
directory to declare it a python package). You can then import the common code in sensors and
actions. Please refer to documentation for samples and guidelines. #3490
Add support for password protected sudo to the local and remote runner. Password can be provided
via the new sudo_password
runner parameter. (new feature) #3867
Add new --tail
flag to the st2 run
/ st2 action execute
and st2 execution re-run
CLI command. When this flag is provided, new execution will automatically be followed and tailed
after it has been scheduled. (new feature) #3867
Added flag --auto-dict
to st2 run
and st2 execution re-run
commands. This flag must now
be specified in order to automatically convert list items to dicts based on presence of colon
(:
) in all of the list items (new feature) #3909
Allow user to set default log level used by all the Python runner actions by setting
actionrunner.pythonrunner```` option in
st2.conf`` (new feature) #3929
Update st2client
package which is also utilized by the CLI so it also works under Python 3.
Note: Python 2.7 is only officially supported and tested Python version. Using Python 3 is at
your own risk - they are likely still many bugs related to Python 3 compatibility. You have been warned.
(new feature) #3929 #3932
Contributed by Anthony Shaw.
Add ?limit=-1
support for the API to fetch full result set (CLI equivalent flag
--last/-n
). Post error message for limit=0
and fix corner case where negative values for
limit query param were not handled correctly. #3761 #3708 #3735
Only allow RBAC admins to retrieve all the results at once using ?limit=-1
query param, upate
the code so api.max_page_size
config option only applies to non-admin users, meaning users
with admin permission can specify arbitrary value for ?limit
query param which can also be
larger than api.max_page_size
. (improvement) #3939
Add new ?include_attributes
query param filter to /v1/executions/
API endpoint
With this filter user can select which fields to include in the response (whitelist approach,
opposite of the existing ?exclude_attributes
filter).
For example, if you only want to retrieve id
and status
field, the URL would look like
this - /v1/executions?include_attributes=id,status
. (new feature) #3953 #3858 #3856
st2actions.runners.pythonrunner.Action
class path for base Python runner actions has beenst2common.runners.base_action.Action
path. #3803st2common
Python package so it's fully self sustaining and can be used in ast2common
Python package (previously itst2actions
) and can be used in a standalone mode. Previously pack config andactionrunner.stream_output
config option inst2.conf
to False
and restart the services (sudo st2ctl restart
).Fully fix performance regressions for short Python runner actions introduced in the past and
partially fixed in #3809. (bug fix) #3803
Fix 'NameError: name 'cmd' is not defined' error when using linux.service
with CentOS systems.
#3843. Contributed by @shkadov
Fix bugs with newlines in execution formatter (client) (bug fix) #3872
Fixed st2ctl status
to use better match when checking running process status. #3920
Removed invalid st2ctl
option to re-open Mistral log files. #3920
Update garbage collection service and st2-purge-executions
CLI tool and make deletion more
efficient. Previously we incorrectly loaded all the execution fields in memory, but there was no
need for that and now we only retrieve and load id which is the only field we need. #3936
Reported by @kevin-vh.
Published by humblearner almost 7 years ago
https://stackstorm.com/2017/12/19/early-christmas-stackstorm-patch-release-2-5-1/
Add new log_level
runner parameter to Python runner. With this parameter, user can control which log messages generated by Python runner actions are output to action stderr
. For backward compatibility reasons it defaults to debug
.
This functionality comes handy in situations when an action depends on an external library which logs a lot of information under debug
, but you only want to see messages with log level error
or higher (or similar). (new feature) #3824
Add stevedore related metadata to Python package setup.py files for runner packages. This way runners can be installed using pip and dynamically enumerated and loaded using stevedore and corresponding helper functions.
All runners are now also fully fledged Python packages (previously they were single module
Python packages which caused various install and distribution related issues when installing
them via pip) (new feature)
Add new search
rule criteria comparison operator. Please refer to the documentation for
usage. (new feature) #3833
Contributed by @ahubl-mz.
Added flag --auto-dict
to st2 run
and st2 execution re-run
commands. This flag must now
be specified in order to automatically convert list items to dicts based on presence of colon
(:
) in all of the list items (new feature) #3909
Update the output of st2 execution {run,get}
CLI command to colorize the value of the
status
attribute (green for succeeded
, red for failed
, etc. aka the same as for the
output of st2 execution list
command). (improvement) #3810
Contributed by Nick Maludy (Encore Technologies).
Update log messages in the datastore service to correctly use DEBUG
log level instead of
AUDIT
. #3845
st2 execution tail [last]
CLI command so it doesn't throw an exception if there are no executions in the database. (bug fix) #3760 #3802api_service
user without any permissions. (bug fix) #3823 #3535Published by LindsayHill almost 7 years ago
https://stackstorm.com/2017/10/26/stackstorm-2-5-hit-streets/
Add new feature which allows runner action output (stdout and stderr) to be streamed
and consumed in real-time by using one of the following approaches:
/v1/executions/<execution id>/output[?type=stdout/stderr]
API endpoint./v1/stream/
stream endpoint and listening for st2.execution.stdout__create
andst2.execution.output__create
/v1/stream
stream API endpoint events.st2 execution tail <execution id> [--type=stdout/stderr]
CLI command (underneath it usesRight now this functionality is available for the following runners:
Note: This feature is still experimental and it's disabled by default (opt-in). To enable it,
set actionrunner.stream_output
config option to True
.
(new feature) #2175 #3657 #3729
Update st2 role-assignment list
RBAC CLI command to include information about where a
particular assignment comes from (from which local assignment or mapping file). (improvement)
#3763
Add support for overlapping RBAC role assignments for assignments via remote LDAP group to
StackStorm role mappings. This means that the same role can now be granted via multiple RBAC
mapping files.
#3763
Add new Jinja filters from_json_string
, from_yaml_string
, and jsonpath_query
.
#3763
Add new "Inquiry" capability, which adds ability to "ask a question", usually in a workflow.
Create a new runner type: "inquirer" to support this, as well as new API endpoints and
client commands for interacting with Inquiries
Contributed by mierdin. #3653
Added two new rule operators, inside
and ninside
which allow for the reverse intent of
the contains
and ncontains
operators. #3781
Contributed by @lampwins.
Allow user to use more expressive regular expressions inside action alias format string by
allowing them to specify start (^
) and end ($
) anchors. Previously, those anchors were
automatically added at the beginning and end of the alias format string. Now they are only added
if a format string doesn't already contain them. #3789
Contributed by @ahubl-mz.
Add new POST /v1/aliasexecution/match_and_execute
API endpoint which allows user to
schedule an execution based on a command string if a matching alias is found in the database.
This API endpoint is meant to be used with chat bot plugins. It allows them to be simple thin
wrappers around this API endpoint which send each chat line to this API endpoint and handle the
response. #3773
Add several improvements to the installation scripts: They support using proxy servers.
~stanley
no longer has to be /home/stanley
. In addition to the on-screen display, the
output from the installation script is now logged to a file beginning with st2-install
under
/var/log/st2/
. Furthermore, the script handles re-runs better, although it's
not fully idempotent yet. More improvements are expected in the near future.
st2-packages: #505, #506, #507, #508, #509, #510, #512, #517.
Fix a bug where sensor watch queues were not deleted after sensor container process was shut
down. This resulted in spurious queues left behind. This should not have caused performance
impact but just messes with rabbitmqadmin output and maybe tedious for operators. (bug fix) #3628
Reported by Igor.
Make sure all the temporary RabbitMQ queues used by the stream service are deleted once the
connection to RabbitMQ is closed. Those queues are temporary and unique in nature and new ones
are created on each service start-up so we need to make sure to correctly clean up old queues. #3746
Fix cancellation of subworkflow and subchain. Cancel of Mistral workflow or Action Chain is
cascaded down to subworkflows appropriately. Cancel from tasks in the workflow or chain is
cascaded up to the parent. (bug fix)
Fix delays in st2resultstracker on querying workflow status from Mistral. Make sleep time for
empty queue and no workers configurable. Reduce the default sleep times to 5 seconds. StackStorm
instances that handle more workflows should consider increasing the query interval for better
CPU utilization.
Fix missing type for the parameters with enum in the core st2 packs.(bug fix) #3737
Reported by Nick Maludy.
Add missing -h
/ --help
CLI flag to the following execution CLI commands: cancel, pause,
resume. (bug fix) #3750
Fix execution cancel and pause CLI commands and make id a required argument. (bug fix) #3750
Fix st2 role-assignment list
CLI command and allow --user
, --remote
and --role
arguments to be used together. Previously they were mutually exclusive so it wasn't possible to
use them together. (bug fix) #3763
Update default event name whitelist for /v1/stream
API endpoint and make sure
st2.announcement__errbot
and other event names starting with st2.announcement__*
prefix
are not filtered out. #3769 (bug fix)
Reported by Carlos.
Fix action-alias execute response to show execution id and matching action-alias #3231 (bug fix)
Reported by Carlos.
Fix st2 apikey load
command to update an existing entry if items in input file contain id
attribute and item already exists on the server. This way the behavior is consistent with
st2 key load
command and the command is idempotent if each item contains id
attribute.
#3748 #3786
Reported by Christopher Baklid.
Don't log MongoDB database password if user specifies URI for database.db_host
config
parameter and that URI also includes a password. Default and a common scenario is specifying
password as a separate database.password
config parameter. #3797
Reported by Igor Cherkaev.
Fix POST /v1/actionalias/match
API endpoint to correctly return a dictionary instead of an
array. We had a correct OpenAPI definition for the response, but the code incorrectly returned
an array instead of a dictionary.
Note: This is a breaking change so if your code utilizes this API endpoint you need to update
to treat response as a dictionary and not as an array with a single item. #377
Partially fix performance overhead and regression for short and simple Python runner actions.
Full / complete fix will be included in v2.6.0. #3809
Published by m4dcoder about 7 years ago
https://stackstorm.com/2017/09/18/quick-one-st2-2-4-1-released/
Fix a bug with /v1/packs/install
and /v1/packs/uninstall
API endpoints incorrectly using
system user for scheduled pack install and pack uninstall executions instead of the user which
performed the API operation.(bug fix) #3693 #3696
Reported by theuiz.
Fix mistral callback failure when result contains unicode. (bug fix)
Fix cancellation of delayed action execution for tasks in workflow. (bug fix)
Fix timeout of mistral shutdown in systemd service. The fix is done upstream.
https://review.openstack.org/#/c/499853/ (bug fix)
Published by m4dcoder about 7 years ago
https://stackstorm.com/2017/08/24/whats-stackstorm-2-4-already/
Add sample passive sensor at contrib/examples/sensors/echo_flask_app
. (improvement) #3667
Add pack config into action context. This is made available under the config_context
key.
#3183
Add limit/"-n" flag and pagination note(stderr) in the CLI for st2 key list
.
Default limit is 50. #3641
Implement pause and resume for Mistral workflow and Action Chain. Pause and resume will
cascade down to subworkflows and/or subchains. Pause from a subworkflow or subchain
will cascade up to the parent workflow. (new feature)
Add pack index endpoint. It will made a request for every index defined in st2.conf and return
the combined list of available packs.
Added a new field timestamp_f
to the GELF logging formatter that represents
the time of the logging even in fractional time (resolution is dependent on your
system). This allows adjacent logging events to be distinguished more accurately
by the time they occurred.
Contributed by Nick Maludy (Encore Technologies) #3362
Require new STREAM_VIEW
RBAC permission type to be able to view /v1/stream
stream API
endpoint. (improvement) #3676
Add new ?events
, ?action_refs
and ?execution_ids
query params to /v1/stream/
API endpoint. Those query parameters allow user to filter out which events to receive based
on the event type, action ref and execution id. By default, when no filters are provided, all
events are returned. (new feature) #3677
Show count of pack content (actions, sensors, triggers, rules and aliases) to be registered
before the st2 pack install
so that the delay in install is not mistaken as no response
or hanging command. (improvement) #3586 #3675
Allow user to specify value for "array of objects" parameter type using a simple notation
when using st2 run
CLI command. (improvement) #3646 #3670
Contributed by Hiroyasu OHYAMA.
st2.actionrunner.canel
st2.actionrunner.cancel
. (improvement) #3247Fix retrying in message bus exchange registration. (bug fix) #3635 #3638
Reported by John Arnold.
Fix message bus related race condition which could, under some rare scenarios, cause first
published message to be ignored because there were no consumers for that particular queue yet.
This could happen in a scenario when API service came online and served a request before action
runner service came online.
This also fixes an issue with Redis kombu backend not working. (bug fix) #3635 #3639 #3648
Fix logrotate configuration to delete stale compressed st2actionrunner logs #3647
Fix trace list API endpoint sorting by start_timestamp
, using ?sort_desc=True|False query
parameters and by passing --sort=asc|desc parameter to the st2 trace list CLI command.
Descending order by default.(bug fix) #3237 #3665
Fix pack index health endpoint. It now points to the right controller. #3672
Fix 'pack register content' failures appearing on some slower systems by lifting action timeout #3685
Published by Kami about 7 years ago
https://stackstorm.com/2017/07/28/stackstorm-2-3-2-summer-bugfixes-continues/
Add regex_substring
Jinja filter for searching for a pattern in a provided string and
returning the result. (improvement)
Contributed by mierdin. #3482
Add test coverage and test timing capabilities to st2-run-pack-tests
.
The -c
option enables test coverage and the -t
option enables test timings.
These capabilities have also been enabled in the ci pipeline for packs in the exchange.
Contributed by Nick Maludy. #3508
Update st2
CLI so it also displays "there are more results" note when -n
flag is
used and there are more items available. (improvement) #3552
Add ability to explicitly set stream_url
in st2client. (improvement) #3432
Add support for handling arrays of dictionaries to st2 config
CLI command. (improvement)
#3594
Contributed by Hiroyasu OHYAMA.
Fix st2client to display unicode characters in pack content description. (bug-fix)
Don't automatically append .git
suffix to repo URIs passed to packs.download
action.
This fixes a bug and now action also works with repo urls which don't contain .git
suffix.
(bug fix)
Contributed by carbineneutral. #3534 #3544
st2 pack commands now work when StackStorm servers are behind a HTTP/HTTPS proxy. You can set
http_proxy
or https_proxy
environment variables for st2api
and st2actionrunner
processes and pack commands will work with proxy. Refer to documentation for details on
proxy configuration. (bug-fix) #3137
Fix API validation regression so all input data sent to some POST and PUT API endpoints is
correctly validated. (bug fix) #3580
Fix an API bug and allow users to create rules which reference actions which don't yet exist in
the system when RBAC is enabled and user doesn't have system admin permission. (bug fix)
#3572 #3573
Reported by sibirajal.
Add a check to make sure action exists in the POST of the action execution API. (bug fix)
Fix api key generation, to use system user, when auth is disabled. (bug fix) #3578 #3593
Fix invocation of Mistral workflow from Action Chain with jinja in params. (bug fix) #3440
Fix st2client API bug, a backward incompatible change in query()
method, introduced in note
implementation (#3514) in 2.3.1. The query()
method is now backward compatible (pre 2.3) and
query_with_count()
method is used for results pagination and note. #3616
Published by Kami over 7 years ago
https://stackstorm.com/2017/07/06/stackstorm-2-3-1-bug-smashing/
Add support for passphrase
parameter to remote-shell-script
runner and as such, support
for password protected SSH key files. (improvement)
Reported by Sibiraja L, Nick Maludy.
Add json_escape
Jinja filter for escaping JSON strings. (improvement)
Contributed by mierdin. #3480
Print a note to stderr if there are more entries / results on the server side which are displayed
to the user for the following list
CLI commands: rule
, execution
,
rule-enforcment
, trace
and trigger-instance
.
Default limit is 50. (improvement)
Reported by Eugen C. #3488
Update st2 run
/ st2 execution run
command to display result of workflow actions when
they finish. In the workflow case, result of the last task (action) of the workflow is used.
(improvement) #3481
Update Python runner so it mimics behavior from StackStorm pre 1.6 and returns action result as
is (serialized as string) in case we are unable to serialize action result because it contains
non-simple types (e.g. class instances) which can't be serialized.
In v1.6 we introduced a change when in such instances, we simply returned None
as result
and didn't log anything which was confusing. (improvement) #3489
Reported by Anthony Shaw.
Add missing pagination support to /v1/apikeys
API endpoint. (improvement) #3486
Update action-chain runner so a default value for display_published
runner parameter is
True
. This way it's consistent with Mistral runner behavior and intermediate variables
published inside action-chain workflow are stored and displayed by default. #3518 #3519
Reported by Jacob Floyd.
Reduce API service (st2api
) log clutter and log whole API response (API controller method
return value / response body) under DEBUG
log level instead of INFO
. (improvement) #3539
Reported by Sibiraja L.
Enforce validation on position
parameter for action parameters. If position values are not
sequential or not unique, action registration will now fail. (bug-fix)
(improvement) #3317 #3474
Fix ?name
query param filter in /v1/actionalias
API endpoint. (bug fix) #3503
Notifier now consumes ActionExecution
queue as opposed to LiveAction
queue. With this
change, the Jinja templates used in notify messages that refer to keys in ActionExecution
resolve reliably. Previously, there was a race condition in which a LiveAction
would have
been updated but ActionExecution
was not and therefore, the jinja templates weren't reliably
resolved. (bug-fix) #3487 #3496
Reported by Chris Katzmann, Nick Maludy.
Deprecate results_tracker
config group and move configuration variables to resultstracker
group instead. If you have results_tracker
config group in the config, it is recommended
to switch to resultstracker
instead. (bug-fix) #3500
Update config loader so it correctly handles config schema default values which are falsey
(False
, None
, 0
, etc.) (bug-fix) #3504 #3531
Reported by Simas Čepaitis.
Fix st2ctl register
failure to register rules in some race conditions.
st2-register-content
will now register internal trigger types by default. (bug-fix) #3542
Correctly use service token TTL when generating temporary token for datastore service. This
fixes a bug and allows user to set TTL value for non service tokens to less than 24 hours.
(bug fix) #3523 #3524
Reported by theuiz.
Published by armab over 7 years ago
https://stackstorm.com/2017/06/19/stackstorm-2-3-something-everyone/
CAPABILITIES
constant on auth backend classes. With this constant, auth backends can advertise functionality they support (e.g. authenticate a user, retrieve information about a particular user, retrieve a list of groups a particular user is a member of). (new feature)enabled: true
in /opt/stackstorm/packs/linux/sensors/file_watch_sensor.yaml
/opt/stackstorm/rbac/mappings
directory. Note: This functionality is currently implemented for enterprise LDAP auth backend and only available in enterprise edition. (new feature)st2.conf
and all the StackStorm services which rely on access tokens still work. Previously, the lowest TTL user could specify for all the services to still work was 24 hours. This has been fixed and the default TTL specified in the config now only affects user access tokens and services use special service access tokens with no max TTL limit. (bug fix) Reported by Jiang Wei. #3314 #3315log.mask_secrets_blacklist
config option. (improvement)/executions/views/filters
API endpoint so it excludes null / None from filter values for fields where null
is not a valid field value. (improvement) Contributed by Cody A. Ray. #3193/opt/stackstorm/rbac/assignments
directory and running st2-apply-rbac-definitions
tool. (bug fix)API_KEY_CREATE
permission type. (improvement)ACTION_VIEW
permission type to be able to access entry_point and parameters actions view controller. (improvement)/v1/rbac/permission_types
and /v1/rbac/permission_types/<resource type>
API endpoint to return a dictionary which also includes a description for each available permission type. (improvement)EXECUTION_VIEWS_FILTERS_LIST
RBAC permission type to be able to access /executions/views/filters
API endpoint. (improvement)file_path
and sensor will pick up the file_path
from the rule. A sample rule is provided in contrib/examples/rules/sample_rule_file_watch.yaml. (improvement)system.validate_trigger_payload
, system.validate_trigger_parameters
). (bug fix)system=True
filter in the /v1/rbac/roles
API endpoint so it works correctly. (bug fix)/v1/rbac/role_assignments
API endpoint for retrieving user role assignment information. (new feature)st2 role list [--system]
st2 role get <role id or name>
st2 role-assignment list [--role=<role name>] [--user=<username>]
st2 role-assignment get <role assignment id>
/v1/rbac/roles
API endpoint so it includes corresponding permission grant objects. Previously it only included permission grant ids. (improvement)rbac
dictionary with user
and roles
action_context
attribute. (improvement)query_interval
in [results_tracker]
section in /etc/st2/st2.conf
. With this, the default query interval is set to 20s as opposed to 0.1s which was rather aggressive and could cause CPU churn when there is a large number of outstanding workflows. (improvement)packs.setup_virtualenv
fails due to a missing dependency or similar. (improvement, bug fix) #3337 [Sean Reifschneider]st2-apply-rbac-definitions
so it also removes assignments for users which don't exist in the database. (improvement, bug fix)chatops
pack:
chatops.match
chatops.match_and_execute
chatops.run
examples.forloop_chain
action-chain workflow to the examples pack which demonstrates how to iterate over multiple pages inside a workflow. #3328 [Carles Figuerola]core.uuid
action for generating type 1 and type 4 UUIDs. [John Anderson] #34142.0
) in pack.yaml pack metadata. Only full semver version strings are supported, e.g. 2.1.1
. This was originally deprecated in v2.1.0.st2 pack install
register all available content in pack by default to be consistent with st2 pack register
. (improvement) #3452None
when the pack was not found in the index. (bug fix)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. (improvement) #3335 #3463 [Nick Maludy]required: false
). (improvement) Reported by Nick Maludy #3468 #3469Published by Mierdin over 7 years ago
https://stackstorm.com/2017/04/05/bugs-fixes-security-updates-st2-2-2-1/
Fix st2ctl reload
command so it preserves exit code from st2-register-content
script and
correctly fails on failure by default.
Removed support for medium-strength ciphers from default nginx configuration (#3244)
Fix base action alias test class (BaseActionAliasTestCase
) so it also works if the local pack
directory name doesn't match the pack name (this might be the case with new pack management
during development where local git repository directory name doesn't match pack name) (bug fix)
Fix a bug with default values from pack config schema not being passed via config to Python
runner actions and sensors if pack didn't contain a config file in /opt/stackstorm/configs
directory. (bug fix)
Reported by Jon Middleton.
Make various improvements and changes to st2-run-pack-tests
script so it works out of the box
on servers where StackStorm has been installed using packages. (improvement)
Removed support for medium-strength ciphers from default nginx configuration (#3244)
Allow user to specify which branch of st2tests
repository to use by passing -b
option to
st2-self-check
script. (improvement)
Fix a bug with authentication middleware not working correctly when supplying credentials in an
Authorization header using basic auth format when password contained a colon (:
).
Note: Usernames with colon are still not supported. (bug fix)
Contributed by Carlos.
Update st2-run-pack-tests
script so it doesn't try to install global pack test dependencies
(mock, unittest2, nose) when running in an environment where those dependencies are already
available.
Make sure remote command and script runner correctly close SSH connections after the action
execution has completed. (bug fix)
Reported by Nagy Krisztián.
Fix a bug with pack configs API endpoint (PUT /v1/configs/
) not working when RBAC was
enabled. (bug fix)
Reported by efenian.
Fix concurrency related unit tests to support upgrade of the tooz library. (bug fix)
Update tooz
library to the latest version (v1.15.0). Using the latest version means
StackStorm now also supports using consul
, etcd
and other new backends supported by
tooz for coordination. (improvement)
Various security related improvements in the enterprise LDAP auth backend. (improvement,
bug fix)
Fix a bug with config schema validation not being performed upon registration which could cause
bad or empty config schema to end up in the system. (bug fix)
Published by Mierdin over 7 years ago
https://stackstorm.com/2017/02/27/stackstorm-2-2/
Fix /v1/packs/views/files/<pack ref or id>
and
/v1/packs/views/file/<pack ref or id>/<file path>
API endpoint so it
works correctly for packs where pack name is not equal to the pack ref. (bug fix)
Reported by skjbulcher #3128
Improve binary file detection and fix "pack files" API controller so it works correctly for
new-style packs which are also git repositories. (bug fix)
Fix returning a tuple from the Python runner so it also works correctly, even if action returns
a complex type (e.g. Python class instance) as a result. (bug fix)
Reported by skjbulcher #3133
Introduce validation of trigger parameters when creating a rule for non-system (user-defined)
trigger types.
Validation is only performed if system.validate_trigger_parameters
config option is enabled
(it's disabled by default) and if trigger object defines parameters_schema
attribute.
Contribution by Hiroyasu OHYAMA. #3094
Introduce validation of trigger payload for non-system and user-defined triggers which is
performed when dispatching a trigger inside a sensor and when sending a trigger via custom
webhook.
Validation is only performed if system.validate_trigger_payload
config option is enabled
(it's disabled by default) and if trigger object defines payload_schema
attribute.
Contribution by Hiroyasu OHYAMA. #3094
Add support for complex rendering inside of array and object types. This allows the user to
nest Jinja variables in array and object types.
Fix cancellation specified in concurrency policies to cancel actions appropriately. Previously,
mistral workflow is orphaned and left in a running state. (bug fix)
If a retry policy is defined, action executions under the context of a workflow will not be
retried on timeout or failure. Previously, action execution will be retried but workflow is
terminated. (bug fix)
Update Python runner to throw a more user-friendly exception in case action metadata file
references a script file which doesn't exist or which contains invalid syntax. (improvement)
Update st2auth
service so it includes more context and throws a more user-friendly exception
when retrieving an auth backend instance fails. This makes it easier to debug and spot various
auth backend issues related to typos, misconfiguration and similar. (improvement)
Mistral fork is updated to match the master branch at OpenStack Mistral. (improvement)
Fix how mistral client and resource managers are being used in the mistral runner. Authentication
has changed in the mistral client. Fix unit test accordingly. (bug fix)
Fix issue where passing a single integer member for an array parameter for an action would
cause a type mismatch in the API (bug fix)
Use the newly introduced CANCELLED state in mistral for workflow cancellation. Currently, st2
put the workflow in a PAUSED state in mistral. (improvement)
Add support for evaluating jinja expressions in mistral workflow definition where yaql
expressions are typically accepted. (improvement)
Let querier plugin decide whether to delete state object on error. Mistral querier will
delete state object on workflow completion or when the workflow or task references no
longer exists. (improvement)
Add support for st2 login
and st2 whoami
commands. These add some additional functionality
beyond the existing st2 auth
command and actually works with the local configuration so that
users do not have to.
Fix action alias update API endpoint. (bug fix)
Fix --config-file
st2 CLI argument not correctly expanding the provided path if the path
contained a reference to the user home directory (~
, e.g. ~/.st2/config.ini
) (bug fix)
Fix action alias update API endpoint. (bug fix)
{{user.}}
and {{system.}}
notations to access user and system
scoped items from datastore are now unsupported. Use {{st2kv.user.}}
and {{st2kv.system.}}
instead. Please update all your content (actions, rules and
workflows) to use the new notation. (improvement)
Update the dependencies and the code base so we now also support MongoDB 3.4. Officially
supported MongoDB versions are now MongoDB 3.2 and 3.4. Currently default version installed by
the installer script still is 3.2. (improvement)
Fix a bug with packs.download
action and as such as pack install
command not working with
git repositories which used a default branch which was not master
. (bug fix)
Add new -j
flag to the st2-run-pack-tests
script. When this flag is specified script will
just try to run the tests and it won't set up the virtual environment and install the
dependencies. This flag can be used when virtual environment for pack tests already exists and
when you know dependencies are already installed and up to date. (new feature)
Fix a bug with --api-token
/ -t
and other CLI option values not getting correctly
propagated to all the API calls issued in the st2 pack install
, st2 pack remove
and
st2 pack config
commands. (bug fix)
Fix a bug with not being able to apply some global permission types (permissions which are global
and not specific to a resource) such as pack install, pack remove, pack search, etc. to a role
using st2-apply-rbac-definitions
. (bug fix)
Published by bigmstone almost 8 years ago
https://stackstorm.com/2016/12/20/quick-update-v2-1-1-published/
After running st2 pack install
CLI command display which packs have been installed.
(improvement)
Update /v1/packs/register
API endpoint so it throws on failure (e.g. invalid pack or resource
metadata). This way the default behavior is consistent with default
st2ctl reload --register-all
behavior.
If user doesn't want the API endpoint to fail on failure, they can pass
"fail_on_failure": false
attribute in the request payload. (improvement)
Throw a more user-friendly exception when registering packs (st2ctl reload
) if pack ref /
name is invalid. (improvement)
core.http
action now also supports HTTP basic auth and digest authentication by passing
username
and password
parameter to the action. (new feature)
Fix GET /v1/packs/<pack ref or id>
API endpoint - make sure pack object is correctly returned
when pack ref doesn't match pack name. Previously, 404 not found was thrown. (bug fix)
Update local action runner so it supports and works with non-ascii (unicode) parameter keys and
values. (bug fix)
Contribution by Hiroyasu OHYAMA. #3116
Update packs.load
action to also register triggers by default. (improvement)
Update /v1/packs/register
API endpoint so it registers resources in the correct order which
is the same as order used in st2-register-content
script. (bug fix)
Published by Kami almost 8 years ago
Add new POST /v1/actionalias/match
API endpoint which allows users to perform ChatOps action
alias matching server-side. This makes it easier to build and maintain StackStorm ChatOps
clients / adapters for various protocols and mediums. Clients can now be very thin wrappers
around this new API endpoint.
Also add two new corresponding CLI commands - st2 alias-execution match
and
st2 alias-execution execute
. (new feature) #2895
Contributed by Anthony Shaw
Only allow valid word characters (a-z
, 0-9
and _
) to be used for action parameter
names. Previously, due to bug in the code, any character was allowed.
If you have an existing action definition which uses parameter with an invalid character, the
parameter name needs to be adjusted otherwise action registration will fail. (bug fix,
improvement)
Adding ability to pass complex array types via CLI by first trying to
seralize the array as JSON and then falling back to comma separated array.
Add new core.pause
action. This action behaves like sleep and can be used inside the action
chain or Mistral workflows where waiting / sleeping is desired before proceeding with a next
task. (new feature) #2933
Contribution by Paul Mulvihill.
Improve API exception handling and make sure 400 status code is returned instead of 500 on
mongoengine field validation error. (improvement)
Allow user to supply multiple resource ids using ?id
query parameter when filtering
"get all" API endpoint result set (e.g. ?id=1,2,3,4
). This allows for a better client and
servers performance when user is polling and interested in multiple resources such as polling on
multiple action executions. (improvement)
Actually validate pack metadata file when registering packs. (bug fix, improvement)
Improve pack validation - now when the packs are registered we require that
"version" attribute in the pack metadata file matches valid semver format and we also require
that "email" attribute (if specified) contains a valid email address. (improvement)
For consistency with new pack name validation changes, sample hello-st2
pack has been renamed
to hello_st2
.
Add new stackstorm_version
and system
fields to the pack.yaml metadata file. Value of the
first field can contain a specific for StackStorm version with which the pack is designed to work
with (e.g. >=1.6.0,<2.2.0
or >2.0.0
). This field is checked when installing / registering
a pack and installation is aborted if pack doesn't support StackStorm version which is currently
running. Second field can contain an object with optional system / OS level dependencies.
(new feature)
Require pack metadata version
attribute to contain a valid semver version identifier (e.g
0.1.0
, 2.0.0
, etc.). If version identifier is invalid, pack registration will fail.
(improvement)
When a policy cancels a request due to concurrency, it leaves end_timestamp set to None which
the notifier expects to be a date. This causes an exception in "isotime.format()". A patch was
released that catches this exception, and populates payload['end_timestamp'] with the equivalent
of "datetime.now()" when the exception occurs.
Adding check for datastore Client expired tokens used in sensor container
Add new contributors
field to the pack metadata file. This field can contain a list of
people who have contributed to the pack. The format is Name <email>
, e.g.
Tomaz Muraus <[email protected]>
(new feature)
Update packs.install
action (pack install
command) to only load resources from the packs
which are being installed. Also update it and remove "restart sensor container" step from the
install workflow. This step hasn't been needed for a while now because sensor container
dynamically reads a list of available sensors from the database and starts the sub processes.
(improvement)
Change st2api so that a full execution object is returned instead of an error message, when an
API client requests cancellation of an execution that is already canceled
Remove packs.info
action because .gitinfo
file has been deprecated with the new pack
management approach. Now pack directories are actual checkouts of the corresponding pack git
repositories so this file is not needed anymore.
Speed up short-lived Python runner actions by up to 70%. This way done by re-organizing and
re-factoring code to avoid expensive imports such as jsonschema, jinja2, kombu and mongoengine
in the places where those imports are not actually needed and by various other optimizations.
(improvement)
Add new st2-validate-pack-config
tool for validating config file against a particular config
schema file. (new-feature)
Upgrade various internal Python library dependencies to the latest stable versions (gunicorn,
kombu, six, appscheduler, passlib, python-gnupg, semver, paramiko, python-keyczar, virtualenv).
Improve performance of GET /executions/views/filters
by creating additional indexes on
executions collection
Add support for default values and dynamic config values for nested config objects. (new feature,
improvement)
Throw a more user-friendly exception if rendering a dynamic configuration value inside the config
fails. (improvement)
Add support for ssh config file for ParamikoSSHrunner. Now ssh_config_file_path
can be set
in st2 config and can be used to access remote hosts when use_ssh_config
is set to
True
. However, to access remote hosts, action paramters like username and
password/private_key, if provided with action, will have precedence over the config file
entry for the host. #2941 #3032 #3058 Eric Edgar
Fix packs.uninstall
action so it also deletes configs
and policies
which belong to
the pack which is being uninstalled. (bug fix)
Fix python action runner actions and make sure that modules from st2common/st2common/runners
directory don't pollute PYTHONPATH
for python runner actions. (bug fix)
Published by m4dcoder about 8 years ago
st2 execution get
command so now --attr
argument correctly works with childresult
and trigger_instance
dictionary (e.g. --attr result.stdout result.stderr
). (bug fix)st2 trace list
so the traces are sorted bystart_timestamp
in descending order by default. This way it's consistent with executions-n
CLI parameter works as expected. (improvement)?sort_desc=True|False
query parameters and by passing --sort=asc|desc
parameter tost2 trace list
CLI command. (improvement)object
. (bug fix, improvement)--user
/ -u
argument in the st2 key delete
CLI command.Published by m4dcoder about 8 years ago
Implement custom jina filter functions to_json_string
, to_yaml_string
,
to_human_time_from_seconds
that can be used in actions and workflows. (improvement)
Refactor jinja filter functions into appropriate modules. (improvement)
Default chatops message to include time taken to complete an execution. This uses
to_human_time_from_seconds
function. (improvement)
Fix a bug when jinja templates with filters (for example,
st2 run core.local cmd='echo {{"1.6.0" | version_bump_minor}}'
) in parameters wasn't rendered
correctly when executing actions. (bug-fix)
Allow user to cancel multiple executions using a single invocation of st2 execution cancel
command by passing multiple ids to the command -
st2 execution cancel <id 1> <id 2> <id n>
(improvement)
We now execute --register-rules as part of st2ctl reload. PR raised by Vaishali:
https://github.com/StackStorm/st2/issues/2861#issuecomment-239275641
Bump default timeout for packs.load
command from 60
to 100
seconds. (improvement)
Change Python runner action and sensor Python module loading so the module is still loaded even if
the module name clashes with another module which is already in PYTHONPATH
(improvement)
Fix validation of the action parameter type
attribute provided in the YAML metadata.
Previously we allowed any string value, now only valid types (object, string, number,
integer, array, null) are allowed. (bug fix)
Upgrade pip and virtualenv libraries used by StackStorm pack virtual environments to the latest
versions (8.1.2 and 15.0.3).
Allow user to list and view rules using the API even if a rule in the database references a
non-existent trigger. This shouldn't happen during normal usage of StackStorm, but it makes it
easier for the user to clean up in case database ends up in a inconsistent state. (improvement)
Update packs.uninstall
command to print a warning message if any rules in the system
reference a trigger from a pack which is being uninstalled. (improvement)
Fix disabling and enabling of a sensor through an API and CLI. (bug-fix)
Fix HTTP runner so it works correctly when body is provided with newer versions of requests
library (>= 2.11.0). (bug-fix) #2880
Contribution by Shu Sugimoto.