diff --git a/.version b/.version
index 1cc5f657e0..867e52437a 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-1.1.0
\ No newline at end of file
+1.2.0
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index bdaba83a7b..12c78c50ae 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -52,4 +52,4 @@ We use GitHub issues to track public bugs. Report a bug by [opening a new issue]
By contributing, you agree that your contributions will be licensed under its AGPL v3 License.
## Questions?
-Contact us on slack [Slack](https://join.slack.com/t/tooljet/shared_invite/zt-r2neyfcw-KD1COL6t2kgVTlTtAV5rtg) or mail us at [hello@tooljet.io](mailto:hello@tooljet.io.).
+Contact us on [Slack](https://join.slack.com/t/tooljet/shared_invite/zt-r2neyfcw-KD1COL6t2kgVTlTtAV5rtg) or mail us at [hello@tooljet.io](mailto:hello@tooljet.io).
diff --git a/docs/docs/data-sources/bigquery.md b/docs/docs/data-sources/bigquery.md
index 13253b2501..b5e5ee0bb3 100644
--- a/docs/docs/data-sources/bigquery.md
+++ b/docs/docs/data-sources/bigquery.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 18
+sidebar_position: 3
---
# BigQuery
diff --git a/docs/docs/data-sources/custom-js.md b/docs/docs/data-sources/custom-js.md
index 6a955c566a..95fd47edb4 100644
--- a/docs/docs/data-sources/custom-js.md
+++ b/docs/docs/data-sources/custom-js.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 4
+sidebar_position: 5
---
# Custom JavaScript
diff --git a/docs/docs/data-sources/dynamodb.md b/docs/docs/data-sources/dynamodb.md
index a1b38cfbe9..aa45b270b2 100644
--- a/docs/docs/data-sources/dynamodb.md
+++ b/docs/docs/data-sources/dynamodb.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 5
+sidebar_position: 6
---
# DynamoDB
diff --git a/docs/docs/data-sources/elasticsearch.md b/docs/docs/data-sources/elasticsearch.md
index c184961023..c09c802764 100644
--- a/docs/docs/data-sources/elasticsearch.md
+++ b/docs/docs/data-sources/elasticsearch.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 6
+sidebar_position: 7
---
# Elasticsearch
diff --git a/docs/docs/data-sources/firestore.md b/docs/docs/data-sources/firestore.md
index 52fd0a329b..59194c7e92 100644
--- a/docs/docs/data-sources/firestore.md
+++ b/docs/docs/data-sources/firestore.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 3
+sidebar_position: 4
---
# Cloud Firestore
diff --git a/docs/docs/data-sources/gcs.md b/docs/docs/data-sources/gcs.md
index d7cc6ff7ac..5c9f4c08f3 100644
--- a/docs/docs/data-sources/gcs.md
+++ b/docs/docs/data-sources/gcs.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 7
+sidebar_position: 8
---
# Google Cloud Storage
diff --git a/docs/docs/data-sources/google.sheets.md b/docs/docs/data-sources/google.sheets.md
index 0ece9f03f3..eff1285688 100644
--- a/docs/docs/data-sources/google.sheets.md
+++ b/docs/docs/data-sources/google.sheets.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 8
+sidebar_position: 9
---
# Google Sheets
diff --git a/docs/docs/data-sources/graphql.md b/docs/docs/data-sources/graphql.md
index d462a3b0d2..3d0dd9c8a8 100644
--- a/docs/docs/data-sources/graphql.md
+++ b/docs/docs/data-sources/graphql.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 9
+sidebar_position: 10
---
# GraphQL
diff --git a/docs/docs/data-sources/minio.md b/docs/docs/data-sources/minio.md
index 34fc4c5606..7ae664d7de 100644
--- a/docs/docs/data-sources/minio.md
+++ b/docs/docs/data-sources/minio.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 11
+---
+
# MinIO
ToolJet can connect to minio and perform various operation on them.
diff --git a/docs/docs/data-sources/mongodb.md b/docs/docs/data-sources/mongodb.md
index 6796da425a..5d5b962113 100644
--- a/docs/docs/data-sources/mongodb.md
+++ b/docs/docs/data-sources/mongodb.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 10
+sidebar_position: 12
---
# MongoDB
diff --git a/docs/docs/data-sources/mssql.md b/docs/docs/data-sources/mssql.md
index fea40f6581..6347e4582e 100644
--- a/docs/docs/data-sources/mssql.md
+++ b/docs/docs/data-sources/mssql.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 11
+sidebar_position: 13
---
# MS SQL Server / Azure SQL databases
diff --git a/docs/docs/data-sources/mysql.md b/docs/docs/data-sources/mysql.md
index 98611f5f60..460ae3368c 100644
--- a/docs/docs/data-sources/mysql.md
+++ b/docs/docs/data-sources/mysql.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 12
+sidebar_position: 14
---
# MySQL
diff --git a/docs/docs/data-sources/n8n.md b/docs/docs/data-sources/n8n.md
new file mode 100644
index 0000000000..a52dadf557
--- /dev/null
+++ b/docs/docs/data-sources/n8n.md
@@ -0,0 +1,49 @@
+
+# n8n
+
+ToolJet can trigger n8n workflows using webhook URLs. Please refer [this](https://docs.n8n.io/) to know more about n8n.
+
+## Connection
+
+Go to the data source manager on the left sidebar and click on `+` button to add new data source. Select n8n from the list of available data sources in the modal that pops-up.
+
+n8n webhooks can be called with or without an **Authentication**. You can keep the `Authentication type` as `none` if your webhook didn't have one or if it has one then you can choose the one from the dropdown and provide credentials:
+
+#### Authentication Types
+- **Basic Auth**: To connect your n8n webhooks using basic auth you'll need to provide the following credentials:
+ - **Username**
+ - **Password**
+
+
+
+
+
+
+
+- **Header Auth**: To connect your n8n webhooks using header auth the following fields are required:
+ - **Name / Key**
+ - **Value**
+
+
+
+
+
+
+
+:::tip
+Webhook credentials and instance credentials are different. Please use the credentials that you use with the webhook trigger. Know more: **[Webhook Authentication](https://docs.n8n.io/nodes/n8n-nodes-base.webhook/#:~:text=then%20gets%20deactivated.-,Authentication,-%3A%20The%20Webhook%20node)**.
+:::
+
+## Trigger Workflow
+
+Click on `+` button of the query manager at the bottom panel of the editor and the select n8n as the datasource.
+
+You can trigger a workflow with `GET/POST` URL. Choose the request type from the `Methods` dropdown and then provide the required fields:
+ - **URL parameters** (Support for GET & POST) `Optional`
+ - **Body** (Only for POST URL) `Required`
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/docs/data-sources/postgresql.md b/docs/docs/data-sources/postgresql.md
index cb05b2b746..a29b45f0b6 100644
--- a/docs/docs/data-sources/postgresql.md
+++ b/docs/docs/data-sources/postgresql.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 13
+sidebar_position: 15
---
# PostgreSQL
diff --git a/docs/docs/data-sources/redis.md b/docs/docs/data-sources/redis.md
index 664267d5c8..64431be413 100644
--- a/docs/docs/data-sources/redis.md
+++ b/docs/docs/data-sources/redis.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 14
+sidebar_position: 16
---
# Redis
diff --git a/docs/docs/data-sources/rest-api.md b/docs/docs/data-sources/rest-api.md
index 9445548472..83fb55ae5c 100644
--- a/docs/docs/data-sources/rest-api.md
+++ b/docs/docs/data-sources/rest-api.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 15
+sidebar_position: 17
---
# REST API
diff --git a/docs/docs/data-sources/s3.md b/docs/docs/data-sources/s3.md
index 948a5616ab..0802cb6a5f 100644
--- a/docs/docs/data-sources/s3.md
+++ b/docs/docs/data-sources/s3.md
@@ -10,7 +10,7 @@ ToolJet can connect to Amazon S3 buckets and perform various operation on them.
To add a new S3 source, go to the **Datasources manager** on the left sidebar of the app editor and click on `Add datasource` button. Select **AWS S3** from the modal that pops up.
-ToolJet requires the following to connect to your DynamoDB:
+ToolJet requires the following to connect to your AWS S3:
- **Region**
- **Access key**
@@ -18,7 +18,11 @@ ToolJet requires the following to connect to your DynamoDB:
It is recommended to create a new IAM user for the database so that you can control the access levels of ToolJet.
-
+
Click on **Test connection** button to verify if the credentials are correct and that the database is accessible to ToolJet server. Click on **Save** button to save the data source.
@@ -26,16 +30,103 @@ Click on **Test connection** button to verify if the credentials are correct and
Click on `+` button of the **query manager** at the bottom panel of the editor and select the data source added in the previous step as the data source. Select the operation that you want to perform and click **Save** to save the query.
-
+
Click on the **run** button to run the query.
**NOTE**: Query should be saved before running.
:::tip
-Query results can be transformed using transformations. Read our transformations documentation to see how: [link](/docs/tutorial/transformations)
+Query results can be transformed using transformations. Read our transformations documentation to see how: **[link](/docs/tutorial/transformations)**
:::
+## Query operations
+
+You can create query for AWS S3 data source to perform several actions such as:
+ 1. **[Read object](/docs/data-sources/s3#read-object)**
+ 2. **[Upload object](/docs/data-sources/s3#upload-object)**
+ 3. **[List buckets](/docs/data-sources/s3#list-buckets)**
+ 4. **[List objects in a bucket](/docs/data-sources/s3#list-objects-in-a-bucket)**
+ 5. **[Signed url for download](/docs/data-sources/s3#signed-url-for-download)**
+ 6. **[Signed url for upload](/docs/data-sources/s3#signed-url-for-upload)**
+
+### Read object
+
+You can read an object in a bucket by using this operation. It requires two parameters - **Bucket** name and **Key**.
+
+
+
+### Upload object
+
+You can use this operation to upload objects(files) to your S3 bucket. It requires four parameters:
+ 1. **Bucket**: Specify the bucket name
+ 2. **Key**: Key of the object/file
+ 3. **Content type**: Specify file type such as text, image etc.
+ 4. **Upload data**: File/object that is to be uploaded.
+
+
+
+### List objects in a bucket
+
+This operation will fetch the list of all the files in your bucket. It requires two parameters:
+ 1. **Bucket**: Bucket name (mandatory)
+ 2. **Prefix**: To limit the response to keys that begin with the specified prefix (optional)
+
+
+
+### Signed url for download
+
+The object owner can optionally share objects with others by creating a presigned URL, using their own security credentials, to grant time-limited permission to download the objects. For creating a presigned URL, the required parameters are:
+ 1. **Bucket**: name of the bucket for uploading the file
+ 2. **Key**: an object key
+ 3. **Expires in**: an expiration time of URL
+
+
+
+### Signed url for upload
+
+The presigned URLs are useful if you want your user/customer to be able to upload a specific object to your bucket, but you don't require them to have AWS security credentials or permissions. For creating a presigned URL, the required parameters are:
+ 1. **Bucket**: name of the bucket for uploading the file
+ 2. **Key**: an object key
+ 3. **Expires in**: an expiration time of URL
+ 4. **Content type**: the content type such as text, image etc.
+
+
+
:::info
-We built an app to view and upload files to AWS S3 buckets. Check out the complete tutorial [here](https://blog.tooljet.com/building-an-app-to-view-and-upload-files-in-aws-s3-bucket/).
+We built an app to view and upload files to AWS S3 buckets. Check out the complete tutorial **[here](https://blog.tooljet.com/building-an-app-to-view-and-upload-files-in-aws-s3-bucket/)**.
:::
\ No newline at end of file
diff --git a/docs/docs/data-sources/sendgrid.md b/docs/docs/data-sources/sendgrid.md
index 3dcd05d0bd..9de13c84f1 100644
--- a/docs/docs/data-sources/sendgrid.md
+++ b/docs/docs/data-sources/sendgrid.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 16
+sidebar_position: 18
---
# SendGrid
diff --git a/docs/docs/data-sources/smtp.md b/docs/docs/data-sources/smtp.md
new file mode 100644
index 0000000000..63c3b16fc3
--- /dev/null
+++ b/docs/docs/data-sources/smtp.md
@@ -0,0 +1,49 @@
+
+# SMTP
+
+SMTP plugin can connect ToolJet applications to **SMTP servers** for sending emails.
+
+## Connection
+
+A SMTP server can be connected with the following credentails:
+- **Host**
+- **Port**
+- **User**
+- **Password**
+
+:::info
+You can also test your connection before saving the configuration by clicking on `Test Connection` button.
+:::
+
+
+
+
+
+
+
+## Querying SMTP
+
+Go to the query manager at the bottom panel of the editor and click on the `+` button on the left to create a new query. Select `SMTP` from the datasource dropdown.
+
+To create a query for sending email, you will need to provide the following properties:
+ - **From** `required` : Email address of the sender
+ - **From Name** : Name of the sender
+ - **To** `required` : Recipient's email address
+ - **Subject** : Subject of the email
+
+
+
+
+
+
+
+ - **Body** : You can enter the body text either in the form of `raw text` or `html` in their respective fields.
+ - **Attachments** : Attachments can be added to a SMTP query by referencing the file from the `File Picker` component in the attachments field.
+
+ For example, you can set the `Attachments` field value to `{{ components.filepicker1.file }}` or you can pass an array of `{{ name: 'filename.jpg', dataURL: '......' }}` object to accomplish this.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/docs/data-sources/snowflake.md b/docs/docs/data-sources/snowflake.md
index 09b14b58ab..0fe9fe0ee5 100644
--- a/docs/docs/data-sources/snowflake.md
+++ b/docs/docs/data-sources/snowflake.md
@@ -1,3 +1,7 @@
+---
+sidebar_position: 19
+---
+
# Snowflake
ToolJet can connect to Snowflake databases to read and write data.
@@ -7,10 +11,10 @@ ToolJet can connect to Snowflake databases to read and write data.
## Connection
-Please make sure the host/ip of the database is accessible from your VPC if you have self-hosted ToolJet. If you are using ToolJet cloud, please whitelist our IP. You can find snowflake docs on network policies [https://docs.snowflake.com/en/user-guide/network-policies.html](here)
+Please make sure the host/ip of the database is accessible from your VPC if you have self-hosted ToolJet. If you are using ToolJet cloud, please whitelist our IP. You can find snowflake docs on network policies **[here](https://docs.snowflake.com/en/user-guide/network-policies.html)**.
-To add a new Snowflake database, click on the '+' button on data sources panel at the left-bottom corner of the app editor. Select Snowflake from the modal that pops up.
+To add a new Snowflake database, click on the `+` button on data sources panel at the left-bottom corner of the app editor. Select Snowflake from the modal that pops up.
ToolJet requires the following to connect to your Snowflake database.
@@ -18,17 +22,29 @@ ToolJet requires the following to connect to your Snowflake database.
- **Username**
- **Password**
-You can also configure for [additional optional parameters](https://docs.snowflake.com/en/user-guide/nodejs-driver-use.html#additional-connection-options).
+:::info
+You can also configure for **[additional optional parameters](https://docs.snowflake.com/en/user-guide/nodejs-driver-use.html#additional-connection-options)**.
+:::
-
+
## Querying Snowflake
-Click on '+' button of the query manager at the bottom panel of the editor and select the database added in the previous step as the datasource. Query manager then can be used to write raw SQL queries.
+Click on `+` button of the query manager at the bottom panel of the editor and select the database added in the previous step as the datasource. Query manager then can be used to write raw SQL queries.
-
+
-Click on the 'run' button to run the query. NOTE: Query should be saved before running.
+
+
+
+
+Click on the `run` button to run the query.
+
+**NOTE:** Query should be saved before running.
:::tip
Query results can be transformed using transformations. Read our transformations documentation to see how: [link](/docs/tutorial/transformations)
diff --git a/docs/docs/data-sources/typesense.md b/docs/docs/data-sources/typesense.md
index 85d775197d..dd3fb76f84 100644
--- a/docs/docs/data-sources/typesense.md
+++ b/docs/docs/data-sources/typesense.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 17
+sidebar_position: 20
---
# TypeSense
diff --git a/docs/docs/deployment/architecture.md b/docs/docs/deployment/architecture.md
index 90eb4f32bd..c9bd5d6858 100644
--- a/docs/docs/deployment/architecture.md
+++ b/docs/docs/deployment/architecture.md
@@ -10,16 +10,18 @@ sidebar_label: Architecture
ToolJet have two main components: **ToolJet Server** and **ToolJet Client**.
-1. ### ToolJet Server
- ToolJet server is a Node.js API application. Server is responsible for authentication, authorization, persisting application definitions, running queries, storing data source credentials securely and more.
+### 1. ToolJet Server
- Dependencies:
- - PostgreSQL - ToolJet server persists data to a postgres database.
- - Email service (SMTP/Sendgrid/Mailgun/etc) - Required to send user invitations and password reset emails.
+ToolJet server is a Node.js API application. Server is responsible for authentication, authorization, persisting application definitions, running queries, storing data source credentials securely and more.
+
+**Dependencies:**
+- **PostgreSQL** - ToolJet server persists data to a postgres database.
+- **Email service** (SMTP/Sendgrid/Mailgun/etc) - Required to send user invitations and password reset emails.
-2. ### ToolJet Client
- ToolJet client is a ReactJS application. Client is responsible for visually editing the applications, building & editing queries, rendering applications, executing events and their trigger, etc.
+### 2. ToolJet Client
+
+ToolJet client is a ReactJS application. Client is responsible for visually editing the applications, building & editing queries, rendering applications, executing events and their trigger, etc.
## Requirements
-1. Node version 14.x
\ No newline at end of file
+1. **Node version 14.x**
\ No newline at end of file
diff --git a/docs/docs/deployment/docker.md b/docs/docs/deployment/docker.md
index 20b77bbd8b..bf5c02b8ca 100644
--- a/docs/docs/deployment/docker.md
+++ b/docs/docs/deployment/docker.md
@@ -6,83 +6,84 @@ sidebar_label: Docker
# Deploying ToolJet using docker-compose
:::info
- You should setup a PostgreSQL database manually to be used by the ToolJet server.
+You should setup a PostgreSQL database manually to be used by the ToolJet server.
:::
-Follow the steps below to deploy ToolJet on a server using docker-compose. This setup will deploy both ToolJet server and ToolJet client.
+Follow the steps below to deploy ToolJet on a server using docker-compose. This setup will deploy both **ToolJet server** and **ToolJet client**.
1. Setup a PostgreSQL database and make sure that the database is accessible.
-2. Make sure that the server can receive traffic on port 80, 443 and 22.
- For example, if the server is an AWS EC2 instance and the installation should receive traffic from the internet, the inbound rules of the security group should look like this:
+2. Make sure that the server can receive traffic on port 80, 443 and 22.
+ For example, if the server is an AWS EC2 instance and the installation should receive traffic from the internet, the inbound rules of the security group should look like this:
- protocol| port | allowed_cidr|
- --------| ------- | ----------- |
- tcp | 22 | your IP |
- tcp | 80 | 0.0.0.0/0 |
- tcp | 443 | 0.0.0.0/0 |
+ | protocol | port | allowed_cidr |
+ | -------- | ---- | ------------ |
+ | tcp | 22 | your IP |
+ | tcp | 80 | 0.0.0.0/0 |
+ | tcp | 443 | 0.0.0.0/0 |
3. Install docker and docker-compose on the server.
-[Docker Installation](https://docs.docker.com/engine/install/)
-[Docker Compose Installation](https://docs.docker.com/compose/install/)
+ - Docs for [Docker Installation](https://docs.docker.com/engine/install/)
+ - Docs for [Docker Compose Installation](https://docs.docker.com/compose/install/)
4. Download our production docker-compose file into the server by running:
- ```bash
- curl -LO https://raw.githubusercontent.com/ToolJet/ToolJet/main/deploy/docker/docker-compose.yaml
- ```
+
+```bash
+curl -LO https://raw.githubusercontent.com/ToolJet/ToolJet/main/deploy/docker/docker-compose.yaml
+```
5. Create `.env` file in the current directory (where the docker-compose.yaml file is downloaded):
- ```bash
- curl -LO https://raw.githubusercontent.com/ToolJet/ToolJet/main/.env.example mv .env.example .env
- ```
+```bash
+curl -LO https://raw.githubusercontent.com/ToolJet/ToolJet/main/.env.example mv .env.example .env
+```
- Set up environment variables in `.env` file as explained in [environment variables reference](/docs/deployment/env-vars)
+Set up environment variables in `.env` file as explained in [environment variables reference](/docs/deployment/env-vars)
+`TOOLJET_HOST` environment variable can either be the public ipv4 address of your server or a custom domain that you want to use.
- `TOOLJET_HOST` environment variable can either be the public ipv4 address of your server or a custom domain that you want to use.
+:::info
+We use a [lets encrypt](https://letsencrypt.org/) plugin on top of nginx to create TLS certificates on the fly.
+:::
- :::info
- We use a [lets encrypt](https://letsencrypt.org/) plugin on top of nginx to create TLS certificates on the fly.
- :::
+Examples:
+`TOOLJET_HOST=http://12.34.56.78` or
+`TOOLJET_HOST=https://yourdomain.com` or
+`TOOLJET_HOST=https://tooljet.yourdomain.com`
- Examples:
- `TOOLJET_HOST=http://12.34.56.78` or
- `TOOLJET_HOST=https://yourdomain.com` or
- `TOOLJET_HOST=https://tooljet.yourdomain.com`
+:::info
+Please make sure that `TOOLJET_HOST` starts with either `http://` or `https://`
+:::
- :::info
- Please make sure that `TOOLJET_HOST` starts with either `http://` or `https://`
- :::
-
- :::info
- If there are self signed HTTPS endpoints that Tooljet needs to connect to, please make sure that `NODE_EXTRA_CA_CERTS` environment variable is set to the absolute path containing the certificates.
- :::
+:::info
+If there are self signed HTTPS endpoints that Tooljet needs to connect to, please make sure that `NODE_EXTRA_CA_CERTS` environment variable is set to the absolute path containing the certificates.
+:::
6. Once you've populated the `.env` file, run
- ```bash
- docker-compose up -d
- ```
- to start all the required services.
+```bash
+docker-compose up -d
+```
- :::info
- If you're running on a linux server, `docker` might need sudo permissions. In that case you can either run:
- `sudo docker-compose up -d`
- OR
- Setup docker to run without root privileges by following the instructions written here https://docs.docker.com/engine/install/linux-postinstall/
- :::
+to start all the required services.
+
+:::info
+If you're running on a linux server, `docker` might need sudo permissions. In that case you can either run:
+`sudo docker-compose up -d`
+OR
+Setup docker to run without root privileges by following the instructions written here https://docs.docker.com/engine/install/linux-postinstall/
+:::
7. If you've set a custom domain for `TOOLJET_HOST`, add a `A record` entry in your DNS settings to point to the IP address of the server.
+8. Seed the database:
-8. Seed the database:
- ```bash
- docker-compose run server npm run db:seed
- ```
- This seeds the database with a default user with the following credentials:
- email: `dev@tooljet.io`
- password: `password`
+```bash
+docker-compose run server npm run db:seed
+```
+This seeds the database with a default user with the following credentials:
+email: `dev@tooljet.io`
+password: `password`
9. You're all done, ToolJet client would now be served at the URL you've set in `TOOLJET_HOST`.
diff --git a/docs/docs/deployment/ec2.md b/docs/docs/deployment/ec2.md
index f6049b79be..636d4b6080 100644
--- a/docs/docs/deployment/ec2.md
+++ b/docs/docs/deployment/ec2.md
@@ -34,7 +34,7 @@ Follow the steps below to deploy ToolJet on AWS EC2 instances.
7. Switch to the app directory by running `cd ~/app`. Modify the contents of the `.env` file. ( Eg: `vim .env` )
The default `.env` file looks like this:
- ```
+ ```bash
TOOLJET_HOST=http://
LOCKBOX_MASTER_KEY=
SECRET_KEY_BASE=
@@ -43,7 +43,7 @@ Follow the steps below to deploy ToolJet on AWS EC2 instances.
PG_HOST=
PG_PASS=
```
- Read [environment variables reference](/docs/deployment/env-vars)
+ Read **[environment variables reference](/docs/deployment/env-vars)**
:::info
If there are self signed HTTPS endpoints that Tooljet needs to connect to, please make sure that `NODE_EXTRA_CA_CERTS` environment variable is set to the absolute path containing the certificates.
diff --git a/docs/docs/deployment/google-cloud-run.md b/docs/docs/deployment/google-cloud-run.md
index fa342cfc09..fac5fc6c3e 100644
--- a/docs/docs/deployment/google-cloud-run.md
+++ b/docs/docs/deployment/google-cloud-run.md
@@ -24,7 +24,7 @@ Follow the steps below to deploy ToolJet on Cloud run with `gcloud` CLI.
2. Deploy new cloud run service
-:::note
+:::info
This command takes the assumption that certain required environment has already been created in secrets. If you haven't created already then use the [secret manager](https://console.cloud.google.com/security/secret-manager).
:::
@@ -89,7 +89,7 @@ The default username of the admin is `dev@tooljet.io` and the password is `passw
2. Deploy new cloud run service
-:::note
+:::info
This command takes the assumption that certain required environment has already been created in secrets. If you haven't created already then use the [secret manager](https://console.cloud.google.com/security/secret-manager).
:::
@@ -123,7 +123,7 @@ If you are to use [Public IP](https://cloud.google.com/sql/docs/mysql/connect-ru
If there are self signed HTTPS endpoints that Tooljet needs to connect to, please make sure that `NODE_EXTRA_CA_CERTS` environment variable is set to the absolute path containing the certificates. The certificate can be mount as a volume onto the container using secrets.
:::
-3. Create default user (Optional)
+3. Create default user **(Optional)**
Signing up requires [SMTP configuration](https://docs.tooljet.com/docs/deployment/env-vars#smtp-configuration--optional-) to be done, but if you want to start off with default user you can run the command by modifying the `args` flag for a one time usage.
diff --git a/docs/docs/deployment/heroku.md b/docs/docs/deployment/heroku.md
index dad4aac17a..3652b7e64e 100644
--- a/docs/docs/deployment/heroku.md
+++ b/docs/docs/deployment/heroku.md
@@ -8,12 +8,16 @@ sidebar_label: Heroku
Follow the steps below to deploy ToolJet on Heroku:
1. Click the button below to start one click deployment.
+
+
2. Navigate to Heroku dashboard and go to resources tab to verify that the dyno is turned on.
3. Go to settings tab on Heroku dashboard and select `reveal config vars` to configure additional environment variables that your installation might need.
- Read [environment variables reference](/docs/deployment/env-vars)
+ Read **[environment variables reference](/docs/deployment/env-vars)**
4. Open the app.
5. The default username of the admin is `dev@tooljet.io` and the password is `password`.
diff --git a/docs/docs/deployment/kubernetes-aks.md b/docs/docs/deployment/kubernetes-aks.md
index 5fee72e9ca..5e344d67db 100644
--- a/docs/docs/deployment/kubernetes-aks.md
+++ b/docs/docs/deployment/kubernetes-aks.md
@@ -11,7 +11,7 @@ You should setup a PostgreSQL database manually to be used by ToolJet. We recomm
Follow the steps below to deploy ToolJet on a AKS Kubernetes cluster.
-1. Create an AKS cluster and connect to it to start with the deployement. You can follow the steps as mentioned on the [doc](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal).
+1. Create an AKS cluster and connect to it to start with the deployement. You can follow the steps as mentioned on the [ Azure's documentation](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal).
2. Create k8s deployment
@@ -21,9 +21,10 @@ Follow the steps below to deploy ToolJet on a AKS Kubernetes cluster.
Make sure to edit the environment variables in the `deployment.yaml`. We advise to use secrets to setup sensitive information. You can check out the available options [here](https://docs.tooljet.com/docs/deployment/env-vars).
- :::info
- If there are self signed HTTPS endpoints that Tooljet needs to connect to, please make sure that `NODE_EXTRA_CA_CERTS` environment variable is set to the absolute path containing the certificates. You can make use of kubernetes secrets to mount the certificate file onto the containers.
- :::
+:::info
+If there are self signed HTTPS endpoints that Tooljet needs to connect to, please make sure that `NODE_EXTRA_CA_CERTS` environment variable is set to the absolute path containing the certificates. You can make use of kubernetes secrets to mount the certificate file onto the containers.
+:::
+
3. Create k8s service and reserve a static IP and inorder expose it via a service load balancer as mentioned in the [doc](https://docs.microsoft.com/en-us/azure/aks/static-ip). You can refer `service.yaml`.
```bash
curl -LO https://raw.githubusercontent.com/ToolJet/ToolJet/main/deploy/kubernetes/AKS/service.yaml
@@ -38,8 +39,11 @@ Make sure to edit the environment variables in the `deployment.yaml`. We advise
You will be able to access your ToolJet installation once the pods and services running.
If you want to seed the database with a sample user, please SSH into a pod and run:
-`npm run db:seed --prefix server`.
+
+`npm run db:seed --prefix server`
+
This seeds the database with a default user with the following credentials:
-email: `dev@tooljet.io`
-password: `password`
+**email**: `dev@tooljet.io`
+
+**password**: `password`
diff --git a/docs/docs/deployment/kubernetes-gke.md b/docs/docs/deployment/kubernetes-gke.md
index 37a6891db2..be95eb9919 100644
--- a/docs/docs/deployment/kubernetes-gke.md
+++ b/docs/docs/deployment/kubernetes-gke.md
@@ -64,8 +64,11 @@ It might take a few minutes to provision the managed certificates. [Managed cert
You will be able to access your ToolJet installation once the pods, service and the ingress is running.
If you want to seed the database with a sample user, please SSH into a pod and run:
-`npm run db:seed --prefix server`.
+
+`npm run db:seed --prefix server`
+
This seeds the database with a default user with the following credentials:
-email: `dev@tooljet.io`
-password: `password`
+**emai**: `dev@tooljet.io`
+
+**password**: `password`
diff --git a/docs/docs/deployment/kubernetes.md b/docs/docs/deployment/kubernetes.md
index 8126ec1663..209c9a4fd3 100644
--- a/docs/docs/deployment/kubernetes.md
+++ b/docs/docs/deployment/kubernetes.md
@@ -16,7 +16,7 @@ Follow the steps below to deploy ToolJet on a Kubernetes cluster.
2. Create a Kubernetes secret with name `server`. For the minimal setup, ToolJet requires `pg_host`, `pg_db`, `pg_user`, `pg_password`, `secret_key_base` & `lockbox_key` keys in the secret.
- Read [environment variables reference](/docs/deployment/env-vars)
+ Read **[environment variables reference](/docs/deployment/env-vars)**
3. Create a Kubernetes deployment
@@ -39,10 +39,11 @@ If there are self signed HTTPS endpoints that Tooljet needs to connect to, pleas
```
5. Create a Kubernetes services to publish the Kubernetes deployment that you've created. This step varies with cloud providers. We have a [template](https://raw.githubusercontent.com/ToolJet/ToolJet/main/deploy/kubernetes/service.yaml) for exposing the ToolJet server as a service using an AWS loadbalancer.
- Examples:
- Application load balancing on Amazon EKS: https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html
- GKE Ingress for HTTP(S) Load Balancing: https://cloud.google.com/kubernetes-engine/docs/concepts/ingress
+
+ **Examples:**
+ - [Application load balancing on Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html)
+ - [GKE Ingress for HTTP(S) Load Balancing](https://cloud.google.com/kubernetes-engine/docs/concepts/ingress)
:::tip
-If you want to serve ToolJet client from services such as Firebase or Netlify, please read the client deployment documentation [here](/docs/deployment/client).
-:::
+If you want to serve ToolJet client from services such as Firebase or Netlify, please read the client deployment documentation **[here](/docs/deployment/client)**.
+:::
\ No newline at end of file
diff --git a/docs/docs/intro.md b/docs/docs/intro.md
index f285594dfe..517f3cf7fa 100644
--- a/docs/docs/intro.md
+++ b/docs/docs/intro.md
@@ -4,19 +4,27 @@ sidebar_position: 1
# Introduction
-ToolJet is an **open-source low-code framework** to build and deploy custom internal tools. ToolJet can connect to your data sources such as databases ( PostgreSQL, MongoDB, MySQL, Elasticsearch, Firestore, DynamoDB, Redis and more ), API endpoints ( ToolJet supports OAuth2 authorization ) and external services ( Stripe, Slack, Google Sheets, airtable and more ). Once the data sources are connected, ToolJet can run queries on these data sources to fetch and update data. The data fetched from data sources can be visualised and modified using the UI widgets such as tables, charts, forms, etc.
+ToolJet is an **open-source low-code framework** to build and deploy custom internal tools. ToolJet can connect to your data sources such as databases ( PostgreSQL, MongoDB, MySQL, Elasticsearch, Firestore, DynamoDB, Redis and more ), API endpoints ( ToolJet supports OAuth2 authorization ) and external services ( Stripe, Slack, Google Sheets, Airtable and more ). Once the data sources are connected, ToolJet can run queries on these data sources to fetch and update data. The data fetched from data sources can be visualised and modified using the UI widgets such as tables, charts, forms, etc.
-
+
+
+
+
+
## How ToolJet works
-
+
-ToolJet has just 3 fundamental principles to build apps:
+
+
+
+
+**ToolJet has just 3 fundamental principles to build apps:**
- **Connect to data sources:** Connect to your existing data sources such as PostgreSQL, MySQL, Firestore, Stripe, Google Sheets, API endpoints, etc.
- **Build queries:** ToolJet comes with query builders for all supported data sources. ToolJet also supports the use of custom JavaScript code to transform the query results.
-- **Customise widgets:** Widgets are the UI components that can be edited using ToolJet's visual app builder ( Eg: tables, charts, forms, etc ) Widgets have events such as `on click`, `on row selected`, `on page changed`, etc. Every UI widget has a dark version.
+- **Customise widgets:** Widgets are the UI components that can be edited using ToolJet's visual app builder ( Eg: tables, charts, forms, etc ). Widgets have events such as `on click`, `on row selected`, `on page changed`, etc. Every UI widget has a dark version.
ToolJet binds together the data sources, queries and widgets to convert business logic into custom applications.
## Getting Started
@@ -27,18 +35,20 @@ These resources will help you to quickly build and deploy apps using ToolJet:
- **[Basic Tutorial](/docs/tutorial/creating-app)** - Learn how to build simple UI and connect to data sources.
- **[Deploy](/docs/contributing-guide/setup/docker)** - Learn how to deploy ToolJet on Heroku, Kubernetes, etc
-The references for datasources and widgets:
+The references for data sources and widgets:
- **[Datasource Reference](/docs/data-sources/redis)**
- **[Widget Reference](/docs/widgets/table)**
## Complete tutorials
-- [Build a WhatsApp CRM](https://blog.tooljet.com/build-a-whatsapp-crm-using-tooljet-within-10-mins/)
-- [Build a cryptocurrency dashboard](https://blog.tooljet.com/how-to-build-a-cryptocurrency-dashboard-in-10-minutes/)
-- [Build a Redis GUI](https://blog.tooljet.com/building-a-redis-gui-using-tooljet-in-5-minutes/)
+- **[Build a GitHub star history tracker](https://blog.tooljet.com/build-github-stars-history-app-in-5-minutes-using-low-code/)**
+- **[Build an AWS S3 file explorer app](https://blog.tooljet.com/building-an-app-to-view-and-upload-files-in-aws-s3-bucket/)**
+- **[Build a WhatsApp CRM](https://blog.tooljet.com/build-a-whatsapp-crm-using-tooljet-within-10-mins/)**
+- **[Build a cryptocurrency dashboard](https://blog.tooljet.com/how-to-build-a-cryptocurrency-dashboard-in-10-minutes/)**
+- **[Build a Redis GUI](https://blog.tooljet.com/building-a-redis-gui-using-tooljet-in-5-minutes/)**
## Help and Support
-We have extensively documented the features of ToolJet, but in case you are stuck, please feel to mail us: hello@tooljet.com.
-If you are using ToolJet cloud, click on the chat icon at the bottom-left corner for instant help.
-If you have found a bug, please create a GitHub issue for the same.
-Also, feel free to join our highly active [slack community](https://join.slack.com/t/tooljet/shared_invite/zt-r2neyfcw-KD1COL6t2kgVTlTtAV5rtg).
+- We have extensively documented the features of ToolJet, but in case you are stuck, please feel to e-mail us at **hello@tooljet.com**
+- If you are using ToolJet cloud, click on the chat icon at the bottom-left corner for instant help.
+- If you have found a bug, please create a **[GitHub issue](https://github.com/ToolJet/ToolJet/issues)** for the same.
+- Feel free to join our highly active **[Slack Community](https://join.slack.com/t/tooljet/shared_invite/zt-r2neyfcw-KD1COL6t2kgVTlTtAV5rtg)**.
diff --git a/docs/docs/tutorial/adding-widget.md b/docs/docs/tutorial/adding-widget.md
index 317fef29c4..6bba38b902 100644
--- a/docs/docs/tutorial/adding-widget.md
+++ b/docs/docs/tutorial/adding-widget.md
@@ -39,7 +39,7 @@ Before triggering `Show modal action` we need to add a modal widget to the canva
-
+
@@ -64,13 +64,15 @@ Click on the widget to open the inspect panel on right sidebar. Here you can cha
## Connecting data with widget
Now we will connect the `data` object of the `fetch customers` query with the table. Click on the table widget to open the inspector on right sidebar. We can see that the data property of the table have an empty array as the value. The data field, like almost every other field on the editor supports single-line javascript code within double brackets. Variable suggestions will be shows as a dropdown while you type the code in the field.
-Let's select `data` object of the 'postgresql' query.
+Let's select `data` object of the 'postgresql' query.
+
+` {{queries.postgresql1.data}}`
Since we have already run the query in previous step, the data will be immediately displayed in the table.
-
+
diff --git a/docs/docs/tutorial/building-queries.md b/docs/docs/tutorial/building-queries.md
index bbf6c99513..f6ab8eeeac 100644
--- a/docs/docs/tutorial/building-queries.md
+++ b/docs/docs/tutorial/building-queries.md
@@ -29,7 +29,7 @@ Query results can be previewed by clicking the `preview` button. Previewing quer
-
+
diff --git a/docs/docs/tutorial/transformations.md b/docs/docs/tutorial/transformations.md
index 0fc187cc86..7fcd4a99d3 100644
--- a/docs/docs/tutorial/transformations.md
+++ b/docs/docs/tutorial/transformations.md
@@ -22,7 +22,7 @@ The query will now look like this:
-
+
@@ -30,7 +30,7 @@ Click the `create` button to create the query. Saved queries can be run using th
-
+