From 13e346532177244f75b2a26659095dc95720e0d4 Mon Sep 17 00:00:00 2001 From: amanda Date: Thu, 15 Apr 2021 16:30:13 +0100 Subject: [PATCH 01/16] Update to use same version of pip as ST2 --- Makefile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 5007eea1..708dda96 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,13 @@ comma := , COMPONENT_PYTHONPATH = $(subst $(space_char),:,$(realpath $(COMPONENTS))) REQUIREMENTS := requirements.txt st2/requirements.txt -PIP_VERSION := 20.0.2 +DOCS_VERSION := $(shell cat version.txt | cut -d '.' -f 1,2) +ST2_BRANCH := v$(DOCS_VERSION) +ifneq (,$(findstring dev,$(ST2_BRANCH))) + ST2_BRANCH := master +endif + +PIP_VERSION := $(shell curl --silent https://raw.githubusercontent.com/StackStorm/st2/$(ST2_BRANCH)/Makefile | grep 'PIP_VERSION ?= ' | awk '{ print $$3 }') PIP_OPTIONS := $(ST2_PIP_OPTIONS) ifndef PIP_OPTIONS From 438e6de72db3b47d7da1749bc066dd669b01e1a1 Mon Sep 17 00:00:00 2001 From: Amanda McGuinness Date: Thu, 15 Apr 2021 15:40:23 +0000 Subject: [PATCH 02/16] Update to use erlang from rabbitmq on EL8 --- docs/source/install/rhel8.rst | 2 ++ docs/source/install/uninstall.rst | 1 + 2 files changed, 3 insertions(+) diff --git a/docs/source/install/rhel8.rst b/docs/source/install/rhel8.rst index c501c4a1..36a8981e 100644 --- a/docs/source/install/rhel8.rst +++ b/docs/source/install/rhel8.rst @@ -75,8 +75,10 @@ Install MongoDB, RabbitMQ: sudo yum -y install crudini sudo yum -y install mongodb-org + curl -sL https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash curl -sL https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash sudo yum makecache -y --disablerepo='*' --enablerepo='rabbitmq_rabbitmq-server' + sudo yum -y install erlang sudo yum -y install rabbitmq-server sudo systemctl start mongod rabbitmq-server sudo systemctl enable mongod rabbitmq-server diff --git a/docs/source/install/uninstall.rst b/docs/source/install/uninstall.rst index b272eec9..e7d30dba 100644 --- a/docs/source/install/uninstall.rst +++ b/docs/source/install/uninstall.rst @@ -148,6 +148,7 @@ below. Only execute the instructions for your distribution. sudo rm -f /etc/yum.repos.d/mongodb-org* /etc/yum.repos.d/StackStorm* sudo rm -f /etc/yum.repos.d/pgdg-94* /etc/yum.repos.d/nginx* /etc/yum.repos.d/nodesource* + sudo rm -f /etc/yum.repos.d/rabbitmq_erlang* /etc/yum.repos.d/rabbitmq-server* 5. Clean Up Remaining Content From 517ee107770f6e4c34e6642e101a9ed3f6d8b608 Mon Sep 17 00:00:00 2001 From: Amanda McGuinness Date: Thu, 15 Apr 2021 15:49:21 +0000 Subject: [PATCH 03/16] Rabbitmq repo name differs between bash and ansible install --- docs/source/install/uninstall.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/install/uninstall.rst b/docs/source/install/uninstall.rst index e7d30dba..d56d25b0 100644 --- a/docs/source/install/uninstall.rst +++ b/docs/source/install/uninstall.rst @@ -148,7 +148,7 @@ below. Only execute the instructions for your distribution. sudo rm -f /etc/yum.repos.d/mongodb-org* /etc/yum.repos.d/StackStorm* sudo rm -f /etc/yum.repos.d/pgdg-94* /etc/yum.repos.d/nginx* /etc/yum.repos.d/nodesource* - sudo rm -f /etc/yum.repos.d/rabbitmq_erlang* /etc/yum.repos.d/rabbitmq-server* + sudo rm -f /etc/yum.repos.d/rabbitmq_erlang* /etc/yum.repos.d/*rabbitmq-server* 5. Clean Up Remaining Content From c84982d86aeb10b2b9cc32b77d98e746106667e6 Mon Sep 17 00:00:00 2001 From: Tomaz Muraus Date: Sat, 17 Apr 2021 11:10:14 +0200 Subject: [PATCH 04/16] Add a note on combining URL + config level SSL options for messaging. --- docs/source/install/config/config.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/source/install/config/config.rst b/docs/source/install/config/config.rst index 4d35cf19..9b20cc53 100644 --- a/docs/source/install/config/config.rst +++ b/docs/source/install/config/config.rst @@ -144,6 +144,14 @@ documented below are also supported: * ``login_method`` - Login method to use. Default is ``PLAIN``. Other possible options are ``AMQPLAIN`` and ``EXTERNAL``. +.. note:: + + If you want to use custom SSL settings (e.g. using a different ca bundle or similar) you + should specify all those options as part of the st2.conf and also do the same for enabling ssl + using ``messaging.ssl`` option. Combining URL and config parameters for SSL doesn't work - if + you enable ssl as part of the URL it will use default SSL settings, but you won't be able to + specify a custom value for ``cert_reqs`` ``ca_certs`` and other SSL related options. + .. note:: RabbitMQ doesn't expose an SSL / TLS listener by default and needs to be configured to enable From 29d50eba3071fb8cddf95c072d29a63129316f56 Mon Sep 17 00:00:00 2001 From: Tomaz Muraus Date: Tue, 20 Apr 2021 10:56:21 +0200 Subject: [PATCH 05/16] Add docs and enabling MongoDB network level compression and RabbitMQ payload compression. Also document limitations on configuring rabbitmq SSL via URI string. --- docs/source/install/config/config.rst | 71 +++++++++++++++++++++++++-- 1 file changed, 66 insertions(+), 5 deletions(-) diff --git a/docs/source/install/config/config.rst b/docs/source/install/config/config.rst index 4d35cf19..5c176f38 100644 --- a/docs/source/install/config/config.rst +++ b/docs/source/install/config/config.rst @@ -32,8 +32,8 @@ The ``username`` and ``password`` properties are optional. .. _ref-mongo-ha-config: |st2| also supports `MongoDB replica sets -`_ using `MongoDB URI string -`_. +`_ using `MongoDB URI string +`_. In :github_st2:`/etc/st2/st2.conf ` include the following section: @@ -43,10 +43,10 @@ In :github_st2:`/etc/st2/st2.conf ` include the following se host = mongodb://<#MDB_NODE_1>,<#MDB_NODE_2>,<#MDB_NODE_3>/?replicaSet=<#MDB_REPLICA_SET_NAME> * You can also add ports, usernames and passwords, etc to your connection string. See - https://docs.mongodb.com/v3.4/reference/connection-string/ + https://docs.mongodb.com/manual/reference/connection-string/ * To understand more about setting up a MongoDB replica set, see - https://docs.mongodb.com/v3.4/tutorial/deploy-replica-set/ + https://docs.mongodb.com/manual/replication/ |st2| also supports SSL/TLS to encrypt MongoDB connections. A few extra properties need be added to the configuration apart from the ones outlined above. @@ -84,6 +84,43 @@ In :github_st2:`/etc/st2/st2.conf ` include the following se * Build MongoDB from source to enable SSL/TLS support. See https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source for more information. +|st2| also supports transport / network level compression since |st2| v3.5.0. Example below shows +which configuration options need to be set to enable compression: + +In :github_st2:`/etc/st2/st2.conf ` include the following section: + +.. code-block:: ini + + [database] + ... + compressors = + zlib_compression_level = 6 + +* ``compressors`` - A comma delimited list of compression algorithm client supports for network / + transport level compression which should be advertised to the server. Actual algorithm used will + then be determined based algorithm which is supported both by the client and the server. +* ``zlib_compression_level`` - Compression level to use (possible values are from ``-1`` to ``9``) + when ``compressors`` is set to ``zlib``. + +.. note:: + + Zstandard (zstd) compression is only supported by MongoDB server version 4.0 and above. + + Compression is always a trade off - CPU cycles for compression and decompression operation are + exchanged for less bytes transfered over the network. + + How compression affects actual database operation durations and throughput is very much + workload and deployment specific (spare CPU cycles, network setup, available bandwidth, is the + NIC being saturated, is MongoDB hosted on the same server / AZ, etc). + + Our micro benchmarks showed that enabling zstandard compression seems to have no perceived + impact on database read and write operation duration, but your milleage may vary. + + Compression may come especially handy when working with large Trigger Instance and Execution + objects (aka executions which produce large textual results). Executions and Trigger Instances + usually contain large textual result which compresses very well and can result in substantial + reduction in network traffic. + Configure RabbitMQ ------------------ @@ -118,6 +155,13 @@ or [messaging] url = amqp://guest:guest@127.0.0.1:5671/?ssl=true +.. note:: + + Keep in mind that if you want to use custom ssl options (e.g. use a key and cert file or use a + custom ca cert), you need to enable ssl via messaging.ssl option and not via connection URL + string. When SSL is enabled via connection URL string default SSL options will be used which + can't be changed. + In addition to encrypted connection to RabbitMQ, some other SSL related options which are documented below are also supported: @@ -150,6 +194,24 @@ documented below are also supported: TLS support. For more information, refer to the official documentation - `Enabling TLS Support in RabbitMQ `_. +|st2| also supports compressing payloads which are sent over the message bus since |st2| v3.5.0. +Example below shows which configuration options need to be set to enable compression: + +.. code-block:: ini + + [messaging] + ... + compression = + +.. note:: + + Compression is always a trade off - CPU cycles for compression and decompression operation are + exchanged for less bytes transfered over the network. + + How compression affects actual message bus operation durations and throughput is very much + workload and deployment specific (spare CPU cycles, network setup, available bandwidth, is the + NIC being saturated, is RabbitMQ hosted on the same server / AZ, etc). + .. _ref-rabbitmq-cluster-config: |st2| also supports `RabbitMQ cluster `_. @@ -167,7 +229,6 @@ In :github_st2:`/etc/st2/st2.conf ` include the following se https://www.rabbitmq.com/clustering.html * RabbitMQ HA guide - https://www.rabbitmq.com/ha.html - .. _config-configure-ssh: Configure SSH From 39d061fb3635595b5181a0f02b9f823bd7bdd79f Mon Sep 17 00:00:00 2001 From: blag Date: Wed, 21 Apr 2021 17:15:52 -0700 Subject: [PATCH 06/16] Remove __engage_enterprise.rst and all references to it --- docs/source/__engage_enterprise.rst | 5 ----- docs/source/install/k8s_ha.rst | 4 ---- docs/source/overview.rst | 4 ---- 3 files changed, 13 deletions(-) delete mode 100644 docs/source/__engage_enterprise.rst diff --git a/docs/source/__engage_enterprise.rst b/docs/source/__engage_enterprise.rst deleted file mode 100644 index d77e547e..00000000 --- a/docs/source/__engage_enterprise.rst +++ /dev/null @@ -1,5 +0,0 @@ -.. rubric:: Questions? Problems? Suggestions? Engage! - -* Product Description: https://www.extremenetworks.com/product/workflow-composer/ -* Sales-related communications: https://www.extremenetworks.com/contact-sales/ -* Technical Questions: support@extremenetworks.com diff --git a/docs/source/install/k8s_ha.rst b/docs/source/install/k8s_ha.rst index fc2743a3..db81a8bf 100644 --- a/docs/source/install/k8s_ha.rst +++ b/docs/source/install/k8s_ha.rst @@ -317,7 +317,3 @@ and ecourage discussions in `Slack `_ ` .. only:: community .. include:: /__engage_community.rst - -.. only:: enterprise - - .. include:: /__engage_enterprise.rst diff --git a/docs/source/overview.rst b/docs/source/overview.rst index 5e008e00..c6599fae 100644 --- a/docs/source/overview.rst +++ b/docs/source/overview.rst @@ -88,7 +88,3 @@ What's Next? .. only:: community .. include:: __engage_community.rst - -.. only:: enterprise - - .. include:: __engage_enterprise.rst From 5e30621d985a81b8d1b92034a603d9daeaad4602 Mon Sep 17 00:00:00 2001 From: blag Date: Wed, 21 Apr 2021 17:16:36 -0700 Subject: [PATCH 07/16] Remove flow and solutions include, and all references to them --- docs/source/_includes/flow.rst | 0 docs/source/_includes/solutions.rst | 0 docs/source/index.rst | 4 ---- 3 files changed, 4 deletions(-) delete mode 100644 docs/source/_includes/flow.rst delete mode 100644 docs/source/_includes/solutions.rst diff --git a/docs/source/_includes/flow.rst b/docs/source/_includes/flow.rst deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/source/_includes/solutions.rst b/docs/source/_includes/solutions.rst deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/source/index.rst b/docs/source/index.rst index 4a8b2f88..af3b39a1 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -24,10 +24,6 @@ Contents: datastore chatops/index -.. include:: _includes/flow.rst - -.. include:: _includes/solutions.rst - .. toctree:: :maxdepth: 2 :caption: Advanced Topics From b9da63037645b35da537f36e3119c442d8ecb17a Mon Sep 17 00:00:00 2001 From: blag Date: Wed, 21 Apr 2021 17:19:33 -0700 Subject: [PATCH 08/16] Better explain inquiry roles with StackStorm RBAC --- docs/source/inquiries.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/source/inquiries.rst b/docs/source/inquiries.rst index a4cf7cfa..21d761b4 100644 --- a/docs/source/inquiries.rst +++ b/docs/source/inquiries.rst @@ -57,7 +57,9 @@ The ``inquirer`` runner imposes a number of parameters that are, in turn, requir +-------------+---------------------------------------------------------+ | roles | A list of RBAC roles that are permitted to respond to | | | the action. Defaults to empty list, which permits all | -| | roles. **This requires enterprise features** | +| | roles. **This requires enterprise features on | +| | StackStorm 3.2 and before**, but is available on | +| | StackStorm 3.4 and later if :doc:`rbac` is enabled. | +-------------+---------------------------------------------------------+ | users | A list of users that are permitted to respond to | | | the action. Defaults to empty list, which permits all | From 988d7c37e65de463efa302b7dbcb7ae2380769ba Mon Sep 17 00:00:00 2001 From: blag Date: Wed, 21 Apr 2021 17:20:20 -0700 Subject: [PATCH 09/16] Better explain when RBAC roles are usable in k8s/HA docs --- docs/source/install/k8s_ha.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/install/k8s_ha.rst b/docs/source/install/k8s_ha.rst index db81a8bf..7c72cf59 100644 --- a/docs/source/install/k8s_ha.rst +++ b/docs/source/install/k8s_ha.rst @@ -69,7 +69,8 @@ You can configure: - number of replicas for each component - st2 auth secrets - st2.conf settings -- RBAC roles, assignments and mappings (enterprise only) +- RBAC roles, assignments and mappings (enterprise only for StackStorm v3.2 and before, open source + for StackStorm v3.4 and later) - custom st2 packs and its configs - SSH private key - K8s resources and settings to control pod/deployment placement From 52e38fb1071e25ea6d9c341c9429c78875bea3e1 Mon Sep 17 00:00:00 2001 From: blag Date: Wed, 21 Apr 2021 17:01:16 -0700 Subject: [PATCH 10/16] Fix line wrapping --- docs/source/install/overview.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/install/overview.rst b/docs/source/install/overview.rst index 59efac4e..085fb033 100644 --- a/docs/source/install/overview.rst +++ b/docs/source/install/overview.rst @@ -74,10 +74,10 @@ installed independently. reverse-proxies REST API endpoints to st2* web services. * **StackStorm WebUI** (st2web, and Workflow Designer, for Extreme Workflow Composer) are installed at ``/opt/stackstorm/static/webui`` and configured via ``webui/config.js``. ``st2web`` - comes in its own ``deb`` and ``rpm`` package. In StackStorm versions earlier than 3.3 Workflow Designer was deployed as part of the - ``bwc-enterprise`` package. They are HTML5 applications, served as static HTML, and call |st2| - st2auth and st2api REST API endpoints. NGINX proxies inbound requests to ``/api`` and ``/auth`` - to the st2api and st2auth services respectively. + comes in its own ``deb`` and ``rpm`` package. In StackStorm versions earlier than 3.3 Workflow + Designer was deployed as part of the ``bwc-enterprise`` package. They are HTML5 applications, + served as static HTML, and call |st2| st2auth and st2api REST API endpoints. NGINX proxies + inbound requests to ``/api`` and ``/auth`` to the st2api and st2auth services respectively. 4. st2chatops - ChatOps components ---------------------------------- From f86baa3a9640ba40a19838409a5c00785f9ce8e4 Mon Sep 17 00:00:00 2001 From: blag Date: Wed, 21 Apr 2021 17:08:23 -0700 Subject: [PATCH 11/16] Explain bwc-enterprise removal and workflow designer integration in the installation overview --- docs/source/install/overview.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/source/install/overview.rst b/docs/source/install/overview.rst index 085fb033..8cb17815 100644 --- a/docs/source/install/overview.rst +++ b/docs/source/install/overview.rst @@ -72,12 +72,14 @@ installed independently. -------------------------------------- * **nginx** provides SSL termination, redirects HTTP to HTTPS, serves WebUI static components, and reverse-proxies REST API endpoints to st2* web services. -* **StackStorm WebUI** (st2web, and Workflow Designer, for Extreme Workflow Composer) are - installed at ``/opt/stackstorm/static/webui`` and configured via ``webui/config.js``. ``st2web`` +* **StackStorm WebUI** (st2web, including Workflow Designer) are installed at + ``/opt/stackstorm/static/webui`` and configured via ``webui/config.js``. ``st2web`` comes in its own ``deb`` and ``rpm`` package. In StackStorm versions earlier than 3.3 Workflow Designer was deployed as part of the ``bwc-enterprise`` package. They are HTML5 applications, served as static HTML, and call |st2| st2auth and st2api REST API endpoints. NGINX proxies inbound requests to ``/api`` and ``/auth`` to the st2api and st2auth services respectively. + With StackStorm version 3.4 and later, the workflow designer is entirely integrated into st2web, + and the ``bwc-enterprise`` package is no longer distributed. 4. st2chatops - ChatOps components ---------------------------------- From fbf9f09ff765e167ada194854cb375b6d31de35a Mon Sep 17 00:00:00 2001 From: blag Date: Wed, 21 Apr 2021 17:09:04 -0700 Subject: [PATCH 12/16] Remove reference to EWC from LDAP authentication in the installation overview --- docs/source/install/overview.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/install/overview.rst b/docs/source/install/overview.rst index 8cb17815..0a874275 100644 --- a/docs/source/install/overview.rst +++ b/docs/source/install/overview.rst @@ -98,7 +98,7 @@ The required dependencies are RabbitMQ, and MongoDB. The optional dependencies a - nginx for SSL termination, reverse-proxying API endpoints and serving static HTML. - Redis or Zookeeper for concurrency policies (see :doc:`/reference/policies`). - - LDAP for |ewc| LDAP authentication. + - LDAP authentication. Multi-box/HA deployment From 1c8f45a0e520d81c5368f264f85e22e57a2bb1a7 Mon Sep 17 00:00:00 2001 From: cmd-not-found Date: Wed, 21 Apr 2021 22:34:59 -0400 Subject: [PATCH 13/16] update Dockerfile to install curl --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 945e05a8..e1df1d02 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM ubuntu:18.04 RUN apt-get -qq update && apt-get -q install -y \ - git \ + git curl \ libffi-dev libldap2-dev libsasl2-dev libssl-dev \ python3-dev python3-pip python-virtualenv From c7d19b9617d7ff3811a0671e844d47cf8d009adf Mon Sep 17 00:00:00 2001 From: cmd-not-found Date: Wed, 21 Apr 2021 22:56:32 -0400 Subject: [PATCH 14/16] update start docs with more authentication token information for clarity --- docs/source/start.rst | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/source/start.rst b/docs/source/start.rst index 3dc0c05d..d6f657bb 100644 --- a/docs/source/start.rst +++ b/docs/source/start.rst @@ -52,7 +52,11 @@ You will almost certainly have authentication enabled. The easiest way to login st2 login st2admin --password 'Ch@ngeMe' -This will obtain an authentication token, and cache it. +This will obtain an authentication token, and cache it. The following will display the authentication token. + +.. code-block:: bash + + st2 auth st2admin -p 'Ch@ngeMe' There are other options for authentication: check the :doc:`docs` for more details. @@ -198,11 +202,13 @@ Deploy a Rule # Get the rule that was just created st2 rule get examples.sample_rule_with_webhook -Once the rule is created, the webhook begins to listen on ``https://{host}/api/v1/webhooks/{url}``. -Fire the POST, check out the file and see that it appends the payload if the name=Joe. +Once the rule is created, the webhook begins to listen on ``https://{host}/api/v1/webhooks/{url}``. Fire the POST, check out the file, and see that it appends the payload to the ``/home/stanley/st2.webhook_sample.out`` file. .. code-block:: bash + # Obtain authentication token + st2 auth st2admin -p 'Ch@ngeMe' + # Post to the webhook curl -k https://localhost/api/v1/webhooks/sample -d '{"foo": "bar", "name": "st2"}' -H 'Content-Type: application/json' -H 'X-Auth-Token: put_token_here' From 5bfda2226be2b47ea4dab79bf2dc7a49cdf7caec Mon Sep 17 00:00:00 2001 From: cmd-not-found Date: Wed, 21 Apr 2021 22:58:09 -0400 Subject: [PATCH 15/16] add curl to Dockerfile - alphabetical order --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e1df1d02..64105561 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM ubuntu:18.04 RUN apt-get -qq update && apt-get -q install -y \ - git curl \ + curl git \ libffi-dev libldap2-dev libsasl2-dev libssl-dev \ python3-dev python3-pip python-virtualenv From a25ccbbfbbef81c7db16881f1f115fa5dd05e5c1 Mon Sep 17 00:00:00 2001 From: Jordan Date: Thu, 22 Apr 2021 00:27:06 -0400 Subject: [PATCH 16/16] Apply suggestions from code review Co-authored-by: blag --- docs/source/start.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/source/start.rst b/docs/source/start.rst index d6f657bb..65f0968d 100644 --- a/docs/source/start.rst +++ b/docs/source/start.rst @@ -52,7 +52,9 @@ You will almost certainly have authentication enabled. The easiest way to login st2 login st2admin --password 'Ch@ngeMe' -This will obtain an authentication token, and cache it. The following will display the authentication token. +This will obtain an authentication token, and cache it. + +The following will display the authentication token. .. code-block:: bash @@ -202,7 +204,7 @@ Deploy a Rule # Get the rule that was just created st2 rule get examples.sample_rule_with_webhook -Once the rule is created, the webhook begins to listen on ``https://{host}/api/v1/webhooks/{url}``. Fire the POST, check out the file, and see that it appends the payload to the ``/home/stanley/st2.webhook_sample.out`` file. +Once the rule is created, the webhook begins to listen on ``https://{host}/api/v1/webhooks/{url}``. Fire the POST, check out ``/home/stanley/st2.webhook_sample.out``, and see that it appends the payload to the file. .. code-block:: bash