When deciding whether to redirect to default application or the redirect url provided during signup, it'll compare with url path now. Earlier it was considering any query params added to the redirect url.
* core workflows of git - branch, clone, commit, pull, merge, status, log
* Rehydrate file system before merge operation
* Add logic to handle merge conflict for merge and pull flow
* Add defaultBranch to listBranch API
* Add Unit tests for git commands
* Upgrade JGit dependencies to fix the security issue
* Git command tests
* Revert unwanted changes and update delete application flow
* Disable git feature until the FE changes are merged
Co-authored-by: Abhijeet <ABHI.NAGARNAIK@GMAIL.COM>
* Recently a change was introduced to modify the default value of s3 plugin's permanent URL toggle from NO to YES. This created an issue with the older actions where the toggle didn't exist and hence no value was saved against its property. Hence, since the default is now ON and the older actions don't have any value saved, the action editor shows the toggle value as ON but behaves like the value is OFF. To fix this issue, this method adds URL toggle as NO where no toggle value exists.
Solves for two things:
1. From the welcome page signup, depending on telemetry being enabled or disabled, we report.
2. When telemetry is changed from welcome page (which, it obviously will), we make the change persistent by writing to the env file.
* Update asset urls
* fix: use successImageUrl for CRUD success popup
* Increase delay to switch between GIF and image
* Use ASSETS_CDN_URL instead of S3_BUCKET_URL
Co-authored-by: Rishabh-Rathod <rishabh.rathod@appsmith.com>
* Delete CRUD-DB-Table-Template-Application.json
* Updated Template
* Update TC to replace selectedRow with triggeredRow as per the updated template
Co-authored-by: Abhijeet <ABHI.NAGARNAIK@GMAIL.COM>
* -set user photo id when adding a new comment thread
* -update user data when users remove their profile photo
* -updated photo id in comments when user changes or set a profile photo
* -remove photoid from thread, kept it in comment only
* -resized uploaded profile image
* -added test for delete profile photo
* -add test for the comment set user photo
* -check user change event handler is called in delete user photo
* -add test for checking user photo change event is triggered after upload photo
* -fixed tests due to changes
* -make profile pictures thumbnail only
* - used get photo by asset id API to show user photo in comment card
- set cache control header in get asset by id API
* - stop using email address to show user photo
The env config API currently only changes values that are already defined in the env file. It is not capable of adding anything to the file.
This commit adds the capability to do so. However, since we don't want to let the client add just any variable, we've switched from a black list to a white list of env variables that can be managed by this API. If the requested variable is present in the whitelist, we add it, if its missing in the env file.
This commit adds the following API:
`/api/v1/admin/env` — Responds with the names and values of all environment variables currently configured, that are allowed for configuration from the UI. Some variables will be missing from this, ones that are not allowed to be edited from the configuration UI.
Doesn't take any query params. Only usable by the superuser.
Also added a `isSuperUser` boolean field to the response of `api/v1/users/me`, that will indicate whether the current user is a superuser or not.
* Currently, the list of actions to be run on page load is not updated when an action object gets deleted. Hence, sometimes, a previously deleted action may be set to run on page load which throws an error when the application tries to run it on page load.
* This PR updates the list of actions to be run on page load whenever any action gets deleted.
* Same templates for mongo fetch
* WIP
* Working version
* Minor refactoring and addition of comments for understanding the code flow
* Minor fileName change
* Extra check added to only try to read options for command
With latest update, the following fields are unavailable on the `appsmith.user` object:
- `accountNonExpired`
- `accountNonLocked`
- `credentialsNonExpired`
- `isAnonymous`
- `isEnabled`
These fields are necessary for building applications and many apps were relying on these, despite them not being listed in the documentation at <https://docs.appsmith.com/framework-reference/appsmith#user>.
* Changes to add js plugin
* routes+reducer+create template
* added debugger to js editor page
* entity explorer changes
* create js function
* added copy, move and delete action
* added js plugin
* added existing js functions to data tree
* removed actionconfig for js collection
* new js function added to data tree and entity as well
* parsing flow added
* changes to data tree
* parse and update js functions
* small changes for def creator for js action
* create delete modified
* small changes for update
* update flow change
* entity properties added
* removed linting errors
* small changes in entity explorer
* changes for update
* move, copy implementation
* conflict resolved
* changes for dependecy map creation
* Only make the variables the binding paths
* Basic eval sync working
* Minor fixes
* removed unwanted code
* entity props and autocomplete
* saving in progress show
* redirection fix after delete js action
* removed unnecessary line
* Fixing merge conflict
* added sample body
* removed dummy data and added plugin Type
* few PR comments fixed
* automplete fix
* few more PR comments fix
* PR commnets fix
* move and copy api change
* js colleciton name refactor & 'move to page' changes & search
* view changes
* autocomplete added for js collections
* removing till async is implemented
* small changes
* separate js pane response view
* Executing functions
* js collection to js objects
* entity explorer issue and resolve action on page switch
* removed unused line
* small color fix
* js file icon added
* added js action to property pane
* Property pane changes for actions
* property pane changes for js functions
* showing syntax error for now
* actions sorted in response tab
* added js objects to slash and recent entitties
* enabling this to be used inside of function
* eval fix
* feature flag changes for entity explorer and property pane
* debugger changes
* copy bug fix
* small changes for eval
* debugger bug fix
* chnaged any to specific types
* error in console fix
* icons update
* fixed test case
* test case fix
* non empty check for functions
* evaluate test case fix
* added new icons
* text change
* updated time for debounce for trial
* after release mereg
* changed icon
* after merge
* PR comments simple
* fixed PR comments - redux form, settings remove
* js object interface changes
* name refactor
* export default change
* delete resolve actions chnage
* after merge
* adding execute fn as 3rd option and removed create new js function
* issue 7054 fixed - app crash
* execute function on response tab changes
* refactor function name part 1
* refactor of js function name
* try catch added refactor
* test fix
* not used line removed
* test cases locator fixed
Co-authored-by: Nidhi <nidhi.nair93@gmail.com>
Co-authored-by: hetunandu <hetu@appsmith.com>
- Added new API that generates a new ssh key pair and stores that inside the git meta data of an application. The key is generated in open ssh format. The private key is stored as encrypted in DB.
* Insert git application metadata to application object, for git sync/version control feature there is a need to save the application in the structured format
* Added changelog to index application collection with git branch and remoteurl
* Rehydrate and dehydrate applications among different instances
* Added serailisation purpose while exporting the application to make distinction between version control and regular import-export flow
* Git file operations moved to appsmith-git module
* Delete json reference from directory for deleted resource in DB
* Added git authentication in application metadata
* Replace String with Path to handle file path in git file structure
We're not going to be collecting the company name for the self-hosted installation, but instead we'll be collecting the use-case that is being solved with Appsmith.
* Adding `APPSMITH_PLUGIN_MAX_RESPONSE_SIZE` which can be configured as an environment variable to increase plugin response size (currently only supported for Postgres Plugin)
* Updated error message + added the environment variable to the template docker env files for new installations
* WIP
* -redirect to newly created application after signup
* feat: create default application if no redirect url exists. also add a param to indicate first time user experience
* -updated function comment as per PR review
* -updated the create application using existing function
* -added check whether application is null when creating application page url
* -removed unnecessary refactoring
* -removed unused parameter from method
CRUD Info modal which pops up on successful CRUD generation, will now have dynamic data for each CRUD template.
Modal success `message` and `Image` to explain the working of the CRUD template is fetched from the backend.
Co-authored-by: Abhijeet <ABHI.NAGARNAIK@GMAIL.COM>
The superuser signup api available at /users/super currently only supports JSON payload. This PR adds support for form-data payload at the same endpoint, and makes it consistent with the normal user's signup API endpoint.
* Add errorType to response
* Fix Test Failures
* group the errors
* Add errorType to categorise the issue/error
* remove the helper class
* update changes as per review
* Update the logical groupings of errors
* Fix formatting issues
* Updated the error types
* Update error classification
* Change the name of the mock datasource
* Remove the hardcoded value for Cloud services
* Handle index out of exception
* Add check if the response contains necessary credentials for mockdb
* Change as per review comments
* Fix cypress test failures
* minor changes to fix cypress test for mock data according to new changes
* updated mock data locator
* Update the mockdata source name
Co-authored-by: Pranav Kanade <pranav@appsmith.com>
* -limit the rate for sending password reset requests
* -used encrypted token in password reset
* -add unit tests for the password reset issue
* -improved formatting
* -updated PR as per review comments
* -hanled IllegalStateException instead of Exception when parsing the encrypted token
* Added version check
* Added error message for version check while importing the file
* Added TC to check version in exported file
* Added version in FE assets for cypruss test
* Add API for env management and super user
* Add missing files
* Add API for signing up for super user
* Fix types in client code
* Add docs for env manager API
* Minor refactoring
* Remove unused updates to app startup
* Better error logging when unable to write file
Co-authored-by: Nidhi <nidhi@appsmith.com>
* Don't cache the user count (duh!)
Co-authored-by: Nidhi <nidhi@appsmith.com>
* bugfix: notification not created if user is mentioned in the first comment of a thread
* -add notification event type in comment notifications
-show different message for create thread and create comment in UI
* -send notification when comment is deleted
* -send notification when comment thread is deleted
This PR adds the email based rollout strategy to features. We can now define a list of domain names in the init-flags.yml file and define the domains for which the feature will be active.
Also added tests to assert the functionality for this flag flipping strategy.
* -add max password validation in FE and password validation in BE for signup
* -added unit test for password length limit
* - set max password length to 48
- add password length check in reset password
* -removed password limit check from login
* Re set password to avoid double encryption while creating suffix datasource
* Add test to query on mockdata source
* Check the Authentication type before setting the password
* Add analytics event for mockdata creation
* Use the correct name for the mockdatasource
* Added FE analytics for mock datasource
* Changes per review
* Remove the method call
* Fix indentation issue
Co-authored-by: Pranav Kanade <pranav@appsmith.com>
* -log widget type in analytics service when new thread created
-set viewed=true for resolved threads
* fixed typo
* fix the test case when there is not widget type
* Removed autogenerated column reference from InsertQuery
* Disable page generation flow for layout with widgets
* Updated Template
* TCs modify for updated template application
* Allow column with only String datatype as a search column in SelectQuery
* Remove AtomicRef as not needed
Co-authored-by: Nikhil Nandagopal <nikhil.nandagopal@gmail.com>
* -added filter by resolved state in get comment thread API
* -add aggregation and lookup to fetch comment threads
* -added unit test for the repository aggregation method
* -reverted the aggregation lookup
* -add unit test for get all thread
* -removed unused method
* -resolved merge conflicts
* -skip hardcoded property value in query
* Add binding query to the suggested widget to improve the experience
* Fix test failures
* Add comments and change as per review
* Move the query template to enum class
* Change Test cases as per review
* Remove unused methods from the test class
* Remove commented code
* Use proper attributes in binding query
* Refactor suggestWidget method to support node
* Add unit tests
* Added field to autogenerate values in DB column
* Added comment and refactor
* Autogenerate field update according to names instead of type for ArangoDB
* Comments update
* S3 plugin support added
* Support for GSheet
* GSheet and S3 support, TCs update
* TC added for MongoDB datasource
* ilike opertor for SQL fixed
* Resolve merge conflicts
* Seperate template page for postgresql and other SQL datasources as there are minor changes in action bodies
* Added ListFiles query as on page load action, Insert all the columns from user's table in SelectWidget
Co-authored-by: Nikhil Nandagopal <nikhil.nandagopal@gmail.com>
Table data was not populating when extra space inside the mustache binding, This is now fixed for list and table widget
* removed return statements from computed values
* list widget responce update
* table data handled return, added migration
* removed unused function
* updatetd rowBinding string generator
* fix failing cypress test
* fix cypress tests
* -fixed comment missing issue when user role is changed
* WIP: add test for policy utils
* -added test for policy utils comment permission when users are added or removed
* -removed unused code
* -removed public access modifier for an internal function
* -add test to verify comment thread policy updated when user role changed in organization
* -add tests for add user and remove user from organization to test comment thread policies
* -added API to and template for unsubscribe comment thread
* -changed public API url to make it sepratate from client public pages
-included the unsubscribe link to email body
* -made unsubscribe email notification API to private
* -added unsubscribe page
* -removed unused code
* Update app/client/cypress/integration/Smoke_TestSuite/ClientSideTests/Comments/UnsubscribeEmail_spec.js
Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
* Update app/client/src/pages/common/UnsubscribeEmail.tsx
Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
* Update app/client/src/pages/common/UnsubscribeEmail.tsx
Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
* Update app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/BaseAppsmithRepositoryImpl.java
Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
* -updated text as per lint error
* -updated text as per lint error
* -moved unsubscribe screen texts to messages.ts
Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
* Refactor Page order API - Instead of the order filed use the Order persistency in Array offered by Mongo
* Add migration script to remove the order filed from the Application Pages
* Change unit tests as per the new implementation
* Fix indentation issues
* Compute pages based on the view mode
* Removed order field in response and changed the page order API response to List of pages instead of the application object
* Remove the Order filed from the Response class
* Use the $push instead of $addToSet to maintain order of pages in array
* Applied encryption for self-hosted instances username field, removed sensitive fields from request
* Request field added for Appsmith cloud instance
* Config variables moved to a central file
* API to run DB query using plugin specified templates
* Included get spreadsheet metadata in get info method
* Added TCs for checking Spreadsheet info response
* Added error message for invalid datasources
* Authentication check for datasource modified to AuthenticationStatus field
* resolved conflicts
* -fixed some issues in PR
* -used sequence in generating thread number
* -refactored the create thread method
* -refactored comment service
* -add bot reply to the first comment thread of an user
* -added a new bot thread when user resolves the first bot thread
* -handle the case when user data can be absent
* -add organization id and widget type to comment and comment threads
* -resolved conflicts
* -mark appsmith bot username as a tagged user in the bot comment
* -turn a private thread to a public thread when someone is tagged in it
* -updated as per the review comments
* -fixed compile error in unit test
* -updated as per PR review comments
* -removed commented code
* Add try catch block to handle the data conversion exception
* Suggest widget only in edit mode
* Add JsonNodeType to the widget suggestion logic
* Use ClassCastException instead of generic exception
* add tests for the array data type
* Suggest list of possible widgets instead of one
* Use constant in if condition to avoid possible NPE
Fix typo
* Call cloud services to fetch mock datasets
* Call cloud services to fetch mock datasets
* Change the MockData Config,
* Remove unused import statements and fix small indentation issues
* 1. Moved the mock data creation and fetching to a separate class
2. Added plugin type to mockdata class
3. Used pluginName to identify the db type
4. Removed the block call mock data creating method
5. Added unit tests for the mockdata
* 1. Removed unused field from contract and
2. Updated the url to cloud service
* 1. renamed the field of mockdata contract
2. Updated the test cases
* using new mock datasources apis
* 1. Added the Cloud Service release end point to env variable
Co-authored-by: Pranav Kanade <pranav@appsmith.com>
* Template application updated to include separate page for MongoDB as a datasource
* Support for mongoDB as datasource added
* Added comments
Co-authored-by: Nikhil Nandagopal <nikhil.nandagopal@gmail.com>
* -added new API to get unread comment thread count
* -changed query to get unread comments so that it only searches where user has permission
* -added unit test for unread comment thread count
* -improved formatting
* -updated as per PR review
* Changing application public/private view can no longer be cancelled (for example by client timeout, etc.)
* Update test to only read the datasource used in the application
* Incorporated review comment
* Comment update
* Add widget suggestion to query execution flow
* Change the logic for Chart widget suggestion
* Add tests for the all the suggested widgets
* Added enum class to store widget types
* WIP: updated the email template
* -updated the comment link in email as per the user role
* -rebased from release
* Update app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/EmailEventHandler.java
Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
* -updated the template as per review comment
* -removed unused email template file
* -fixed compile error
* -checked application policy instead of role when sending email for comment
* -minor changes as per PR review comment
Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
* Added an API to get list of mock datsets
Removed the flow of
* Removed the auto populate of mock datasets flow when the user sign up first time
* Fixed indentation issues
* Instead of sending empty datasource, change template value to empty
* Add only the configs to response instead of entire mongo doc
* Add API to create mock data set