* 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
* Added smart defaults for query in Count, Distinct & Find commands
* Added test cases for smart inputs for query and limit for find, and query for count and distinct
* This method removes the outermost quotes - single or double quotes - so that end users don't have to do it via javascript inside widget fields where they are meant to be bound.
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.
* The input box label in the Firestore plugin action editor reads Document / Collection Path which is misleading since a document is nested inside a collection and not the other way round. Hence changing it to Collection / Document Path
* 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>
* A fix had been introduced earlier (I had introduced it a few months back) to remove data type info keys from the raw response. However, the transformation was not getting applied to the Query action as the transformation was explicitly limited to few actions. This PR removes that check and allows the transformation for all actions as there does not seem to be any reason to withhold this transformation for other actions.
* The earlier fix also restricted this transformation to results that had specific keys. This PR removes this check as well as it does not seem to be required and further may lead to similar issues if any particular key gets missed.
* Some other redundant checks have been removed from the flow as the transformation function itself takes care of it as edge/base case.
* -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
* Earlier split method was used to segregate cmd and args which failed when multiple words inside a quoted string formed one argument. e.g. set key "my value" would produce set, key, "my, value" as the tokens when split method is used, which is not correct. This change introduces a regex that would create the following tokens: set, key, "my value"
* 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>
* 1. For binary data in the response, base64 encoding the same before sending it out on the wire (instead of default conversion to string)
2. Added a new header which sets the data type of the response body.
* Minor code reformatting
* Fixed failing test cases
* The new header created should send the values in an array instead of a single value
* 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
* Adding support for explicit data type casting in postgres prepared statement
* Added text and int psql data types for support in explicit typecasting
* Documenting the code
The default charset is determined during virtual-machine startup and typically depends upon the locale and charset of the underlying operating system (#5788)
Co-authored-by: 王昆 <quincy@cloudtogo.cn>
* 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
* add support in Redis plugin to select database when creating db connection.
* refactor code to use URI string instead of constructor call, because of lack of appropriate constructor.
* add TCs.
* fix validate datasource.
* return hint message to user if the expected content type is json but the api response is not a valid json.
Co-authored-by: Apeksha Bhosale <7846888+ApekshaBhosale@users.noreply.github.com>
* 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