ToolJet is the open-source foundation of ToolJet AI - the enterprise app generation platform for building internal tools, dashboard, business applications, workflows and AI agents 🚀
Find a file
Ganesh Kumar a03b73d4a8
Bugfix/App export should also export tables in join query - Design Review Changes (#7806)
* basic and static join query executed

* tooljetDB Join operation flow - work inprogress

* complete flow for tooljetdb join pending testing and minor changes

* updated constructHavingStatement method logic to support aggregation function and added comments

* worki in progress tooljetDB Join

* feat: added basic layout for tjdb join fields

* feat: dropdown support for icons

* feat: working on where condition ui in join

* feat: added base layout for filter and sort in tooljetdb join

* feat: added multi select support and minor style changes

* feat: support default value for selectbox

* feat: dd select styling added

* style: override vanilla  dd select styles with tj styles

* fix: fixed minor UI issues in select box

* feat: added select section layout

* feat: added hooks state for join options

* feat: load all added tables columns

* feat: working on where section logic

* feat: join constraints UI

* feat: filter condition dropdowns added

* feat: join widget for join query op in tjdb

* feat: sort section base UI

* feat: select widget for join query in tjdb

* feat: filter section add option and delete option done

* feat: update filter condition logic added

* feat: added onchange event for operator and rhs values update

* feat: added sort dropdown for tjdb join

* feat: base logic for Filters in join query

* fix: removed comments and added validation for fetching table details

* feat: add limit option logic

* feat: backend api has been integrated for tooljetdb joins

* added icons to solid icons

* fix: jsconfig auto save lint fix

* fix: update from table when selected table changes

* feat: added from to join table options in tjdb dq

* fix: added fetching tables list for JSON in backend

* fix: fixed json data for join query

* fix: temp fix for fields with empty object

* feat: added icon support for dd select

* fix: added default state to avoid error in conditionlist

* fix: limit tables selection to already joined tables in tjdb join

* fix: empty values to orderBy, filters and limit will remove the option from json

* fix: in json first level empty value scenario has been handled

* fix: select in tooljetdb join query can have multiple columns with same name handled by adding prefix tablename_ to the column name

* fix: restrict selectable tables in join contraints

* feat: reset join constraints when invlaid joins added

* fix: empty values will not be allowed UI validation

* fix: codehinter border has been removed

* fix: recalculate join data when join tables change

* fix: corrected options length calc for showing search box

* fix: filter table dropdown must contain only selected tables from join section

* fix: empty values validation has been removed

* fix: add from attribute to join options

* fix: alias is added to all the table column

* feat: selected option in Select section will be at the top

* fix: reset joins when selected table changed

* fix: drop down focus ui

* feat: autoselect all columns by defualt for join select

* feat: restrict column selection to same datatype

* fix: removed blank table names from select

* feat: added tooltip for info

* fix: removed duplicate tooltip

* fix: add button in table dropdown

* fix: added from table object back

* feat: tjdb join select dropdown select all cols by default

* fix: add new table button name corrected

* feat: no table selected error message

* feat: add select style for select dropdown

* style: updated dropdown select style to match new theme

* feat: added alert modal for deleting joins

* feat: hardcode operator since once one option available at the moment

* style: fix icon styles for dropdown

* feat: created reusable confirm dialogue

* fix: fixed bug for nested dropdowns

* fix; cache select components to prevent unnecessory rerenders

* feat: reused the common popup on updating the tables

* fix: info popup will trigger only if table is already exists

* fix: fixed bug that caused edit to break for tjdb join

* style: fixed spacing for tjdb join components

* fix: select section all options cant be deselected issue fixed

* fix: add info icon for empty filter and sort component

* feat: offset fature for joins has been added

* fix: layout fixed to incorporate filter dropdown with text

* fix: basic validation in UI for mandatory and non-mandatory fields

* feat: more options added for filter in joins

* fix: added filter option for regular expression

* fix: fixed wrong autoupdate of join fields

* style: updated badge color w.r.t theme

* fix: removed the commented code

* style fixes

* refactor: changed tooljetdb join logic based on tableId instead of name

* fix: joins table value is not been shown after save

* fix: CSS design fix and removed not required commented codes

* feat: tableid to table name mapping in error

* fix: errors will be shown in the debugger for tooljetdb join

* stylefix: container for join sort and select made full width

* stylefix: changed CTA test in popup spacing issue adjusted

* fix: few PR review comments to refactor has been done

* fix:random id generator has been removed and uuid has been used

* feat: Select all functionality in Select Drop down has been added

* fix: first time AND operator has been removed

* fix:Sort Section - Removed table were listed in the drop down

* fix: add more in join section deleting newly created joins

* fix: select section total selected count was wrong

* stylefix: dropdown menu height has been reduced

* fix: sort section on join query will have prefix table name along with column name

* feat: changed the select drop down with add new table option

* fix: center align text only for join operator drop down

* fix join icons to be centred

* reduce chevron icon size

* fix:error handling by status code

* feat: added placeholder for empty select box

* fix: fixed the PR comments

* stylefix:multi select with checkbox will not have tick and bgcolor

* stylefix: codehinter doesnt expand entire row content

* stylefix: codehinter placeholder is center aligned scroll has been removed and overflow content has been handled

* stylefix: codehinter font size made to 12

* feat: offset option for list rows in tjdb query

* inprogress: tjdb joins tables must be exported

* Updated cypess mysql spec (#7717)

* fix: import app missed the tjdb tables in join query

---------

Co-authored-by: Johnson Cherian <johnsonc.dev@gmail.com>
Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
Co-authored-by: Mekhla Asopa <59684099+Mekhla-Asopa@users.noreply.github.com>
2023-11-16 12:12:57 +05:30
.do Update deploy.template.yaml 2023-10-25 14:56:04 +05:30
.github indentation issue 2023-11-01 11:20:43 +05:30
.husky Setup husky and lint-staged 2021-04-30 15:40:48 +05:30
.vscode Mailgun integration (#2392) 2022-03-11 08:14:04 +05:30
cli Improvements : ToolJet CLI (#6155) 2023-06-07 16:27:58 +05:30
cypress-tests Merge branch 'develop' into release/marketplace-1.5 2023-11-16 12:08:00 +05:30
deploy Update .env.external.example 2023-10-20 23:10:21 +05:30
docker Fix: server.dockerfile.dev 2023-08-14 10:06:44 +05:30
docs Merge pull request #7866 from alex-dixon/patch-1 2023-11-14 22:03:39 +05:30
frontend Bugfix/App export should also export tables in join query - Design Review Changes (#7806) 2023-11-16 12:12:57 +05:30
marketplace Create a new Bucket functionality for S3 2023-11-06 13:36:07 +05:30
plugins Merge branch 'develop' into release/marketplace-1.5 2023-11-16 12:08:00 +05:30
server Bugfix/App export should also export tables in join query - Design Review Changes (#7806) 2023-11-16 12:12:57 +05:30
.dockerignore Dev and deploy setup revision (#604) 2021-08-26 20:34:30 +05:30
.env.example remove user_session_expiry from .env.example 2023-07-03 18:04:59 +05:30
.eslintignore [chore] Eslint fixes (#5988) 2023-04-11 15:34:58 +05:30
.gitattributes Fix: Add git attributes file to standardize EOL characters (#3332) 2022-06-27 13:05:56 +05:30
.gitignore Feature: Import export tjdb schema (#5752) 2023-08-28 21:23:15 +05:30
.nvmrc Updated nvmrc file with updated node version (#5747) 2023-03-14 17:00:28 +05:30
.slugignore changes for heroku fix (#4888) 2022-12-02 22:23:27 +05:30
.version Release : Appbuilder - appdefinition architecture revamp (#7448) 2023-11-08 11:09:47 +05:30
app.json [Improvement] URLs scoped with workspace id (#5487) 2023-04-06 16:42:58 +05:30
Aptfile Feature/oracledb plugin (#2388) 2022-03-15 08:00:02 +05:30
CODE_OF_CONDUCT.md Accessibility features for Tooljet markdown files (#8057) 2023-11-01 16:44:28 +05:30
CONTRIBUTING.md Accessibility features for Tooljet markdown files (#8057) 2023-11-01 16:44:28 +05:30
dependabot.yml explicitly define directories for dependabot 2023-05-03 18:37:06 +05:30
docker-compose.yaml improve docker compose (#5712) 2023-03-20 12:59:49 +05:30
heroku-postbuild.sh Move plugins to root (#1728) 2022-01-17 12:38:17 +05:30
LICENSE Switch to AGPL license (#854) 2021-09-28 12:37:26 +05:30
netlify.toml Added configuration to select plugins (#3024) 2022-05-20 19:32:46 +05:30
package-lock.json Merge branch 'release/marketplace_1.3' into feature/restapi-ssl-options 2023-08-24 21:50:51 +05:30
package.json Setup sentry logging as per version and upload its source map (#7143) 2023-09-04 10:00:14 +05:30
Procfile Fix heroku on click deploy (#5147) 2023-01-03 13:25:45 +05:30
README.md removed feature images below how it works in readme (#8083) 2023-11-08 16:37:58 +05:30
render.yaml Feature: Make tooljetdb optional (#5062) 2022-12-27 16:18:36 +05:30
SECURITY.md Accessibility features for Tooljet markdown files (#8057) 2023-11-01 16:44:28 +05:30
update-version.js Setup sentry logging as per version and upload its source map (#7143) 2023-09-04 10:00:14 +05:30

ToolJet is an open-source low-code framework to build and deploy internal tools with minimal engineering effort. ToolJet's drag-and-drop frontend builder allows you to create complex, responsive frontends within minutes. Additionally, you can integrate various data sources, including databases like PostgreSQL, MongoDB, and Elasticsearch; API endpoints with OpenAPI spec and OAuth2 support; SaaS tools such as Stripe, Slack, Google Sheets, Airtable, and Notion; as well as object storage services like S3, GCS, and Minio, to fetch and write data.

If you find ToolJet useful, please consider giving us a star on GitHub! Your support helps us continue to innovate and deliver exciting features.

Docker Cloud Build Status Number of GitHub contributors Number of GitHub issues that are open Number of GitHub stars Number of GitHub closed issues Number of GitHub pull requests that are open GitHub release; latest by date GitHub commit activity GitHub license which is APGL license Follow us on X, formerly Twitter

Tooljet dashboard showing inventory and orders

All features

  • Visual App Builder: 40+ built-in responsive components, including Tables, Charts, Lists, Forms, and Progress Bars.
  • ToolJet Database: Built-in no-code database.
  • Multi-Page: Build an application with multiple pages.
  • Multiplayer editing: Allows simultaneous app building by multiple developers.
  • 40+ data sources: Integrate with external databases, cloud storage, and APIs.
  • Desktop & mobile: Customize layout widths to fit various screen sizes.
  • Self-host: Supports Docker, Kubernetes, Heroku, AWS EC2, Google Cloud Run, and more.
  • Collaborate: Add comments anywhere on the canvas and tag your team members.
  • Extend with plugins: Use our command-line tool to easily bootstrap new connectors.
  • Version control: Manage multiple application versions with a structured release cycle.
  • Run JS & Python code: Execute custom JavaScript and Python snippets.
  • Granular access control: Set permissions at both group and app levels.
  • Low-code: Use JS code almost anywhere within the builder, such as setting text color based on status with status === 'success' ? 'green' : 'red'.
  • No-code query editors: Query Editors are available for all supported data sources.
  • Join and transform data: Transform query results using JavaScript or Python code.
  • Secure: All the credentials are securely encrypted using aes-256-gcm.
  • Data Privacy: ToolJet serves solely as a proxy and does not store data.
  • SSO: Supports multiple Single Sign-On providers.

Quickstart

The easiest way to get started with ToolJet is by creating a ToolJet Cloud account. ToolJet Cloud offers a hosted solution of ToolJet. If you want to self-host ToolJet, kindly proceed to deployment documentation.

You can deploy ToolJet on Heroku using one-click deployment.

Deploy to Heroku Deploy to DigitalOcean

Try using Docker

Want to give ToolJet a quick spin on your local machine? You can run the following command from your terminal to have ToolJet up and running right away.

docker run \
  --name tooljet \
  --restart unless-stopped \
  -p 80:80 \
  -v tooljet_data:/var/lib/postgresql/13/main \
  tooljet/try:latest

Tutorials and examples

Time Tracker Application
Build your own CMS using low-code
AWS S3 Browser

Documentation

Documentation is available at https://docs.tooljet.com.

Self-hosted

You can use ToolJet Cloud for a fully managed solution. If you want to self-host ToolJet, we have guides on deploying ToolJet on Kubernetes, AWS EC2, Docker, Heroku, and more.

Provider Documentation
Digital Ocean Link
Docker Link
Heroku Link
AWS EC2 Link
AWS ECS Link
OpenShift Link
Helm Link
AWS EKS (Kubernetes) Link
GCP GKE (Kubernetes) Link
Azure AKS (Kubernetes) Link
Azure Container Link
Google Cloud Run Link
Deploying ToolJet client Link
Deploying ToolJet on a Subpath Link

Marketplace

ToolJet can now be found on both AWS and Azure Marketplaces, making it simpler than ever to access and deploy our app-building platform.

Find ToolJet on AWS Marketplace here and explore seamless integration on Azure Marketplace here.

Community support

For general help using ToolJet, please refer to the official documentation. For additional help, you can use one of these channels to ask a question:

  • Slack - Discussions with the community and the team.
  • GitHub - For bug reports and feature requests.
  • 𝕏 (Twitter) - Get the product updates quickly.

Roadmap

Check out our roadmap to stay updated on recently released features and learn about what's coming next.

Branching model

We use the git-flow branching model. The base branch is develop. If you are looking for a stable version, please use the main branch or tags labeled as v1.x.x.

Contributing

Kindly read our Contributing Guide to familiarize yourself with ToolJet's development process, how to suggest bug fixes and improvements, and the steps for building and testing your changes.

Contributors

License

ToolJet © 2023, ToolJet Solutions Inc - Released under the GNU Affero General Public License v3.0.