Commit graph

42 commits

Author SHA1 Message Date
Akshay
9c62b2d317
Feature: Make tooljetdb optional (#5062)
* make tooljetdb optional

* restrict routes when tooljetdb is disabled

* validate dbname before creating database

* fix comment

* format
2022-12-27 16:18:36 +05:30
Gandharv
05aedbc8a6
fix: pick env from public_config for marketplace (#4648) 2022-10-28 18:11:18 +05:30
Gandharv
a1fd1fc301
[Feature] Make plugins installable (#3069)
* feat: add user avatar

* update: @nest/platform-express from 8.0.0 to 8.4.4

* add avatar_id in login response

* add user avatar upload in frontend

* align cross divider with layout icons'

* generate nest model - extensions

* Add extensions module

* Add extension to datasouce

* add not implemented check

* create extension

* refactor

* cleanup

* fix tests

* reduce the avatar size on homepage

* poc: run js code from string

* resolve conflicts

* fix conflicts

* add globals

* add new route

* add icon, manifest file upload

* complete user flow

* add flow for data queries

* add dynamic manifest instead of local datasource types

* add version attr

* remove unused code

* add version

* rename extension(s) -> plugins(s)

* add test connection method

* feat: add marketplace listing page

* Add install plugin cmd + missing attrs {name, repo, desc} to plugin

* add missing icon

* - Add npm workspaces for marketplace monorepo
- Added cassandra datasource plugin
- Created upload to s3 script
- Created plugins.json entry file

* install plugin from s3 bucket

* cleanup

* update pkg locks

* fix icon render

* cleanup

* marketplace changes

* ui changes

* operations file load fix + revert vm2

* update module from string to 3.2.1

* load plugins.json from local file instead of remote

* install plugin from local file if not production environment

* add sqlite

* feat: add plivo api plugin

* exp: add heroku 22 stack

* update assets include path

* Revert "exp: add heroku 22 stack"

This reverts commit a8926b36e1.

* add integrations link

* Add casl ability for plugin

* load host from env else fallback to default

* update imports

* remove sqlite

* typo

* add marketplace flag to cli command

* move ts and ncc to devDep

* add hygen templates for marketplace

* cli tree-node path fix

* template indent fix

* TOOLJET_URL -> MARKETPLACE_TOOLJET_URL

* add tests

* refactor: move to plugins.helper for get-service helper utility

* fix; typo

* update package-lock.json

* review changes

* remove a href

* remove bg color + redirect issue due to href

* add test url

* fix crash on search

* remove extra slash

* feat: allow plugin to be installed from github repository

* remove unwanted args from cli command

* add repo attr while save

* feat: add feature toggle for marketplace feature

* fix: make default config as false

* chore: remove hyperlink

* fix: failing build

* chore: update s3 url to point to prod

* fix failing test

* fix test

* fix: test case

* update module from string pkg

* update env

* fix test

* fix test

* add readme file

* Update README.md

Co-authored-by: Akshay Sasidharan <[email protected]>
2022-10-27 16:59:43 +05:30
Arpit
946be9a340
Feature: Support to run Python code in Transformations (#4532)
* init 🚀

* supports Map or hastables in leftside json inspector

* handles python errors

* transform map to json

* persist transformations with custom hook

* load pyodide from frontend/assets

* asset path

* fixes csp error and adds subpath

* subpath

* subpath fix

* dir name changed

* default value syntax

* typo

* dropdown order
2022-10-27 14:11:26 +05:30
Gandharv
3e86cfe02e
Pick comment_feature_enable from env (#4555) 2022-10-23 12:11:27 +05:30
Gandharv
9860cf639e
fix(webpack): remove devtool source-map in prod mode (#4066)
* fix: remove devtool source-map in prod mode

* undo unwanted change
2022-09-21 01:59:09 +05:30
Akshay
0d482f8161
Revise docker setup (#3954)
* fixes separate client build

* update docs

* add SERVE_CLIENT flag for dev docker step for uniformity

* Doc changes

* Doc changes

* Doc changes

* update readme

* add separate docker compose setups

* Doc changes

* rename compose files

* remove unused dependency

* rename service name to server for uniformity

Co-authored-by: Navaneeth Pk <[email protected]>
2022-09-05 21:06:11 +05:30
Akshay
3178cb66b1
Hotfix: subpath link formation (#3897)
* fix link formation

* strip trailing slash

* fix lint
2022-08-29 15:49:39 +05:30
Navaneeth Pk
98bb7519dd
Reverse proxy using base tag (#3889)
* reverse proxy

* reverse proxy

* Fix for yjs

* Fix for ws

* Fixes org switching

* Fixes org creation

* Fixes login logo

* Fixes download icon

* Construct use invite URL from base URI

* Fixes apiUrl if sub path is set

* Remove commented code

* Fix profile link

* invitation url changes

* Fixes dev env

* Use url-join lib to connect urls for goto app and invitation link

* Use useHistory instead of helper to get history for template modal

* Review changes

Co-authored-by: Sherfin Shamsudeen <[email protected]>
Co-authored-by: gsmithun4 <[email protected]>
2022-08-27 21:58:24 +05:30
Gandharv
42935b9f68
Optimize webpack bundle output (#3785)
* webpack: split vendor (node_modules) chunk

* perf: add compression

* compression-webpack-plugin devdeps -> deps

* feat: use eslint as bundler

* undo
2022-08-16 12:36:47 +05:30
Manish Kushare
a65eb3ecd5
Hotfixed : Favicon icon not displayed in preview and launch page (#3154) 2022-05-30 14:44:10 +05:30
Kavin Venkatachalam
7c30a830db
[Feature]: Custom Component Widget (#2960)
* Created custom component widget

* Updated the custom component key

* Added doc for custom component

* Update iframe.html

* Installed HTML parse in dependencies

* Updated script source

* Added scripts to CSP

* Added Skypack to CSP

* Fixed Run Query issue in Viewer
2022-05-10 15:09:09 +05:30
Gandharv
1716213247
Chore: add option to enable/disable multiplayer feature (#2984)
* chore: add env to enable/disable multiplayer feature

* fix merge conflict

* rename env

* add default true

* add null check on ymap
2022-05-06 12:29:50 +05:30
Maurits Lourens
9b496d77be
Make the server port configurable in the frontend project (#2489)
* make the server port configurable in the frontend project

* add documentation for new env variable
2022-03-16 21:36:28 +05:30
Akshay
babb58524a
Fix: Client entrypoint (#2338)
* make public path configurable

* remove unused public path entrypoint

* fix lint
2022-03-01 13:25:51 +05:30
Maurits Lourens
fb2377c034
Feature: upgrade to webpack-dev-server 4 (#2335)
* upgrade to webpack-dev-server 4

* fix lint issue
2022-02-25 06:55:13 +05:30
Gandharv
f686e378c6
Chore: add source-map to devtool for prod (#2214) 2022-02-10 14:23:43 +05:30
Gandharv
2f3b441c0a
Move plugins to root (#1728)
* feat: move plugins to root

* modify tsconfig

* add .gitignore

* delete old plugins file

* add parcel

* docker compose volume mount

* add gcs

* add typescript to plugins folder

* gcs to ts

* add dynamodb

* add elastic search

* add firestore

* add gsheets

* add graphql

* add mongodb

* mssql

* add mysql

* add postgresql

* add redis

* add s3

* add slack

* add stripe

* remove plugin related packages from pkgjson

* add lib folder

* add gitignore

* remove typescript generated files

* remove generated file

* remove generated files

* add twilio

* add dist to docker compose cache binding

* add dist prefix

* cleanup - 1

* delete dist

* rename to index.ts + add jest config

* add it.todo in tests

* test fixes

* test file changes

* fix type checks

* add @tooljet/plugins to server package json

* esm vs commonjs bug, reduce got to 11.8.2 from 12.0.0

* docker file npm package version fix

* add typesense

* cleaup - 2

* add sendgrid

* add lerna build and clean script for all packages + tsconfig

* cleanup -3

* add plugins build step

* add missing plugins build step in npm run build

* add mssql, mysql & postgres as singleton classes

* add db connection to cache only if datasourceId is available

* client: add data source schema/manifest files

* add query operations files

* logic for wrapping form with schema

* add script to create index file

* add @tooljet/plugins to frontend folder

* cleanup 1 -frontend

* cleanup - 2 // frontend // data queries

* add client and index to gitignore

* update gitignore

* fix lint & test

* update ci

* fix unit, e2e

* cleanup -3

* fix test

* fix tests

* fix indent

* try npm ci

* fix tests

* fix typo

* fix

* rename file for server entry

* heroku fix

* add main and types entry points in pkg json

* move common to root

* cleanup - 4: remove redundant $ sign prefix

* cleanup - 4: remove redundant $ sign prefix

* update options in-sync before DOM is painted

* change type cloud to cloud storage

* update readme

* update ci.yml

* update ci yml

* add pkg-lock.json

* rename index.ts to server.ts

* update lock files

* add server package.lock

* remove unused import

* revert commit: add minio

* add root dep

* import server.ts

* remove plugins build step

* add npm shrinkwrap

* update version - plugins

* add new version - 0.0.8

* upgrade version

* move to symlinked package

* add lock file

* feat: add icon inside package

* add plugin creation docs

* Remove seed

* move icons to plugins folder

* install pg dep

* add react to packages

* add seed cmd

* revert change

* add plugins build in lint, e2e, unit

* e2e, lint use npm ci

* update dockerfile for plugins

* try combining release with web

* limit memory on release

* try executing seed script post transpile

* try executing seed from server directory

* update seed execution

* add minio

* add correct type

* add minio to pkg json

* remove old file

* fix provider key

* add python installable + npm ^7.2.0 (#1752)

* add python installable + npm ^7.2.0

* add py to prod file

* pin npm version to 7.20.0

* pin npm version to 7.20.0

* split into multi stage build and remove python for buildx

* copy plugins from buider stage

* update dependencies

* add freetds dependency

* update server dockerfile

* update client dockerfile

* update dev dockerfile and compose file

* fix entrypoint

* fix server dev dockerfile

* update docker-compose

* remove npm install on root dir on docker build

* fix heroku script

* make lerna prod dependency to enable prod builds

* remove redundant env setup

Co-authored-by: Akshay Sasidharan <[email protected]>
Co-authored-by: navaneeth <[email protected]>
2022-01-17 12:38:17 +05:30
Sherfin Shamsudeen
d88139d5b7
Feature/merge google sso to community edition (#1420)
* SSO 🔥 (#2)

* Add rough implementation of google SSO

* Use env variables for storing Google Oauth client id

* Set organization user to active when a new user is created via sso

This commit also fetches first name and last name from the payload
received from google.
Also adds some refactoring.

* Apply proper styles to google login button

* Refactor oauth controller

* Move google specific logic to a separate service

* Fail sign-in if google could not verify idToken

* Refactoring update for GoogleOAuthService

* Change env variable name for google sso client id

* Show Google sign-in button only if client id env variable is given

* Add SSO_GOOGLE_OAUTH2_CLIENT_ID to app.json

* Whitelist apis.google.com in CSP

* Add accounts.google.com to CSP

* Add documentation for Google SSO

* Add e2e tests for Google SSO

* Resolve minor linting issues

* Avoid use of raw query in migration for SSO ID

This commit also adds an index for SSO ID

* Verify domain of user's email id for single sign on

* Add documentation for RESTRICTED_DOMAIN env variable in SSO

* Move SSO controllers and services to ee folder

* Move GoogleLoginButton to ee folder

* Test the restricted domain verification for Google SSO

* Remove unnecessary console.log

* Apply better styles to Sign in with google button

* Remove documentation for Google SSO

This will be added to the community edition repo

* Remove unnecessary static images

* Fetch Google OAuth2 client id from server instead of client env (#3)

* Check for existing email when signing in via SSO (#4)

* hotfix oauth service return type

* hotfix sso user creation

* Allow disabling sign-up via SSO (#5)

* hotfix file input change on import/export

* Align SSO button on login box center (#6)

* Fix: group permission not being set on sso (#7)

* fixes group permission not being set on sso

* update specs for sso

* lint fix

* add user id on login response

* decamelize keys on login response

* fix specs

Co-authored-by: Akshay Sasidharan <[email protected]>
Co-authored-by: navaneeth <[email protected]>
2021-11-17 16:51:50 +05:30
Gandharv
22bce1f4fb
Feature: Collaboration ( realtime comments for canvas ) 🔥 (#810)
* feat: initial commit for collaboration feature

* add dnd to comments

* add positions endpoint

* feat: encapsulate all http common logic in http-client

* segregate sections and transfer responsibility of state

* feat: use-spring to add fade effect 

* fix: open in right

* fix: left-right position css

* add footer for message

* integrate getcomment endpoint

* use fromnow for date ago

* add dnd

* - Add data trasfer object for comment
- Add class-validator package to check the response type from client
- Add comment repository class for persistance layer
- Add comment service with std. http methods
- Update controller with all http methods
- Update comment module
- Fix http-client bug when error is thrown

* fix http client bug when error is thrown

* feat: add entity thread

* feat: add migrations for thread and comment

* update entitites

* add tid to migration

* filter comments by tid(thread_id)

* fix: comment migration, add missing column comment

* feat: integrate in ui

* feat: split comments based on app_id

* fix: dnd to correct position

* package json engines

* engines update

* update npm

* npm 6 to 7

* fix: add user initials to thread

* fix: add firtname lastname to the comments

* - Return user object when save thread called
- Hide password field from user response
- Fix created_at date typo
- Instead of fetch all threads on new thread added, add the response to array of existing threads

* feat: update ui components

* change icon on comments view

* ui fixes

* fix: close icon close the popover

* temp: comment select: false

* use currentUser from localStorage

* fix: on click outside if comment is open, dont hit addThread

* fix: auth token issue in http-client

* on drag hide the comment if open

* add jwt auth

* spec: add test for comment & thread

* cleanup: remove console.log

* feat: add comment actions

* feat: add edit, delete, resolve options

* feat: add mentions component

* feat: add nestjs websockets

* temp

* websocket: establish client-server communication

* ws: add message listner to comments module in ui

* feat: add broadcast method to broadcast new events to all clients 💣

* ws: cleanup 🤙

* fix: remove max height from comment actions

* feat: add user mentions, emoji support

* fix: add static list of users - temp

* update and delete iterations

* - Rename comment, thread to comments, threads
- Add conditional actions
  - Show edit, delete only if he is comment owner
  - Show resolve only if he is thread owner

* reset engines

* move svgr webpack to deps

* fix: ui issues

* remove log stmt

* refactor: move resolved icon to comment-header

* feat: allow comments to be added on top of widgets

* feat: add keyboard shortcut

* scroll to bottom on comment add

* ui fixes

* feat: add react toast for notification display

* feat: add comment badge

* fix: ws connection

* fix: ws

* remove rvrse

* feat: add comment sidebar

* feat: add comment right sidebar

* fix: add missing foreign key elements

* - upgrade typeorm to 0.2.38
- comment sidebar ui
- added filter ui

* feat: on click of right sidebar notificaiton open the comment box

* reset engines

* fix: add organization id to the comment and thread module

* fix: add current version id

* add currentversion id

* disable comments if no id present

* temp:checking for heroku deploy

* fetch app on edit and deploy version

* rename current_version_id to app_versions_id

* ui fixes

* show mentioned user in blue color

* add ui changes

* add authorization for create thread

* change color to blue on click of comment, add auth for other endpoints of thread

* update threads, notifications using socket

* add auth for comments

* remove events spec file

* fix duplicate key error

* fix notificaitons updation on edit, delete, resolve buttons clicked

* update notifications for edit

* feature toggle changes for frontend

* add check for comments server

* add emoji mart package for emoji

* add reply count in comment sidebar

* subtract 1 from count in comment sidebar

* change empty text when no comments available
2021-11-01 12:58:03 +05:30
Akshay
78c2520aa8
Chore: Make public asset path configurable (#1147)
* make public asset path configurable

* fix doc formatting
2021-10-20 07:50:26 +05:30
febinsathar
4fae0f979f
migrated webpack v4 to v5 (#873)
* migrated wbpack v4 to v5

* updated to npm 7

Co-authored-by: Febin Sathar <[email protected]>
2021-10-02 11:22:02 +05:30
Arpit
26c9cc655c
Fix linting errors across the app (#785)
* eslint-setup: rules for frontend and server

* setup pre-commit:hook

* frontend:eslint fixes

* frontend eslint errors and warning fixed

* eslint:fix for ./server

* fix server/test: expectatin string lint/error

* pre-commit:updated

* removed unwanted install cmd from docker file

* recommended settings and extension for vscode

* husky prepare script added

* updated extension recommendations

* added prettier as recommended extension

* added pre-commit to package.json

* remove .prettierrc file

* resolve changes

* resolve changes
2021-09-21 19:18:28 +05:30
Gandharv
8c4cb66865
Add devTool only in development for webpack (#774)
* add devTool only in development

* remove console log
2021-09-17 19:34:15 +05:30
Gandharv
7b00423096
Adds tree shaking for lodash (#706) 2021-09-15 21:22:53 +05:30
Akshay
6bd08608ad
Feature: Client fetches public config from server (#713)
* add /api/config endpoint to serve public config

* client requests public config before app render

* update default public config for whitelist
2021-09-09 21:38:07 +05:30
Gandharv
761d2e412a
Quick win slash 700kb by using only en locale (#707) 2021-09-08 23:54:58 +05:30
Gandharv
274b6488f9
Add source map for debugging (#674)
When webpack bundles your source code, it can become difficult to track down errors and warnings to their original location. For example, if you bundle three source files (a.js, b.js, and c.js) into one bundle (bundle.js) and one of the source files contains an error, the stack trace will point to bundle.js. This isn't always helpful as you probably want to know exactly which source file the error came from.

In order to make it easier to track down errors and warnings, JavaScript offers source maps, which map your compiled code back to your original source code. If an error originates from b.js, the source map will tell you exactly that.

more info: https://webpack.js.org/guides/development/#using-source-maps
2021-09-02 22:12:46 +05:30
Gandharv
365e9e3cb3
Redesigned Rest api query builder 🎉 (#612)
* feat: add rest api new design

* fix page break on create/save query

* remove console.log

* align the i/p fields

* rename files

* remove border from i/p

* remove hover styles

* fix: filter empty headers, url_params, body

* fix when editmode headers empty

* fix the options on preview getting null

* fix navlink color on dark mode

* add color for non active tab in dark mode
2021-08-30 16:55:27 +05:30
Gandharv
64131825d9
Feature: Star rating widget ️ (#535)
* feat: add star rating widget

* add events, properties

* add the number of stars as variable

* fix animation

* add half star logic, properties, definations

* add hover index property

* on dismiss show star outline

* show tooltip on hover + fix half icon display on click

* make text inline

* feat: add import svg as react component

* update star rating component for managing color change

* fix: conflicts

* Delete half-star.svg

* Delete star.svg

* change default color to gold

* fix widget settings events

* add default selection of stars

* change default selection to 5

* css changes

* add star rating onchange fix
2021-08-25 20:44:55 +05:30
Akshay
57a10398f2
Packer setup for nest server (#463) 2021-08-06 19:37:45 +05:30
navaneeth
1f8fe20264 Merge branch 'develop' into feature/nest-server 2021-07-31 20:28:32 +05:30
navaneeth
d3ecd25e9a Dockerize for production 2021-07-31 14:18:56 +05:30
navaneeth
8b778cc1aa Heroku stuffs 2021-07-30 09:21:18 +05:30
Ashish
2c59616b70
Feature: docker-compose deployment (#388)
* separate dockerfile for tooljet client in development mode

* production dockerfile for tooljet client

* reference the tooljet clients dev dockerfile in the docker-compose file

* use a fallback url for API_URL in cases where TOOLJET_SERVER_URL is not defined

* nginx config file for the front-end

* docker-compose file for production deploys

* dont run postgres inside docker-compose

* use an entrypoint script for setting the server host for nginx

* separate volume for fallback certs

* add docs for docker-compose deployment

* add required database keys in the .env.example file

* address review comments
2021-07-12 14:45:42 +05:30
Navaneeth Pk
1babb13d7e
Change webpack config to support Heroku hosts (#182)
* Change webpack config to support Heroku hosts

* Update app.json for better instructions

* Correction
2021-06-05 15:19:32 +05:30
navaneeth
c906ddbf67 Feature: Display static IP of the server to be white-listed 2021-05-23 19:05:31 +05:30
navaneeth
17c0864a2f Update heroku server URL 2021-05-21 11:08:09 +05:30
navaneeth
49edc3cc92 Feature: Maps widget 2021-05-16 10:56:31 +05:30
Navaneeth Pk
8b481ae9f4
ESLint fixes (#138)
* ESLint fixes

* Eslinted
2021-04-30 13:40:57 +05:30
navaneeth
2f01a36a9e Frontend changes for deploying to firebase 2021-04-16 12:25:40 +05:30
navaneeth
ffa2fb03d1 Initial commit for react app 2021-03-31 19:31:01 +05:30