Commit graph

80 commits

Author SHA1 Message Date
Akshay Sasidharan
7cb2100a2e Merge branch 'release/marketplace_1.3' into feature/restapi-ssl-options 2023-08-24 21:50:51 +05:30
Ganesh Kumar
74c5d14964 changes in package lock file of server 2023-07-27 11:32:09 +05:30
Muhsin Shah C P
f69a214b78
updated npm module version (#5679) 2023-07-24 16:05:45 +05:30
Arpit
2ddbd3309e
Feature - ToolJet Copilot 🚀 (#6074)
* add support for Copilot assistance

* clean up

* fixes workspace settings crash

* refactor and resolved review comments

* api endpoint should be inferred from env

* copilot style fixes

* copilot style fixed

* beta tag fro copilot settings: workspace

* fire toast for unauthorised recommendation request

* include the previous code with the newly generated response

* scoping apikeys to orgs

* controller updates for copilot

* copilot org key updated

* disable toggle for new workspaces

* disable toggle for new workspaces

* fixes: multi-workspace toggle updates

* uninstall unsued packages

* fixes button state for copilot in transformations

* updated the urls
2023-05-11 15:04:48 +05:30
arpitnath
95f4bdfa9b retreiving the protobuff and saving services and rpcs 2023-05-02 05:19:38 +05:30
Muhsin Shah C P
32740743e1
[Improvement] URLs scoped with workspace id (#5487)
* add: new URL prefix

* fix: working on home page

* add: profile path

* playing with rxjs

* removed context part

* working on path changes

* changing routes
- TODO: replace the workspaceId with actual id

* redo: public apps path

* initial commit

* added authorize API

* remove privileges from auth response

* fixed some api issue
- added subscriptions

* fix: redirect url workspace-id null issue

* fix: switch workspace

* fix: organization list mapping
- menu item paths

* fix: preview url
- editor, viewer permission mapping

* jwt fix

* fix: some url issue
- permission mappings
- workspace login

* fixed some issues
- user invite workspace-id
- org settings menu item default selected item issue

* app viewer fixes

* fixing workspace login issues

* fix

* fixing issues
- tooljet db
- path issues
- refatoring the code

* fix: workspace vars permissions

* fix: multi-page handle

* fix: create app from template

* fix: bulk user upload

* fix: import app
- clone app
- upload profile image

* fix: onboarding

* fix: log out

* fixed multi-workspace logout issue

* fix: launch btn

* fix: oauth2

* fixes

* fix: sso login

* fix: workspace sso login

* fixing sso issues

* fix: moved list of orgs to rxjs
- fixed switching issues

* reverting some changes

* fixed some minor bugs

* fixing sso redirect url issues

* fix: switching network timing issues

* fix: back to workspace-id

* fix: tj-database
- refactored the code - removed org id from some pages
- will get the org id from the service file only

* fix: multi-pages

* fix: infinite loop issue

* fixing workspace switching issue

* fixes
- comment link
- logout & private route redirect url

* fix: wrong uuid error

* fixing subpath
- fixed most of the places
- need to test & fix workspace login, sso, new account

* fix: subpath workspace login

* fix: rxjs handle bug

* Revert "fix: tj-database"

This reverts commit 9632ec2ff0.

* fix: reverted tj-db changes

* fix: subpath sso

* typo fix

* fix: existing session issues

* new: switch workspace page

* fix: modal dark-mode

* added default sso support

* fixes
- subpath workspace switching
- handle wrong routes

* fix: manager user button
- refactored the code

* removed SINGLE Workspace feature

* rebase

* add: change modal text

* fix: added validation

* fixed private app 401 issue

* initial commit

* fix: logged out session multi-tab issue

* refactoring the code

* fix: redirect url issue

* added auth-token in cookies

* Fix: failing e2e specs

* added session API

* fix: backend session guard

* fix: removing user details from local storage

* fix: null wid

* undo and redo

* fix: login page

* fix: viewer login redirection

* fix: login page redirection

* fix: public apps logout issue

* added session storage and scheduler

* added profile api

* fix: sso login
- switch workspace
- login page
- setup admin

* working on fixes

* fix: socket issue

* fix: setup admin api

* connected profile & logout apis

* fix: malfunctioned auth token case

* fix: realtime avatar

* fix: profile avatar

* fix: Realtime cursors avatar

* setting max age for auth token cookie

* add: Go to login page if logout api returns 401

* fix: subpath login

* fix

* fix: app logout [viewer]

* fix: authorize page

* remove expiry from jwt

* fix: integrations route
- session api

* small fix

* fix: updated profile

* fix: workspace login [logged user]

* fix: oauth and another workspace page issue

* fixed app preview logout issue

* subpath fix

* fix: subpath app id

* fix: selected state didnt change for apps page [subpath]

* fix

* add cookie parser to test app

* specs added

* increased user session expiry time

* test: session & new apis

* working on test cases

* fix: onboarding issue

* fixing specs

* fix: test cases

* fix: removing profile api calls

* some fixes

* fixing rebase issues

* fix: global ds issues

* fix: app is crashing

* fix: back to text

* fix: oauth test cases

* fix: test-helper

* fix: onboarding test cases

* fix: tests again

* refactoring the code

* latest develop merging precautions
- fixed a minor null issue

* fix: typo

* fix :menu issues due to the merging

* fix: - clicking on tooljet logo didnt redirect to login page for public apps
- private app preview doesnt load after login

* subpath fixes

* fixed back to issue

* PR changes

* fix: spec fixes for EE

* doc: URL scoped for workspace

---------

Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
Co-authored-by: Shubhendra <withshubh@gmail.com>
2023-04-06 16:42:58 +05:30
Kavin Venkatachalam
1efcec9e09
[Feature]: Update Node from 14 to 18 (#5393)
* Updated package.json to support node 18

* Updated package-lock.json with force install

* Updated frontend package.json

* Updated server package.json

* update frontend package-lock.json

* update render dockerfile

* update dockerfiles for node 18

* update node version in actions

* fix setup script for AMI

* install using nvm

* debug

* source bashrc

* change ami os version

* change base ami

* make use of ubuntu focal lts version

* update script

* change branch name

* revert branch name

* update workflow

* node upgrade [plugins] modules updated (#5482)

* modules updated

* adds saphana and oracle package

* adds saphana and oracle package

* eslint rules for -unresolved and resolved properties

---------

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
Co-authored-by: Arpit <arpitnath42@gmail.com>
2023-02-06 17:38:44 +05:30
Sherfin Shamsudeen
d6a72b50bd Merge develop to v2-beta 2022-12-27 20:10:33 +05:30
Akshay
602b1b4ad3
Feature: Tooljet Database (#4951)
* wip

* internal db per workspace

* fix async query

* feat: add storage layer route

* feat: add drawer component

* feat: add react-table to load data

* feat: add columns form

* feat: add create column form, create row form

* feat: add postgrest js

* add tooljet db controller to proxy requests to postgrest

* util: add postgrest filter builder helper utility

* feat: add filter popover

* use helper utility for building query

* add sortable filters

* add box shadow for filter popup

* use overlay trigger

* use react select

* add new column addition

* add dropdown for table header, table list

* Move filter.jsx

* feat: add sort popover

* feat: add postgrest js .order fn

* setup tooljetdb with restricted grants for users

* make db schemas added loaded dynamically on postgrest server

* fix query

* sign jwt token to auth user at postgrest

* update db schema user with workspace

* chore: add table listing

* update data and columns from api

* feat: add context api for sharing data

* add ability to create table, view tables and add columns

* use columns for sort from context api

* fix ormconfig

* feat: add table listing integration

* feat: add create table integration

* fix for rds deployment

* add internal table translation instead of schema

* remove tooljetdb as a datasource

* wrap placeholder on proxy query

* add active workspace guard

* scope tooljetdb by workspace

* update active workspace guard

* seperate proxy related concerns to different service

* make use of org id param

* rename storage layer to tooljet databse

* update specs

* feat: Update list when new table added

* feat: add create column

* chore: add orgId to url + misc changes

* chore: move popover to separate file

* remove unused var

* rename files

* feat: add multiple columns

* feat: add new row

* removes postgrest-js from pkg lock

* feat: add row data

* feat: add sorting

* feat: allow row deletion

* feat: add search

* feat: add filtering

* feat: add edit mode

* feat: add columns while edit table

* add view table action

* update setup for column constraint

* fix query

* integrate view_table, primary key field

* render toogle for boolean data type

* update view table query for primary key

* fetch metadata refactor

* add capability to set default values

* feat: allow deletion of record based on primary key

* feat: add default value while creating column

* send query from sort & filter component

* css changes

* allow empty data

* add requested changes

* add err message

* add common fn

* allow sort + filter

* remove unwanted defaults key

* css changes

* add more operators

* dark mode fixes

* add drawer footer

* add loader for list tables

* add dashboard design changes

* design changes

* add capability to drop table and delete column

* add breadcrumbs

* design changes

* add profile

* refactor tooljetdb controller

* update routes

* add empty page changes

* delete column fix

* fix delete column

* design changes

* fetch tables post delete

* homepage changes

* hide ellipsis on hover

* add org settings page

* add edit + create org

* add notification center

* fix: group permissions switch issue

* add logo

* remove anchor tag

* fix merge conflicts

* css changes

* add err boundary

* setup query editor

* css changes

* fix: merge conflicts

* add menuPortal prop to filterform and sort form

* fix seed

* fix: build

* design changes

* design changes + refactor code

* fix imports

* fix: drawer issue on delete table

* add search box changes

* fix: tablename max-length 255

* fix: set newly created table as selected item

* remove edit column option

* added badges to enterprise only features

* disable edit column

* table styles

* fix: popover position, placeholder default

* fix: display boolean values in table

* fix: tooljet database default type values

* css changes

* add query manager for tooljet db with create and list row

* dark mode fixes

* remove Header component

* add ability to delete tooljetdb rows from query manager

* add ability to update tooljetdb rows

* dark mode fixes

* css changes

* display actions icon on hover

* folder onclick change

* add empty page styles

* fix proxy requests

* feat: randomize icon creation

* add max items per page prop for pagination

* removes unwanted position attr

* add table name validation + disable submit btn while api fetch

* [Bugfix] internal storage toast  | trigger toasts for running preview db queries (#5019)

* resolves: no toasts are fired when preview query is run for db queries

* fire success toast for created and no content status text for query success

* remove invalid migration

* skip migration if tooljet db already created

* fix: app clone icon param

* fix: show confirmation box if filter options are empty in query (#5021)

* for now: show native confirmation box of the brower to confirm the delete all query

* typo

* Revert "typo"

This reverts commit b5ce5ed889.

* cleaned

* cleaned

* show confirmation box if filter options are empty in query

* [Refactor/Bugfix] database query (#5028)

* refactored list rows operations

* remove unwanted cls

* refactor create row

* reafactored update rows

* refactored delete rows

* padding fix for tj-query

* add static templates

* review changes

* remove unused file

* Chore: tooljetdb render setup (#5033)

* add postgrest for render preview deploy

* pin version

* add healthCheckPath

* remove health check

* handle database url parsing db params

* add defaults for tooljetdb env

* fix hostname

* handle env in migration files

* refactor dbconfig build

* fix pg db usage

* add parsed env context

* add tooljetdb env

* refactor db config utils

Co-authored-by: gandharv <gandharvkumargarg@gmail.com>
Co-authored-by: Shubhendra <withshubh@gmail.com>
Co-authored-by: Arpit <arpitnath42@gmail.com>
2022-12-23 02:09:57 +05:30
Sherfin Shamsudeen
642c5caa71
Feature/multi page applications (Task ID - CU-2h1bfvw) (#4729)
* Add routes for multi-page apps

* Modify Editor, Viewer and Inspector to accept new app structure

* Show a page selector on left side bar

* Align component deletion logic with new app schema

* Make subcontainer work with multi-page apps

* Load components state properly in viewer

* Use UUID instead of handle for pages

* Display sidebar on viewer to switch pages

* Add proper URL suffixing for pages in viewer

* Add action to switch page

* Revert translation file back to its pre-existing linting

* Fix bug that caused modal to not open/close

* Add support for query params in page switch

* Fix the issue that caused navigation to fail while accessed via slug

* Add missing SwitchPage file

* Add support for page level variables

* Add migration to convert existing apps to new schema

* Add rollback for converting multi-page definitions back to single-page

* Fix migration for multi-page apps

* Adapt import/export service for multi-pages

* [improvements] Multi-page applications (#4755)

* UI updates for page selector popup card

* delete page

* delete page check: if only one page exits

* switch to home page if the selected page is removed

* adds and switch to new page

* updating page name

* updates to home page and starting page

* handle updating the home page when home page is deleted

* search box for filtering pages and minor style updates for the page handler card

* header search box style fixes

* for creating a new page, page handle needs to be unique

* seperating into smaller components

* updated pinned icon for page selector styles and settinf styles

* Leftsidebar header ui component

* handle dark theme

* page handle ui and dark theme fixes for page menu

* page handler edit modal

* pinned state and update pinned state for menu options triggered

* dark theme fixes for edit modal

* handle on update should not be empty or prev

* page handler updater

* added loading state for saving

* handles cancels

* fixes slug ui

* fixes crash for older app versions

* updates the query params when handle gets an update

* update homePage to homePageId

* removes console.log

* go back to the popover for modal close

* fixes: Difficult to select page

* fixes: Difficult to select the three-dot menu

* fixes: on visiting the root url, navigate to homepage on viewer

* adds tooltip for url

* updates the page selector sidebar with sync with query manager

* refactor and cleanup

* refactor and cleanup

* Compute component state when page is switched

* modal should not close on click outside

* disable save button if there is not change in the page handle input

* should show/hide page menu when hovered

* page icon

* updates delete icon for disabled state

* query manager should always be on top of page selector

* checks if homePage key exists in pages def

* updates page handler menu

* updates the clear icon

* page handler menu position

* page handler menu position

* handle icon

* alert msg

* global settings handler for updating viewer page navigation

* show/hode page navigation for viewer

* info text for toggle

* Multipages:with sortable list [DnD] (#4783)

* applied sortable list

* on sort updates the definitions

* fixies: app crash for dnd

* viwer: canvas width should be 100% when navigation drawer is disbaled

* fixes: homepage/startpage  reload

* clean up

Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com>

* Multipage UI viewer (#4801)

* new ui changes for viewer pages

* fixes postions for debugger and datasources popover

* removes console.log

* Multipage : hide page and unhide page feature (#4803)

* adds: ability to hide pages

* hides pages in viewer

* unhide page

* hide icon

* allow accessing hidden pages from url

* add: duplicate page (#4802)

* add: duplicate page

* do not copy the  same references from the original page

* page name and page handler should be unique for duplicate pages too

* Add support for on-page-load events

* Add icon from page settings menu item

* Convert existing templates to multi-page schema

* error logs for page level and app level errors (#4842)

* Adapt comments feature for multi-pages

* [Bugfix] multipage - page menu interactions (#4844)

* fixes: menu popup interaction

* fixes: on modal input focus, we switch the page

* Adapt multi-player to multi-pages

* Add editingPageId to ymap

* Log self, others and editor props in real-time avatar generation

* Save editing page id to appDef

* Add editingPageId to presence in RealtimeCursors

* adds no results ui for empty search results (#4869)

* page icon updated (#4870)

* fixes:Version switching crashes if the target version does not contain the current page (#4868)

* Remove unnecessary setting of editingPageId on ymap

* Remove unnecessary console.log

* [Bugfix] Multipages: widget inspector event popover unmounts (#4887)

* introduced a local state for events

* cleaned up inspector.jsx

* fixes: table widget inspector event accordion

* Do not run switchPage twice when viewer is loaded

* Preview should open the currently editing page

* Properly place navigation and canvas in viewer

* Update app definition whenever event manager changes are made

* Add support for browser back and forward button in multi-pages

* Rename handleBackButton to handlePageSwitchingBasedOnURLparam

* Add support for cut/copy/paste and clone

* Fix the crash caused by boxShadow

* Add support for background colors in viewer in multi-pages

* Run queries to be run on load on viewer, in multi-pages

* Fix issue that caused inspector popovers to collapse

* resolves workspace vars in viewer mode (#4892)

* Multipage : Navigation for Mobile-ui (#4814)

* refactored to components

* burger menu for mobile ui

* merge conflict fix for hidden pages

* hamburger menu positioned in the header

* viewer header reafctored

* viewer mobile page manu styles

* handles dark theme

* mobile menu with dark mode toggle in the footer

* components are moved to page level, handle for mobile layout

* style fixes

* removing unwanted code block

* dark theme fixes

* style fixes

* fixes: events are sortable (#4895)

* fixes: events are sortable

* Remove uneccesarily repeated call of setEvents in EventManager

Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com>

* renamed settings to Event handlers (#4898)

* updates the page setting title to Page Events

* temp commit

* Add support for setting max width in percentage

* fixes: paramUpdates for boxes: 🙌🏻

* [Bugfix] Multipage - viewer canvas dark theme (#4897)

* fixes: darktheme bg for viewer canvas

* reverts canvas size

* Fix for inspector bouncing back to previous values

* resolves pages variables in pythong and js transformation (#4905)

* csa support to event manager for pages (#4907)

* Add support for setting canvas width in percentages

* Persist page level variables across page switches

* latest definitions is merged with the current appdef (#4914)

* latest definitions is merged with the current appdef

* mutating the local obj

* cleanup

* iterate through pages for new versions are created

Co-authored-by: Arpit <arpitnath42@gmail.com>
2022-12-08 17:51:09 +05:30
Gandharv
1853a3233e
feat: Add update version button on installable plugin (#4766)
* feat: Add update version button on installable plugin

* use id from update method

* removes redundant check

* use plugin id for fetching files from s3

* fetch latest plugins once updated

* disable update and remove buttons while update in progress

* replace href with link-span cx + send body in patch request
2022-11-17 16:02:59 +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 <akshaysasidharan93@gmail.com>
2022-10-27 16:59:43 +05:30
Vishnu R Kumar
e4b5b6ee17
[feature]:: Mariadb plugin (#4090)
* Integrate mariadb plugin

* Add mariadb logo

* Fix typo and add default connection limit - mariadb plugin
2022-10-11 13:13:59 +05:30
Kiran Ashok
962e4d36cc
Feature :: ClickHouse plugin (#3873)
* feat : setup and basic querying

* docs reference links

* revert settings.json

* updating settings.json

* updates :: more source options , insert query

* cleanup

* updated with insert operation

* database :: required field

* text capitalizing

* updated docs

* PR changes :: added OR operation

* removed format option

* Revert "removed format option"

This reverts commit 02c5edcf86.

* bugfix

* removing session , fornat

* lock files

* Revert "lock files"

This reverts commit d593cf9425.

* rearranging operations

* extra comma removed
2022-09-26 18:35:20 +05:30
Erfan Naghashlou
473104e1ff
refactor: remove @babel/plugin-proposal-class-properties (2nd PR after CLA problem) (#3959)
* refactor: remove @babel/plugin-proposal-class-properties as plugin

* Remove class properties plugin from babel.config.js, Update frontend package.json, Update frontend,server,plugin package.lock.json
2022-09-05 22:41:03 +05:30
Gandharv
c324ff8d28
chore: move devDeps to deps in package.json (#3916)
* chore: move devDeps -> deps

* change pos of preview-email import

* fix lint
2022-09-01 11:33:23 +05:30
Ajith KV
b69b10e94c
Add TypeScript definitions for compression (#3814) 2022-08-18 11:54:58 +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
Akshay
f3f9baeab2
Fix: Only add distributable files for server on docker image (#3729)
* only add build server files on docker images

* copy .version file

* remove DO clean up script

* add dotenv and joi
2022-08-03 17:06:11 +05:30
Gandharv
b5850a4694
feat: trigger mail when user is mentioned in comment (#3443)
* feat: trigger mail when user is mentioned in comment

* reset email service

* fix backspace issue

* open comment on view comment clicked from email

* add helper to highlight user in mail

* reset mentioned input value when value turns empty in parent

* fix test

* use where condition + throw error

* add userId

* feat: add notification center (#3484)

* remove commented code
2022-07-25 11:14:59 +05:30
Akshay
49df02a256
Feature: Add support for http proxy (#3456)
* add support for http proxy

* conditionally bootstrap global agent

* fix env var set
2022-07-05 11:26:05 +05:30
stepinfwd
017c40987c Merge branch 'develop' into feature/athena 2022-06-15 12:15:46 +05:30
Gandharv
5dbe795d73
feat: add user avatar (#2920)
* 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

* cleanup

* fix tests

* reduce the avatar size on homepage

* fix review comments

* import Express

* add blob to csp
2022-06-02 12:19:49 +05:30
Kiran Ashok
3b96e99d6a
Woocommerce integration 🚀 (#2866)
* base structure

* tested all customer operations

* all product enpoints tested

* all order api tested

* typo fix

* icon updated

* tested all operation , cleanup

* added create coupon operation

* removing unwanted types

* cleanup

* updating test connection bug

* doc updated

* docs updated

* removing logs :: pr updates

* removing types :: pr updates

* cleanup :: pr changes

* operation structure updated

* restructured whole code for seperating operations

* typo bug updated

* updating pr updates remove host , test error case updated

* typo bug fixed

* updating naming conventions

* plugins operation.json reusable fields

* pr changes :: making all ids common

* fixing customer params

* updating all additional param types

* updating all product params

* including some more product params

* adding all order params

* adding all coupon params

* updating common defenitions

* capitalise labels

* updating all list operation definitions

* clearing some typos

* global defenition

* lock file changes

* lock file changes

* server lock file changes

* typo fix

* typo fix

Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
2022-05-19 11:38:14 +05:30
Akshay
431dc961cd
Feature: Add data transfer object layer to validate and sanitize user inputs (#2694)
* add sanitize-html to be used with dto

* add dto for controllers

* add vaalidation to check token not empty

* update test config

* add validation pipe on test setup

* fix spec

* fix params casing

* update dto for empt checks

* update reset password dto

* only check for options to be defined

* update specs

* update dto and spec

* Remove invalid decorator

* update package-lock

* update thread dto

* update user dto

* fix email

* make comment req params attributes as optional

* fix specs
2022-04-20 14:46:57 +05:30
Gandharv
40420ee591
feat: Add realtime collaboration (#2517)
* feat: add realtime collaboration

* reduce delay in debounce

* feat: add realtime cursors

* feat: add realtime avatars

* add current user to the online users list

* add border color to the avatar

* feat: allow multi user to edit multi-versions simultaneously

* add getOne fn for fetching single api + avatar component

* fix: set appDef from api call

* replace webrtc with ws

* move yjs to separate port (temp)

* run on same port

* fix: update ymap when styles have changed

* - Add static list of colors
- Show the username on hover

* fix: cursors not showing up

* fix: review comments

* remove unused vars

* add new cursor style

* - Run yjs connection on a different path
- Add zindex to cursor such that query editor has precedence

* fix: event emitter bug + position bug

* use shorthand

* cursor style changes

* fix cursor positions

* inc zindex

* change max avatars to 3
2022-04-19 16:07:39 +05:30
Navaneeth Pk
391c2e0481 Lock sentry version 2022-04-12 15:05:22 +05:30
Akshay
3c8b25dafc
make pino pretty as prod dependency (#2770) 2022-04-08 14:44:36 +05:30
Maurits Lourens
35663b1502
Update passport and run npm audit fix (#2493) 2022-04-03 16:30:59 +05:30
Muhsin Shah C P
eaf93616ae
Feature/oracledb plugin (#2388)
* oracledb initial commit
- Added oracledb package

* Implemented connection and operations

* Working on oracle db integration

* Implemented query & bulk operations

* Fixed initial client reintialization problem

* Added custom client library path option

* Added oracle client library installation steps to dev docker file

* Testing changed docker setup on cloud

* Testing heroku app.json

* Removed unwanted scripts from dockerfiles

* Updated field label

* update oracledb client lib for ec2

* update package-lock

* refactoring code

* Updated docs

* Resolved some lint errors

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
2022-03-15 08:00:02 +05:30
Kiran Ashok
2c5c66bfb1
Integration couchDB (#2337)
* feature :: couch db

* updates

* types update

* updated types

* couch db integration updates for crud opertations

* updates

* updated icon

* inlcluding port

* port addition

* crud updates

* updates including proper variables

* optimizing

* updates

* completed basic crud with couchdb

* updates

* view get option

* removing hints

* adding skip

* updates for adding params and mangoquery

* changing auth order

* adding condition check to conditionally add  and remove  params

* adding checks

* sepreated protocol and host

* updates

* included connection testing

* updated with pr suggestions

* couch db documentation

* updates

* fixed bugs , completed docs

* typo

* marking optional params

* optimizing

* image updated

* changed img for find

* updating list record query to include doc data

* updating couchdb docs :: include_docs key addition
2022-03-10 18:24:11 +05:30
Gandharv
87f385d727
Chore: update sentry sdk to 6.17.6 (#2220) 2022-02-10 14:30:43 +05:30
Akshay
28b72ef773
update package lock for bigquery (#2198) 2022-02-08 10:53:42 +05:30
Midhun G S
5000f745b1
Github OAuth integration (#1837)
* Initial commit

* git auth

* git sso

* Git sso

* Git Oauth rebase

* review comments

* added email validation

* improvement

* Package lock revert

* E2E test case fix

* fix data population in migration

* Supress initial error thrown by google

* Fix

* e2e test cases

* added e2e test cases

* isValidDomain improvement

* e2e test cases fix

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
2022-01-27 15:21:17 +05:30
Akshay
e3317aa5b7
Chore: Docker compose plugins dev (#1953)
* add plugins to docker compose

* build common

* change cmd

* build:pkgs

* fix'

* temp: add named vol

* update docker-compose for plugins dev

* update seed script to transpile only

* fix ci

* fix ci

Co-authored-by: gandharv <gandharvkumargarg@gmail.com>
2022-01-27 15:08:32 +05:30
Akshay
56826c3183
Feature: Auto save editor and version management revamp (#1784)
* add modal to create init version

* add init version and ability to auto save

* auto save only when editing version is set

* Feature: App version management ui revamp (#1873)

* add modal to create init version

* add init version and ability to auto save

* auto save only when editing version is set

* revamp version switching on editor

* skip save on app definition load

* handle click outside dropdown

* fix remove component and update styling

* fix auto save detail

* change wording of deployed to released

* remove console.log

* add spec for version creation from another version

* update version create model and hide save detail after shown
2022-01-24 11:21:54 +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 <akshaysasidharan93@gmail.com>
Co-authored-by: navaneeth <navaneethpk@outlook.com>
2022-01-17 12:38:17 +05:30
Midhun G S
21d63d2c99
Feature: Mongodb more operations support (#1717)
* feature-842 mongo support

* feature-842 fix

* json parse improvement

* Feature-842 date data type support

* feature-842 fix

* convert ejson to bson on mongo queries

* fix type on parse

* json parsing

* Typo error fix

* Insert Many Fix

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
2022-01-14 13:53:57 +05:30
Akshay
adb04304da
Feature: Add minio datasource integration (#1662)
* add minio datasource integration

* fix import
2022-01-04 15:02:57 +05:30
Bhavin Ag
10ee3639f1
chore(deps): update type deps to dev deps (#1715)
* chore(deps): update type deps to dev deps

* fix: update dependency as per latest npm
2022-01-04 09:42:15 +05:30
Arpit
8a89bc8b71
[Feature] : SendGrid integration (Datasource API) (#1608)
* SendGrid integration

* unused logs

* unused logs

* update help text

* fixestypos for schema description

* fixestypos for schema description

* adding sendgrid docs

* updates logo from  Sendgrid's media kit

* sendgrid query schema updated

* fixes typos

* updates docs

* typos fix

* fix jest module transform

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
2021-12-22 17:23:45 +05:30
Sherfin Shamsudeen
a68a7b67d1
Feature/typesense integration (#1613)
* Install typesense npm package

* Implement CRUD operations using TypeSense

* Add documentation for typesense integration

* Rename apiKey to api_key and make it encrypted for typesense

* Add logo for typesense data source

* Add delete operation to typesense

* Add documentation for delete document

* Make protocol field a dropdown for TypeSense

* Additional documentation for TypeSense data source
2021-12-22 07:19:17 +05:30
Midhun G S
4f73a34365
Twilio SMS Integration (#1598)
* Twilio SMS Integration

* package lock fix

* package-lock fix

* Review comments
2021-12-20 11:49:00 +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 <akshaysasidharan93@gmail.com>
Co-authored-by: navaneeth <navaneethpk@outlook.com>
2021-11-17 16:51:50 +05:30
Navaneeth Pk
5055aed8e6
Adds ws to package.json (#1373) 2021-11-05 14:18:03 +05:30
Akshay
c58e0765bf
Feature: Google cloud storage integration (#1364)
* add ability to list buckets/objects and create signed url fot GET and PUT

* ask to specify region when adding s3 buckets

* add ability to read file contents from s3

* add ability to upload to s3 bucket

* rename s3 dropdown options

* add abilty to read, write, list and generate signed url for gcs

* fix gcs query service

* remove paginated response

* make gcs private key as textarea

* revise gcs upload response
2021-11-04 14:30:09 +05:30
Akshay
5650f9f5bc
Fixes failing docker build (#1366) 2021-11-03 19:31:53 +05:30
Akshay
44f3b9d8d0
Feature: AWS S3 Integration 🚀 (#1333)
* add ability to list buckets/objects and create signed url fot GET and PUT

* ask to specify region when adding s3 buckets

* add ability to read file contents from s3

* add ability to upload to s3 bucket

* rename s3 dropdown options

* update region dropdown for s3
2021-11-02 11:42:46 +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
ceca48b100
Revert "Feature: Snowflake integration (#996)" (#1046)
This reverts commit d4c4501d63.
2021-10-14 22:10:18 +05:30