* OrgId is added as a suffix to link datasource entry with orgId when creating document in sequenceDB.
* Each document entry in sequenceDB is linked to organization ID which is then used by the datasourceDB to generate default name. Testcase for testing default names to new datasources (#2212)
* Migration ChangeSet added to setup sequenceDB with organization ID in name field
* Optimization in string operation
* cherry pick -make new
* revert to enable fix from release
* attempt to hook into existing datasource editor
* gSheets plugin skeleton from Rest API
* Changes for database migration
* fix for auth code
* separate it out
* action page loads!
* add to explorer
* create action from datasource
* Editor JSON WIP
* working query form
* Editor JSON WIP
* import to
* fix toast message
* redirect from datasource and editor pages
* fix onboarding
* fix imports and constants
* refactor form out
* refactor queryForm
* Merge branch 'release' into feature/google-sheets
* Merge branch 'release' into feature/google-sheets
* initial values from settings, editor and form
* Check
* remove dangling code around lightTheme
* Safety net
* remove class
* try mouseover solve
* force click
* changes from review
* fix action form name on import
* Merge branch 'release' into feature/google-sheets
* minor cleanup
* Merge branch 'release' into feature/google-sheets
* WIP
* Google sheets changes
* Merge conflicts
* Merging and fixes, needs refactoring
* Check
* Merge branch 'release' into feature/google-sheets
* Fixed tests
* Add cloud services env variable
* Clean up saga
* Clean up
* Refactoring
* Deleted svg file
* Minor fixes
* Modified design to allow behaviour in google sheets methods (#3486)
* Modified design to allow behaviour in google sheets methods
* Review changes
* Removed sysout
* Added handling of edge cases with table data
* Merge branch 'release' into feature/google-sheets
* Fixes
* Fixes
* Added validations
* Improved tests
* Removed extraneous injected bean
* Review changes
* Fixed bug with method
* Changes to Google sheets plugin's request and response structures (#3692)
* Method changes
* Removed logging
* Renaming options
* Reverting pom version
* Modified type of collection variables, fixed errors
* Converted row offset field to one that supports dynamic bindings
* Review changes
* List SAAS plugin type actions under lightning menu apis (#3820)
* list saas plugin type actions under lightning menu apis
* combine saas plugin type actions in the other sub menu of lightning menu
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
* Fix merge issues
* Prettified query editor and a few fixes w/ ux
* Test fixes
* Reformatting request
* code for REST added (#3876)
Co-authored-by: hetunandu <hetu@appsmith.com>
* Renamed body to row object
* Renamed placeholder for range
* Renamed range heading
* Modifications to handle range semantics
* Use spreadsheet Url instead of id
* Ordering of methods
* Removed logging
* Add tests for Dynamic text controls
* Add tests for url helpers
* Fix coverage config
* Nevermind
* Interface changes
* There is no body here
* Yay to hints
* Delete row field is separately handled as row index
* placeholder support (#4001)
* Fixed tests, typos and creating new sheets with random rows
* Switched to using 'rowIndex' throughout
* binding path added for query input field (#4016)
* - Fixed QA bugs (#4032)
- Split delete sheet into two
- Removed dynamic query input types from hidden keys
* Proper exceptions
* Removed extra logging
* Throw exception if update method does not match any of the columns
* Same for bulk update
* Zero-indexed delete row
* I'm a space bound rocket ship
* Logic to register installations with cs (#4062)
* Logic to register installations with cs
* Clean up
* Casting to string
* Checking to see if this makes the test pass
* Added an extra null check
Co-authored-by: Piyush <piyush@codeitout.com>
Co-authored-by: hetunandu <hetu@appsmith.com>
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
Co-authored-by: Apeksha Bhosale <7846888+ApekshaBhosale@users.noreply.github.com>
* New dto for refactoring action name which includes actionId as well
* Refactor action name now also takes actionId as payload and fetches the action from db by id instead of name to solve for the scenario where the action names could be duplicated.
* Adding actionId to QP of action refactor API.
* WIP : test for asserting the bug fix
* WIP test
* Fixed the test case asserting refactoring works for an action when there are duplicate action names in the page.
Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com>
* Added organization slug to the invite Url, which is finally used by email template(#2359)
* Separate method to create email params. Welcome email url variable updated so as to be consistent with other email templates
* Unused enum emailType removed, importing of java.util.* removed as per suggestion
* Added dependencies to be added to dependencyMap on client to Postgres, MSSQL, MySQL and Mongo plugins
* Added Dependency config for API
* Fixed the test case
- Return data type list along with action execution result so that the data can be displayed in the correct format.
- Handles these three data types for now : table, json, raw.
- If a plugin has already assigned the data type, then common handler is not used.
- Mongo plugin assigns the data types in the plugin specific flow i.e. does not use the common data type parse / assign method.
- To address review comments:
- added a new enum ActionResultDataType for data types. It is consumed by ParsedDataType. A list of ParsedDataType is returned by ActionExecutionResult
- parsed data in parallel using streams.parallel().
- add title to action execution errors to improve user experience
- all errors in AppsmithPluginErrors
- action execution related errors in AppsmithError : NO_CONFIGURATION_FOUND_IN_DATASOURCE, INVALID_ACTION, INVALID_DATASOURCE, INVALID_DATASOURCE_CONFIGURATION - as these are the likely errors in an action execution flow (excluding plugin specific flow) that might result from faulty action / datasource configuration by a user.
- title is returned as part of ActionExecutionResult.
- title is set in ActionExecutionResult on failure during action execution.
- In response to review comment - added a new BaseException class, so that both AppsmithException and AppsmithPluginException extend this base class. Also, refactored code to introduce setErrorInfo() function in ActionExecutionResult class to set its attributes.
- Some unrelated cleanup:
- catch PoolInitializationException for Postgres plugin and return AppsmithPuginException
- catch MongoTimeoutException and return AppsmithPluginException
* Annotation set up
* Removed annotation uses
* Redundant condition
* Commented out logging, retained for implementation
* Handling for Collection and Map parameterized types
* Removed comments
- Return hint for localhost URL on the following events:
Test datasource
Save datasource
Update REST API Url
Create datasource from REST API
When page gets loaded for first time.
- Hint message returned: "You may not able to access your localhost if Appsmith is running inside a docker container or on the cloud. Please check out Appsmith's documentation to understand more."
- It has been decided as part of actions pod meeting that these messages will not be persisted.
* Lax mustache binding check added to match the client side check when client recognizes a field to have a dynamic binding. This would reduce/remove bad bindings from throwing a 400 during save page.
* Added a test to assert that update layout does not fail in case the binding is technically incorrect because part of the mustache's lie inside quotes. Since client has a lax way of finding a dynamic path, server also follows suite.
* Clone only those datasources that are actually used
* Retry when cloning app causes a name class
* Search for an existing datasource before cloning
* Test deep matching of datasources
* Refactoring, since now the tests pass
* Allow forking of owning applications
* Don't limit datasource naming suffix number
* Remove width and introduce more AppLayout type enums
* Fix: Adding min width to layout options.
Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com>
* Add API for uploading profile photos for current user
* Add delete and get APIs for profile photos
* Add test for uploading and deleting profile photo
* Added negative tests for upload profile photo API
- Expect max value of timeout as 60000 ms.
- If value exceeds max value then add error message to the list of invalids. This list is returned to the client in response body.
- Detect integer overflow exception (Number format exception) and override the value to 60000 ms.
* A barely working API for forking a public application
* Tests WIP
* Mild refactoring in tests
* Refactoring in test
* Not all applications are forkable
* Pushing minor editor form changes to ensure that prepared statement could be turned off.
* Code refactor to do variable substitution in PluginExecutor instead of action service.
* WIP : Prepared Statement handling in psql plugin
* WIP Prepared Statements.
* Working version of prepared statements
* Quote trimming added for post preparing sql statements. Now the unprepared statements and prepared statements do not require edits.
* Fixed existing test cases failing.
* Code formatting.
* Super minor code cleanup.
* Added migration for the existing postgres actions.
* Fixed failing test cases in ActionServiceTest.
* Minor change in the text for turning on and off prepared statements in the postgres query pane.
* Added test cases for prepared statement.
* Some minor comments for code readability
* Moved Prepared Statement setting from Action Configuration to Plugin Specified Templates since this setting does not make sense for all the DB plugins.
* Added function level comments
* Update app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/SqlStringUtils.java
Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
* Update app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/SqlStringUtils.java
Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
* Incorporated review comments.
* Fixed compile time error.
Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
* Added test case to assert that new datasources and actions created post making an application public have the correct permissions for public execution.
* When fetching unpublished actions and unpublished pages, check if the undeployed version is not deleted before fetching.
* Only add unpublished page deleted at check if the view mode is false (aka edit mode)
* 1. Update action repository to fetch only non deleted actions if fetching actions in edit mode.
2. Added test cases to assert re-using of deleted page and action names.
* 1. Update on load actions correctly
2. Send the changed actions with their changes as well as messages back to the client as part of the response.
* Added test case to assert that the action updates are correctly recorded in updateLayout.
* Code cleanup + added more comments for code readability
* Incorporated review comments.
1. Move package appsmith-interfaces/src/main/java/com/appsmith/external/pluginExceptions-> appsmith-interfaces/src/main/java/com/appsmith/external/exceptions/pluginExceptions
2. Move enum AppsmithErrorAction from appsmith-server/src/main/java/com/appsmith/server/exceptions/AppsmithError.java -> appsmith-interfaces/src/main/java/com/appsmith/external/exceptions/AppsmithErrorAction.java, so that both plugin exceptions and server exceptions could use the same enum.
3. Log exception based on the error action defined for each exception.
* Proof of concept code which calculates the on load page actions.
* Refactored the field names introduced in Layout. Added a new field to keep a track of direct action names used in dynamic bindings in the DSL.
* Untested compute on on page load actions completed.
* Working page load actions computation.
TODO : Update the tests for correctness.
* Added fix for BFS starting from root nodes instead of arbitrary nodes.
Fixed a test case to assert for correct page load actions.
* Fixed the bug where the ids of the actions were not getting set in the layout. Also asserting the same in the test case for catching the future breaks.
* Minor refactor of function name to clear its purpose without reading the code.
* Incorporated review comments.
* Added conditional checks for unpublished action deleted and circular dependency of actions depending on each other.
* Include version information in backend builds
* Enable manual trigger of server workflow
* Add a dummy input field for manual trigger
* Fix secret checking in github actions
* Disable cron scheduling of sync job
* Build docker image on pushing a version tag
* Fix duplicated id and invalid id in release workflow
* Don't try to login to Docker
* Avoid download progress outputs from Maven
* Add version information for building client
* Calculate version number only once
* Enable push to DockerHub after building images
* Use Docker username from GitHub secrets
* Fix Docker username in tags when building image
* Use different secret for org name
* Minor refactoring in server workflow
* Update client build workflow to use version
* Enable manual triggering of client workflow
* Set snapshot version for server builds
* Push to docker for all branches (temp)
* Undo temp change to push all branches to DockerHub
* Use Docker org from secrets in client.yml
* Fix missing version reference in client.yml
* Remove debug command in dockerfile
* Save release notes in a resource file in Docker image
* Fix query serialization to get release notes
* Get releases of current repo instead of hard-coded repo
* Fix variable quoting for repo variables
* Exclude draft and prerelease nodes from image
* Fix call to any in release notes processor
* Fix syntax error in release notes script
* Implement API to get new release count and info
* Add missing ReleaseNotes component
* Have the release workflow run after a release is created
* Build server after generating release notes
* Change release trigger to "released"
* Change release trigger to "published"
* Change release trigger to released, edited and deleted
* Use JS script to get release notes, take 1
* Filter drafts and prereleases in script
* Fix syntax error in ES6
* Write release notes to file
* Create parent directory before writing release notes
* Log cwd in release notes script
* Log pwd along with release-notes content
* Handle case where working directory is incorrect
* Remove shell based release notes generator
* Don't show error when Sentry config is missing
* Check for sentry auth token to enable Sentry
* Carry build's exit code over to CI
* Mark out build result and add a note about it
* Add a small test to verify new versions computation
* Remove incorrect test assertion
* Remove generation of release notes file
* Connect to cloud services to fetch release notes data
* Fix missing runner for test class
* Handle missing cloud_services base URL
* Fix test failures due to missing mocks
* Enable sync-ee cron job
* Revert build.sh as there's no real change
* Add API to update release notes viewed version for users
* Fix prettier line-length errors
* Create UserData model for info unrelated to auth
* Fix field name calls
* Ensure we have a userId before setting userData
* Add tests for setting version number in UserData
* Include instanceId when fetching release notes