The `BaseController` is used by only five controller classes. Regarding
the `GET /` route in the base controller,
- two override and block it (`Application` and `User`).
- two override with a custom implementation and logic, completely
ignoring the `params` object (`Theme` and `Workspace`).
- one appears to be using it (`Plugin`).
This makes it confusing and hard-to-maintain. This common route is
overridden more times than it's reused.
This PR removes the `BaseController` on `UserController` as step 1. We
intend to remove it from the remaining 3 in subsequent PRs.
Server and Cypress tests verified on EE.
## Description
This PR introduces a new way to edit the queries directly from slash
hint commands that edit button appears on hover of the hint. This also
introduces an event `EDIT_ACTION_CLICK` as emitted from different other
places of our application with all the similar properties except the
`from` : `SlashCommandHint`
<img width="566" alt="Screenshot 2024-03-27 at 12 45 09 AM"
src="https://github.com/appsmithorg/appsmith/assets/7565635/34f0e226-d45a-482b-8484-7e1fdc672a04">
Fixes#32075
_or_
Fixes `Issue URL`
> [!WARNING]
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._
## Automation
/ok-to-test tags="@tag.All"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8465758601>
> Commit: `cff14b0006441274e182d17ff66603219971ddbd`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8465758601&attempt=2"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced the code editor with improved command suggestions and quick
command generation, including URL and event parameter handling.
- Introduced new styling for command suggestions in the code editor.
- **Refactor**
- Updated functions and components for better handling and mapping of
plugins within the code editor.
- **Chores**
- Added necessary imports and updated the usage of various components
and utilities to support new features and improvements.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: “sneha122” <“sneha@appsmith.com”>
## Description
Update the `getNextEntityName` selector to re-use it in copy/move module
instances feature on EE.
Fixes [#31969](https://github.com/appsmithorg/appsmith/issues/31969)
## Automation
/ok-to-test tags="@tag.Sanity"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8466748833>
> Commit: `703764c3d460530372121e58445990e1d40bc7f8`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8466748833&attempt=1"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Refactor**
- Enhanced the entity naming functionality to support more flexible
naming conventions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
Capture telemetry around compute diff between old and new states, also
capture the serialise cost of the updates.
Fixes#32123
## Automation
/ok-to-test tags="@tag.All"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8456623922>
> Commit: `9c1be427190586b155ff5daecfe190f743bacc63`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8456623922&attempt=3"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Refactor**
- Improved and optimized update generation logic in the evaluation
process.
- Enhanced handling of undefined values, function properties, and
serialization errors, including `BigInt` and `moment` objects.
- Ensured more consistent handling of `moment` objects during updates.
- **Tests**
- Added and modified tests to cover new scenarios in update generation
and data manipulation, including handling of `EvaluationError`.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
Adds multiple env switcher to the bottom bar
Fixes#31266
## Automation
/ok-to-test tags="@tag.MultiEnv"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8440725278>
> Commit: `eae7d87a07c270a460049f124fe90277f997cd58`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8440725278&attempt=1"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a `BottomBar` component in the `AppViewer` for enhanced
navigation and quick actions, conditionally displayed based on multiple
environments and specific feature flags.
- Added a custom React hook `useShowEnvSwitcher` to determine the
visibility of the environment switcher based on various conditions.
- **Refactor**
- Improved visibility of the `SwitchEnvironment` component and
`QuickGitActions` by adjusting their rendering logic, ensuring they are
always visible when `viewMode` is false.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
Fix urlBuilder wrong import causing test failure in EE
## Automation
/ok-to-test tags=""
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!CAUTION]
> If you modify the content in this section, you are likely to disrupt
the CI result for your PR.
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Refactor**
- Updated URL building functionality in the editor for improved
consistency and maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
1. Don't copy request's `X-Request-Id` value in the response.
2. If missing in request, don't add a generated values either, but do
retain in internal request context.
## Description
Updating the height of inputs form on the right pane of modules editor.
Fixes [#31955](https://github.com/appsmithorg/appsmith/issues/31955)
## Automation
/ok-to-test tags="@tag.All"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8459420351>
> Commit: `86cf19080a9460b5464cacb319a7b33ef255ef12`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8459420351&attempt=2"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Style**
- Updated the `ActionSidebar` component to have a full height, enhancing
its appearance and usability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
- This Pr adds a remote comparison check in `autocommit` flow.
- When the remote is ahead of the local repository, the application
should not be commited to remote, local should pull the changes first
and then the respective commit & push should happen. Likewise in
autocommit the remote check has been placed.
- The check is meant to silently abort the autocommit if the remote is
found to be ahead of the local.
Fixes https://github.com/appsmithorg/appsmith/issues/32110
## Automation
/ok-to-test tags="@tag.Git"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8451614719>
> Commit: `4f696b752a8f3f847f2e6f8ff5acf9ef0e67a276`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8451614719&attempt=2"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced auto-commit functionality for Git integration, including
better handling based on branch and application states, and improved
remote changes fetching.
- **Refactor**
- Refactored Git-related services to support new auto-commit logic and
remote changes fetching.
- **Tests**
- Added new tests for the updated auto-commit functionality, ensuring it
behaves as expected under various scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
This is an extension of #31272, type fixes within the test case has been
made.
Fixes#31272
## Automation
/ok-to-test tags="@tag.All"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8451378874>
> Commit: `de31e9e0c671f65572af33bd0cbb773bfe5b8767`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8451378874&attempt=4"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Refactor**
- Improved the evaluation process for widget updates, enhancing the
handling of undefined values, function properties, and serialization
issues.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
Avoids widget selection on modal close when widget selection is blocked.
Fixes#32118
## Automation
/ok-to-test tags="@tag.IDE"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!CAUTION]
> If you modify the content in this section, you are likely to disrupt
the CI result for your PR.
<!-- end of auto-generated comment: Cypress test results -->
This removes the `appsmithctl migrate` command which can migrate an
Appsmith instance from on EC2 instance to another, using SSH. Why are we
removing it?
1. It's not documented on docs.appsmith.com at all.
2. The problem is better solved with a combination of `appsmithctl
backup` and `appsmithctl restore`, with much _more_ flexibility.
## Description
> This PR adds asserts the Save button which was added in place of Save
and Authorize in https://github.com/appsmithorg/appsmith/pull/32047Fixes#32071
## Automation
/ok-to-test tags="@tag.All"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8451764949>
> Commit: `d86c6561c9cce0bab2f7dc405bdb609019556ba6`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8451764949&attempt=3"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Tests**
- Enhanced testing for GraphQL data sources by adding an assertion to
verify the presence of a "Save" button for Client Credentials Grant Type
scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
- Create a new hookWrapper util to enable hook testing with redux state
- Create a util function to create EditorState Focus Info
- Small refactor of `useGetPageFocusUrl` hook
- Adds tests for `useGetPageFocusUrl` hook
Fixes#31871
## Automation
/ok-to-test tags="@tag.IDE"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!TIP]
> Tests running at:
<https://github.com/appsmithorg/appsmith/actions/runs/8451092610>
> Commit: `a4660177de70be17d94928eef4fbe29a37f1a1d5`
> Workflow: `PR Automation test suite`
> Tags: `@tag.IDE`
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a function to streamline the creation of editor focus
information, enhancing navigation within the IDE.
- **Refactor**
- Refactored logic for setting focus page URLs in the IDE, improving the
accuracy and reliability of navigation.
- **Tests**
- Added tests for the `useGetPageFocusUrl` hook, ensuring URL generation
behaves as expected.
- **Chores**
- Updated utility functions for IDE tests, facilitating better test
setup and execution.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
Adds url tests for IDE utils
Fixes#31870
## Automation
/ok-to-test tags="@tag.IDE"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8449198628>
> Commit: `87825b005ec206c143a730ecb6312b0a8fca64ad`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8449198628&attempt=1"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Tests**
- Added test cases for URL generation functions for JavaScript entities
and query/plugins in the IDE.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
This PR fixes the issue:
New API button does not work from REST API datasource from review page.
This issue is only observed in enterprise version as it has connections
to multiple environments:
https://github.com/appsmithorg/appsmith/assets/30018882/1f1f3a75-fa4c-4f0a-a463-541299ad8f15Fixes#32064
_or_
Fixes `Issue URL`
> [!WARNING]
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._
## Automation
/ok-to-test tags="@tag.Datasource"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8449817023>
> Commit: `70549d166af84a9484439ce966a5e26a1e71f909`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8449817023&attempt=1"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced error detection by introducing a validation mechanism for API
plugin URLs during query action creation in the Editor, based on
environment, plugin type, and datasource configuration.
- **Tests**
- Added tests to validate the new API plugin URL validation
functionality in the Editor.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: “sneha122” <“sneha@appsmith.com”>
## Description
Updating the primary action for app card click on mobile.
Fixes [#32084](https://github.com/appsmithorg/appsmith/issues/32084)
## Automation
/ok-to-test tags="@tag.All"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8448397082>
> Commit: `2424f0f6a1f891f0ff74162ebdb718e6a433a411`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8448397082&attempt=2"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced the application card to support launching the mobile app
directly with specific URL parameters for a more tailored user
experience.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
The PR fixes:
Issue with icon being reversed in property pane.
In property pane, for each section if it is expanded currently, it
should have collapse icon beside it, if section is in collapsed state,
it should have expand icon beside it. Earlier it was reverse, this PR
corrects it
<img width="286" alt="Screenshot 2024-03-27 at 2 02 57 PM"
src="https://github.com/appsmithorg/appsmith/assets/30018882/6af152fd-895e-4529-b8da-70c8ffe0559c">
<img width="289" alt="Screenshot 2024-03-27 at 2 00 48 PM"
src="https://github.com/appsmithorg/appsmith/assets/30018882/45ba123f-3102-4205-8d44-6ba25f330ca6">
Note: This PR fixes only of the UI issues mentioned in #32069Fixes#32069
_or_
Fixes `Issue URL`
> [!WARNING]
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._
## Automation
/ok-to-test tags="@tag.IDE"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8448851715>
> Commit: `37457a290f6258fbeda84376d62327d5fbe1d78b`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8448851715&attempt=1"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Refactor**
- Simplified the logic for displaying the chevron icon in the property
pane sections, enhancing user interface consistency.
- Updated icons for open and closed states in the property sections for
clearer visual cues.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Co-authored-by: “sneha122” <“sneha@appsmith.com”>
## Description
We are constraining the diff between the old dataTree and the
newDataTree to its only affected nodes. The affected nodes list is the
evalOrder, unevalUpdates and updatedValuePaths (which represents
localStorage and setter updates). Through limiting the diff to the
affected node list this should help in reducing the diff computation
latency and overall improve the performance of each evaluation cycle.
We are also cleaning up code related to compressing and decompressing
updates since we deprecated that functionality.
Fixes#31272
## Automation
/ok-to-test tags="@tag.All"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8447023192>
> Commit: `cb925afbb99577947fbc7233a35e4454223b402a`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8447023192&attempt=2"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced new logic for handling widget state updates efficiently.
- Enhanced evaluation logic to support optimized diff updates and
serialization.
- Improved data tree generation for error handling and evaluation order.
- **Bug Fixes**
- Addressed issues in generating optimized updates for large collections
and handling `undefined` values.
- Fixed Cypress tests in the "PgAdmin Clone App" spec for more reliable
interaction with UI elements.
- **Refactor**
- Simplified the logic for widget state cleanup and evaluation paths
handling.
- Removed unused variables and functions related to widget meta
properties and evaluation paths.
- **Tests**
- Added new spec file `PgAdmin_spec.js` to Cypress limited tests for
client-side regression testing.
- **Chores**
- Updated type imports across various files to reflect changes in
evaluation logic.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Instead of using `sessionUserService.getCurrentUser()`, or the
`ReactiveSecurityContextHolder.getContext` directly (which we are doing
in several places), this injection will let us get the principal
directly at controller-level.
Yes, it produces the anonymous user, when there's no session.
Why? Less code. More relying on letting Spring do the right thing for
us. 😛
Why aren't we making this change across the board everywhere? Sure,
eventually. Small PR like this helps me get consensus, be less daunting
to review, and most important of all, easy to revert if we notice
something going wrong. In a week or two, if we want to do this, we can
start rolling it out to more places in code.
/ok-to-test tags="@tag.Sanity"