@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,187 @@
|
|
|
1
|
+
# SQLite
|
|
2
|
+
|
|
3
|
+
The [Knex](/Knex) connection can be used to connect to a [SQLite](https://www.sqlite.org) database.
|
|
4
|
+
|
|
5
|
+
## Connections
|
|
6
|
+
|
|
7
|
+
Connection types:
|
|
8
|
+
- Knex
|
|
9
|
+
|
|
10
|
+
### Knex
|
|
11
|
+
|
|
12
|
+
#### Properties
|
|
13
|
+
- `client: enum`: __Required__ - Should be `better-sqlite3` or `sqlite` (alias of `better-sqlite3`) to connect to SQLite. SQLite uses the [`better-sqlite3`](https://github.com/WiseLibs/better-sqlite3) driver.
|
|
14
|
+
- `connection: object`:
|
|
15
|
+
- `filename: string`: __Required__ - The path to the SQLite file (relative to the project root).
|
|
16
|
+
- `useNullAsDefault: boolean`: If true, undefined keys are replaced with NULL instead of DEFAULT.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
#### Examples
|
|
20
|
+
|
|
21
|
+
##### Specify filename:
|
|
22
|
+
```yaml
|
|
23
|
+
connections:
|
|
24
|
+
- id: sqlite
|
|
25
|
+
type: Knex
|
|
26
|
+
properties:
|
|
27
|
+
client: better-sqlite3
|
|
28
|
+
connection:
|
|
29
|
+
filename: ./mydb.sqlite
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
###### Different connections in deployment and production environments:
|
|
33
|
+
```yaml
|
|
34
|
+
connections:
|
|
35
|
+
- id: knex
|
|
36
|
+
type: Knex
|
|
37
|
+
properties:
|
|
38
|
+
client:
|
|
39
|
+
_secret: KNEX_CLIENT
|
|
40
|
+
connection:
|
|
41
|
+
_json.parse:
|
|
42
|
+
_secret: KNEX_CONNECTION
|
|
43
|
+
```
|
|
44
|
+
Environment variables in development:
|
|
45
|
+
```
|
|
46
|
+
LOWDEFY_SECRET_KNEX_CLIENT = better-sqlite3
|
|
47
|
+
LOWDEFY_SECRET_KNEX_CONNECTION = {"filename": "./mydb.sqlite"}
|
|
48
|
+
```
|
|
49
|
+
Environment variables in production:
|
|
50
|
+
```
|
|
51
|
+
LOWDEFY_SECRET_KNEX_CLIENT = postgres
|
|
52
|
+
LOWDEFY_SECRET_KNEX_CONNECTION = {"user": "dbuser", "host": "database.server.com", "database": "mydb", "password": "secretpassword"}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Requests
|
|
56
|
+
|
|
57
|
+
Request types:
|
|
58
|
+
|
|
59
|
+
- KnexBuilder
|
|
60
|
+
- KnexRaw
|
|
61
|
+
|
|
62
|
+
### KnexBuilder
|
|
63
|
+
|
|
64
|
+
#### Properties
|
|
65
|
+
|
|
66
|
+
- `query: object[]`: **Required** - SQL query builder array. An array of objects, with a single key which is the name of the knex builder function. The value should be an array of arguments to pass to the builder function.
|
|
67
|
+
- `tableName: string | object`: The name of the table to query from.
|
|
68
|
+
|
|
69
|
+
#### Examples
|
|
70
|
+
|
|
71
|
+
###### Build a query:
|
|
72
|
+
|
|
73
|
+
```yaml
|
|
74
|
+
id: knexBuilder
|
|
75
|
+
type: KnexBuilder
|
|
76
|
+
connectionId: knex
|
|
77
|
+
payload:
|
|
78
|
+
name:
|
|
79
|
+
_state: name
|
|
80
|
+
properties:
|
|
81
|
+
query:
|
|
82
|
+
- select:
|
|
83
|
+
- '*'
|
|
84
|
+
- from:
|
|
85
|
+
- users
|
|
86
|
+
- where:
|
|
87
|
+
- name
|
|
88
|
+
- _payload: name
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
###### Using `tableName`:
|
|
92
|
+
|
|
93
|
+
```yaml
|
|
94
|
+
id: knexBuilder
|
|
95
|
+
type: KnexBuilder
|
|
96
|
+
connectionId: knex
|
|
97
|
+
payload:
|
|
98
|
+
name:
|
|
99
|
+
_state: name
|
|
100
|
+
properties:
|
|
101
|
+
tableName: users
|
|
102
|
+
query:
|
|
103
|
+
- select:
|
|
104
|
+
- '*'
|
|
105
|
+
- where:
|
|
106
|
+
- name
|
|
107
|
+
- _payload: name
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
###### Aliases:
|
|
111
|
+
|
|
112
|
+
```yaml
|
|
113
|
+
id: knexBuilder
|
|
114
|
+
type: KnexBuilder
|
|
115
|
+
connectionId: knex
|
|
116
|
+
properties:
|
|
117
|
+
tableName:
|
|
118
|
+
a: tableA
|
|
119
|
+
b: tableB
|
|
120
|
+
query:
|
|
121
|
+
- select:
|
|
122
|
+
- aField: 'a.field'
|
|
123
|
+
- bField: 'b.field'
|
|
124
|
+
- limit:
|
|
125
|
+
- 1
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### KnexRaw
|
|
129
|
+
|
|
130
|
+
#### Properties
|
|
131
|
+
|
|
132
|
+
- `query: string`: **Required** - SQL query string.
|
|
133
|
+
- `parameters: string | number | array | object`: SQL query parameters.
|
|
134
|
+
|
|
135
|
+
#### Examples
|
|
136
|
+
|
|
137
|
+
###### Simple raw query:
|
|
138
|
+
|
|
139
|
+
```yaml
|
|
140
|
+
id: knexRaw
|
|
141
|
+
type: KnexRaw
|
|
142
|
+
connectionId: knex
|
|
143
|
+
properties:
|
|
144
|
+
query: SELECT * FROM "my_table";
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
###### Query with named parameters:
|
|
148
|
+
|
|
149
|
+
```yaml
|
|
150
|
+
id: knexRaw
|
|
151
|
+
type: KnexRaw
|
|
152
|
+
connectionId: knex
|
|
153
|
+
payload:
|
|
154
|
+
selected_name:
|
|
155
|
+
_state: selected_name
|
|
156
|
+
properties:
|
|
157
|
+
query: select * from users where name = :name
|
|
158
|
+
parameters:
|
|
159
|
+
name:
|
|
160
|
+
_payload: selected_name
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
###### Query with positional parameters:
|
|
164
|
+
|
|
165
|
+
```yaml
|
|
166
|
+
id: knexRaw
|
|
167
|
+
type: KnexRaw
|
|
168
|
+
connectionId: knex
|
|
169
|
+
payload:
|
|
170
|
+
selected_name:
|
|
171
|
+
_state: selected_name
|
|
172
|
+
properties:
|
|
173
|
+
query: select * from users where name = ?
|
|
174
|
+
parameters:
|
|
175
|
+
- _payload: selected_name
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
###### Reference a `.sql` file:
|
|
179
|
+
|
|
180
|
+
```yaml
|
|
181
|
+
id: knexRaw
|
|
182
|
+
type: KnexRaw
|
|
183
|
+
connectionId: knex
|
|
184
|
+
properties:
|
|
185
|
+
query:
|
|
186
|
+
_ref: my_query.sql
|
|
187
|
+
```
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Stripe
|
|
2
|
+
|
|
3
|
+
## Connections
|
|
4
|
+
|
|
5
|
+
Connection types:
|
|
6
|
+
- Stripe
|
|
7
|
+
|
|
8
|
+
### Stripe
|
|
9
|
+
|
|
10
|
+
[Stripe](https://stripe.com/) is a popular payment provider which allows you to accept payments, send payouts, and manage your business online.
|
|
11
|
+
The `Stripe` connector uses the official [Node.js client from Stripe](https://github.com/stripe/stripe-node).
|
|
12
|
+
In order to use the `Stripe` connection, you first need to create a [Stripe](https://stripe.com/) account and setup an API key.
|
|
13
|
+
|
|
14
|
+
> Secrets like API keys should be stored using the [`_secret`](operators/secret.md) operator.
|
|
15
|
+
|
|
16
|
+
#### Properties
|
|
17
|
+
- `secretKey: string`: __Required__ - Stripe [secret key](https://stripe.com/docs/keys).
|
|
18
|
+
- `apiVersion: string`: Stripe API version to use. Defaults to the account-wide version.
|
|
19
|
+
- `timeout: number`: Timeout for requests to the Stripe API.
|
|
20
|
+
- `maxNetworkRetries: number`: Maximum number of times failed requests are repeated before throwing an error.
|
|
21
|
+
- `telemetry: boolean`: Whether to send telemetry data to Stripe (this is forwarded to the Stripe client library. Lowdefy does not receive any telemetry data from your Stripe connection.)
|
|
22
|
+
|
|
23
|
+
#### Examples
|
|
24
|
+
|
|
25
|
+
###### Simple connection:
|
|
26
|
+
```yaml
|
|
27
|
+
connections:
|
|
28
|
+
- id: stripe
|
|
29
|
+
type: Stripe
|
|
30
|
+
properties:
|
|
31
|
+
secretKey:
|
|
32
|
+
_secret: STRIPE_SECRET_KEY
|
|
33
|
+
```
|
|
34
|
+
Environment variables:
|
|
35
|
+
```
|
|
36
|
+
LOWDEFY_SECRET_STRIPE_SECRET_KEY = sk_test_KyvNyie...
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
###### Using an older API version:
|
|
40
|
+
```yaml
|
|
41
|
+
connections:
|
|
42
|
+
- id: stripe
|
|
43
|
+
type: Stripe
|
|
44
|
+
properties:
|
|
45
|
+
secretKey:
|
|
46
|
+
_secret: STRIPE_SECRET_KEY
|
|
47
|
+
apiVersion: 2017-12-14
|
|
48
|
+
```
|
|
49
|
+
Environment variables:
|
|
50
|
+
```
|
|
51
|
+
LOWDEFY_SECRET_STRIPE_SECRET_KEY = sk_test_KyvNyie...
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Requests
|
|
55
|
+
|
|
56
|
+
Request types:
|
|
57
|
+
- StripeRequest
|
|
58
|
+
|
|
59
|
+
### StripeRequest
|
|
60
|
+
|
|
61
|
+
The `StripeRequest` request allows calls to all modules supported by the [Stripe API client](https://stripe.com/docs/api?lang=node) by nesting the resource and method calls:
|
|
62
|
+
```yaml
|
|
63
|
+
resource:
|
|
64
|
+
method:
|
|
65
|
+
- parameter1
|
|
66
|
+
- parameter2
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
#### Properties
|
|
70
|
+
- `{{ apiResource }}: object`: A Stripe API resource, eg. `customers`.
|
|
71
|
+
- `{{ method }}: array | null`: A resource method, eg. `create`. The arguments array will be passed on to the client method.
|
|
72
|
+
|
|
73
|
+
The Stripe client exposes all resources as objects, with the API methods being available as function properties on those resource objects.
|
|
74
|
+
In Lowdefy, you may access these properties by nesting them.
|
|
75
|
+
|
|
76
|
+
### Examples
|
|
77
|
+
|
|
78
|
+
###### List the 30 most recent customers
|
|
79
|
+
```yaml
|
|
80
|
+
requests:
|
|
81
|
+
- id: list_customers
|
|
82
|
+
type: StripeRequest
|
|
83
|
+
connectionId: stripe
|
|
84
|
+
properties:
|
|
85
|
+
customers:
|
|
86
|
+
list:
|
|
87
|
+
limit: 30
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
###### Create a payment intent
|
|
91
|
+
```yaml
|
|
92
|
+
requests:
|
|
93
|
+
- id: create_payment_intent
|
|
94
|
+
type: StripeRequest
|
|
95
|
+
connectionId: stripe
|
|
96
|
+
properties:
|
|
97
|
+
paymentIntents:
|
|
98
|
+
create:
|
|
99
|
+
- amount: 2000
|
|
100
|
+
currency: eur
|
|
101
|
+
payment_method_types: [ card ]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
###### Retrieve a checkout session by ID
|
|
105
|
+
```yaml
|
|
106
|
+
requests:
|
|
107
|
+
- id: retrieve_checkout_session
|
|
108
|
+
type: StripeRequest
|
|
109
|
+
connectionId: stripe
|
|
110
|
+
properties:
|
|
111
|
+
checkout:
|
|
112
|
+
sessions:
|
|
113
|
+
retrieve:
|
|
114
|
+
- cs_test_onpT2icY2lrSU0IgDGXEhhcOHcWeJS5BpLcQGMx0uI9TZHLMBdzvWpvx
|
|
115
|
+
```
|
|
@@ -0,0 +1,413 @@
|
|
|
1
|
+
# Affix
|
|
2
|
+
|
|
3
|
+
An Affix block makes its content stick to the viewport when scrolling.
|
|
4
|
+
|
|
5
|
+
```yaml
|
|
6
|
+
- id: affix_basic_top
|
|
7
|
+
type: Affix
|
|
8
|
+
properties:
|
|
9
|
+
offsetTop: 10
|
|
10
|
+
blocks:
|
|
11
|
+
- id: affix_basic_top_btn
|
|
12
|
+
type: Button
|
|
13
|
+
properties:
|
|
14
|
+
title: Affix Top (10px)
|
|
15
|
+
color: primary
|
|
16
|
+
variant: solid
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
- id: affix_offset_top_0
|
|
21
|
+
type: Affix
|
|
22
|
+
layout:
|
|
23
|
+
flex: 0 0 auto
|
|
24
|
+
properties:
|
|
25
|
+
offsetTop: 0
|
|
26
|
+
blocks:
|
|
27
|
+
- id: affix_offset_top_0_btn
|
|
28
|
+
type: Button
|
|
29
|
+
layout:
|
|
30
|
+
flex: 0 0 auto
|
|
31
|
+
properties:
|
|
32
|
+
title: Offset 0px
|
|
33
|
+
color: primary
|
|
34
|
+
variant: solid
|
|
35
|
+
size: small
|
|
36
|
+
- id: affix_offset_top_20
|
|
37
|
+
type: Affix
|
|
38
|
+
layout:
|
|
39
|
+
flex: 0 0 auto
|
|
40
|
+
properties:
|
|
41
|
+
offsetTop: 20
|
|
42
|
+
blocks:
|
|
43
|
+
- id: affix_offset_top_20_btn
|
|
44
|
+
type: Button
|
|
45
|
+
layout:
|
|
46
|
+
flex: 0 0 auto
|
|
47
|
+
properties:
|
|
48
|
+
title: Offset 20px
|
|
49
|
+
color: primary
|
|
50
|
+
variant: outlined
|
|
51
|
+
size: small
|
|
52
|
+
- id: affix_offset_top_80
|
|
53
|
+
type: Affix
|
|
54
|
+
layout:
|
|
55
|
+
flex: 0 0 auto
|
|
56
|
+
properties:
|
|
57
|
+
offsetTop: 80
|
|
58
|
+
blocks:
|
|
59
|
+
- id: affix_offset_top_80_btn
|
|
60
|
+
type: Button
|
|
61
|
+
layout:
|
|
62
|
+
flex: 0 0 auto
|
|
63
|
+
properties:
|
|
64
|
+
title: Offset 80px
|
|
65
|
+
color: primary
|
|
66
|
+
variant: dashed
|
|
67
|
+
size: small
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
```yaml
|
|
71
|
+
- id: affix_offset_bottom_0
|
|
72
|
+
type: Affix
|
|
73
|
+
layout:
|
|
74
|
+
flex: 0 0 auto
|
|
75
|
+
properties:
|
|
76
|
+
offsetBottom: 0
|
|
77
|
+
blocks:
|
|
78
|
+
- id: affix_offset_bottom_0_btn
|
|
79
|
+
type: Button
|
|
80
|
+
layout:
|
|
81
|
+
flex: 0 0 auto
|
|
82
|
+
properties:
|
|
83
|
+
title: Bottom 0px
|
|
84
|
+
color: primary
|
|
85
|
+
variant: solid
|
|
86
|
+
size: small
|
|
87
|
+
- id: affix_offset_bottom_30
|
|
88
|
+
type: Affix
|
|
89
|
+
layout:
|
|
90
|
+
flex: 0 0 auto
|
|
91
|
+
properties:
|
|
92
|
+
offsetBottom: 30
|
|
93
|
+
blocks:
|
|
94
|
+
- id: affix_offset_bottom_30_btn
|
|
95
|
+
type: Button
|
|
96
|
+
layout:
|
|
97
|
+
flex: 0 0 auto
|
|
98
|
+
properties:
|
|
99
|
+
title: Bottom 30px
|
|
100
|
+
color: primary
|
|
101
|
+
variant: outlined
|
|
102
|
+
size: small
|
|
103
|
+
- id: affix_offset_bottom_60
|
|
104
|
+
type: Affix
|
|
105
|
+
layout:
|
|
106
|
+
flex: 0 0 auto
|
|
107
|
+
properties:
|
|
108
|
+
offsetBottom: 60
|
|
109
|
+
blocks:
|
|
110
|
+
- id: affix_offset_bottom_60_btn
|
|
111
|
+
type: Button
|
|
112
|
+
layout:
|
|
113
|
+
flex: 0 0 auto
|
|
114
|
+
properties:
|
|
115
|
+
title: Bottom 60px
|
|
116
|
+
color: primary
|
|
117
|
+
variant: dashed
|
|
118
|
+
size: small
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
```yaml
|
|
122
|
+
- id: affix_on_change
|
|
123
|
+
type: Affix
|
|
124
|
+
properties:
|
|
125
|
+
offsetTop: 10
|
|
126
|
+
events:
|
|
127
|
+
onChange:
|
|
128
|
+
- id: affix_on_change_message
|
|
129
|
+
type: DisplayMessage
|
|
130
|
+
params:
|
|
131
|
+
content:
|
|
132
|
+
_if:
|
|
133
|
+
test:
|
|
134
|
+
_eq:
|
|
135
|
+
- _event: affixed
|
|
136
|
+
- true
|
|
137
|
+
then: Affix is now fixed to the viewport.
|
|
138
|
+
else: Affix returned to its original position.
|
|
139
|
+
duration: 3
|
|
140
|
+
blocks:
|
|
141
|
+
- id: affix_on_change_btn
|
|
142
|
+
type: Button
|
|
143
|
+
properties:
|
|
144
|
+
title: Scroll to trigger onChange
|
|
145
|
+
color: primary
|
|
146
|
+
variant: solid
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
```yaml
|
|
150
|
+
- id: affix_theme_default_z
|
|
151
|
+
type: Affix
|
|
152
|
+
layout:
|
|
153
|
+
flex: 0 0 auto
|
|
154
|
+
properties:
|
|
155
|
+
offsetTop: 10
|
|
156
|
+
theme:
|
|
157
|
+
zIndexPopup: 10
|
|
158
|
+
blocks:
|
|
159
|
+
- id: affix_theme_default_z_btn
|
|
160
|
+
type: Button
|
|
161
|
+
layout:
|
|
162
|
+
flex: 0 0 auto
|
|
163
|
+
properties:
|
|
164
|
+
title: Default z-index (10)
|
|
165
|
+
color: default
|
|
166
|
+
variant: outlined
|
|
167
|
+
size: small
|
|
168
|
+
- id: affix_theme_high_z
|
|
169
|
+
type: Affix
|
|
170
|
+
layout:
|
|
171
|
+
flex: 0 0 auto
|
|
172
|
+
properties:
|
|
173
|
+
offsetTop: 10
|
|
174
|
+
theme:
|
|
175
|
+
zIndexPopup: 100
|
|
176
|
+
blocks:
|
|
177
|
+
- id: affix_theme_high_z_btn
|
|
178
|
+
type: Button
|
|
179
|
+
layout:
|
|
180
|
+
flex: 0 0 auto
|
|
181
|
+
properties:
|
|
182
|
+
title: High z-index (100)
|
|
183
|
+
color: primary
|
|
184
|
+
variant: solid
|
|
185
|
+
size: small
|
|
186
|
+
- id: affix_theme_low_z
|
|
187
|
+
type: Affix
|
|
188
|
+
layout:
|
|
189
|
+
flex: 0 0 auto
|
|
190
|
+
properties:
|
|
191
|
+
offsetTop: 10
|
|
192
|
+
theme:
|
|
193
|
+
zIndexPopup: 1
|
|
194
|
+
blocks:
|
|
195
|
+
- id: affix_theme_low_z_btn
|
|
196
|
+
type: Button
|
|
197
|
+
layout:
|
|
198
|
+
flex: 0 0 auto
|
|
199
|
+
properties:
|
|
200
|
+
title: Low z-index (1)
|
|
201
|
+
color: default
|
|
202
|
+
variant: dashed
|
|
203
|
+
size: small
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
```yaml
|
|
207
|
+
- id: affix_css_shadow
|
|
208
|
+
type: Affix
|
|
209
|
+
layout:
|
|
210
|
+
flex: 0 0 auto
|
|
211
|
+
class:
|
|
212
|
+
element: shadow-lg rounded-lg
|
|
213
|
+
properties:
|
|
214
|
+
offsetTop: 10
|
|
215
|
+
blocks:
|
|
216
|
+
- id: affix_css_shadow_btn
|
|
217
|
+
type: Button
|
|
218
|
+
layout:
|
|
219
|
+
flex: 0 0 auto
|
|
220
|
+
properties:
|
|
221
|
+
title: Shadow + Rounded
|
|
222
|
+
color: primary
|
|
223
|
+
variant: solid
|
|
224
|
+
size: small
|
|
225
|
+
- id: affix_css_ring
|
|
226
|
+
type: Affix
|
|
227
|
+
layout:
|
|
228
|
+
flex: 0 0 auto
|
|
229
|
+
class:
|
|
230
|
+
element: ring-2 ring-green-400 rounded-lg
|
|
231
|
+
properties:
|
|
232
|
+
offsetTop: 10
|
|
233
|
+
blocks:
|
|
234
|
+
- id: affix_css_ring_btn
|
|
235
|
+
type: Button
|
|
236
|
+
layout:
|
|
237
|
+
flex: 0 0 auto
|
|
238
|
+
properties:
|
|
239
|
+
title: Ring Border
|
|
240
|
+
color: default
|
|
241
|
+
variant: outlined
|
|
242
|
+
size: small
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
```yaml
|
|
246
|
+
- id: affix_style_zindex
|
|
247
|
+
type: Affix
|
|
248
|
+
properties:
|
|
249
|
+
offsetTop: 10
|
|
250
|
+
style:
|
|
251
|
+
.element:
|
|
252
|
+
zIndex: 200
|
|
253
|
+
boxShadow: 0 4px 12px rgba(0, 0, 0, 0.15)
|
|
254
|
+
blocks:
|
|
255
|
+
- id: affix_style_zindex_btn
|
|
256
|
+
type: Button
|
|
257
|
+
properties:
|
|
258
|
+
title: Custom z-index (200) + Shadow
|
|
259
|
+
color: primary
|
|
260
|
+
variant: solid
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
Edit Employee Record
|
|
264
|
+
|
|
265
|
+
```yaml
|
|
266
|
+
- id: affix_form_toolbar
|
|
267
|
+
type: Affix
|
|
268
|
+
properties:
|
|
269
|
+
offsetTop: 0
|
|
270
|
+
blocks:
|
|
271
|
+
- id: affix_form_toolbar_card
|
|
272
|
+
type: Card
|
|
273
|
+
properties:
|
|
274
|
+
size: small
|
|
275
|
+
bordered: true
|
|
276
|
+
blocks:
|
|
277
|
+
- id: affix_form_toolbar_row
|
|
278
|
+
type: Box
|
|
279
|
+
layout:
|
|
280
|
+
gap: 8
|
|
281
|
+
justify: space-between
|
|
282
|
+
align: center
|
|
283
|
+
blocks:
|
|
284
|
+
- id: affix_form_toolbar_title
|
|
285
|
+
type: Title
|
|
286
|
+
layout:
|
|
287
|
+
flex: 0 0 auto
|
|
288
|
+
properties:
|
|
289
|
+
content: Edit Employee Record
|
|
290
|
+
level: 5
|
|
291
|
+
- id: affix_form_toolbar_actions
|
|
292
|
+
type: Box
|
|
293
|
+
layout:
|
|
294
|
+
flex: 0 0 auto
|
|
295
|
+
gap: 8
|
|
296
|
+
blocks:
|
|
297
|
+
- id: affix_form_toolbar_discard
|
|
298
|
+
type: Button
|
|
299
|
+
layout:
|
|
300
|
+
flex: 0 0 auto
|
|
301
|
+
properties:
|
|
302
|
+
title: Discard
|
|
303
|
+
color: default
|
|
304
|
+
variant: outlined
|
|
305
|
+
size: small
|
|
306
|
+
events:
|
|
307
|
+
onClick:
|
|
308
|
+
- id: affix_form_toolbar_discard_msg
|
|
309
|
+
type: DisplayMessage
|
|
310
|
+
params:
|
|
311
|
+
content: Changes discarded.
|
|
312
|
+
status: warning
|
|
313
|
+
- id: affix_form_toolbar_save
|
|
314
|
+
type: Button
|
|
315
|
+
layout:
|
|
316
|
+
flex: 0 0 auto
|
|
317
|
+
properties:
|
|
318
|
+
title: Save Changes
|
|
319
|
+
icon: AiOutlineSave
|
|
320
|
+
color: primary
|
|
321
|
+
variant: solid
|
|
322
|
+
size: small
|
|
323
|
+
events:
|
|
324
|
+
onClick:
|
|
325
|
+
- id: affix_form_toolbar_save_msg
|
|
326
|
+
type: DisplayMessage
|
|
327
|
+
params:
|
|
328
|
+
content: Employee record saved successfully.
|
|
329
|
+
status: success
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
3 items selected
|
|
333
|
+
|
|
334
|
+
```yaml
|
|
335
|
+
- id: affix_bottom_bar
|
|
336
|
+
type: Affix
|
|
337
|
+
properties:
|
|
338
|
+
offsetBottom: 0
|
|
339
|
+
blocks:
|
|
340
|
+
- id: affix_bottom_bar_card
|
|
341
|
+
type: Card
|
|
342
|
+
class: shadow-lg
|
|
343
|
+
properties:
|
|
344
|
+
size: small
|
|
345
|
+
blocks:
|
|
346
|
+
- id: affix_bottom_bar_row
|
|
347
|
+
type: Box
|
|
348
|
+
layout:
|
|
349
|
+
gap: 12
|
|
350
|
+
justify: flex-end
|
|
351
|
+
align: center
|
|
352
|
+
blocks:
|
|
353
|
+
- id: affix_bottom_bar_status
|
|
354
|
+
type: Paragraph
|
|
355
|
+
layout:
|
|
356
|
+
flex: 1 1 0
|
|
357
|
+
properties:
|
|
358
|
+
content: 3 items selected
|
|
359
|
+
- id: affix_bottom_bar_delete
|
|
360
|
+
type: Button
|
|
361
|
+
layout:
|
|
362
|
+
flex: 0 0 auto
|
|
363
|
+
properties:
|
|
364
|
+
title: Delete
|
|
365
|
+
icon: AiOutlineDelete
|
|
366
|
+
color: danger
|
|
367
|
+
variant: outlined
|
|
368
|
+
size: small
|
|
369
|
+
events:
|
|
370
|
+
onClick:
|
|
371
|
+
- id: affix_bottom_bar_delete_msg
|
|
372
|
+
type: DisplayMessage
|
|
373
|
+
params:
|
|
374
|
+
content: Items deleted.
|
|
375
|
+
status: error
|
|
376
|
+
- id: affix_bottom_bar_export
|
|
377
|
+
type: Button
|
|
378
|
+
layout:
|
|
379
|
+
flex: 0 0 auto
|
|
380
|
+
properties:
|
|
381
|
+
title: Export
|
|
382
|
+
icon: AiOutlineDownload
|
|
383
|
+
color: primary
|
|
384
|
+
variant: solid
|
|
385
|
+
size: small
|
|
386
|
+
events:
|
|
387
|
+
onClick:
|
|
388
|
+
- id: affix_bottom_bar_export_msg
|
|
389
|
+
type: DisplayMessage
|
|
390
|
+
params:
|
|
391
|
+
content: Export started.
|
|
392
|
+
status: success
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
| Property | Type | Default | Description |
|
|
396
|
+
| --- | --- | --- | --- |
|
|
397
|
+
| `offsetBottom` | number | - | Offset from the bottom of the viewport (in pixels). |
|
|
398
|
+
| `offsetTop` | number | - | Offset from the top of the viewport (in pixels). |
|
|
399
|
+
| `theme` | object | - | Antd design token overrides for this block. See [antd design tokens](https://ant.design/components/overview#design-token). See [Ant Design affix tokens](https://ant.design/components/affix#design-token). |
|
|
400
|
+
| `theme.zIndexPopup` | number | `10` | Z-index of the affix element when fixed. |
|
|
401
|
+
|
|
402
|
+
| Event | Event Data | Description |
|
|
403
|
+
| --- | --- | --- |
|
|
404
|
+
| `onChange` | \- | Triggered when container affix status changes. |
|
|
405
|
+
|
|
406
|
+
| Key | Target |
|
|
407
|
+
| --- | --- |
|
|
408
|
+
| `/block` | Outer block wrapper (always available). |
|
|
409
|
+
| `/element` | The Affix element. |
|
|
410
|
+
|
|
411
|
+
| Slot | Description |
|
|
412
|
+
| --- | --- |
|
|
413
|
+
| `content` | Child blocks wrapped by the Affix. |
|