* 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>
* 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>
* 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
* 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>
* 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
* 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>
* 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
* 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>
* 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>
* 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>
* 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>
* 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
* 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
* 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
* 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
* Add custom spacing for table cells
* Add migration to set every tables cell spacing compact
* Rename cellSpacing to cellSize
* Add documentation for table cellSize
* 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
* 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
* 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
* 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'
* 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
* 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
* 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
* 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
* 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>
* 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
* 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
* 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>
* 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
* 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
* 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
* 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
* 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
* 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.