26f5658c44
Change-Id: I65608499eb5793f7bdbaaf529def7bb934fc4d05
83 lines
2.5 KiB
ReStructuredText
83 lines
2.5 KiB
ReStructuredText
Workbooks
|
|
=========
|
|
|
|
Using workbooks users can combine multiple entities of any type (workflows and
|
|
actions) into one document and upload to Mistral service. When uploading a
|
|
workbook, Mistral will parse it and save its workflows and actions as
|
|
independent objects which will be accessible via their own API endpoints
|
|
(/workflows and /actions). Once it's done the workbook comes out of the game.
|
|
User can just start workflows and use references to workflows/actions as if
|
|
they were uploaded without workbook in the first place. However, if need to
|
|
modify these individual objects user can modify the same workbook definition
|
|
and re-upload it to Mistral (or, of course, user can do it independently).
|
|
|
|
**Namespacing**
|
|
|
|
One thing that's worth noting is that when using a workbook Mistral uses its
|
|
name as a prefix for generating final names of workflows and actions included
|
|
into the workbook. To illustrate this principle let's take a look at the
|
|
figure below:
|
|
|
|
.. image:: /img/Mistral_workbook_namespacing.png
|
|
:align: center
|
|
|
|
So after a workbook has been uploaded its workflows and actions become
|
|
independent objects but with slightly different names.
|
|
|
|
YAML example
|
|
^^^^^^^^^^^^
|
|
::
|
|
|
|
---
|
|
version: '2.0'
|
|
|
|
name: my_workbook
|
|
description: My set of workflows and ad-hoc actions
|
|
|
|
workflows:
|
|
local_workflow1:
|
|
type: direct
|
|
|
|
tasks:
|
|
task1:
|
|
action: local_action str1='Hi' str2=' Mistral!'
|
|
on-complete:
|
|
- task2
|
|
|
|
task2:
|
|
action: global_action
|
|
...
|
|
|
|
local_workflow2:
|
|
type: reverse
|
|
|
|
tasks:
|
|
task1:
|
|
workflow: local_workflow1
|
|
|
|
task2:
|
|
workflow: global_workflow param1='val1' param2='val2'
|
|
requires: [task1]
|
|
...
|
|
|
|
actions:
|
|
local_action:
|
|
input:
|
|
- str1
|
|
- str2
|
|
base: std.echo output="<% $.str1 %><% $.str2 %>"
|
|
|
|
**NOTE:** Even though names of objects inside workbooks change upon uploading
|
|
Mistral allows referencing between those objects using local names declared in
|
|
the original workbook.
|
|
|
|
**Attributes**
|
|
|
|
* **name** - Workbook name. **Required.**
|
|
* **description** - Workbook description. *Optional*.
|
|
* **tags** - String with arbitrary comma-separated values. *Optional*.
|
|
* **workflows** - Dictionary containing workflow definitions. *Optional*.
|
|
* **actions** - Dictionary containing ad-hoc action definitions. *Optional*.
|
|
|
|
For more details about DSL itself, please see :doc:`Mistral DSL specification </dsl/index>`
|