@lowdefy/docs-content 0.0.0-experimental-20260710073520
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +20 -0
- package/content/actions/callapi.md +66 -0
- package/content/actions/callmethod.md +41 -0
- package/content/actions/copytoclipboard.md +32 -0
- package/content/actions/displaymessage.md +53 -0
- package/content/actions/downloadcsv.md +89 -0
- package/content/actions/fetch.md +50 -0
- package/content/actions/geolocationcurrentposition.md +56 -0
- package/content/actions/link.md +104 -0
- package/content/actions/login.md +85 -0
- package/content/actions/logout.md +56 -0
- package/content/actions/pdfmake.md +304 -0
- package/content/actions/request.md +67 -0
- package/content/actions/reset.md +27 -0
- package/content/actions/resetvalidation.md +85 -0
- package/content/actions/scrollto.md +85 -0
- package/content/actions/setdarkmode.md +62 -0
- package/content/actions/setfocus.md +33 -0
- package/content/actions/setglobal.md +63 -0
- package/content/actions/setlocale.md +69 -0
- package/content/actions/setstate.md +70 -0
- package/content/actions/throw.md +72 -0
- package/content/actions/validate.md +87 -0
- package/content/actions/wait.md +24 -0
- package/content/agents/agent-endpoint-tools.md +190 -0
- package/content/agents/agent-mcp-tools.md +124 -0
- package/content/agents/agent-multi-agent.md +136 -0
- package/content/agents/agent-properties.md +174 -0
- package/content/agents/agent-server-hooks.md +336 -0
- package/content/agents/agentchat.md +515 -0
- package/content/agents/agentconversations.md +148 -0
- package/content/concepts/ai-agent-docs.md +190 -0
- package/content/concepts/cli.md +213 -0
- package/content/concepts/connections-and-requests.md +7 -0
- package/content/concepts/custom-html.md +3 -0
- package/content/concepts/custom-styling.md +161 -0
- package/content/concepts/events-and-actions.md +271 -0
- package/content/concepts/hosting-files.md +18 -0
- package/content/concepts/i18n.md +320 -0
- package/content/concepts/keyboard-shortcuts.md +218 -0
- package/content/concepts/layout-overview.md +478 -0
- package/content/concepts/lists.md +144 -0
- package/content/concepts/logger.md +43 -0
- package/content/concepts/lowdefy-schema.md +365 -0
- package/content/concepts/menus.md +144 -0
- package/content/concepts/module-authoring.md +564 -0
- package/content/concepts/modules.md +338 -0
- package/content/concepts/operators.md +45 -0
- package/content/concepts/overview.md +19 -0
- package/content/concepts/references-and-templates.md +207 -0
- package/content/concepts/secrets.md +24 -0
- package/content/concepts/selectors.md +143 -0
- package/content/connections/amazonredshift.md +176 -0
- package/content/connections/anthropic.md +232 -0
- package/content/connections/awss3.md +313 -0
- package/content/connections/azureblobstorage.md +133 -0
- package/content/connections/elasticsearch.md +371 -0
- package/content/connections/google.md +228 -0
- package/content/connections/googlecloudstorage.md +139 -0
- package/content/connections/googlesheet.md +313 -0
- package/content/connections/knex.md +206 -0
- package/content/connections/mariadb.md +177 -0
- package/content/connections/mcp.md +134 -0
- package/content/connections/mongodb.md +739 -0
- package/content/connections/mssql.md +191 -0
- package/content/connections/mysql.md +192 -0
- package/content/connections/openai-connection.md +228 -0
- package/content/connections/postgresql.md +200 -0
- package/content/connections/redis.md +116 -0
- package/content/connections/sendgridmail.md +94 -0
- package/content/connections/smtp.md +149 -0
- package/content/connections/sqlite.md +187 -0
- package/content/connections/stripe.md +115 -0
- package/content/container-blocks/affix.md +413 -0
- package/content/container-blocks/alert.md +937 -0
- package/content/container-blocks/badge.md +1222 -0
- package/content/container-blocks/box.md +1453 -0
- package/content/container-blocks/card.md +1200 -0
- package/content/container-blocks/carousel.md +2247 -0
- package/content/container-blocks/collapse.md +1335 -0
- package/content/container-blocks/configprovider.md +1070 -0
- package/content/container-blocks/confirmmodal.md +1159 -0
- package/content/container-blocks/content.md +597 -0
- package/content/container-blocks/descriptions.md +870 -0
- package/content/container-blocks/drawer.md +1379 -0
- package/content/container-blocks/dropdownmenu.md +643 -0
- package/content/container-blocks/flex.md +1510 -0
- package/content/container-blocks/footer.md +380 -0
- package/content/container-blocks/googlemaps.md +546 -0
- package/content/container-blocks/googlemapsheatmap.md +607 -0
- package/content/container-blocks/googlemapsscript.md +61 -0
- package/content/container-blocks/header.md +302 -0
- package/content/container-blocks/label.md +739 -0
- package/content/container-blocks/layout.md +604 -0
- package/content/container-blocks/masonry.md +1090 -0
- package/content/container-blocks/mobilemenu.md +1244 -0
- package/content/container-blocks/modal.md +1180 -0
- package/content/container-blocks/pageheadermenu.md +614 -0
- package/content/container-blocks/pagesidebarlayout.md +438 -0
- package/content/container-blocks/pagesidermenu.md +651 -0
- package/content/container-blocks/popover.md +1421 -0
- package/content/container-blocks/result.md +972 -0
- package/content/container-blocks/sider.md +1064 -0
- package/content/container-blocks/span.md +747 -0
- package/content/container-blocks/spinner.md +267 -0
- package/content/container-blocks/splitter.md +1735 -0
- package/content/container-blocks/tabs.md +1718 -0
- package/content/container-blocks/tooltip.md +1274 -0
- package/content/container-blocks/watermark.md +515 -0
- package/content/controls/for.md +103 -0
- package/content/controls/if.md +107 -0
- package/content/controls/log.md +50 -0
- package/content/controls/parallel.md +71 -0
- package/content/controls/parallel_for.md +36 -0
- package/content/controls/reject.md +56 -0
- package/content/controls/return.md +66 -0
- package/content/controls/set_state.md +98 -0
- package/content/controls/switch.md +90 -0
- package/content/controls/throw.md +79 -0
- package/content/controls/try.md +88 -0
- package/content/deployment/docker.md +149 -0
- package/content/deployment/node-server.md +27 -0
- package/content/deployment/vercel.md +101 -0
- package/content/display-blocks/aggrid.md +1459 -0
- package/content/display-blocks/anchor.md +336 -0
- package/content/display-blocks/avatar.md +1154 -0
- package/content/display-blocks/breadcrumb.md +517 -0
- package/content/display-blocks/button.md +758 -0
- package/content/display-blocks/calendar.md +156 -0
- package/content/display-blocks/dangeroushtml.md +314 -0
- package/content/display-blocks/dangerousmarkdown.md +423 -0
- package/content/display-blocks/diffgit.md +44 -0
- package/content/display-blocks/difflist.md +225 -0
- package/content/display-blocks/diffsidebyside.md +56 -0
- package/content/display-blocks/difftimeline.md +94 -0
- package/content/display-blocks/divider.md +406 -0
- package/content/display-blocks/download.md +60 -0
- package/content/display-blocks/dropdownbutton.md +661 -0
- package/content/display-blocks/echart.md +418 -0
- package/content/display-blocks/floatbutton.md +545 -0
- package/content/display-blocks/html.md +311 -0
- package/content/display-blocks/icon.md +717 -0
- package/content/display-blocks/img.md +479 -0
- package/content/display-blocks/markdown.md +520 -0
- package/content/display-blocks/markdownwithcode.md +730 -0
- package/content/display-blocks/menu.md +1123 -0
- package/content/display-blocks/message.md +941 -0
- package/content/display-blocks/notification.md +1410 -0
- package/content/display-blocks/paragraph.md +643 -0
- package/content/display-blocks/progress.md +818 -0
- package/content/display-blocks/qrcode.md +519 -0
- package/content/display-blocks/s3download.md +240 -0
- package/content/display-blocks/search.md +360 -0
- package/content/display-blocks/skeleton.md +272 -0
- package/content/display-blocks/skeletonavatar.md +222 -0
- package/content/display-blocks/skeletonbutton.md +245 -0
- package/content/display-blocks/skeletoninput.md +223 -0
- package/content/display-blocks/skeletonparagraph.md +201 -0
- package/content/display-blocks/statistic.md +485 -0
- package/content/display-blocks/steps.md +585 -0
- package/content/display-blocks/tag.md +620 -0
- package/content/display-blocks/title.md +654 -0
- package/content/display-blocks/tour.md +2359 -0
- package/content/input-blocks/autocomplete.md +786 -0
- package/content/input-blocks/buttonselector.md +964 -0
- package/content/input-blocks/checkboxselector.md +765 -0
- package/content/input-blocks/checkboxswitch.md +497 -0
- package/content/input-blocks/colorselector.md +884 -0
- package/content/input-blocks/daterangeselector.md +777 -0
- package/content/input-blocks/dateselector.md +693 -0
- package/content/input-blocks/datetimeselector.md +791 -0
- package/content/input-blocks/inputgallery.md +528 -0
- package/content/input-blocks/monthselector.md +717 -0
- package/content/input-blocks/multipleselector.md +1337 -0
- package/content/input-blocks/numberinput.md +855 -0
- package/content/input-blocks/pagination.md +679 -0
- package/content/input-blocks/paragraphinput.md +1664 -0
- package/content/input-blocks/passwordinput.md +480 -0
- package/content/input-blocks/phonenumberinput.md +688 -0
- package/content/input-blocks/radioselector.md +820 -0
- package/content/input-blocks/ratingslider.md +684 -0
- package/content/input-blocks/s3uploadbutton.md +384 -0
- package/content/input-blocks/s3uploaddragger.md +305 -0
- package/content/input-blocks/s3uploadphoto.md +288 -0
- package/content/input-blocks/segmentedselector.md +782 -0
- package/content/input-blocks/selector.md +1162 -0
- package/content/input-blocks/switch.md +552 -0
- package/content/input-blocks/textarea.md +714 -0
- package/content/input-blocks/textinput.md +639 -0
- package/content/input-blocks/tiptapinput.md +226 -0
- package/content/input-blocks/tiptapmentioninput.md +471 -0
- package/content/input-blocks/titleinput.md +1094 -0
- package/content/input-blocks/treeinput.md +144 -0
- package/content/input-blocks/treemultipleselector.md +162 -0
- package/content/input-blocks/treeselector.md +185 -0
- package/content/input-blocks/upload.md +149 -0
- package/content/input-blocks/uploaddragger.md +85 -0
- package/content/input-blocks/uploadphoto.md +84 -0
- package/content/input-blocks/weekselector.md +630 -0
- package/content/list-blocks/controlledlist.md +498 -0
- package/content/list-blocks/list.md +529 -0
- package/content/list-blocks/listselector.md +301 -0
- package/content/list-blocks/masonrylist.md +230 -0
- package/content/migration/upgrade-guide.md +106 -0
- package/content/migration/v4-to-v5.md +589 -0
- package/content/migration/v5-to-v6.md +36 -0
- package/content/operators/_actions.md +58 -0
- package/content/operators/_and.md +76 -0
- package/content/operators/_api.md +254 -0
- package/content/operators/_app.md +114 -0
- package/content/operators/_args.md +65 -0
- package/content/operators/_array.md +331 -0
- package/content/operators/_base64.md +49 -0
- package/content/operators/_boolean.md +33 -0
- package/content/operators/_build.md +166 -0
- package/content/operators/_change_case.md +357 -0
- package/content/operators/_date.md +415 -0
- package/content/operators/_dayjs.md +128 -0
- package/content/operators/_diff.md +61 -0
- package/content/operators/_divide.md +32 -0
- package/content/operators/_eq.md +52 -0
- package/content/operators/_event.md +86 -0
- package/content/operators/_function.md +52 -0
- package/content/operators/_get.md +92 -0
- package/content/operators/_global.md +86 -0
- package/content/operators/_gt.md +50 -0
- package/content/operators/_gte.md +50 -0
- package/content/operators/_hash.md +112 -0
- package/content/operators/_if.md +30 -0
- package/content/operators/_if_none.md +47 -0
- package/content/operators/_index.md +48 -0
- package/content/operators/_input.md +86 -0
- package/content/operators/_intl.md +135 -0
- package/content/operators/_item.md +166 -0
- package/content/operators/_js.md +113 -0
- package/content/operators/_json.md +120 -0
- package/content/operators/_jsonata.md +152 -0
- package/content/operators/_locale.md +65 -0
- package/content/operators/_location.md +40 -0
- package/content/operators/_log.md +22 -0
- package/content/operators/_lt.md +50 -0
- package/content/operators/_lte.md +50 -0
- package/content/operators/_math.md +407 -0
- package/content/operators/_media.md +83 -0
- package/content/operators/_menu.md +62 -0
- package/content/operators/_module.md +340 -0
- package/content/operators/_mql.md +95 -0
- package/content/operators/_ne.md +62 -0
- package/content/operators/_not.md +33 -0
- package/content/operators/_number.md +159 -0
- package/content/operators/_nunjucks.md +117 -0
- package/content/operators/_object.md +253 -0
- package/content/operators/_operator.md +33 -0
- package/content/operators/_or.md +67 -0
- package/content/operators/_product.md +45 -0
- package/content/operators/_random.md +90 -0
- package/content/operators/_ref.md +80 -0
- package/content/operators/_regex.md +69 -0
- package/content/operators/_request.md +35 -0
- package/content/operators/_request_details.md +29 -0
- package/content/operators/_secret.md +56 -0
- package/content/operators/_state.md +134 -0
- package/content/operators/_step.md +98 -0
- package/content/operators/_string.md +327 -0
- package/content/operators/_subtract.md +24 -0
- package/content/operators/_sum.md +45 -0
- package/content/operators/_switch.md +37 -0
- package/content/operators/_t.md +96 -0
- package/content/operators/_theme.md +65 -0
- package/content/operators/_type.md +78 -0
- package/content/operators/_uri.md +49 -0
- package/content/operators/_url_query.md +92 -0
- package/content/operators/_user.md +154 -0
- package/content/operators/_uuid.md +118 -0
- package/content/operators/_var.md +88 -0
- package/content/operators/_yaml.md +96 -0
- package/content/other/introduction.md +39 -0
- package/content/other/next-auth-providers.md +3 -0
- package/content/other/updatesession.md +26 -0
- package/content/plugins/plugins-actions.md +80 -0
- package/content/plugins/plugins-connections.md +98 -0
- package/content/plugins/plugins-dev.md +138 -0
- package/content/plugins/plugins-introduction.md +29 -0
- package/content/plugins/plugins-operators.md +71 -0
- package/content/testing/e2e-auth.md +108 -0
- package/content/testing/e2e-configuration.md +107 -0
- package/content/testing/e2e-getting-started.md +96 -0
- package/content/testing/e2e-introduction.md +53 -0
- package/content/testing/e2e-mocking.md +155 -0
- package/content/testing/e2e-writing-tests.md +214 -0
- package/content/tutorial/tutorial-actions-operators.md +222 -0
- package/content/tutorial/tutorial-add-blocks.md +86 -0
- package/content/tutorial/tutorial-create-page.md +57 -0
- package/content/tutorial/tutorial-display-data-page.md +181 -0
- package/content/tutorial/tutorial-next-steps.md +53 -0
- package/content/tutorial/tutorial-requests-sql.md +22 -0
- package/content/tutorial/tutorial-start.md +71 -0
- package/content/user-authentication/auth-providers.md +15 -0
- package/content/user-authentication/login-and-logout.md +122 -0
- package/content/user-authentication/users-introduction.md +31 -0
- package/index.json +2281 -0
- package/package.json +34 -0
- package/scripts/extractAgentDocs.js +130 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# _regex
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
(pattern: string): boolean
|
|
5
|
+
(arguments: {
|
|
6
|
+
pattern: string,
|
|
7
|
+
on?: string,
|
|
8
|
+
key?: string,
|
|
9
|
+
flags?: string
|
|
10
|
+
}): boolean
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The `_regex` operator performs a regex test on a string, and returns `true` if there is a match.
|
|
14
|
+
|
|
15
|
+
The regex operator has shorthand argument definitions that can be used on web client.
|
|
16
|
+
|
|
17
|
+
> This operator can be used as a [`_build`](/_build) operator method.
|
|
18
|
+
|
|
19
|
+
#### Arguments
|
|
20
|
+
|
|
21
|
+
###### object
|
|
22
|
+
- `pattern: string`: __Required__ - The regular expression pattern to test.
|
|
23
|
+
- `on: string`: The string to test the value on. One of `on` or `key` must be specified unless the operator is used in an input block.
|
|
24
|
+
- `key: string`: The key of a value in `state` to test. One of `on` or `key` must be specified unless the operator is used in an input block.
|
|
25
|
+
- `flags: string`: The regex flags to use. The default value is `"gm"`.
|
|
26
|
+
|
|
27
|
+
###### string
|
|
28
|
+
The regular expression pattern to test. The string shorthand can only be used in an input block, and the tested value will be the block's value.
|
|
29
|
+
|
|
30
|
+
#### Examples
|
|
31
|
+
|
|
32
|
+
###### Check if a username is valid (Alphanumeric string that may include _ and – having a length of 3 to 16 characters):
|
|
33
|
+
```yaml
|
|
34
|
+
_regex:
|
|
35
|
+
pattern: ^[a-z0-9_-]{3,16}$
|
|
36
|
+
on:
|
|
37
|
+
_state: username_input
|
|
38
|
+
```
|
|
39
|
+
Returns: `true` if matched else `false`.
|
|
40
|
+
|
|
41
|
+
###### Using the key of the value in `state`:
|
|
42
|
+
```yaml
|
|
43
|
+
_regex:
|
|
44
|
+
pattern: ^[a-z0-9_-]{3,16}$
|
|
45
|
+
key: username_input
|
|
46
|
+
```
|
|
47
|
+
Returns: `true` if matched else `false`.
|
|
48
|
+
|
|
49
|
+
###### Using the value of the block in which the operator is evaluated:
|
|
50
|
+
```yaml
|
|
51
|
+
id: username_input
|
|
52
|
+
type: TextInput
|
|
53
|
+
validate:
|
|
54
|
+
- message: Invalid username.
|
|
55
|
+
status: error
|
|
56
|
+
pass:
|
|
57
|
+
_regex: ^[a-z0-9_-]{3,16}$
|
|
58
|
+
```
|
|
59
|
+
Returns: `true` if matched else `false`.
|
|
60
|
+
|
|
61
|
+
###### Case insensitive match:
|
|
62
|
+
```yaml
|
|
63
|
+
_regex:
|
|
64
|
+
pattern: ^[a-z0-9_-]{3,16}$
|
|
65
|
+
on:
|
|
66
|
+
_state: username_input
|
|
67
|
+
flags: 'gmi'
|
|
68
|
+
```
|
|
69
|
+
Returns: `true` if matched else `false`.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# _request
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
(requestId: string): any
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
The `_request` operator returns the response value of a request. If the request has not yet been called, or is still executing, the returned value is `null`. Dot notation and [block list indexes](/lists) are supported. For more detailed information about a request, the [_request_details](/_request_details) operator can be used.
|
|
8
|
+
|
|
9
|
+
If the request was called via the [`Request`](/Request) action with `holdValue: true`, `_request` returns the previous response while the new request is loading instead of returning `null`. Use `_request_details: <id>.loading` to detect that a new call is still in-flight, and `_request_details: <id>.error` to detect a failure.
|
|
10
|
+
|
|
11
|
+
#### Arguments
|
|
12
|
+
|
|
13
|
+
###### string
|
|
14
|
+
The id of the request.
|
|
15
|
+
|
|
16
|
+
#### Examples
|
|
17
|
+
|
|
18
|
+
###### Using a request response:
|
|
19
|
+
```yaml
|
|
20
|
+
_request: my_request
|
|
21
|
+
```
|
|
22
|
+
Returns: The response returned by the request.
|
|
23
|
+
|
|
24
|
+
###### Using dot notation to get the data object from the response:
|
|
25
|
+
```yaml
|
|
26
|
+
_request: my_request.data
|
|
27
|
+
```
|
|
28
|
+
###### Using dot notation to get the first element of an array response:
|
|
29
|
+
```yaml
|
|
30
|
+
_request: array_request.0
|
|
31
|
+
```
|
|
32
|
+
###### Using dot notation and block list indexes to get the name field from the element corresponding to the block index of an array response:
|
|
33
|
+
```yaml
|
|
34
|
+
_request: array_request.$.name
|
|
35
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# _request_details
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
(requestId: string): any
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
The `_request_details` operator returns detailed information of a request. If the request has not yet been called, the returned value is `null`.
|
|
8
|
+
|
|
9
|
+
The response includes the following fields:
|
|
10
|
+
|
|
11
|
+
- `blockId: string`: The id of the block from which the request was initiated.
|
|
12
|
+
- `loading: boolean`: When `true`, the request is awaiting a response.
|
|
13
|
+
- `payload: object`: The payload sent with the request.
|
|
14
|
+
- `requestId: string`: The id of the request.
|
|
15
|
+
- `response: object`: The response returned by the request. `null` while `loading` is true.
|
|
16
|
+
- `responseTime: number`: The time taken to get the response in milliseconds.
|
|
17
|
+
|
|
18
|
+
#### Arguments
|
|
19
|
+
|
|
20
|
+
###### string
|
|
21
|
+
The id of the request.
|
|
22
|
+
|
|
23
|
+
#### Examples
|
|
24
|
+
|
|
25
|
+
###### Using a request id:
|
|
26
|
+
```yaml
|
|
27
|
+
_request_details: my_request
|
|
28
|
+
```
|
|
29
|
+
Returns: The details of the specified request.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# _secret
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
(key: string): any
|
|
5
|
+
(all: boolean): any
|
|
6
|
+
(arguments: {
|
|
7
|
+
all?: boolean,
|
|
8
|
+
key?: string,
|
|
9
|
+
default?: any
|
|
10
|
+
}): any
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The `_secret` operator gets a value from the [`secret`](/context-and-secret) object. The `secrets` is a data object that contains sensitive information like passwords or API keys. The `_secret` operator can only be used in `connections` and `requests`. Secrets are read from environment variables on the server that start with `LOWDEFY_SECRET_`, (i.e. `LOWDEFY_SECRET_SECRET_NAME`). The name of the secret is the part after `LOWDEFY_SECRET_`. Since environment variables can only be strings, secrets can be JSON encoded, and parsed using the [`_json.parse`](/_json) method.
|
|
14
|
+
|
|
15
|
+
#### Arguments
|
|
16
|
+
|
|
17
|
+
###### string
|
|
18
|
+
If the `_secret` operator is called with a string argument, the value of the key in the `secrets` object is returned. If the value is not found, `null` is returned.
|
|
19
|
+
|
|
20
|
+
###### boolean
|
|
21
|
+
If the `_secret` operator is called with boolean argument `true`, the entire `secrets` object is returned.
|
|
22
|
+
|
|
23
|
+
###### object
|
|
24
|
+
- `all: boolean`: If `all` is set to `true`, the entire `secrets` object is returned. One of `all` or `key` are required.
|
|
25
|
+
- `key: string`: The value of the key in the `secrets` object is returned. If the value is not found, `null`, or the specified default value is returned. One of `all` or `key` are required.
|
|
26
|
+
- `default: any`: A value to return if the `key` is not found in `secrets`. By default, `null` is returned if a value is not found.
|
|
27
|
+
|
|
28
|
+
#### Examples
|
|
29
|
+
|
|
30
|
+
###### Get the value of `MY_SECRET` from `secrets`:
|
|
31
|
+
```yaml
|
|
32
|
+
_secret: MY_SECRET
|
|
33
|
+
```
|
|
34
|
+
```yaml
|
|
35
|
+
_secret:
|
|
36
|
+
key: MY_SECRET
|
|
37
|
+
```
|
|
38
|
+
Returns: The value of `MY_SECRET` in `secrets`.
|
|
39
|
+
|
|
40
|
+
###### Get the entire `secret` object:
|
|
41
|
+
```yaml
|
|
42
|
+
_secret: true
|
|
43
|
+
```
|
|
44
|
+
```yaml
|
|
45
|
+
_secret:
|
|
46
|
+
all: true
|
|
47
|
+
```
|
|
48
|
+
Returns: The entire `secrets` object.
|
|
49
|
+
|
|
50
|
+
###### Return a default value if the value is not found:
|
|
51
|
+
```yaml
|
|
52
|
+
_secret:
|
|
53
|
+
key: MY_SECRET
|
|
54
|
+
default: Not so secret
|
|
55
|
+
```
|
|
56
|
+
Returns: The value of `MY_SECRET`, or `"Not so secret"`.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# _state
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
(key: string): any
|
|
5
|
+
(all: boolean): any
|
|
6
|
+
(arguments: {
|
|
7
|
+
all?: boolean,
|
|
8
|
+
key?: string,
|
|
9
|
+
default?: any,
|
|
10
|
+
}): any
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
If used in a block, the `_state` operator gets a value from the [`state`](/page-and-app-state) object. The `state` is a data object specific to the page it is in. The value of `input` blocks are available in `state`, with their `blockId` as key.
|
|
14
|
+
|
|
15
|
+
If used in an API endpoint, the `_state` operator gets a value from the API endpoints state. The `state` is a data object specific to that execution of the API endpoint.
|
|
16
|
+
|
|
17
|
+
#### Arguments
|
|
18
|
+
|
|
19
|
+
###### string
|
|
20
|
+
If the `_state` operator is called with a string argument, the value of the key in the `state` object is returned. If the value is not found, `null` is returned. Dot notation and [block list indexes](/lists) are supported.
|
|
21
|
+
|
|
22
|
+
###### boolean
|
|
23
|
+
If the `_state` operator is called with boolean argument `true`, the entire `state` object is returned.
|
|
24
|
+
|
|
25
|
+
###### object
|
|
26
|
+
- `all: boolean`: If `all` is set to `true`, the entire `state` object is returned. One of `all` or `key` are required.
|
|
27
|
+
- `key: string`: The value of the key in the `state` object is returned. If the value is not found, `null`, or the specified default value is returned. Dot notation and [block list indexes](/lists) are supported. One of `all` or `key` are required.
|
|
28
|
+
- `default: any`: A value to return if the `key` is not found in `state`. By default, `null` is returned if a value is not found.
|
|
29
|
+
|
|
30
|
+
#### Examples
|
|
31
|
+
|
|
32
|
+
###### Get the value of `my_key` from `state`:
|
|
33
|
+
```yaml
|
|
34
|
+
_state: my_key
|
|
35
|
+
```
|
|
36
|
+
```yaml
|
|
37
|
+
_state:
|
|
38
|
+
key: my_key
|
|
39
|
+
```
|
|
40
|
+
Returns: The value of `my_key` in `state`.
|
|
41
|
+
|
|
42
|
+
###### Get the entire `state` object:
|
|
43
|
+
```yaml
|
|
44
|
+
_state: true
|
|
45
|
+
```
|
|
46
|
+
```yaml
|
|
47
|
+
_state:
|
|
48
|
+
all: true
|
|
49
|
+
```
|
|
50
|
+
Returns: The entire `state` object.
|
|
51
|
+
|
|
52
|
+
###### Dot notation:
|
|
53
|
+
Assuming state:
|
|
54
|
+
```yaml
|
|
55
|
+
my_object:
|
|
56
|
+
subfield: 'Value'
|
|
57
|
+
```
|
|
58
|
+
then:
|
|
59
|
+
```yaml
|
|
60
|
+
_state: my_object.subfield
|
|
61
|
+
```
|
|
62
|
+
```yaml
|
|
63
|
+
_state:
|
|
64
|
+
key: my_object.subfield
|
|
65
|
+
```
|
|
66
|
+
Returns: `"Value"`.
|
|
67
|
+
|
|
68
|
+
###### Return a default value if the value is not found:
|
|
69
|
+
```yaml
|
|
70
|
+
_state:
|
|
71
|
+
key: might_not_exist
|
|
72
|
+
default: Default value
|
|
73
|
+
```
|
|
74
|
+
Returns: The value of `might_not_exist`, or `"Default value"`.
|
|
75
|
+
|
|
76
|
+
###### Block list indices:
|
|
77
|
+
Assuming `state`:
|
|
78
|
+
```yaml
|
|
79
|
+
my_array:
|
|
80
|
+
- value: 0
|
|
81
|
+
- value: 1
|
|
82
|
+
- value: 2
|
|
83
|
+
```
|
|
84
|
+
then:
|
|
85
|
+
```yaml
|
|
86
|
+
_state: my_array.$.value
|
|
87
|
+
```
|
|
88
|
+
Returns: `0` when used from the first block (0th index) in a list.
|
|
89
|
+
|
|
90
|
+
###### Using `_state` with `:set_state` in an API endpoint
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
- :set_state:
|
|
94
|
+
product_id:
|
|
95
|
+
_uuid: true
|
|
96
|
+
- id: insert_product
|
|
97
|
+
type: MongoDBInsertOne
|
|
98
|
+
connectionId: tickets
|
|
99
|
+
properties:
|
|
100
|
+
doc:
|
|
101
|
+
_id:
|
|
102
|
+
_state: product_id
|
|
103
|
+
name:
|
|
104
|
+
_payload: product_name
|
|
105
|
+
created_at:
|
|
106
|
+
_date: now
|
|
107
|
+
|
|
108
|
+
- id: insert_new_product_event
|
|
109
|
+
type: MongoDBInsertOne
|
|
110
|
+
connectionId: events
|
|
111
|
+
properties:
|
|
112
|
+
doc:
|
|
113
|
+
_id:
|
|
114
|
+
_uuid: true
|
|
115
|
+
type: new-product
|
|
116
|
+
description:
|
|
117
|
+
_nunjucks:
|
|
118
|
+
template: New product {{ product_name }} created by {{ user_name }}.
|
|
119
|
+
on:
|
|
120
|
+
product_name:
|
|
121
|
+
_payload: product_name
|
|
122
|
+
user_name:
|
|
123
|
+
_user: name
|
|
124
|
+
product_id:
|
|
125
|
+
_state: product_id
|
|
126
|
+
user:
|
|
127
|
+
id:
|
|
128
|
+
_user: id
|
|
129
|
+
name:
|
|
130
|
+
_user: name
|
|
131
|
+
timestamp:
|
|
132
|
+
_date: now
|
|
133
|
+
|
|
134
|
+
```
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# _step
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
(stepId: string): any
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
The `_step` operator returns the response value from a previously executed step in an API routine. This operator is only available within API routines and allows later steps to access data from earlier steps. If the step has not yet been executed or is still executing, the returned value is `null`. Dot notation and array indexes are supported for accessing nested properties.
|
|
8
|
+
|
|
9
|
+
#### Arguments
|
|
10
|
+
|
|
11
|
+
###### string
|
|
12
|
+
The id of a step that has already been executed in the current API routine.
|
|
13
|
+
|
|
14
|
+
#### Examples
|
|
15
|
+
|
|
16
|
+
###### Using a step response:
|
|
17
|
+
```yaml
|
|
18
|
+
routine:
|
|
19
|
+
- id: get_user
|
|
20
|
+
type: MongoDBFindOne
|
|
21
|
+
connectionId: users
|
|
22
|
+
properties:
|
|
23
|
+
query:
|
|
24
|
+
email:
|
|
25
|
+
_payload: email
|
|
26
|
+
|
|
27
|
+
- :return:
|
|
28
|
+
_step: get_user
|
|
29
|
+
```
|
|
30
|
+
Returns: The complete response object returned by the `get_user` step.
|
|
31
|
+
|
|
32
|
+
###### Using dot notation to access nested properties:
|
|
33
|
+
```yaml
|
|
34
|
+
routine:
|
|
35
|
+
- id: get_user
|
|
36
|
+
type: MongoDBFindOne
|
|
37
|
+
connectionId: users
|
|
38
|
+
properties:
|
|
39
|
+
query:
|
|
40
|
+
email:
|
|
41
|
+
_payload: email
|
|
42
|
+
|
|
43
|
+
- id: get_orders
|
|
44
|
+
type: MongoDBFind
|
|
45
|
+
connectionId: orders
|
|
46
|
+
properties:
|
|
47
|
+
query:
|
|
48
|
+
userId:
|
|
49
|
+
_step: get_user._id # Access the _id field from get_user
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
###### Using array indexes:
|
|
53
|
+
```yaml
|
|
54
|
+
routine:
|
|
55
|
+
- id: get_products
|
|
56
|
+
type: MongoDBFind
|
|
57
|
+
connectionId: products
|
|
58
|
+
properties:
|
|
59
|
+
query:
|
|
60
|
+
category: 'electronics'
|
|
61
|
+
|
|
62
|
+
- :return:
|
|
63
|
+
first_product:
|
|
64
|
+
_step: get_products.0 # Access the first element of the array
|
|
65
|
+
first_product_name:
|
|
66
|
+
_step: get_products.0.name # Access a property of the first element
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
###### Chaining multiple steps:
|
|
70
|
+
```yaml
|
|
71
|
+
routine:
|
|
72
|
+
- id: create_order
|
|
73
|
+
type: MongoDBInsertOne
|
|
74
|
+
connectionId: orders
|
|
75
|
+
properties:
|
|
76
|
+
doc:
|
|
77
|
+
items:
|
|
78
|
+
_payload: items
|
|
79
|
+
total:
|
|
80
|
+
_payload: total
|
|
81
|
+
|
|
82
|
+
- id: send_confirmation
|
|
83
|
+
type: SendGridMail
|
|
84
|
+
connectionId: email-service
|
|
85
|
+
properties:
|
|
86
|
+
to:
|
|
87
|
+
_payload: customer_email
|
|
88
|
+
template_data:
|
|
89
|
+
order_id:
|
|
90
|
+
_step: create_order.insertedId # Use the inserted document's ID
|
|
91
|
+
|
|
92
|
+
- :return:
|
|
93
|
+
success: true
|
|
94
|
+
order_id:
|
|
95
|
+
_step: create_order.insertedId
|
|
96
|
+
email_sent:
|
|
97
|
+
_step: send_confirmation.success
|
|
98
|
+
```
|