Commit Graph

2958 Commits

Author SHA1 Message Date
subratadeypappu
6d41e77b1e
chore: Skip unnecessary RTS calls to optimise performance (#37949)
## Description
Motivation came from this
[PoC](https://www.notion.so/appsmith/Evaluating-Performance-Bottlenecks-in-Pull-Based-Upgrades-Challenges-with-New-Relic-Telemetry-14bfe271b0e28063b9fdc08515ab3014)


Fixes https://github.com/appsmithorg/appsmith/issues/37948

## Automation

/ok-to-test tags="@tag.All"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12181005719>
> Commit: d1f53e20d460cdf90bed3eef5f0552b7d871c197
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12181005719&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Thu, 05 Dec 2024 15:10:54 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **Bug Fixes**
- Improved error handling in the binding refactoring process to ensure
smoother operation.

- **Refactor**
- Enhanced efficiency of the binding refactoring method by adding a
conditional check to reduce unnecessary server calls.

- **Tests**
- Introduced a new test suite for the binding refactoring method,
validating various scenarios to ensure correct functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-05 21:14:23 +06:00
subratadeypappu
d03ad6ffe6
chore: Add code split for adding package pull status indicator (#37944)
## Description
EE Counterpart PR: https://github.com/appsmithorg/appsmith-ee/pull/5667


Fixes #`Issue Number`  
_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  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12160425603>
> Commit: 7275865be3810c3b993e2adfcd42ec4228ed3c98
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12160425603&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Wed, 04 Dec 2024 14:29:40 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Enhanced data fetching capabilities with new methods for better
organization and clarity.
	- Improved handling of application modes with centralized logic.

- **Bug Fixes**
- Streamlined error handling and logging during data retrieval
processes.

- **Refactor**
- Restructured existing methods for improved maintainability and
extensibility.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-05 18:04:46 +06:00
Nidhi
86d22e561c
chore: Added spans to health check (#37980)
## Description
> [!TIP]  
> _Add a TL;DR when the description is longer than 500 words or
extremely technical (helps the content, marketing, and DevRel team)._
>
> _Please also include relevant motivation and context. List any
dependencies that are required for this change. Add links to Notion,
Figma or any other documents that might be relevant to the PR._


Fixes #`Issue Number`  
_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=""

### 🔍 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  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Introduced improved health check functionality for Redis and MongoDB,
enhancing observability with specific health metrics.
- Added constants for health monitoring, including `HEALTH`,
`MONGO_HEALTH`, and `REDIS_HEALTH`.

- **Bug Fixes**
- Enhanced error handling for health checks, ensuring consistent logging
and mapping of timeout exceptions.

- **Refactor**
- Updated constructor signatures to accommodate new dependencies for
better service initialization.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-05 17:33:00 +05:30
Manish Kumar
a64c16d98a
chore: git detach (#37934)
## Description
> [!TIP]  
> _Add a TL;DR when the description is longer than 500 words or
extremely technical (helps the content, marketing, and DevRel team)._
>
> _Please also include relevant motivation and context. List any
dependencies that are required for this change. Add links to Notion,
Figma or any other documents that might be relevant to the PR._


Fixes #37439 

## Automation

/ok-to-test tags="@tag.Git"




## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Introduced methods for committing artifacts and managing Git
operations, including `commitArtifact`, `detachRemote`, and
`publishArtifactPostCommit`.
  - Added functionality to list branches and check repository privacy.
- Enhanced error handling for Git operations, improving reliability
during commits and pushes.

- **Bug Fixes**
- Updated parameter naming for consistency across methods, enhancing
clarity.

- **Documentation**
- Improved JavaDoc comments for better understanding of method purposes
and parameters.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12158276745>
> Commit: f058fbe37f866ecee2cfb8fde30e4d4b62e2fd7f
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12158276745&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Git`
> Spec:
> <hr>Wed, 04 Dec 2024 11:42:39 UTC
<!-- end of auto-generated comment: Cypress test results  -->
2024-12-05 10:35:44 +05:30
Manish Kumar
1078a03b23
feat: added commit changes (#37922)
## Description

Fixes #37437 

## Automation

/ok-to-test tags="@tag.Git"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12152404326>
> Commit: 6dc1f5a35764f8dc602cb1b5a7a18c76be534e6e
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12152404326&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Git`
> Spec:
> <hr>Wed, 04 Dec 2024 04:58:02 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Release Notes

- **New Features**
- Introduced methods for acquiring and releasing Git locks, enhancing
the locking mechanism.
- Added `commitArtifact` method for committing artifacts in Git
operations.
- New method `publishArtifactPostCommit` for publishing artifacts after
a commit.
  
- **Improvements**
- Enhanced error handling and parameter naming consistency across
various Git-related services.
  
- **Refactor**
- Updated method signatures and added detailed documentation for clarity
and maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-04 10:33:25 +05:30
Nidhi
a2c5caa819
chore: Git resource map conversions (#37920)
## Description
> [!TIP]  
> _Add a TL;DR when the description is longer than 500 words or
extremely technical (helps the content, marketing, and DevRel team)._
>
> _Please also include relevant motivation and context. List any
dependencies that are required for this change. Add links to Notion,
Figma or any other documents that might be relevant to the PR._


Fixes #`Issue Number`  
_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.Git"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!IMPORTANT]
> 🟣 🟣 🟣 Your tests are running.
> Tests running at:
<https://github.com/appsmithorg/appsmith/actions/runs/12145100933>
> Commit: c78857b0266e6cfd7be488205544de956e88647e
> Workflow: `PR Automation test suite`
> Tags: `@tag.Git`
> Spec: ``
> <hr>Tue, 03 Dec 2024 17:36:22 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Release Notes

- **New Features**
- Enhanced Git resource handling with the ability to save artifacts to
Git repositories.
- Introduced new methods for managing modified resources and artifact
exchange JSON.
- Improved tracking of updated entities during export operations,
including custom JavaScript libraries and new pages.
- New functionality for handling application artifacts and contexts in
Git.

- **Bug Fixes**
- Refined error handling and control flow in auto-commit and migration
processes.

- **Documentation**
- Updated comments and method signatures for clarity and improved
understanding.

- **Tests**
- Added new test cases to validate the conversion processes and resource
comparisons.
- Enhanced existing tests to utilize new data structures and improve
clarity.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-04 00:01:51 +05:30
sneha122
493abeee01
chore: removed redundant page DB calls from js action creation flow (#37668)
## Description
During action creation flow, page is fetched twice (making two
independent DB calls) and taking significant time, this PR makes only 1
page DB call and passes the page object to subsequent calls, instead of
fetching page again.


Fixes #37567 
_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.JS, @tag.Datasource"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12084468852>
> Commit: 2cd1a84463df51aaf7f4b8e897838f4f5edc73e1
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12084468852&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.JS, @tag.Datasource`
> Spec:
> <hr>Fri, 29 Nov 2024 13:05:45 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced action creation process with the introduction of a new
metadata parameter for improved functionality.
- Optimized cloning of applications and pages by reducing redundant
database calls.

- **Bug Fixes**
- Ensured proper handling of the `executeOnLoad` property during action
creation in cloning contexts.

- **Tests**
- Updated tests to reflect changes in action creation logic and verify
new behaviors, including performance optimizations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2024-12-03 12:57:21 +05:30
Rishabh Rathod
e8cb73dc68
fix: Reduce RTS calls in the updateLayout flow (#37127)
## Description

In this PR, we update the code to send all the bindings to RTS together
instead of calling it for each property binding. It was observed that
the calls were earlier around 40k for the test application.

This change leads to optimisation of performance for 
- updateLayout call ( when updating anything in the DSL ) 
- query/API action update 
- JS action update

Fixes #37055



## Tests on DP 

Deploy-Preview-URL: https://ce-37127.dp.appsmith.com/

- [x] Multiple widgets with the same bindings impacting the sequence of
onPageLoadActions
- onPageLoadActions update as expected when
   - [x] DSL is updated
   - [x] Query is updated
   - [x] JS Object is updated

EE PR - https://github.com/appsmithorg/appsmith-ee/pull/5642 

## Automation

/ok-to-test tags="@tag.All"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12082854290>
> Commit: 07b68d4f0663ff336807223c93feceb1264741df
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12082854290&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Fri, 29 Nov 2024 11:44:31 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **New Features**
- Enhanced retrieval of possible entity references and their
relationships with a new method.
- Added new test cases to validate action execution on page load and
dynamic binding handling.

- **Bug Fixes**
	- Improved error handling and validation for executable references.
	- Enhanced assertions to ensure correct execution of layout actions.

- **Tests**
- Added a test to validate layout actions with multiple widgets
referencing the same action.
	- Refactored existing tests for better readability and maintainability.
- Expanded test coverage for layout updates and dynamic binding
scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2024-11-29 17:16:19 +05:30
Manish Kumar
731356a0f3
feat: Git modularisation backend structure (#37843)
## Description
 - Added structure for git modularisation


Fixes https://github.com/appsmithorg/appsmith/issues/37434
https://github.com/appsmithorg/appsmith/issues/37435


### No CI is required as the code is not exposed/ connected to existing
code

## Automation

/ok-to-test tags="@tag.Git"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12080532772>
> Commit: 0c251dda540154f5edf5aaa32f067b12feb46497
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12080532772&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Git`
> Spec:
> <hr>Fri, 29 Nov 2024 08:03:23 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Introduced Git handling capabilities, including committing changes,
managing repositories, and handling branches.
- Added support for managing Git user profiles and permissions related
to artifact creation.
- Enhanced artifact management with new methods for creating and
retrieving artifacts based on workspace and repository details.

- **Bug Fixes**
- Improved error handling and validation for Git operations, ensuring
robust interaction with remote repositories.

- **Documentation**
- Updated documentation to reflect new methods and functionalities
related to Git operations and artifact management.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-29 13:41:44 +05:30
Apeksha Bhosale
982283b46c added slo buckets 2024-11-28 20:37:56 +05:30
sneha122
5484c40d11
chore: action execution solution test fixed (#37793)
## Description
Failing server unit test fixed, This test started failing due to changes
in this PR: https://github.com/appsmithorg/appsmith/pull/37776, for some
reason it did not show up on this Pr in failed test cases


Fixes #`Issue Number`  
_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.IconButton"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12066311357>
> Commit: f915b4fd8ac67fcbaaf9b0427ee4cb2296ce4d0e
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12066311357&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.IconButton`
> Spec:
> <hr>Thu, 28 Nov 2024 09:59:28 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Bug Fixes**
- Improved error handling for stale connections during action execution,
allowing the system to recover and continue executing actions after an
initial failure.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2024-11-28 15:29:46 +05:30
Nidhi
38e3d45fda
chore: json to map conversion with test template (#37788)
## Description
> [!TIP]  
> _Add a TL;DR when the description is longer than 500 words or
extremely technical (helps the content, marketing, and DevRel team)._
>
> _Please also include relevant motivation and context. List any
dependencies that are required for this change. Add links to Notion,
Figma or any other documents that might be relevant to the PR._


Fixes #`Issue Number`  
_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.Git"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12064617641>
> Commit: bf8b3bf7c9048b489246989285e0e4ede3386ca7
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12064617641&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Git`
> Spec:
> <hr>Thu, 28 Nov 2024 08:38:34 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Release Notes

- **New Features**
	- Updated Git resource type to include `CONTEXT_CONFIG`.
- Introduced methods to manage artifact-dependent resources and context
lists.
	- Enhanced Git resource management with new actions and collections.
- Added new properties and components in the exported application
structure, including new data sources, pages, and actions.

- **Bug Fixes**
	- Improved handling of metadata fields in application exports.

- **Documentation**
	- Added unit tests for artifact JSON to Git resource map conversion.

- **Chores**
- Updated JSON structure for exported applications with new components
and properties.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-28 14:20:50 +05:30
sneha122
8d32ee8f22
chore: Google sheet shared drive support added behind a flag (#37776)
## Description
This PR hides shared drive support for Google Sheets Integration behind
a feature flag as we need to do thorough testing for it.

The feature flag implementation done in this PR involves passing feature
flags from server to google sheets plugin module. This temporary feature
flagging solution tech debt can be removed once the testing is done and
once we would release this feature to all.

**Why feature flags are only available at server module?**
Because they have a dependency on UserIdentifierService,
SessionUserService, TenantService etc which exists at server module.
Supporting feature flags out of the box at plugin module level would
require significant efforts to migrate these dependencies.


Fixes #37714 
_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.Authentication, @tag.Datasource"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12063930619>
> Commit: 47f08f9903e78e050f18ad304dd736acb61b8b28
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12063930619&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Authentication, @tag.Datasource`
> Spec:
> <hr>Thu, 28 Nov 2024 07:38:58 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **New Features**
- Introduced support for Google Sheets shared drive through feature
flags.
- Added new methods to handle feature flags in plugin execution and
triggering processes.
- Enhanced action execution and triggering logic to utilize feature
flags for dynamic behavior.

- **Bug Fixes**
	- Improved error handling for plugin execution processes.

- **Tests**
- Integrated `FeatureFlagService` into the testing framework for
enhanced test coverage.
- Expanded test scenarios to include various response types and error
conditions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2024-11-28 13:40:32 +05:30
Abhijeet
4727b4da99
fix: Super user cache eviction when user is added via env variable (#37785) 2024-11-28 11:15:24 +05:30
Shrikant Sharat Kandula
381dcaaf8a
chore: Include version in all requests (#37551)
We're adding `x-appsmith-version` to every request from the client. If
server sees a request with a `x-appsmith-version` that doesn't match its
own, it rejects. If the server sees a request _without_ any
`x-appsmith-version` header, we don't reject it... for now.

On the client, when server responds with the "version mismatch" error,
we trigger the "There's a new version, please refresh" toast UI flow.

This is a step towards removing our dependency on websockets and
client&mdash;RTS connection.

## Automation

/test sanity

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12029721517>
> Commit: c4321f7addb2be9c0ca6a7fe64308f13f931a1c8
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12029721517&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Tue, 26 Nov 2024 12:28:32 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Release Notes

- **New Features**
- Introduced a custom header for API requests to include application
version.
- Added specific error handling for 400 Bad Request errors, enhancing
user feedback on version mismatches.

- **Improvements**
- Enhanced error handling for version mismatches, providing clearer
error messages.
- Simplified version update handling, focusing on logging and user
prompts without state management.
- Improved default handling for application version configuration to
prevent undefined values.

- **Chores**
- Removed outdated version state management functions to streamline
code.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Pawan Kumar <pawan@appsmith.com>
2024-11-27 12:58:28 +05:30
Shrikant Sharat Kandula
c9ddd9c765
chore: Remove CS URL in client (#37665)
The server should be the source of truth and owner for the current CS
URL, and the client having direct access to the CS URL is (almost) an
abstraction leak. We're using it on client for one purpose only, to
redirect to CS for Google sheets authorization. That's just as well
achieved with another redirect via the server.

This PR does that redirection and removes access to the CS URL to the
client code. Not used anywhere else, and shouldn't be needed.


## Automation

/test sanity datasource

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12029489682>
> Commit: 0a1937e7d5d492c7c6a98bde124a157663126ac1
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12029489682&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity, @tag.Datasource`
> Spec:
> <hr>Tue, 26 Nov 2024 12:21:11 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Release Notes

- **New Features**
	- Enhanced CI workflow with improved error handling and logging.
- Added a new authorization redirection endpoint in the SaaS controller.

- **Improvements**
	- Database URL validation step added to CI tests.
	- Artifact management for test results has been clarified and improved.
- Removal of `cloudServicesBaseUrl` from various configurations to
streamline cloud service integration.

- **Bug Fixes**
	- Refined logic for rerunning tests based on previous results.

These updates contribute to a more robust and efficient testing and
configuration environment.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-11-27 10:32:35 +05:30
Shrikant Sharat Kandula
5cfe143b86
fix: Signup from OAuth not being detected correctly (#37697)
Fixes issue where the detection for signup when using OAuth was not
being handled correctly.

[Slack
conversation](https://theappsmith.slack.com/archives/C02K2MZERSL/p1732600773587469?thread_ts=1732554015.110689&cid=C02K2MZERSL).


## Automation

/test sanity

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!WARNING]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12024883331>
> Commit: d53fcdf0451a5911471b05678e03831a0d9a632a
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12024883331&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: @tag.Sanity
> Spec: 
> It seems like **no tests ran** 😔. We are not able to recognize it,
please check <a
href="https://github.com/appsmithorg/appsmith/actions/runs/12024883331"
target="_blank">workflow here</a>.
> <hr>Tue, 26 Nov 2024 06:16:02 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Improved handling of user authentication success, enhancing the flow
for email verification and OAuth2 authentication.
- **Refactor**
	- Simplified the logic for determining user sign-up or login status.
- Streamlined the method for handling OAuth2 redirects, improving
clarity and maintainability.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-26 12:22:43 +05:30
Nilesh Sarupriya
d99789c401
chore: set datasourceId in executeActionDTO during execution (#37626)
## Description
> Set the correct datasourceId to executeActionDTO when an action is
being executed.

Fixes https://github.com/appsmithorg/appsmith/issues/37627

## Automation

/ok-to-test tags="@tag.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11948824843>
> Commit: 458b5c0d90fa138c57ed7f1dd491d985bfe0b5df
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11948824843&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Thu, 21 Nov 2024 08:22:41 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced functionality to set the correct `datasourceId` based on the
action's context, improving action execution accuracy.

- **Refactor**
	- Improved code formatting for clarity without altering existing logic.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com>
2024-11-21 02:25:02 -06:00
Trisha Anand
a5013ebd64
fix: Instance admin not updating when email added via env variable (#37568)
Using feature flagged function to evict cache to ensure correct cache
line gets evicted depending on the flag

## Description
> [!TIP]  
> _Add a TL;DR when the description is longer than 500 words or
extremely technical (helps the content, marketing, and DevRel team)._
>
> _Please also include relevant motivation and context. List any
dependencies that are required for this change. Add links to Notion,
Figma or any other documents that might be relevant to the PR._


Fixes https://github.com/appsmithorg/appsmith/issues/33741
## Automation

/test all

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!CAUTION]
> 🔴 🔴 🔴 Some tests have failed.
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11914552417>
> Commit: d4aed1f340e907c588f156d83c32e67c1ab4da18
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11914552417&attempt=1&selectiontype=test&testsstatus=failed&specsstatus=fail"
target="_blank">Cypress dashboard</a>.
> Tags: @tag.All
> Spec: 
> The following are new failures, please fix them before merging the PR:
<ol>
>
<li>cypress/e2e/Regression/ClientSide/FormLogin/EnableFormLogin_spec.js
> <li>cypress/e2e/Regression/ClientSide/Github/EnableGithub_spec.ts</ol>
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master"
target="_blank">List of identified flaky tests</a>.
> <hr>Tue, 19 Nov 2024 15:04:20 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Enhanced migration functionalities for database schema updates and
permission management.
- Added methods for managing SSL settings for MSSQL datasources and
updating Oracle plugin configurations.
  - Improved query performance with the creation of new indexes.

- **Bug Fixes**
- Updated permission management for super users and system themes,
ensuring proper access.

- **Chores**
  - Minor formatting adjustments and import updates for code clarity.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-20 13:20:06 +05:30
Shrikant Sharat Kandula
ac4c714932
chore: Require form data for login endpoint (#37402)
The Login API endpoint isn't checking for the request `Content-Type`,
and is attempting to parse the payload as form data (?) irrespective of
the incoming content type. So, if we attempt to make a JSON login
attempt, like:

```
http -v :8080/api/v1/login username=a@b.com password=dummy
```

<details>
<summary>We see the following lengthy useless error on the
server:</summary>
<pre>
[2024-11-15 07:22:12,040] [nioEventLoopGroup-3-8] requestId= userEmail=
traceId= spanId= - Can't find user
[2024-11-15 07:22:12,042] [boundedElastic-1] requestId= userEmail=
traceId= spanId= - In the login failure handler. Cause: Unable to find
username:

org.springframework.security.core.userdetails.UsernameNotFoundException:
Unable to find username:
at
com.appsmith.server.authentication.handlers.ce.CustomFormLoginServiceCEImpl.findByUsername(CustomFormLoginServiceCEImpl.java:36)
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Assembly trace from producer [reactor.core.publisher.MonoLift] :
	reactor.core.publisher.Mono.error(Mono.java:299)

com.appsmith.server.authentication.handlers.ce.CustomFormLoginServiceCEImpl.findByUsername(CustomFormLoginServiceCEImpl.java:37)
Error has been observed at the following site(s):
*__________________________________Mono.error ⇢ at
com.appsmith.server.authentication.handlers.ce.CustomFormLoginServiceCEImpl.findByUsername(CustomFormLoginServiceCEImpl.java:37)
*__________________________Mono.switchIfEmpty ⇢ at
com.appsmith.server.authentication.handlers.ce.CustomFormLoginServiceCEImpl.findByUsername(CustomFormLoginServiceCEImpl.java:37)
|_ Mono.onErrorMap ⇢ at
com.appsmith.server.authentication.handlers.ce.CustomFormLoginServiceCEImpl.findByUsername(CustomFormLoginServiceCEImpl.java:38)
|_ Mono.map ⇢ at
com.appsmith.server.authentication.handlers.ce.CustomFormLoginServiceCEImpl.findByUsername(CustomFormLoginServiceCEImpl.java:43)
|_ Mono.doOnNext ⇢ at
org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:105)
|_ Mono.publishOn ⇢ at
org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:106)
|_ Mono.filter ⇢ at
org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:107)
|_ Mono.switchIfEmpty ⇢ at
org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:108)
|_ Mono.flatMap ⇢ at
org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:109)
|_ Mono.flatMap ⇢ at
org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:110)
|_ Mono.doOnNext ⇢ at
org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:111)
|_ Mono.map ⇢ at
org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:112)
|_ Mono.doOnSuccess ⇢ at
org.springframework.security.authentication.ObservationReactiveAuthenticationManager.lambda$authenticate$3(ObservationReactiveAuthenticationManager.java:58)
|_ Mono.doOnCancel ⇢ at
org.springframework.security.authentication.ObservationReactiveAuthenticationManager.lambda$authenticate$3(ObservationReactiveAuthenticationManager.java:61)
|_ Mono.doOnError ⇢ at
org.springframework.security.authentication.ObservationReactiveAuthenticationManager.lambda$authenticate$3(ObservationReactiveAuthenticationManager.java:61)
*__FluxOnErrorResume$ResumeSubscriber.onError ⇢ at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onError(MDCConfig.java:64)
*________________________Mono.deferContextual ⇢ at
org.springframework.security.authentication.ObservationReactiveAuthenticationManager.authenticate(ObservationReactiveAuthenticationManager.java:54)
*________________________________Mono.flatMap ⇢ at
org.springframework.security.web.server.authentication.AuthenticationWebFilter.authenticate(AuthenticationWebFilter.java:122)
|_ Mono.switchIfEmpty ⇢ at
org.springframework.security.web.server.authentication.AuthenticationWebFilter.authenticate(AuthenticationWebFilter.java:123)
|_ Mono.flatMap ⇢ at
org.springframework.security.web.server.authentication.AuthenticationWebFilter.authenticate(AuthenticationWebFilter.java:125)
|_ Mono.doOnError ⇢ at
org.springframework.security.web.server.authentication.AuthenticationWebFilter.authenticate(AuthenticationWebFilter.java:127)
*________________________________Mono.flatMap ⇢ at
org.springframework.security.web.server.authentication.AuthenticationWebFilter.filter(AuthenticationWebFilter.java:115)
Original Stack Trace:
at
com.appsmith.server.authentication.handlers.ce.CustomFormLoginServiceCEImpl.findByUsername(CustomFormLoginServiceCEImpl.java:36)
at
org.springframework.security.authentication.UserDetailsRepositoryReactiveAuthenticationManager.retrieveUser(UserDetailsRepositoryReactiveAuthenticationManager.java:45)
at
org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:104)
at
org.springframework.security.authentication.ObservationReactiveAuthenticationManager.lambda$authenticate$3(ObservationReactiveAuthenticationManager.java:58)
at
reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:47)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367)
at
reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:117)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
		at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245)
at
reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1865)
at
reactor.core.publisher.MonoCacheTime.subscribeOrReturn(MonoCacheTime.java:151)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:63)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:210)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmit(FluxFlatMap.java:547)
at
reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:988)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:968)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
		at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55)
		at reactor.core.publisher.Mono.subscribe(Mono.java:4576)
at
reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:430)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:210)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:335)
at
reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:373)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
at
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onSubscribe(FluxPeekFuseable.java:178)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201)
		at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097)
at
reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onComplete(FluxDefaultIfEmpty.java:134)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147)
at
reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:239)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69)
at
reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1866)
at
reactor.core.publisher.MonoCacheTime$CoordinatorSubscriber.signalCached(MonoCacheTime.java:337)
at
reactor.core.publisher.MonoCacheTime$CoordinatorSubscriber.onNext(MonoCacheTime.java:354)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.MonoCacheTime$CoordinatorSubscriber.onSubscribe(MonoCacheTime.java:293)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
		at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
at
reactor.core.publisher.MonoCacheTime.subscribeOrReturn(MonoCacheTime.java:143)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:63)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
		at reactor.core.publisher.Mono.subscribe(Mono.java:4576)
at
reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:265)
at
reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
		at reactor.core.publisher.Mono.subscribe(Mono.java:4576)
at
reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:82)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.onComplete(MonoFlatMap.java:189)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147)
at
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147)
at
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147)
at
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147)
at
reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onComplete(FluxFilterFuseable.java:171)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147)
at
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onComplete(FluxPeekFuseable.java:277)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147)
at
reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2573)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.request(FluxFilterFuseable.java:191)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367)
at
reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:117)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
at
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
at
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
at
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
at
reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onSubscribe(FluxFilterFuseable.java:87)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
at
reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onSubscribe(FluxPeekFuseable.java:178)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
		at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
		at reactor.core.publisher.Mono.subscribe(Mono.java:4576)
at
reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:265)
at
reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
		at reactor.core.publisher.Mono.subscribe(Mono.java:4576)
at
reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:82)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:155)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.request(FluxFilterFuseable.java:191)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367)
at
reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:117)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
at
reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onSubscribe(FluxFilterFuseable.java:87)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
		at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
at
reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245)
at
reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097)
at
reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147)
at
reactor.core.publisher.FluxIterable$IterableSubscription.fastPath(FluxIterable.java:424)
at
reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:291)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2067)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.MonoFlatMap$FlatMapInner.onSubscribe(MonoFlatMap.java:291)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
at
reactor.core.publisher.Operators$BaseFluxToMonoOperator.onSubscribe(Operators.java:2051)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201)
		at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
at
reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxFilterWhen$FluxFilterWhenSubscriber.drain(FluxFilterWhen.java:302)
at
reactor.core.publisher.FluxFilterWhen$FluxFilterWhenSubscriber.onNext(FluxFilterWhen.java:140)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137)
at
reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:335)
at
reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152)
at
reactor.core.publisher.FluxFilterWhen$FluxFilterWhenSubscriber.onSubscribe(FluxFilterWhen.java:200)
at
com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53)
at
reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122)
at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201)
		at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
		at reactor.core.publisher.Mono.subscribe(Mono.java:4576)
at
reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:265)
at
reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
		at reactor.core.publisher.Mono.subscribe(Mono.java:4576)
at
reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:265)
at
reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
at
reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55)
at
reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
at
reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1176)
at
reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:715)
at
reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481)
at
reactor.netty.http.server.HttpServerOperations.handleDefaultHttpRequest(HttpServerOperations.java:829)
at
reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:774)
at
reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:115)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at
reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:262)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at
io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
at
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
at
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:333)
at
io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:455)
at
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
at
io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918)
at
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
at
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
at
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
at
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
		at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
at
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994)
at
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
		at java.base/java.lang.Thread.run(Thread.java:833)
</pre>
</details>

In this PR, we're changing the matcher for the login endpoint to check
for the `Content-Type` explicitly. With this, the server doesn't log any
error, and responds with a `401 Unauthorized`.


## Automation

/test sanity authentication

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11853152657>
> Commit: 3a4620da8af82b727e2fd91756318c5aa3cf9910
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11853152657&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity, @tag.Authentication`
> Spec:
> <hr>Fri, 15 Nov 2024 09:25:59 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Enhanced authentication mechanism for the login process, improving
request validation.
  
- **Bug Fixes**
- Refined matching logic for authentication requests to ensure better
security compliance.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-20 10:38:08 +05:30
sneha122
7612e4f14d
chore: perf optimisation for js action creation phase 1 (#37391)
## Description

[During analysis of action creation flow
metrics](https://github.com/appsmithorg/appsmith/issues/37151#issuecomment-2468354426),
we observed that RefactoringService.isNameAllowed is taking 80-90% of
the total JS object action time. This PR optimises this part in a way
that for any jsobject action, instead of fetching all actions from DB
and comparing it
to see if current action name is allowed, we simply do that check in
memory where for current action collection, if any action names are
being duplicated, we throw the error.

We could make this change easily because recently we merged a
[PR](https://github.com/appsmithorg/appsmith/pull/36958) which removes
the actions with duplicate name from client payload whenever Js object
update API is called, with this change, we can guarantee that for any JS
object update call, all actions inside it will always have unique names.
This PR makes the similar check on backend where if any action has
duplicate name within collection, we throw an error and don't store that
action in the DB.

We may need to consider following test case in both before and after
implementation of this approach. This can be covered during PR testing:
What happens if the client sends multiple requests to add a new function
in an existing collection. That is, as a result of the debounce logic,
if the server receives 2 consecutive requests with a populated
collection but without actionId associated to either request.

Relevant thread:
https://theappsmith.slack.com/archives/C040LHZN03V/p1731571364933089

Fixes #37365 
_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.JS"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11911295324>
> Commit: d5c75edd301e75b2432b642f366bc80c6fea6b89
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11911295324&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.JS`
> Spec:
> <hr>Tue, 19 Nov 2024 11:14:16 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Enhanced validation to prevent the creation of actions with duplicate
names in action collections.
- Simplified handling of JavaScript actions, allowing them to bypass
certain validation checks.

- **Bug Fixes**
- Improved error handling during action updates and collection
modifications to ensure better logging and management of failures.

- **Tests**
- Added tests to verify that duplicate action names trigger appropriate
error messages, enhancing the robustness of the action collection
feature.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2024-11-19 17:04:38 +05:30
dependabot[bot]
7f2c4c6dd2
chore(deps): Remove commons-io from /app/server/appsmith-server (#37403)
Not needed as it comes from `appsmith-interfaces` as a transitive
dependency anyway.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=commons-io:commons-io&package-manager=maven&previous-version=2.13.0&new-version=2.14.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/appsmithorg/appsmith/network/alerts).

</details>

/test sanity

<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11853130017>
> Commit: b103f148fe25d1ca33aea6bbc635c392a0c1acfd
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11853130017&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Fri, 15 Nov 2024 09:24:19 UTC
<!-- end of auto-generated comment: Cypress test results  -->

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2024-11-15 15:12:54 +05:30
Manish Kumar
6883e496e5
fix: added edge case fixes for consolidated api and publishing (#37399)
## Description

Fixes #`Issue Number`  
_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.Git"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11851164290>
> Commit: 3a76919cab6a000ae1d2dcac76cbaf6afee33aa7
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11851164290&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Git`
> Spec:
> <hr>Fri, 15 Nov 2024 07:01:40 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Enhanced handling of Git operations, including improved branch
management and artifact importation.
- Expanded analytics integration for tracking changes in branch
protection settings.

- **Bug Fixes**
- Improved error handling for various Git operations and
application/page retrieval scenarios.

- **Tests**
- Added new test cases for Git-related functionalities and improved
error handling in tests.
- Enhanced test coverage for the `getConsolidatedInfoForPageLoad`
method, particularly for feature branches.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-15 15:27:09 +06:00
Shrikant Sharat Kandula
a601acf173
chore: Fix string equality checks (#37397)
As well as fixed some warnings with unused function parameters and
unneeded initialization values.

/test sanity authentication

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11850858814>
> Commit: 8e14037b4e72a4549ee3910113d4608623d71de3
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11850858814&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity, @tag.Authentication`
> Spec:
> <hr>Fri, 15 Nov 2024 06:06:57 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Improved handling of user email verification during authentication
processes.
- Enhanced robustness of string comparisons for signup and login
methods.

- **Bug Fixes**
- Refined logic for determining email verification requirements,
ensuring accurate updates to user properties.

- **Refactor**
- Simplified method signatures and internal logic for better clarity and
maintainability.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-15 13:34:06 +05:30
Shrikant Sharat Kandula
646f29fd5d
chore: Remove unused JSON signup API handler (#37387)
This PR removes the JSON-version of signup API handler, and its unused
references. We use the other Form-body-version of this API, but not
this. So this isn't needed.

Fewer things there are, fewer there are to protect.

## Automation

/test sanity authentication

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11838832000>
> Commit: f27d2c9fa7d9b154eb6649b1f9885fd54d1921b5
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11838832000&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity, @tag.Authentication`
> Spec:
> <hr>Thu, 14 Nov 2024 14:49:54 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Introduced new Cypress commands for enhanced API interactions and UI
validations.
	- Added a method for handling user creation through form-encoded data.

- **Bug Fixes**
	- Improved error handling and validation checks in various commands.

- **Documentation**
- Updated type definitions and submit handler functions for better
clarity and maintainability.

- **Chores**
- Removed unused user management functionalities, streamlining the
codebase.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-15 12:39:29 +05:30
Shrikant Sharat Kandula
4f6938923d
chore: Fix role field serialization 2024-11-14 19:38:28 +05:30
Shrikant Sharat Kandula
a007bd0f05
chore: Remove unused JSON superuser signup route (#37378)
The JSON payload version of the super user signup route is not used
anywhere significant. This PR removes it.


## Automation

/test sanity authentication

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11830003644>
> Commit: d051ed852ff68727805a81b5b59b54bdb50f1d2e
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11830003644&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity, @tag.Authentication`
> Spec:
> <hr>Thu, 14 Nov 2024 03:53:00 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Updated user creation process to use URL-encoded data instead of JSON
for super user creation.
  
- **Bug Fixes**
- Removed deprecated `createSuperUser` methods from the API and server
controllers, streamlining user management.

- **Chores**
- Modified setup scripts to reflect changes in user data transmission
for creating super users.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-14 14:14:42 +05:30
Shrikant Sharat Kandula
7e209d2615
chore: Remove unused UserData.role (#37381)
The `role` field is not sent by the client and is not used by the server
anywhere.

We're not removing the `role` field in analytics payloads, since changes
like that in the past have broken other analytics pipelines (where a
field value was `null` instead of `""` started to throw NPEs in some
internal workflows). We can solve that as a separate problem later.


## Automation

/test sanity authentication

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11830985060>
> Commit: 986fc8986a81aa212eaed455e22181cf927002f0
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11830985060&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity, @tag.Authentication`
> Spec:
> <hr>Thu, 14 Nov 2024 05:59:04 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

- **New Features**
- Simplified user update requests by removing the `role` field,
streamlining user data management.
  
- **Bug Fixes**
- Adjusted analytics tracking to exclude user role information, ensuring
compliance with updated data handling practices.

- **Documentation**
- Updated test cases to reflect changes in user role management,
focusing on name and use case updates instead.

These changes enhance the user experience by simplifying user management
and improving data privacy in analytics.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-14 13:36:45 +05:30
Nidhi
8773bdd1e9
chore: Update ObservationHelper to allow sampling of spans (#37345) 2024-11-12 19:43:43 +05:30
Nidhi
d4007e12bc
chore: Switch server tracing configs to use OTEL (#37333) 2024-11-12 13:49:00 +05:30
Manish Kumar
806c710ac3
chore: Modified default behaviour of consolidated API for missing url params and extra url params (#37274)
## Description
- PR for handling Consolidated API when url params are incomplete or
have extra params.

> [!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.Git"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11738054403>
> Commit: f6124cbc2003258953c52d1b06ec3fd806157fbf
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11738054403&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Git`
> Spec:
> <hr>Fri, 08 Nov 2024 08:27:02 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Improved logic for application and page retrieval based on branch
names and application modes.
- Enhanced error handling and logging for better user experience during
page loads.

- **Bug Fixes**
- Resolved issues with application ID fetching when branch names are
present.

- **Tests**
- Added new test cases to cover various scenarios related to page
loading in Git-connected and non-Git applications, ensuring robust
functionality across different contexts.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-08 17:00:20 +05:30
Nilesh Sarupriya
83e75583e3
chore: use spybean for SessionUserService and remove unused method for populating the userId in the ActionExecuteDTO (#37268)
## Description
> Fix test case for EE


Fixes #`Issue Number`  
_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.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11717655239>
> Commit: 87131cbe02fa4e13ef4a88288ffa64a27846c9fc
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11717655239&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Thu, 07 Nov 2024 06:49:49 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **Tests**
- Updated the `sessionUserService` field in the test class to utilize
partial mocking, enhancing the verification of interactions during
tests.
- **Bug Fixes**
- Removed the method responsible for populating user IDs in action
execution, streamlining user identification handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com>
2024-11-07 01:23:20 -06:00
Trisha Anand
08ff8a99f8
fix: Using create action permission for schema generation (#37243)
Currently, schema generation uses execute permission on the datasource
to execute open ended queries for schema generation. Limiting it to
developers who have create action permission on the said datasource (and
hence have been given rights to run any query on the said datasource)
instead of execute datasource permission which is given to everyone.

## Description
> [!TIP]  
> _Add a TL;DR when the description is longer than 500 words or
extremely technical (helps the content, marketing, and DevRel team)._
>
> _Please also include relevant motivation and context. List any
dependencies that are required for this change. Add links to Notion,
Figma or any other documents that might be relevant to the PR._


Fixes #`Issue Number`  
_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  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11702166169>
> Commit: 8946b48ca8cf2ffbb1ce2350c8ecc3fc19fff739
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11702166169&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Wed, 06 Nov 2024 12:46:12 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Updated permission model for accessing datasource schema previews,
enhancing security.
  
- **Bug Fixes**
- Improved error handling for specific exceptions, providing clearer
feedback during errors.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-07 07:14:33 +05:30
sneha122
756dc5421e
fix: skipped unnecessary code for js object updates (#37125)
## Description

This PR is in continuation to
[PR](https://github.com/appsmithorg/appsmith/pull/37062) which we had
merged earlier, In previous, we skipped the redundant calls to update
page layout when updating each js object action, as we already have a
call for [updating the page layout for
actionCollection](27bdeb92b6/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/LayoutCollectionServiceCEImpl.java (L411))

Since we have skipped the update page layout for each js action, we no
longer need the code part after this, which basically fetches page data
from DB and updates the `errorReports` in actionDTO based on layout
`layoutOnLoadActionErrors`. This PR skips this unnecessary part too for
each js action as we do [set the errorReport for actionCollection in the
end](27bdeb92b6/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/LayoutCollectionServiceCEImpl.java (L430))

### Will this have any impact on error messages shown to user?
In order to understand this, checked out the frontend code to see if
errorReports from individual js action is getting consumed on updating
js object, looks like [it is
not](e7e3d5e002/app/client/src/sagas/JSPaneSagas.ts (L316)),
so we can safely remove this piece of code.
However this points to existing bug in the code (as errorReports is not
even getting consumed from actionCollection), which is, when there is
cyclic dependency created for js object with a widget, we don't get any
toast message. Since this is existing issue which is not caused by any
of the above PR implementations, creating separate issue for it and
tracking it [here](https://github.com/appsmithorg/appsmith/issues/37129)

Fixes #37114 
_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.JS, @tag.JS"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11698258739>
> Commit: 9fbde996545451c1a12736e0b8a9252ad4ab69bd
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11698258739&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.JS, @tag.JS`
> Spec:
> <hr>Wed, 06 Nov 2024 06:50:05 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Streamlined layout update process for actions, enhancing performance
and clarity.

- **Bug Fixes**
- Improved test reliability by monitoring interactions with the layout
service and handling cyclic dependencies.

- **Documentation**
- Updated comments to clarify the logic behind layout updates for JS
actions.

- **Tests**
- Enhanced test descriptions and assertions for better clarity and
validation of method interactions, including cyclic dependency
scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2024-11-06 12:55:11 +05:30
Trisha Anand
4e18827512
fix: Only trigger restart if current user is an instance admin. (#37227)
## Description
> [!TIP]  
> _Add a TL;DR when the description is longer than 500 words or
extremely technical (helps the content, marketing, and DevRel team)._
>
> _Please also include relevant motivation and context. List any
dependencies that are required for this change. Add links to Notion,
Figma or any other documents that might be relevant to the PR._


Fixes #`Issue Number`  
_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.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11681598792>
> Commit: 4fa5ebcd78bc8206f9ce3ac5641d9e0605df25f0
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11681598792&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Tue, 05 Nov 2024 10:24:09 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
	- Enhanced user context processing during the restart operation.
	- Improved error handling and configuration for sending test emails.

- **Bug Fixes**
- Addressed issues related to connection testing and email sending with
detailed error messages.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-05 19:19:26 +05:30
Nidhi
7ccb2ea697
chore: Added instance identifiers to observation registry filter (#37209) 2024-11-04 23:53:53 +05:30
Nilesh Sarupriya
a647668814
base changes to populate system info to executeActionDTO (#37091)
## Description
> This PR is the base change for adding any system related info to the
ExecuteActionDTO.

Fixes #`Issue Number`  
_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.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11610567421>
> Commit: 2f5ab4b54717c021b780490320924e9b4d93522e
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11610567421&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Thu, 31 Oct 2024 11:33:58 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **New Features**
- Introduced a new interface and implementation for enhanced action
execution solutions.
- Added functionality to populate action execution data with system and
user information.

- **Bug Fixes**
	- Improved structure and maintainability of action execution logic.

- **Tests**
- Updated test class to include a mock for the new action execution
helper, ensuring future compatibility.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com>
2024-10-31 06:40:42 -05:00
Nidhi
e7e3d5e002
chore: Removed manipulation for custom traceparent header (#37121) 2024-10-30 11:27:25 +05:30
Rishabh Rathod
5bca179116
chore: Add JSObject creation flow metrics (#37064)
## Description

These changes add monitoring spans to analyze the JS action creation
flow.

Fixes https://github.com/appsmithorg/appsmith/issues/37065

## Test the changes
| Case | Screenshot  |
|---|---|
| newRelic metrics for create flow |
![image](https://github.com/user-attachments/assets/314cc1d6-9def-49fc-afe9-4c77e84eaf72)
|


## Automation

/ok-to-test tags="@tag.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11500044480>
> Commit: ebf826f21d3714774a6aa4f443d99d9d89fe6454
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11500044480&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Thu, 24 Oct 2024 13:46:02 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced new constants to enhance action validation and repository
operations.
- Added functionality for improved observability in action creation and
validation processes.
- New constants related to data sources and pages for better tracking
and logging.

- **Bug Fixes**
- Updated existing constants for better alignment with method names,
enhancing clarity and functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-10-28 15:12:28 +05:30
sneha122
4f3645b47e
fix: avoiding unnecessary update page layouts in js action update (#37062)
## Description

When JS object is updated we have a JS object update API call going in
(api/v1/collections/actions) This API does mainly does following things:
1. Updates all actions (Js functions) of the JS object
2. Updates action collection (Js Object)
3. Updates the page layout and on load actions

The issue was with 1st part where, every time we would update the action
(JS function), we were also calling update page layout (3rd part), which
means if we are updating 20 actions, update page layout was getting
called 20 times for each action update. This is in addition to page
layout update that happens after action collection is updated.

This PR fixes that issue and removes those redundant calls for updating
page layout with each action update.

Fixes #37046 
_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.JS, @tag.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11513970737>
> Commit: 95cc7e7e2f4fecc399437d0b8ce64f3fa880e3d9
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11513970737&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.JS, @tag.Sanity`
> Spec:
> <hr>Fri, 25 Oct 2024 08:27:48 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced action processing by introducing conditional layout updates
based on action type, specifically for JavaScript actions.

- **Bug Fixes**
- Improved efficiency by preventing unnecessary layout updates when
actions are of type JavaScript.

- **Tests**
- Added new test coverage for layout update functionality, ensuring
correct invocation of layout services during action collection updates.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2024-10-25 23:12:28 +05:30
Nilansh Bansal
88b987fd18
chore: removed unwanted metrics (#37052)
## Description
> This PR removes the extra metrics that were added which clouded up the
newrelic.
Old PR https://github.com/appsmithorg/appsmith/pull/37010 is to be
closed because extra indentation was added due to the IDE configuration.

Fixes #37051 

## Automation

/ok-to-test tags="@tag.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!IMPORTANT]
> 🟣 🟣 🟣 Your tests are running.
> Tests running at:
<https://github.com/appsmithorg/appsmith/actions/runs/11493693400>
> Commit: 51ecb28956b5c7fa6b12e18428161614017407ba
> Workflow: `PR Automation test suite`
> Tags: `@tag.Sanity`
> Spec: ``
> <hr>Thu, 24 Oct 2024 06:16:14 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No
2024-10-24 06:48:26 +00:00
Rishabh Rathod
dc5fbed66b
chore: Add spans attributes for no of lines and action count (#37001)
## Description


Fixes #36995

## Automation

/ok-to-test tags="@tag.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11455841055>
> Commit: 7285f3f04c37b0a78cf7fa8b9106c0fb5175bc29
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11455841055&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Tue, 22 Oct 2024 08:35:48 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added new constants for layout operations and data extraction to
improve functionality.
- Introduced observability tracking for various methods to enhance
monitoring and performance insights.
- **Bug Fixes**
- Enhanced error handling and logging for action updates and layout
modifications.
- **Refactor**
- Improved clarity and maintainability of methods related to action
collections and layout updates.
- **Chores**
- Updated method signatures to include new observability parameters for
better tracking.
- Added metrics for line and action counts in action collection updates.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-10-22 14:22:29 +05:30
Nilansh Bansal
4f55f52c7f
chore: added instrumentation for js object update (#36999)
## Description
> This PR adds the granular level instrumentation for the JS Object
update calls.

Fixes #36996

## Automation

/ok-to-test tags="@tag.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11444602012>
> Commit: 2e31a47133ff22c6593e4274a648013ac83e4845
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11444602012&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Mon, 21 Oct 2024 17:07:30 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced new constants for action spans, application spans, layout
spans, and page spans to enhance tracking capabilities.
- Enhanced observability features in services related to page load and
executable management.

- **Bug Fixes**
	- Improved error handling for page and layout ID retrieval.

- **Refactor**
- Updated constructors and method signatures to incorporate new
observability dependencies.

These changes aim to improve tracking, error handling, and overall
performance of the application.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-10-22 11:28:10 +05:30
Nidhi
add980838a
chore: Use Lettuce client to run clear keys across Redis nodes (#36862) 2024-10-14 17:11:01 +05:30
Trisha Anand
dfd5a5a780
chore: Refactor UpdateSuperUserMigrationHelperCE for re-use in EE (#36851)
## Automation

/ok-to-test tags="@tag.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11321563633>
> Commit: 402dfb3ae87383f87afc5b343971e5334b79a695
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11321563633&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Mon, 14 Oct 2024 06:12:25 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Enhanced user creation process with automatic generation of user
management permission groups and policies.
- Introduced a new method for creating permission groups associated with
user management.

- **Bug Fixes**
	- Streamlined the assignment of user policies during user creation.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-10-14 13:52:50 +05:30
Trisha Anand
98ca4124e3 Revert "Empty line changes to raise PR"
This reverts commit aabdcbf5a0.
2024-10-09 18:19:59 +05:30
Trisha Anand
aabdcbf5a0
Empty line changes to raise PR 2024-10-09 18:19:09 +05:30
Apeksha Bhosale
28e54fe10d
chore: span push and sentry logs (#36682)
## Description
> [!TIP]  
> _Add a TL;DR when the description is longer than 500 words or
extremely technical (helps the content, marketing, and DevRel team)._
>
> _Please also include relevant motivation and context. List any
dependencies that are required for this change. Add links to Notion,
Figma or any other documents that might be relevant to the PR._


Fixes #`Issue Number`  
_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  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11182676913>
> Commit: c93c9dc7ad26a81f08ab99061e77c9a1b85bfc9e
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11182676913&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Fri, 04 Oct 2024 16:45:18 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **New Features**
- Enhanced error tracking for user creation, login, and sign-up
processes with Sentry integration.
- Added new constants for authentication and authorization processes to
improve logging and tracing.

- **Bug Fixes**
	- Improved error handling for user sign-up failures.

- **Documentation**
- Updated tracing configuration to include additional criteria for
Appsmith-specific spans, enhancing logging for login and signup
activities.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-10-07 11:21:55 +05:30
Nidhi
67c9ae2a27
fix: Clear all session for Spring upgrade (#36695) 2024-10-07 10:31:11 +05:30
Nilansh Bansal
25e83f6603
fix: fixed mysql plugin tests by closing the connections (#36657)
## Description
- This PR fixes the MySql plugin server unit tests which started to fail
after increasing the max connection pool size from 5 to
[20](https://github.com/appsmithorg/appsmith/pull/36631/files). The
failures were due to the `Too Many Connections` error because of the
connections not getting closed.
- In this PR, I have added the code to close connections after each test
is executed.


Fixes #36656 
## Automation

/ok-to-test tags="@tag.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11147034776>
> Commit: 3b9f5791cbd8d95f74f4a89ad204d1d4152445e0
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11147034776&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Wed, 02 Oct 2024 16:20:15 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **Bug Fixes**
- Updated the expected default value for the maximum connection pool
size in tests to ensure accuracy.

- **Chores**
- Improved management of MySQL connection context to prevent resource
leaks in tests.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Manish Kumar <107841575+sondermanish@users.noreply.github.com>
2024-10-02 21:58:14 +05:30