Commit graph

383 commits

Author SHA1 Message Date
Sherfin Shamsudeen
9b1b19e831
Feature/templated library apps (#1820)
* add launch icon

* Set categories for app templates

* Display button with dropdown for create new app

* Show modal when "create from template" is chosen

* Implement template selection modal category list

* Filter and list app templates based on selected category

* Display template screenshot on templates modal

* Align template screenshot vertically and horizontally centered

* Deploy template app when deploy button of template modal is clicked

* Display data sources in template preview

* Add search functionality to template modal

* Show "no results" if templates are not found

* Display category counts on template list

* Add styles for darkmode

* Dark mode style updates for template modal

* Add dark mode template screenshots

* Correct template screenshot proportion

* Change text on deploy button of template modal

* Remove links to apps and library from dashboard

* Remove library apps

* Remove unnecessary import of deleted component Library

* Show loading icon when template is being created

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
2022-01-15 08:07:05 +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
Midhun G S
1e103ad4b7
[Home Page Design Changes] Update icon API (#1787)
* Feature-1786 Update Icon API

* Update Folders.jsx
2022-01-12 18:04:39 +05:30
Sherfin Shamsudeen
4b8fbc5c74
Bugfix: resolve missing query associations on importing app (#1800) 2022-01-11 23:03:00 +05:30
Sherfin Shamsudeen
73d2bfc851
Revert "Bugfix: resolve missing query associations on importing app (#1798)" (#1799)
This reverts commit 45d6c6e3fb.
2022-01-11 22:58:22 +05:30
Sherfin Shamsudeen
45d6c6e3fb
Bugfix: resolve missing query associations on importing app (#1798) 2022-01-11 20:01:32 +05:30
Akshay Sasidharan
c6031d6a30 bump to v0.13.0 2022-01-07 14:54:34 +05:30
Akshay
783ed2133c
Fix: Archived user cannot login or perform authenticated actions (#1749)
* archived user cannot login or perform authenticated actions

* fix spec

* invalidate invite token on archive
2022-01-07 14:46:23 +05:30
Akshay
51f3c2f9ab
Fix: check on removing last active admin (#1714)
* fix check on removing last active admin

* fix typo
2022-01-06 16:08:18 +05:30
Akshay
adb04304da
Feature: Add minio datasource integration (#1662)
* add minio datasource integration

* fix import
2022-01-04 15:02:57 +05:30
Akshay
823833b12e
Feature: Versioning data sources & queries (#1620)
* add migrations for versioning datasources and dataqueries

* eslint migrations folder

* update ormconfig to use app context in migrations

* make app to make use versioned data sources and queries in editor

* app import should honor data source and query versioning

* register ts-node path on running migrations

* load data queries when finding versions

* update e2e tests

* handle for invalid oauth2 datasources

* update e2e tests

* introduce db migrations access lock to handle concurrent backfill

* scope migrations by missing version id

* fix import export without data source/query versions

* fix import

* fix spec

* handle invalid data on migration

* fix import

* remove console logs

* handle new app imports

* fix version check

* fix async creation

* explicitly add timestamps on version import
2022-01-04 13:34:12 +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
Akshay
682ed0d5aa
Ability to configure for custom CA certificates (#1711) 2022-01-03 09:42:22 +05:30
Akshay
e2dfbf038a
Feature: Unarchive users (#1694)
* add ability to unarchive users

* add e2e specs

* reset password on unarchive

* fix spec
2021-12-31 02:11:10 +05:30
Akshay
ad4baabf79
Feature: Customizable calendar date (#1656)
* make calendar week date formattable

* update version only if calendar is present

* Fix erroneous date format determination while migrating to custom week view date format

* Add documentation for calendar week view header date format style

Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com>
2021-12-29 15:36:45 +05:30
Arpit
210366ee3e
[improvement] Rest API query response-request (#1630)
* rest api query response-request

* remove console.logs

* add req/res obj to sidebar inspector: queries

* remove console.logs

* add collapseStringsAfterLength to restapi json comp

* fix typo convention

Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com>
2021-12-28 16:09:38 +05:30
Akshay
577e7b82b9
introduce db migrations access lock to handle concurrent backfill (#1628) 2021-12-27 17:11:35 +05:30
navaneeth
62f930987a Bump ToolJet version 2021-12-22 17:27:30 +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
Midhun G S
5bdd0fd6bf
Home Page Application search box (#1603)
* feature-1567 initial commit

* feature-1567

* freture-1567 App search box

* added default value for search key

* Loading fix

* Review comments

* Separated like query

* feature-1567 e2e testcases

* feature-1567 Fix

* feature-1567 fix

* feature-1567 fix
2021-12-22 14:37:37 +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
Akshay
fa9de160cc
add capability to add prefix on s3 listing (#1601) 2021-12-18 09:57:39 +05:30
Sherfin Shamsudeen
7a79695af7
Feature/disable password login (#1585)
* Add option to disable login/signup via username/password

* Add documentation for disabling login via username/password
2021-12-15 22:53:07 +05:30
Akshay
b26a23176c
Chore: Update user e2e tests (#1556)
* Update tests

* remove console log

* remove explicit db connection close

* remove reload usage
2021-12-14 16:32:03 +05:30
Arpit
f1457a1905
[improvement] Widget components #1475 - multi-select widget (#1535)
* upddated to new api & multiselect labels fixed

* backfill properties

* Expose default value of multiselect once the component is loaded

* Make multiselect reset to empty whenever option set is changed

* Whenever option set of multiselect changes, set it to default value if default value fits inside the new set of options

* Avoid crash in multiselect using ? operator.

Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com>
2021-12-13 21:43:09 +05:30
Midhun G S
d9c541ec83
BugFix-1555 Apps listing order fix (#1566) 2021-12-13 14:30:19 +05:30
Gandharv
6c90a1667b
Feature: undo/redo for canvas 🔥 (#1446)
* feat: add restore shortcut when component is deleted

* change toast messages to hot toast from toastify

* change toast messages to hot toast from toastify

* change toast messages to hot toast from toastify

* on key press match clear the pressed keys

* add react hotkeys hook and delete use-shortcuts custom hook

* change toast messages to hot toast from toastify

* add immer lib

* applyPatches from immer + add undo redo on appdefination changes

* remove notification on undo

* add can-undo + can-redo checks

* add missing can-redo to handlePatchAdd

* add component versioning on componentDefinitionChanged

* set default value of loading state to interpolated boolean false for table

* set canUndo on initial load to false

* fix last element not getting removed on undo

* Remove console log

* add migration to change loadingState for existing tables

* set loadingstate value based on the previous value

* fix: app crash on inspector opening

* add check for selectedComponentId inside components def

* update template definitions for loadingState

* fix alert for success, error, info for button notifications
2021-12-11 04:41:24 +05:30
Akshay
5b30aa2007
Chore: Setup pipeline (#1539)
* github actions for PR and push to develop branch

* test workflow

* move to workflows folder

* add setup node action

* modify build

* specify npm version

* config unit test

* specify host postgres

* specify container to run on

* add postgresql dependency

* add specify ws adapter for test

* add e2e test

* fix linting

* only log errors on tests

* update eslint config

* fix linting

* run e2e test in silent mode

* fix library app spec

* dont send email on test env

* fix org scope

* mock env vars

* remove reset modules

* force colors

* explicitly close db connection

* add eslint rule for floating promises

* update workflow

* fix floating promise

* fix lint

* update workflow

* run on all push and pulls

* update lint check files

* simplify workflow

* increase js heap size on env

* separate lint and build

Co-authored-by: arpitnath <arpitnath42@gmail.com>
2021-12-10 08:43:05 +05:30
navaneeth
5b558588d9 Bump ToolJet version 2021-12-09 15:52:06 +05:30
Gandharv
9db30829fd
Add migration for global settings for old apps (#1545)
* migration: add migration for global settings

* add empty check for definition

* update template definitions

* set slug as null on definitions

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
2021-12-09 15:47:56 +05:30
navaneeth
b4a5a3a16a Update helmet policy 2021-12-09 11:50:51 +05:30
navaneeth
50b98f0178 Bump ToolJet version 2021-12-07 21:21:18 +05:30
Akshay
bf13cf5e1c
Feature: library apps with templates (#1529) 2021-12-07 18:55:41 +05:30
Arpit
2b15fe6bdd
explicitly set frame-src & frame-ancestors directive (#1524) 2021-12-07 15:04:43 +05:30
Akshay
260cde50ce
Fix: folder create permission (#1518)
* fix folder create permission

* scope migration
2021-12-07 00:37:19 +05:30
Arpit
2b303c026b
[Feature] : Gsheet update operation (#1453)
* gsheet update op: schema and UI

* gsheet update op: server

* update operation for google sheet datsource api

* remove unsued comments

* backward compatiable: removed custom rule for sheet

* unsused consolelogs

* .

* Show gsheets update query body as a single-line codehinter

Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com>
2021-12-02 12:25:40 +05:30
Akshay
67f297db9a
fix specs (#1460) 2021-11-25 18:16:39 +05:30
navaneeth
4af865b8cd Bump ToolJet version 2021-11-25 14:22:39 +05:30
Sherfin Shamsudeen
3e3955844a
Consider parent container width only if parent container exists while migrating to responsive (#1455) 2021-11-24 23:04:11 +05:30
Sherfin Shamsudeen
598a46f76b
Fix failing oauth specs due to change in permissions (#1422) 2021-11-21 09:44:54 +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
20cccd1df7
Responsive canvas (#1363)
* Better canvas

* Better canvas

* Better canvas

* Fix for resize

* Fix for drag

* Fix for drag

* Fix for drag

* Adjust width of components by # of grid lines

* Adjust components to comply with gridline based width

* Fix the width of rigth sidebar

* Fix for subcontainer resize issue

* Fix for dropped widget width (sc)

* Fix subcontainer drag width

* Fix grid for sub container

* Fix viewer

* Fix

* Fix

* Use RnD for dragging within canvas

* bounds for subcontainers

* fix for subcontainers

* Fix for mouseover issue

* Fix

* Fix widget widths

* Fixes chart

* Fixes qr scanner and divider

* Remove scaleValue

* Mmerge fix

* Mmerge fix

* Fix for ormconfig

* Fixes for comments

* Add comment where the user clicked

* Disable dragging on viewer

* Max width for canvas

* Fix for widget click events

* Fix for radio button

* Rebase widget width and left offset for responsive canvas

* Fix

* Fix the width of file picker

* Fix for calendar widget

* Disable zoom selector

* Fixes comment positions

* css fixes

* Fix

* Recompute width and offset of subcontainer widgets based on its parent's width

* Calculate container width separately for modal children while migrating to responsive

* Refactor migration to responsive canvas whereinwhich all mutations are done only after all required changes are computed

Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com>
2021-11-16 17:14:09 +05:30
Akshay
b1c623e03c
Fixes seed user permission (#1411) 2021-11-15 21:15:42 +05:30
Gandharv
27bb0ef2a3
Add jwt auth to websocket connections (#1392) 2021-11-15 21:15:16 +05:30
Akshay
a7f36f77f6
Chore: Revise and add specs for folders (#1391)
* revise and add specs for folders

* Feature: Folder create permission (#1394)

* add migration for folder create permission

* add backfill migration for folder create permission on admin group

* adds permission for folder creation

* refactor function

* select distinct folders
2021-11-15 11:43:48 +05:30
Arpit
df88790dab
Feature: IFrame widget (#1402)
* feature: iframe widget

* iframe docs - added

* explicitly set frame-src directive

* explicitly set frame-src directive

* typos fixes
2021-11-15 10:09:56 +05:30
Akshay
a7fb25a293
Fixes stack trace not being logged (#1387) 2021-11-09 08:40:16 +05:30
navaneeth
393b7a8a64 Bump ToolJet version 2021-11-08 13:08:29 +05:30
Gandharv
957241bdb8
Broadcast only to clients connected to a particular app id (#1384)
* websocket: broadcast only to clients connected to a particular app id

* fix: type error

* fix: broken test for comment
2021-11-08 12:45:18 +05:30
Akshay
ad63ff0ae2
filter folder apps only with permissions (#1383) 2021-11-07 13:29:46 +05:30
Akshay
acdef10b05
change orm migration transaction mode to each (#1379) 2021-11-05 18:04:39 +05:30
Navaneeth Pk
147274f14f
CSP for WS (#1375) 2021-11-05 16:59:59 +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
navaneeth
3633ccf9bf Merge remote-tracking branch 'origin/main' into develop 2021-11-01 17:31:55 +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
69c7f0f1ba
fixes data population from user roles to groups (#1330) 2021-10-29 16:01:32 +05:30
navaneeth
669bc896fc Merge remote-tracking branch 'origin/main' into develop 2021-10-26 18:34:40 +05:30
Akshay
f4ef6fd357
set default group permission on sign up (#1305) 2021-10-26 18:33:51 +05:30
Daniel Shuy
1efd73d8e2
Include ToolJet version in exported JSON (#1297) 2021-10-26 12:55:40 +05:30
navaneeth
74533f98de Bump ToolJet version 2021-10-25 22:29:49 +05:30
Akshay
a958b37cef
Feature: Group level permissions and related fixes (#1204)
* add column app_create to group_permissions table

* add app create column to group permission entity

* backfill app_create permission as true for admin group

* add app delete permissions to group permissions

* update group permissions entity for app delete

* add ability to set group level permission for app creation

* refactor and fix app clone and imports

* fix created by user on homepage

* fix spinner on import

* update seeds service to set group level permission

* fix rollback query

* fix imported/cloned app timestamps

* honor logged in user permissions at UI

* remove console log

* fix data query id being replaced on import

* replace data query id within app versions on import
2021-10-25 14:05:32 +05:30
Sherfin Shamsudeen
a7502e5f03
Feature/cell types (#1194)
* Add custom spacing for table cells

* Add migration to set every tables cell spacing compact

* Rename cellSpacing to cellSize

* Add documentation for table cellSize
2021-10-22 07:49:51 +05:30
Dainius Lukša
7fb6a70b25
Invite user with existing email show error (#990)
* Invite user with existing email show error

* fixed react key warning

* fix var to const
2021-10-20 07:51:13 +05:30
navaneeth
073cda3184 Bump ToolJet version 2021-10-19 17:00:46 +05:30
Akshay
b0208c553a
Feature: Add ability to import and export apps (#1138)
* add ability to import and export apps

* copy credentials on imports if it already exists

* authorize exports for public apps with only authenticated users

* remove app auth guard for export

* make import as a separate button

* update import button styling

* handle prexisting slug while import

* set file input as null when file has been read

* add fix for slug updation on import
2021-10-19 16:52:00 +05:30
Santosh Bhandari
417a46e7da
fix: Add line padding to invitation email (#1146) 2021-10-19 16:06:32 +05:30
Akshay
047ad1bfe7
fix equality checks and data query run guard (#1086) 2021-10-16 08:40:56 +05:30
Akshay
799bef0138
fix public app view and data query run (#1082) 2021-10-15 14:35:11 +05:30
Trevor Bayless
500b5831d2
Remove unnecessary constructor (#1071) 2021-10-15 10:39:36 +05:30
Akshay
ceca48b100
Revert "Feature: Snowflake integration (#996)" (#1046)
This reverts commit d4c4501d63.
2021-10-14 22:10:18 +05:30
alammoiz
b23746084b
Refactoring: added missing return type (#1014) 2021-10-14 16:47:05 +05:30
Dainius Lukša
367617d678
Fixes smtp secure port settings (#1039) 2021-10-14 13:55:09 +05:30
Tulsi Prasad
e055de3ad1
Avoid using promises in places not designed to handle them (#1015)
Fix #1001
2021-10-13 22:04:37 +05:30
Akshay
d4c4501d63
Feature: Snowflake integration 🔥 (#996)
* add snowflake datasource and query manager for frontend

* add snowflake integration
2021-10-13 09:35:35 +05:30
Akshay
e3ac378959
fix restapi query run with empty url (#991) 2021-10-12 19:34:37 +05:30
Akshay
7023f72d1d
Feature: User access management 🔥 (#918)
* create migrations for group permissions setup

* define new entities and relationships

* revise migrations

* rename columns

* add migration to populate permission groups for existing users

* Feature: User access permission group usage (#883)

* create migrations for group permissions setup

* define new entities and relationships

* revise migrations

* rename columns

* add migration to populate permission groups for existing users

* revise migrations

* hide roles usage

* setup group permissions for apps and users

* fix defaultChecked

* fix update permission checkbox

* fix casl ability check to have params passed

* fix casl apps abilities to check with app specific permission

* add ability to delete groups

* conditionally render edit and delete options for all and admin users

* fix user role to group migration

* revise group management pages to disallow updating default group

* move manage users and groups to navbar dropdown

* show only addable apps and users on dropdowns

* rename header as profile settings

* scope addable apps and users by organization

* scope viewable apps on homepage

* hide manage groups link from non admins

* make permissions to be used with radio input

* add loading state for add apps/users buttons

* revise unit tests

* revise migrations

* fix e2e tests

* comment out dead code

* fix seeds script

* handle folder count

* captalize error toast

* hide manage users dropdown for non admins

* show fobidden error on blank homepage

* fix folder app count

* fix invalid state set

* make group name clickable for edit instead

* users with edit permission can deploy apps

* not show edit link on homepage if user dont have update permission

* remove unused entity from merge

* remove roles usage from manage org users page

* fix folder count and blank slate on homepage

* disable add buttons if there is no selections

* humanize default groups on view

* make app added onto groups have read permission by default

* not show app menu if user is not admin

* remove admin users from group user addition dropdown

* create default permissions for app cloned

* fix querying index page without page params

* fix admin scoped out from group add

* remove apps from header

* fix invitation url not shown

* scope admin deletion check by org

* scope public apps by organization

* add specs for group permissions e2e

* removed unused entity and add group permissions spec

* remove console logs

* remove unused permission

* scope public app count by org

* remove console log

* refactor manage group permission resources component

* update group permssion in org scope
2021-10-11 20:45:58 +05:30
navaneeth
0c74c7d4db Bump ToolJet version 2021-10-07 13:17:29 +05:30
Sherfin Shamsudeen
c2e97af003
Selected row should be highlighted for table widget (#902)
* Add functionality to highlight selected row

* Add migration to set highlightSelectRow to false for existing tables

* Add documentation for highlighting selected row

* Support highlighting selected row for striped table
2021-10-05 19:36:30 +05:30
Sherfin Shamsudeen
eaaccc247e
Bulk selection for table widget 🔥
* Functional implementation of checkbox selector for table

* Add inspector toggle to display bulk selector checkboxes

* Expose selectedRows variable of Table

* Refactor select-all checkbox into a separate function

* Remove unnecessary import of v4 package

* Add TODO comment for adding checkbox color

* Revert typo that accidentally got committed

* Add explanatory comment in selectedRows data generation code

* Combine original row data and displayed row data for selectedRows

* Show only original data in selectedRows

* Use useRowSelect hook to for implementing table selector

* Show selector column only when it is enable from inspector

* Add migration to set showBulkSelector to false for all tables

* Add documentation for bulk selection

* Set label of toggle that (en/dis)ables bulk selection: 'Bulk selection'
2021-10-05 12:37:17 +05:30
navaneeth
ee1e59dee5 Merge branch 'hotfix/fix-csp' into develop 2021-10-04 21:54:18 +05:30
navaneeth
f359c06d25 Disable insecure requests upgrade (CSP) 2021-10-04 21:52:44 +05:30
Arpit
a189bf90a0
get queryOptions from url provided and populate the params tab (#860)
* get queryOptions from param and fill the params tab

* update params tab when url is updated

* gets the params from url and merges with  params entered manually

* rolling back restapi/index.jsx
2021-09-30 00:11:32 +05:30
Akshay
ac92845e60
increase postgres ds timeout (#819) 2021-09-22 18:51:00 +05:30
Sherfin Shamsudeen
3ca60c5b2d
Bugfix/firestore query conditions (#813)
* Add multiple fields for order and orderType in firestore query

* Add support for querying firestore with where, order and limit

* Minor refactoring updates for firestore query operations file

* Minor refactoring for firestore query operations

* Update package-lock.json with npm 7.20.0
2021-09-22 00:19:29 +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
Akshay
40005146c4
Fix role change when only one admin is present (#766) 2021-09-21 17:36:21 +05:30
Arpit
4dc356cb36
Parameter to accept a specific range within a Googlesheet (#798)
* Parameter to accept a specific range within a googlesheet

* default range: A1:Z500
2021-09-21 17:20:29 +05:30
Akshay
bc193c081f
Fix: Only update credentials when data source is updated (#763)
* only update credentials when data source is updated

* fix spec
2021-09-21 10:20:02 +05:30
Akhil G Krishnan
88e08e50f9
BugFix: User Invitation URL in email is not clickable (#799) 2021-09-21 10:05:36 +05:30
navaneeth
f2d4361ed8 Bump ToolJet version 2021-09-20 15:53:18 +05:30
Navaneeth Pk
35e1ee29dc
Eager load app versions (#786)
* Testing relations

* better fix

* Testing relations
2021-09-20 12:08:49 +05:30
navaneeth
1086c2036e Use max in ormconfig 2021-09-19 10:18:57 +05:30
navaneeth
92d6291fdb Upgrade pg 2021-09-19 09:57:08 +05:30
navaneeth
b464ec5f03 Increase connection limit for orm 2021-09-19 08:58:06 +05:30
navaneeth
6dd30b616e Timeout for TypeORM 2021-09-19 08:51:57 +05:30
navaneeth
13d1f600a8 Add timeout for queries (pg) 2021-09-18 21:01:50 +05:30
navaneeth
77b92dd7ad Adds statement timeout for pg queries 2021-09-18 20:52:02 +05:30
Navaneeth Pk
f86f83c766
add pg datasource connection timeout (#781)
Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
2021-09-18 12:26:39 +05:30
Akshay
d166747276
add post health check endpoint (#768) 2021-09-16 21:45:33 +05:30
Akshay
52cbec3d4c
Add ability to clone from existing apps (#743)
* add ability to clone from existing apps

* make use of clone ability to authorize clone requests

* refactor to use seperate service for cloning apps
2021-09-15 21:17:44 +05:30
Akshay
762773770c
Fixes app creation authorization (#757) 2021-09-15 21:12:04 +05:30
navaneeth
fe1c00f2b7 Bump ToolJet version 2021-09-14 19:28:42 +05:30
Sherfin Shamsudeen
d27e500875
Add option for enabling/disabling SSL for MySQL (#754) 2021-09-14 18:37:41 +05:30
Akshay
f637a80fd6
Feature: data query deletion (#734)
* add feature for data query deletion

* fix after query deletion default query selection is not being done

* move delete option and hide option unless mouse is hovered on query

* show dialog box confirmation before query deletion
2021-09-13 22:54:47 +05:30
navaneeth
1e3d77004a Order queries on editor in alphabetical order 2021-09-13 09:37:18 +05:30
Arpit
04e7f8eaad
Fixes the path in query auth to run queries for public apps (#729) 2021-09-12 09:51:30 +05:30
Akshay
9d7b987e72
Fix csp headers to allow for google maps (#725) 2021-09-10 16:09:28 +05:30
Arpit
b0f0918571
Feature: Apps should only be edited by the admin or developer of the organisation. (#724)
* hide edit button for role:"user"

* probably one solution

* role=viewer cannot edit apps

* unused imports removed
2021-09-10 15:10:23 +05:30
Akshay
f4af291b6f
Chore: Application monitoring support with sentry (#702)
* setup sentry for server

* setup sentry for client

* update docs for sentry dns

* explicitly specify apm vendor

* add module for sentry

* revise directory struct and make sentry debuggable

* setup csp and trace headers for sentry

* whitelist csp for all sentry urls

* change senrty error sample rate to 50%

* make sentry send all errors from backend
2021-09-09 22:14:34 +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
navaneeth
d53c8fc53a Bump ToolJet version 2021-09-07 15:35:05 +05:30
Sherfin Shamsudeen
4306e47e36
Set request entity max limit to 50 megabytes (#697) 2021-09-06 21:28:02 +05:30
Akshay
7967e517be
Chore: Revise log setup (#687)
* ignore /health endpoints to be logged

* buffer logs till logs are flushed and throw exception on server exit
2021-09-06 20:08:09 +05:30
Akshay
24685a127f
fixes server error when inviting new user (#679) 2021-09-03 09:52:07 +05:30
navaneeth
eb1acd85a6 Bump ToolJet version 2021-08-31 18:37:16 +05:30
navaneeth
12d8c4af28 Fix for REST API query previews returning 403 2021-08-30 23:36:05 +05:30
navaneeth
d4127736d6 Move the logic for option serializing to server 2021-08-30 23:15:31 +05:30
Akshay
82f76e2799
Feature: app version preview & edit (#639)
* add ability to preview and edit versions

* add specs for get app versions

* create new app versions from prev definition

* fixes

* move default slug creation outside typeorm transaction

* set slug as app id when null

* fix app creation response

* fix entities not loading on test env

* add e2e test for version creation scenarios

Co-authored-by: navaneeth <navaneethpk@outlook.com>
2021-08-30 17:13:27 +05:30
Sherfin Shamsudeen
48750bb8a9
Support Enabling/Disabling SSL for postgres connection (#619)
* Add option to enable and disable SSL in Postgres configuration UI

* Connect to postgres with/without SSL based on user's choice

* Add migration to set SSL enabled for every postgres data source

* Fix data source kind name in migration

* Fetch only postgres datasources in migration for turning on SSL
2021-08-28 09:12:12 +05:30
Sherfin Shamsudeen
91b32adaed
Multi-events for action buttons, query params option for Go-to-app action (#560)
* Add query params option to Go-to-app action

This commit adds support for setting query params for the
go-to-app action. When the new app is launched, the passed in
object will be sent as search query params.

* Allow user to enter URL params in multiple input boxes

* Abstract goto-app action logic to a separate container

* Supply necessary newline

* Set 'type' of 'app' property of go-to-app action to 'text'

* List only those apps that has proper slugs for goto-app action

* Modify goto-app action config panel to support Event Manager

* Use EventManager instead of EventSelector for table action config

* Add data migration to make old apps support multiple event handlers

* Fix UpdateDefinitionsForTableActionEvent migration

This commit ensures that the migration recreates onClick event properly

* Fix bug that caused an 'onBulkUpdate' event to be created during migration

* Remove EventSelector

* Add margin above `remove handler` button on Table actions inspector panel
2021-08-26 20:33:59 +05:30
Akshay
e4bcf80af2
Application logger using pino (#600)
* setup application logger with pino

* remove console.log
2021-08-25 22:13:18 +05:30
navaneeth
607f474e67 Merge branch 'hotfix/fix-pg-queries' into develop 2021-08-25 21:12:17 +05:30
navaneeth
98da31df3f Fix for bulk pg queries 2021-08-25 21:10:44 +05:30
Navaneeth Pk
eec59e597c
Feature: Multiple handlers for events (#571)
* Multiple handlers for each events

* Fixes

* Migration

* ormconfig to use entities in migrations

* use connection object to build queries

* fixes for bulk update

* Fix for table action button

* use query runner to wrap migration in same transaction

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
2021-08-24 12:21:09 +05:30
navaneeth
a343719e13 Bump ToolJet version 2021-08-24 11:29:06 +05:30
Akshay
960bacd0c6
fixes pagination on home page (#589) 2021-08-24 11:14:16 +05:30
Akshay
45841259b3
handle multiple columns on bulk query (#562) 2021-08-20 19:56:43 +05:30
Akshay
5909aaacff
Feature: bulk update capability for mysql plugin (#561) 2021-08-20 19:26:47 +05:30
Sherfin Shamsudeen
1f0ff9ecf8
Add functionality to decide whether front-end should be served from server (#547)
* Add functionality to decide whether front-end should be served from server

This commit makes the server allow flag `--serve-frontend`, providing
which, will make the server serve the front-end at route '/'. Otherwise
it won't serve the front-end.

* Use env variable to enable serving client from a server end-point

* Add documentation for SERVE_CLIENT env var
2021-08-20 09:25:34 +05:30
Sherfin Shamsudeen
a53cac24b2
Feature: QR scanner widget (#519)
* Add QR code scanner widget

This commit adds QR code scanner widget which
  * Displays a viewfinder that can be activated or deactivated
  * Exposes a variable named lastDetectedValue which holds the
    data contained in the last QR code it was able to scan
  * Defines an event onDetect which is fired whenever a QR code
    is successfully scanned

* Add documentation for QR scanner widget

* Supply missing newline

* Supply missing newline for qrscanner.svg

* Supply missing newlines and semicolons

* Update error modal content

* Remove `active` property from QrScanner

* Add blob: to content security policy

* Disable content security policy

* Add content security policy that allows self, unsafe-eval and blob
2021-08-18 22:15:43 +05:30
Sherfin Shamsudeen
a9d7b6ed7b
Make postgres connection SSL encrypted (#539) 2021-08-18 13:15:19 +05:30
Vimox Shah
0284fbd45c
Enable pgcrypto extension (#516)
* [ADD] enable pgcrypto extension

* [ADD] pg_crypto migration

* [REM] additional line breaks

* [REM] additional line breaks

Co-authored-by: vimox-shah-genea <vshah@getgenea.com>
2021-08-17 11:32:53 +05:30
Akshay
3ce36bd728
show readable error info for db create/drop instead of error stack trace (#517) 2021-08-13 20:55:43 +05:30
Akshay
c92437b820
Fixes docker dev setup (#507)
* update docker-compose and docs for docker dev setup

* specify test environment explicitly on npm scripts

* fix migrations to be picked up from either root or dist folder

* fix default slug update
2021-08-13 10:13:22 +05:30
Arpit Nath
7d37cf25f4
Feature: update record operation Airtable (#468)
* update record(s) operation : airtable

* fix: update record  operation - Airtable

* nolints

* indentation fix

* duplicate props removed
2021-08-12 21:06:31 +05:30
Sherfin Shamsudeen
f4cb29ff69
Feature: Profile page for users (#501)
* Add endpoint to update user first and last name, password

* Add settings page that allows editing user details

* Respond with first and last name when user is updated

* Add 'Settings' item in the drop-down down for user

* Add newline for index.js of settings page

* Supply missing newlines

* Ask for current password inorder to change password

* Add end-point to change password

This commit also adds a Guard to ensure that the user reenters
existing valid password.

* Add e2e test for change_password endpoint

* Copy change for the toast presenting misentered current password while changing password

* Change password when enter key is pressed from 'new password' box

* Add newline and the end of password-revalidate.guard.ts
2021-08-12 21:03:52 +05:30
Sai Deepesh
595bd9b0b7
Fix for welcome email indentation (#505) 2021-08-12 21:02:14 +05:30
navaneeth
1f93db7d4a Bump ToolJet version 2021-08-11 19:31:17 +05:30
Akshay
283e8560ec
enable csp directives to allow script load when nest serves frontend (#495) 2021-08-11 19:26:20 +05:30
Sherfin Shamsudeen
5e266f9606
Delete 'AppUser's before App is deleted (#490)
* Delete 'AppUser's before App is deleted

This commit ensures that all the corresponding entries of AppUser
are deleted before an App is deleted. This is done so to prevent
pre-existing foreign keys from halting the deletion.

* Delete all One-To-Many associated entities when app is deleted

This commit makes the App service's delete action delete all the
related entities of types: FolderApps, DataSources, DataQueries,
AppUsers and AppVersions, before deleting the app itself.

* Set currentVersionId to null before deleting app
2021-08-11 15:36:28 +05:30
navaneeth
414bd03f1e Fix for firestore query collection operation 2021-08-11 07:43:52 +05:30
Sherfin Shamsudeen
54a40176ea
Feature: Ability to delete apps (#486)
* Add end-point that deletes an application

Deleting an application will also delete its corresponding
data sources, data queries and app versions.

* Add unit test for app deletion end-point

* Additional e2e test for delete app end-point

This test ensures that non-admin user cannot delete apps.
2021-08-10 19:36:37 +05:30
navaneeth
05073f45b8 Fix for 401 issue of public apps 2021-08-10 17:27:17 +05:30
navaneeth
7ab53cd456 Fix for versions not getting saved 2021-08-10 17:26:16 +05:30
navaneeth
9d09be4eae Fix for api query crashes 2021-08-10 15:48:37 +05:30
navaneeth
ae60c5897b Serialize app entities 2021-08-10 14:34:27 +05:30