Commit Graph

3066 Commits

Author SHA1 Message Date
Ankita Kinger
f7e8aada2e
ci: Fixing the page actions spec (#40328)
## Description

Fixing the page actions spec that was failing after
[#40322](https://github.com/appsmithorg/appsmith/pull/40322) merge

Fixes #

## Automation

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

### 🔍 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/14587020719>
> Commit: d46229ad5cef61fdfa1eaee3adc38d38faac2b3a
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14587020719&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.IDE`
> Spec:
> <hr>Tue, 22 Apr 2025 05:28: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

- **Tests**
- Updated test assertions to check the "data-subtle" attribute instead
of "data-disabled" when verifying the UI state of hidden pages.
  - Added a tag to the test suite for improved categorization.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-22 11:35:14 +05:30
Jacques Ikot
5a6479c5dd
feat: reset table when infinite scroll is turned on (#40066)
## 🐞 Problem

We've identified several issues with the TableWidgetV2's infinite scroll
functionality:

- **Stale Data After Toggle**  
When users enable infinite scroll for the first time, the table's state
and cached data aren't properly reset, potentially leading to incorrect
data display and inconsistent behavior.

- **Height Changes Breaking Existing Data**  
When a table's height is increased while infinite scroll is enabled, the
existing cached data becomes invalid due to changing offsets, but the
table wasn't resetting its state accordingly.

- **Empty Initial View**  
When loading a table with infinite scroll enabled, rows were not visible
during the initial load until data was fetched, creating a jarring user
experience.

- **Disabled Properties Still Rendering Controls**  
Property controls that should be disabled (based on section disabling
conditions) were still being rendered and active, causing unexpected
behavior.

---

##  Solution

### 1. Implement Table Reset on Infinite Scroll Toggle

Added a new method `resetTableForInfiniteScroll()` that properly resets
the table's state when infinite scroll is enabled. This method:

- Clears cached table data  
- Resets the "end of data" flag  
- Resets all meta properties to their default values  
- Sets the page number back to `1` and triggers a page load

```ts
resetTableForInfiniteScroll = () => {
  const { infiniteScrollEnabled, pushBatchMetaUpdates } = this.props;

  if (infiniteScrollEnabled) {
    // reset the cachedRows
    pushBatchMetaUpdates("cachedTableData", {});
    pushBatchMetaUpdates("endOfData", false);

    // reset the meta properties
    const metaProperties = Object.keys(TableWidgetV2.getMetaPropertiesMap());
    metaProperties.forEach((prop) => {
      if (prop !== "pageNo") {
        const defaultValue = TableWidgetV2.getMetaPropertiesMap()[prop];
        this.props.updateWidgetMetaProperty(prop, defaultValue);
      }
    });

    // reset and reload page
    this.updatePageNumber(1, EventType.ON_NEXT_PAGE);
  }
};
```

---

### 2. Reset on Height Changes

Added a check in `componentDidUpdate` to detect height changes and reset
the table when needed:

```ts
// Reset widget state when height changes while infinite scroll is enabled
if (
  infiniteScrollEnabled &&
  prevProps.componentHeight !== componentHeight
) {
  this.resetTableForInfiniteScroll();
}
```

---

### 3. Improved Empty State Rendering

Modified the `InfiniteScrollBodyComponent` to show placeholder rows
during initial load by using the maximum of `rows.length` and
`pageSize`:

```ts
const itemCount = useMemo(
  () => Math.max(rows.length, pageSize),
  [rows.length, pageSize],
);
```

This ensures the table maintains its expected height and appearance even
before data is loaded.

---

### 4. Fixed Property Control Rendering

Fixed the `PropertyControl` component to respect the `isControlDisabled`
flag by conditionally rendering the control:

```ts
{!isControlDisabled &&
  PropertyControlFactory.createControl(
    config,
    {
      onPropertyChange: onPropertyChange,
      // ...other props
    },
    // ...other args
  )}
```

This prevents disabled controls from being rendered and potentially
causing issues.

---

These improvements significantly enhance the stability and user
experience of **TableWidgetV2**'s infinite scroll functionality.


Fixes #39377 

## Automation

/ok-to-test tags="@tag.Table, @tag.Widget, @tag.Binding, @tag.Sanity,
@tag.PropertyPane"

### 🔍 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/14373134089>
> Commit: 2b0715bbbe2e9a254cd287f831329be529a17c3c
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14373134089&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Table, @tag.Widget, @tag.Binding, @tag.Sanity,
@tag.PropertyPane`
> Spec:
> <hr>Thu, 10 Apr 2025 07:15:53 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**
- Property panels now display controls only when enabled, enhancing
clarity.
- Table widgets offer smoother infinite scrolling with automatic resets
on state or size changes.
- Columns dynamically adjust for optimal display when infinite scrolling
is active.
- **Bug Fixes**
- Improved handling of item counts and loading states in infinite
scrolling.
- **Refactor**
- Improved performance through optimized item computations and
streamlined scrolling logic.
	- Removed redundant loading button logic for a cleaner user experience.
- **Tests**
- Expanded test scenarios to verify improved content wrapping and rich
HTML rendering in table cells, with a focus on internal logic and
behavior.
- Enhanced clarity and robustness of infinite scroll tests by verifying
loading through scrolling actions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Rahul Barwal <rahul.barwal@appsmith.com>
2025-04-10 03:58:15 -07:00
Rahul Barwal
961cbd28bf
refactor: update terminology for new row options in select widget (#40209)
## Description

Adhering to user recommendation:
https://github.com/appsmithorg/appsmith/issues/20230#issuecomment-2785940800

Updated the label to clarify the meaning of config.

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.Widget"

### 🔍 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/14375355147>
> Commit: 7b0f939203b3d3efa7c0795bf7855bd553ecf430
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14375355147&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Widget`
> Spec:
> <hr>Thu, 10 Apr 2025 09:18:51 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 the Table widget’s configuration label from “Same options in
new row” to “Use top row values in new rows” to provide clearer guidance
on how select options work when adding rows.
- Enhanced test descriptions to reflect the updated terminology,
ensuring clarity in functionality related to select options when adding
new rows.
  
- **Bug Fixes**
- Adjusted test logic to ensure correct visibility of new row select
options based on the updated configuration setting.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-10 15:58:52 +05:30
Aman Agarwal
af2f442587
fix: added cypress test for basic infinite table scroll (#40132) 2025-04-09 11:47:27 +05:30
Ankita Kinger
2d4acf37b6
fix: Blocking disconnection of the only connected auth method in admin settings (#40150)
## Description

Blocking disconnection of the only connected auth method in admin
settings to avoid locking out the user.

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.Settings, @tag.Authentication, @tag.SignIn"

### 🔍 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/14326343041>
> Commit: 1c158e140b141597640afd57ca0c3c72c74df194
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14326343041&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Settings, @tag.Authentication, @tag.SignIn`
> Spec:
> <hr>Tue, 08 Apr 2025 06:31:56 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**
- Updated Google login handling to ensure the system now accurately
verifies when Google OAuth is enabled, improving the reliability of
authentication.
- Enhanced the categorization of test cases related to Form Login and
Google authentication, ensuring more precise test execution.

- **Refactor**
- Streamlined login settings management in the admin interface by
removing redundant state management, ensuring consistent and up-to-date
behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-08 12:32:25 +05:30
Ankita Kinger
ba4e29fb82
fix: Updating admin settings logic to fix issues on EE (#40135)
## Description

Updating admin settings logic to fix issues on 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.Settings"

### 🔍 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/14315577260>
> Commit: 1b0c2823290e6af5849b096d640ac856964a0d4c
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14315577260&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Settings`
> Spec:
> <hr>Mon, 07 Apr 2025 17:54:10 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**
- Admin Settings now displays Profile and Organisation sections whenever
available, independent of user privileges.
- Updated category filtering ensures non-superusers see only the most
relevant options.
- Introduced a new locator for the sub-text link in Admin Settings to
improve test coverage.

- **Style**
- Enhanced link presentation in the Admin Settings page for clearer
navigation.

- **Bug Fixes**
- Simplified test logic for Admin settings, improving the reliability of
test cases.
- Ensured consistent boolean handling for user superuser status across
various components.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-08 00:41:02 +05:30
Ankita Kinger
e9cca6a56f
feat: Updating admin settings page as per new designs (#40101)
## Description

Updating admin settings page as per new designs:

https://www.figma.com/design/XouAwUQJKF2lf57bQvNM1e/Cloud-Billing-(-Phase-1-)?node-id=15907-10916&m=dev


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.Settings"

### 🔍 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/14302998753>
> Commit: 259bdc292d08fd3f6cc4ffb2fce833b71c123d2e
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14302998753&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Settings`
> Spec:
> <hr>Mon, 07 Apr 2025 07:33: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 an updated profile page for managing account details and
profile images.
- Expanded and restructured the Admin Settings with clear sections like
Instance Settings, Configuration, User Management, Branding, and
Profile.
  - Added new icons that enhance the visual experience.
- Implemented a new styled component for conditional rendering of links
in settings.
  - Added user settings for session management and Git configuration.
- Enhanced test cases for Admin Settings to ensure proper navigation and
functionality.
- Introduced a new configuration for instance settings, allowing for
detailed management options.
- Added a new configuration for profile settings, enhancing user
management capabilities.
- Introduced a new configuration for email settings, reflecting
organizational needs.

- **Bug Fixes**
- Revised the save button text to “Save Changes” and refined success
notifications.

- **Refactor**
- Streamlined routing and configuration for a more intuitive and
consistent Admin Settings experience.
- Updated category management logic in the LeftPane component to focus
on user management and organizational categories.
- Modified the filtering logic in admin settings helpers for improved
clarity and functionality.
- Enhanced the overall structure of test cases for better organization
and clarity.

- **Style**
  - Updated header and layout styling for improved visual consistency.
  - Enhanced the visual presentation of the SettingsSubHeader component.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-07 15:44:20 +05:30
Hetu Nandu
e470d1cb4f
chore: Update Anvil border radius test (#40103)
## Description

Update tests post
17ac31267b

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

<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/14301296428>
> Commit: 6f3ec15f89b30b141747c7d9d8df85e5529b5ad5
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14301296428&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Anvil`
> Spec:
> <hr>Mon, 07 Apr 2025 05:34:01 UTC
<!-- end of auto-generated comment: Cypress test results  -->


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

## Summary by CodeRabbit

- **Style**
- Refined the rounding on interface elements to deliver a more balanced
and modern visual appearance, resulting in smoother and more consistent
component styling.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-07 12:45:34 +05:30
Ankita Kinger
52a08409dc
feat: Remove email verification setting for Multi organization flow (#40073)
## Description

Removing email verification setting for Multi organization flow

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.Settings"

### 🔍 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/14249110861>
> Commit: 0d9eaeb7b000123871fada897c346729f3751757
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14249110861&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Settings`
> Spec:
> <hr>Thu, 03 Apr 2025 17:52:51 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

- **Chores**
  - Removed an outdated configuration flag from the default settings.

- **New Features**
- Enhanced multi-organization support for admin settings, with certain
configurations (e.g., email verification) now conditionally hidden.
- Updated the presentation of notification and warning messages,
switching from link-based displays to more prominent callout styles for
improved clarity.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-04 10:35:08 +05:30
Aman Agarwal
565387464c
fix: on adding redirectUrl to the logout function, the url was not encoded (#40071) 2025-04-04 10:33:06 +05:30
Jacques Ikot
4b66e0c8ee
feat: implement infinite scroll hook (#40050)
#  Optimized Infinite Scrolling for TableWidgetV2  

## 📌 Problem  
The **infinite scrolling** feature in **TableWidgetV2** did not load the
correct number of pages (2) on init, and the table rows length was more
than the data fetched
 
##  Solution  
This PR optimizes **infinite scrolling** by:    
- 📥 **Automatically loading the next page of data** when the initial
rows are **≤ 1 page**
- 📊 **Simplifying row count management** by using the actual **rows
length** instead of relying on `totalRecordsCount` which does not tell
actual rows loaded into the table

---  

### 🚀 How to Test  
1. Enable **Infinite Scroll** in **TableWidgetV2**.  
2. Ensure that additional pages (page 2) loads **automatically** when
the initial rows are ≤ 1 page.
3. Verify that **pagination behavior remains consistent** with expected
results.



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.Widget, @tag.Table, @tag.Binding, @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/14241762644>
> Commit: 8bf69c9dc7cddee2ef272750797ab2c6cd854028
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14241762644&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Widget, @tag.Table, @tag.Binding, @tag.Sanity`
> Spec:
> <hr>Thu, 03 Apr 2025 12:53:32 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 `useInfiniteScroll` hook to enhance infinite
scrolling functionality in the table widget.
  
- **Refactor**
- Simplified pagination logic by directly utilizing the length of the
rows array, improving performance and clarity.
  
- **Bug Fixes**
- Adjusted test data and assertions in the Cypress test suite to better
reflect the expected behavior of the table widget under varying content
conditions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Rahul Barwal <rahul.barwal@appsmith.com>
2025-04-03 06:58:56 -07:00
Aman Agarwal
703363f227
feat: added global logout feature (#39942) 2025-04-02 12:20:06 +05:30
Rahul Barwal
a1181523df
feat: Add programmatic state change validation for Checkbox widget (#39980)
## Description
In the case of programmatically changing the checkbox state, the
onCheckboxChange event was not being triggered. I have added logic to
handle this issue.

Fixes #`Issue Number`  
_or_  
Fixes https://github.com/appsmithorg/appsmith-ee/issues/6823
> [!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.Checkbox"

### 🔍 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/14169747454>
> Commit: 81c1da076cf7d5abbbae65c0c4cf6d5906fc1d3b
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14169747454&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Checkbox`
> Spec:
> <hr>Mon, 31 Mar 2025 11:11: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**
- Enhanced the checkbox widget to reflect programmatic state changes
with corresponding UI updates and notifications.
- **Tests**
- Added a new automated test case to validate that programmatic changes
to the checkbox state trigger the appropriate alerts and update the UI
accordingly.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-31 16:44:20 +05:30
Rahul Barwal
b9c05c1813
test: fix cypress tests for custom widgets (#39905)
## Description
Updates the specs with new doc structure in custom widget.


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.Widget"

### 🔍 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/14126379520>
> Commit: c043c29f610f3f8f5520759ef71a49f772cfdc68
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14126379520&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Widget`
> Spec:
> <hr>Fri, 28 Mar 2025 11:26:17 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 a new text display within the custom widget to showcase the
current tip index.
- **Refactor**
- Enhanced the custom widget’s layout and styling, resulting in a
cleaner interface and more consistent appearance for a smoother user
experience.
- Updated import statements for React and ReactDOM to improve
consistency and clarity in the code.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-28 18:06:05 +05:30
Rahul Barwal
300e7d7c30
chore: Update feature flag name for infinite scroll functionality (#39876)
## Description
The feature flag was incorrectly named, and that flag key cannot be
changed directly in Launch. To address this, I will update the flag name
in the code itself instead of creating an additional flag.

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.Table"

### 🔍 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/14122296394>
> Commit: d298c9616047cc928361b6729d1bb256e328536f
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14122296394&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Table`
> Spec:
> <hr>Fri, 28 Mar 2025 05:36:33 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

- **Chores**
- Updated the feature flag for infinite scroll behavior on release
tables to enhance clarity and consistency in naming.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-28 13:13:44 +05:30
albinAppsmith
f7664d1edc
fix: form login cypress failure (#39948)
## Description

This PR fixes, form login cypress failure EnableFormLogin_spec.js


Fixes #39947

## Automation

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

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!WARNING]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/14100890417>
> Commit: d744aa771c096a9cbc3edb0c51c4b83f20df49aa
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14100890417&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: @tag.Settings
> 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/14100890417"
target="_blank">workflow here</a>.
> <hr>Thu, 27 Mar 2025 07:38:35 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**
- Improved the efficiency of authentication form tests by eliminating
unnecessary waiting periods after updating login and signup settings.
- The first test case has been updated with a new tag for better
organization.
- These changes streamline the testing process, resulting in faster
feedback during development cycles. While the user interface remains
unchanged, this improvement supports robust performance and quality
assurance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-27 13:29:00 +05:30
Abhijeet
73e239b9f8
chore: Move signup_disabled and form_login_enabled from envs to DB (#39882)
## 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._


/test Settings

### 🔍 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/14058953075>
> Commit: 80445acc542f201c01a40a09323097a946959e50
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14058953075&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Settings`
> Spec:
> <hr>Tue, 25 Mar 2025 12:19:59 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**
- Organizations now control form login and signup behavior with updated,
clearer configuration flags.
- **Refactor**
- Renamed settings to reflect an enabled state for form login and a
disabled state for signup.
- Removed deprecated restart functionality and reorganized utility
classes for improved maintainability.
- **Chores/Tests**
- Updated tests and environment examples to align with the new
configuration settings and ensure consistent behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-26 11:26:00 +05:30
NandanAnantharamu
c505c5cf59
test: analyse flaky fork test (#39531)
/ok-to-test tags="@tag.Fork"



<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/14026980171>
> Commit: 08aa8ea9364fa72c6cc6a53fc2edc05e375d0989
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14026980171&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Fork`
> Spec:
> <hr>Mon, 24 Mar 2025 04:27:51 UTC
<!-- end of auto-generated comment: Cypress test results  -->


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

## Summary by CodeRabbit

- **Tests**
- Disabled automated tests that validate application forking workflows.
	  *(No visible changes to application functionality.)*

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

---------

Co-authored-by: “NandanAnantharamu” <“nandan@thinkify.io”>
2025-03-24 10:56:42 +05:30
NandanAnantharamu
1b63c8722c
test: commenting tests with open bug for delete branch (#39369)
/ok-to-test tags="@tag.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/14027023498>
> Commit: b534037d9908fb042b3e4e66d27fff7cb0831030
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14027023498&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Mon, 24 Mar 2025 04:47:57 UTC
<!-- end of auto-generated comment: Cypress test results  -->


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

## Summary by CodeRabbit

- **Tests**
- Temporarily disabled internal tests related to branch deletion to
reflect an identified issue. These adjustments ensure our quality checks
remain aligned with current conditions without impacting your
experience.

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

Co-authored-by: “NandanAnantharamu” <“nandan@thinkify.io”>
2025-03-24 10:56:05 +05:30
Abhinav Jha
9de62e0d0f
chore: Upgrade packages to resolve Dependabot issues (#39710)
## Description
- Fix XSS issue by upgrading packages such that the
`serialize-javascript` dependency resolves to `v6.0.2`
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/376

- Fix XSS issue by upgrading `esbuild` to `v0.25.1`
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/367

- Fix vite vulnerability by upgrading `vite` to `v6.2.1` (this is a
major version upgrade and effects the `storybook` package)
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/364
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/334
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/336


- Fixes TinyMCE XSS vulnerabilities by upgrading `tinymce` to `v7.7.1`
and `tinymce-react` to `v6.0.0` (Major version upgrade)
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/347
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/348
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/290

- Fix vulnerability in `webpack` by upgrading to `v5.98.0`
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/324

- Fix vulnerability in `@sentry/browser` by upgrading `@sentry/react` to
`v7.120.3` (Major version upgrade)
_Note: [`Severity` enum has been
deprecated](https://docs.sentry.io/platforms/javascript/migration/v7-to-v8/#removal-of-severity-enum)_
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/345

- Fix vulnerability in `axios` by upgrading to `v1.8.3`
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/391

- Fix vulnerability in `@babel/runtime` by upgrading to `v7.26.10`
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/393

- Fix vulnerability in `@babel/helper` by upgrading `@babel/core` to
`v7.26.10`
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/392

- Fix vulnerability in `prismjs` by upgrading to `v1.30.0`
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/390

- Fix vulnerability in `cookie` by upgrading to `v0.7.0`
Fixes https://github.com/appsmithorg/appsmith/security/dependabot/346

## 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/13967528524>
> Commit: 6a36c9755e7df9e22c1c109876c127b963127a71
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13967528524&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Thu, 20 Mar 2025 12:03:08 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 the text editor experience by introducing quick
markdown-style shortcuts for headings, lists, and quotes.
- **Chores**
- Upgraded numerous underlying libraries and tools for improved
performance and stability.
- Streamlined error logging by refining how errors are categorized and
reported.
- Improved accessibility by updating element selectors to use
`aria-label` attributes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-20 17:39:13 +05:30
Jacques Ikot
c162311f43
feat: implement table widget infinite scroll with dynamic height (#39646)
## Description
This PR adds support for variable height rows in the Table Widget when
using infinite scroll. The implementation dynamically adjusts row
heights based on content, particularly for wrapped text and HTML
content.

## Key Features
1. **Dynamic Row Height Calculation**: Rows automatically resize based
on content length when cell wrapping is enabled or HTML content is
present
2. **Smooth Infinite Scrolling**: Maintains smooth scrolling performance
while supporting variable height rows
3. **Responsive Layout**: Rows adjust in real-time when table data
changes or when cell wrapping is toggled

## Implementation Details
The implementation replaces the fixed-size virtual list with a
variable-size virtual list that can handle rows of different heights:
1. Created a new `BaseVirtualList` component that uses
`VariableSizeList` from react-window
2. Added row height measurement logic in the `Row` component to
calculate optimal heights
3. Implemented a context-based system to store and update row heights
4. Created a utility hook `useColumnVariableHeight` to track columns
that need variable height handling

## Testing
Added comprehensive Cypress tests that verify:
1. Fixed height behavior when cell wrapping is disabled
2. Increased row heights when cell wrapping is enabled
3. Dynamic height updates when content changes
4. Proper handling of HTML content that have extended heights
5. Reverting to fixed height when wrapping is disabled


Fixes #39089  

## Automation

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

### 🔍 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/13946877628>
> Commit: 9f50f22adcb8a8ab9c2aa566c7a0f21e49d1beee
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13946877628&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Widget, @tag.Sanity, @tag.Binding`
> Spec:
> <hr>Wed, 19 Mar 2025 14:39:17 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 the table widget to automatically adjust row heights based on
varying content lengths, wrapping settings, and HTML content for a
smoother user experience.
- Improved performance with optimized virtualization of table rows,
ensuring efficient rendering and smooth infinite scrolling.

- **Tests**
- Added a comprehensive test suite validating the table’s behavior under
fixed, dynamic, and updated content conditions, ensuring consistent row
height adjustments during user interactions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Rahul Barwal <rahul.barwal@appsmith.com>
2025-03-20 10:23:37 +01:00
Hetu Nandu
c6460d359b
chore: Fix DS_Bug26941 spec error assertion (#39815)
## Description

Updates the error message assertion in DS_Bug26941_Spec.ts


## Automation

/ok-to-test tags="@tag.Datasource, @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/13963497727>
> Commit: 143ec48d157ff1e05479106b31bf9093361eeb6f
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13963497727&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Datasource, @tag.Sanity`
> Spec:
> <hr>Thu, 20 Mar 2025 07:49:21 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

- **Tests**
- Enhanced automated test routines to improve the monitoring and
verification of API error scenarios for increased reliability.
- Added additional logging and assertions to capture detailed API
response information during error handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-20 07:49:26 +00:00
Pawan Kumar
8de1de8db5
chore: add a dummy test for aiagents (#39816)
/ok-to-test tags="@tag.AIAgents"

Context for this PR -
https://theappsmith.slack.com/archives/C06CG2HNUKB/p1742291871620149

There are no cypress tests for AIAgent on CE repo. Not sure about the
root cause, but because of this cypress is running the tests that are
marked as skip. So just adding a dummy spec so that cypress don't act
weird.

<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/13963612254>
> Commit: 3a79f55e25f3ec59b0394f95569db1b99dfeccf7
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13963612254&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.AIAgents`
> Spec:
> <hr>Thu, 20 Mar 2025 07:13:18 UTC
<!-- end of auto-generated comment: Cypress test results  -->


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

- **Tests**
- Introduced a new automated end-to-end test suite for dummy assertions
to enhance regression testing.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-20 12:52:14 +05:30
NandanAnantharamu
1133d6d8dd
test: updated boolean spec (#39789)
/ok-to-test tags="@tag.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/13938545009>
> Commit: d8fa3afd6c61f7c95f112e3ebe5160beba8b8a4e
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13938545009&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Wed, 19 Mar 2025 04:38:53 UTC
<!-- end of auto-generated comment: Cypress test results  -->

Co-authored-by: “NandanAnantharamu” <“nandan@thinkify.io”>
2025-03-19 10:35:12 +05:30
Rahul Barwal
ab9bd1060f
fix: removes unnecessary req.continue() call in startServerAndRoutes command (#39745)
## 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.Widget, @tag.AIAgents, @tag.Anvil, @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/13895932231>
> Commit: ba0059c39b060ba93114cf0214bc64b135273340
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13895932231&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Widget, @tag.AIAgents, @tag.Anvil, @tag.Sanity`
> Spec:
> <hr>Mon, 17 Mar 2025 11:09:52 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

- **Tests**
- Refined the automated testing flow to ensure more controlled handling
of application request processes.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-17 16:47:26 +05:30
Pawan Kumar
28d1bb7f19
chore: fix anvil tests (#39740)
/ok-to-test tags="@tag.Anvil"

<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/13892555180>
> Commit: ff664767ae7d5871a766bf417a2e9755ad0fac53
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13892555180&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Anvil`
> Spec:
> <hr>Mon, 17 Mar 2025 06:19:10 UTC
<!-- end of auto-generated comment: Cypress test results  -->


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

## Summary by CodeRabbit

- **Tests**
- Enhanced the automation for creating new applications during testing.
Under certain test scenarios, the system now alters the payload to
simulate different application configurations, improving test
reliability and consistency.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-17 12:02:29 +05:30
Ankita Kinger
e1d09b47d3
chore: Removing the feature flag for using Entity Item component from ADS templates (#39093)
## Description

Removing the feature flag for using Entity Item component from ADS
templates in the Entity Explorer in App Editor.

Fixes [#39067](https://github.com/appsmithorg/appsmith/issues/39067)

## 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/13804174182>
> Commit: 8a4a2007c8e1411a9baa388cf841e5e489cb6778
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13804174182&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Wed, 12 Mar 2025 06:32:35 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 entity renaming: input fields now automatically clear
previous text for smoother editing.
- Enhanced page navigation: active selections are now verified more
consistently, ensuring clearer context.
  - New feature flag added for enhanced entity item visibility.
- Added new methods for improved entity selection and verification in
tests.
- Introduced `parentId` properties in widget definitions to enhance
hierarchical structure.
- Updated selectors for widget names and collapsible elements in tests
for improved targeting.

- **Bug Fixes**
- Resolved issues with inconsistent element detection and state feedback
for a more stable interface.

- **Refactor**
- Updated widget hierarchy and locator logic for improved layout
rendering and overall UI consistency.
- Modified locator strategies to enhance element targeting across
various components.
  - Simplified method signatures for better clarity and maintainability.
  - Enhanced test selectors to improve reliability and maintainability.
- Removed obsolete commands and streamlined interaction methods in
tests.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
Co-authored-by: Hetu Nandu <hetu@appsmith.com>
2025-03-14 17:40:02 +05:30
Sagar Khalasi
445880f5a5
chore: Remove dependancy (#39389)
## Description
Remove immer library


Fixes #
https://theappsmith.slack.com/archives/C0134BAVDB4/p1740028929478969?thread_ts=1738822154.732719&cid=C0134BAVDB4

## 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/13455561224>
> Commit: f695cd9f06e06c23a2a6ead401149045f2ac4bec
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13455561224&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Fri, 21 Feb 2025 12:20:17 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

- **Chores**
	- Refined error logging for improved troubleshooting clarity.
	- Removed an unnecessary dependency to streamline project maintenance.
- Updated state management implementation in the reducer for enhanced
performance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Vemparala Surya Vamsi <vamsi@appsmith.com>
2025-03-12 03:49:02 +00:00
Sagar Khalasi
eeb3abb8f2
fix: fix test cases for postgres2 (#39648)
## Description
RCA: Found that vessel table is present. Just added drop query for make
sure spec is running smoothly.

Fixes #
https://app.zenhub.com/workspaces/qa-63316faf86bb2e170ed2e46b/issues/gh/appsmithorg/appsmith/39647

## Automation

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

### 🔍 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/13761525907>
> Commit: 128cf5f471a1b577d22df46ffff8c1f7c564d015
> Workflow: `PR Automation test suite`
> Tags: `@tag.Datasource`
> Spec: ``
> <hr>Mon, 10 Mar 2025 09:44:13 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

- **Bug Fixes**
- Modified the database setup process to ensure any previous table
instances are cleared before creation, preventing potential conflicts.
- **Tests**
- Enhanced the reliability of automated tests by establishing a
consistent and error-free environment for database operations.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-10 10:34:50 +00:00
Laveena Enid
ac1049c810
chore: added tag to exclude from map widget spec from airgap (#39645)
## Description
Added tag to exclude from map widget spec from airgap


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/13759569874>
> Commit: 7bd6cac649ac715267c5149f15f6f85bddbc0ff2
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13759569874&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Mon, 10 Mar 2025 08:38:39 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

- **Tests**
- Enhanced test suite configuration by adding an environment-specific
tag to allow selective exclusion of certain tests, improving flexibility
in managing test execution across different deployment contexts.

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

Signed-off-by: Laveena Enid <laveena@appsmith.com>
2025-03-10 14:55:02 +05:30
Shrikant Sharat Kandula
32ed0ac9ad
fix: Use Spring's native CSRF protection, and fix login page (#37292)
## Description

The login page, and a few other pages are exempted from CSRF today and
aren't doing any check at all. This makes our login page vulnerable to
CSRF. But it's not really exploitable in its current form, since there's
other points in the login flow that patch this hole up.

Nevertheless, CSRF being possible on the login form doesn't sound good
in any tone and context. This PR fixes this by not exempting _anything_
from CSRF, and doing a stateless CSRF check where necessary.

PR summary:

1. Switches from our home-built CSRF filter implementation to Spring's
native implementation.
2. Login form and a few others were previously exempted from CSRF
checks, and now that exemption is gone. This is why we need the
`X-Requested-By: Appsmith` for the login/signup form submission calls
from Cypress.
3. Removes the check on `Content-Type: application/json` header.
Previously, if a request had this header, it was considered exempt from
CSRF check. This has been removed as it appears it's not a safe
assumption in today's JSON-dominated web.

⚠️ verify SCIM flow before merging.

## Automation

/test 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/13697073430>
> Commit: 0873799e2346e58dac3d59b1a3890b86ab17d5b4
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13697073430&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Thu, 06 Mar 2025 12:13:19 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 `CsrfTokenInput` component to enhance security during
user authentication and signup processes by including a CSRF token.

- **Improvements**
- Enhanced API request headers for login and signup commands to improve
security.
- Added cookie validation for successful login to ensure session
integrity.
  - Improved error handling for database operations.

- **Bug Fixes**
- Removed outdated CSRF filter to streamline CSRF protection handling in
the application.

- **Tests**
- Added comprehensive unit tests for CSRF protection to ensure correct
behavior under various scenarios.
- Introduced a new test suite for testing CSRF logout and login
functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-08 21:01:02 +05:30
Pawan Kumar
f209c31e04
chore: export anvil locators (#39624)
/ok-to-test tags="@tag.Anvil"

<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/13720487258>
> Commit: 1e7dc782974a780a7eb39dcaa3618c14853d5e13
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13720487258&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Anvil`
> Spec:
> <hr>Fri, 07 Mar 2025 12:40:56 UTC
<!-- end of auto-generated comment: Cypress test results  -->


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

## Summary by CodeRabbit

- **Chores**
- Improved the modularity of our widget selection system, enhancing its
integration and maintainability.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-07 18:11:11 +05:30
Pawan Kumar
c027e9395c
chore: AI Chat e2e tests (#39490)
/ok-to-test tags="@tag.Anvil"

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

- **New Features**
- Introduced an AI Agents integration tag, broadening the available
options for future enhancements.
- Added new public methods for retrieving widget, datasource, and action
states, improving testability and state management.

- **Tests**
- The text input component now supports a new testing identifier
attribute, greatly improving targeting in automated tests.
- Enhanced testing commands provide more reliable state tracking and
feature flag management, contributing to a more stable application
experience.
<!-- 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/13719108635>
> Commit: d7fc099930a658b3d68cc5ef063661df02765801
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13719108635&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Anvil`
> Spec:
> <hr>Fri, 07 Mar 2025 11:14:32 UTC
<!-- end of auto-generated comment: Cypress test results  -->
2025-03-07 17:33:16 +05:30
Hetu Nandu
a3794dc0ea
feat: Trigger autocomplete even outside bindings (#39446)
## Description

Shows autocomplete with results in binding brackets `{{ <result> }}`
when the user is typing something outside the binding

Fixes #39112

## 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/13699728311>
> Commit: cd3816b05a8e36e7218af2ab6fb4c23046ab99ba
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13699728311&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Thu, 06 Mar 2025 14:46:52 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 a new utility function for determining when to show
autocomplete suggestions in the code editor.
- Enhanced the code editor autocomplete for more context-aware
suggestions and improved cursor handling, resulting in a smoother
editing experience.
- **Refactor**
- Standardized input formatting across components to ensure consistent
handling of data in widget interactions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-07 13:35:16 +05:30
Aman Agarwal
9b40482c1e
fix: antd library package update for custom widget (#39574) 2025-03-05 20:43:07 +05:30
Jacques Ikot
c0e6c3c0ba
fix: map widget marker onClick duplication (#39517)
## Description
When clicking on a marker in the Map Widget, the onMarkerClick event was
being triggered twice for a single click, causing duplicate actions and
potentially unexpected behavior in applications.

```js
// In MapWidget/widget/index.tsx
onMarkerClick = (lat?: number, long?: number, title?: string) => {
  this.disableDrag(true);
  const selectedMarker = {
    lat: lat,
    long: long,
    title: title,
  };
  console.log("🚀 ~ MapWidget ~ title:", title); // This was logging twice

  this.props.updateWidgetMetaProperty("selectedMarker", selectedMarker, {
    triggerPropertyName: "onMarkerClick",
    dynamicString: this.props.onMarkerClick,
    event: {
      type: EventType.ON_MARKER_CLICK,
    },
  });
};
```

## Root Cause
This happens because:
1. The Marker component was adding duplicate event listeners to the
Google Maps marker.
2. Two separate useEffect hooks were both adding "click" event
listeners:
   - One during marker initialisation
   - Another in a separate useEffect that tracks the onClick prop

```js
// First listener in initialization useEffect
googleMapMarker.addListener("click", () => {
  if (onClick) onClick();
});

// Second listener in a separate useEffect
marker.addListener("click", () => {
  if (onClick) onClick();
});
```
3. When a marker was clicked, both event listeners fired, causing the
onClick callback to execute twice.
4. This resulted in onMarkerClick being called twice for a single user
interaction.

## Solution
Modify the `Marker.tsx` component to avoid adding duplicate event
listeners:
1. Remove the click event listener from the initialisation useEffect
2. Add proper cleanup for event listeners using clearListeners and
removeListener
3. Store the listener reference to properly remove it in the cleanup
function
4. Apply the same pattern to the dragend event listener

```js
// track on onclick - with proper cleanup
useEffect(() => {
  if (!marker) return;

  // Clear existing click listeners before adding a new one
  google.maps.event.clearListeners(marker, "click");
  
  // Add the new click listener
  const clickListener = marker.addListener("click", () => {
    if (onClick) onClick();
  });

  // Return cleanup function
  return () => {
    google.maps.event.removeListener(clickListener);
  };
}, [marker, onClick]);
```

## Why this works
1. Properly cleans up existing listeners before adding new ones
2. Ensures only one click handler is active at any time
3. Prevents event handler duplication during component re-renders

## Testing
Added a Cypress test that verifies the marker click event triggers
exactly once per click:
1. Creates a map widget with a marker
2. Uses a JS Object to track click count
3. Verifies the click count increments by exactly 1 for each click
4. Ensures no duplicate events are triggered


Fixes #39514 

## Automation

/ok-to-test tags="@tag.Widget, @tag.Sanity, @tag.Maps, @tag.Binding"

### 🔍 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/13673511245>
> Commit: 3c025ebd9dd85a3c409bc1582e13e324d8dbb2cd
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13673511245&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Widget, @tag.Sanity, @tag.Maps, @tag.Binding`
> Spec:
> <hr>Wed, 05 Mar 2025 11:49:24 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

- **Bug Fixes**
- Enhanced the behavior of map markers so they respond more reliably to
user interactions like clicking and dragging, addressing issues that
could affect overall stability.

- **Tests**
- Added comprehensive tests to ensure marker functionality remains
consistent and dependable during use.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-05 15:25:52 +01:00
Laveena Enid
7a59d3d43a
chore: added exclude airgap tag (#39558)
## Description
Add the @tag.excludeForAirgap


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.Hubspot"

### 🔍 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/13669120033>
> Commit: ca53324880d5cc85b0fc1412e3ff7fc1d9e8f7a2
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13669120033&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Hubspot`
> Spec:
> <hr>Wed, 05 Mar 2025 05:44:19 UTC
<!-- end of auto-generated comment: Cypress test results  -->


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

Signed-off-by: Laveena Enid <laveena@appsmith.com>
2025-03-05 11:27:27 +05:30
Valera Melnikov
836b5a5327
fix:codeowners file (#39447)
## Description
**Github changes**
- The **anvil-team** was deleted
- **Anvil pod** renamed **AI Agents POD** 
- Created two child teams:
[AI Agents BE](https://github.com/orgs/appsmithorg/teams/ai-agents-be)
[AI Agents FE](https://github.com/orgs/appsmithorg/teams/ai-agents-fe)

**PR changes**
- Moved WDS widgets from `src/modules/ui-builder/ui/wds` to
`src/widgets/wds`
- Updated the paths in CODEOWNERS file
- In CODEOWNERS `@appsmithorg/anvil-team` replaced with
`@appsmithorg/ai-agents-pod`.

## 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/13542264374>
> Commit: 9c5265b27751dfe339cbf9882fbc9db580c8b342
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13542264374&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Wed, 26 Feb 2025 12:06:53 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

- **Chores**
- Updated internal code ownership assignments to better reflect team
responsibilities.
- **Refactor**
- Standardized and streamlined internal module imports across UI
components and widgets.
- Removed an outdated component export to optimize the code
organization.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-26 15:21:36 +03:00
Laveena Enid
53223f9329
test: Add cypress tests for Hubspot Datasource functionalities (#39419)
## Description
This PR introduces cypress tests to ensure the functionality of the
Hubspot datasource integration.


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/13516494494>
> Commit: c0dbcc5ae19a0471e72c9ca3bc4eb47c80cd08b4
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13516494494&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Tue, 25 Feb 2025 08:50:28 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 HubSpot integration in the application with an improved
configuration form supporting Bearer token authentication.
  
- **Tests**
- Added comprehensive end-to-end tests covering HubSpot datasource
setup, query execution, widget data binding, deletion, and error
handling scenarios.
  
- **Chores**
- Updated test specifications to include the new HubSpot tests and
introduced a dedicated tag for easier test grouping.

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

---------

Signed-off-by: Laveena Enid <laveena@appsmith.com>
2025-02-25 17:34:11 +05:30
Jacques Ikot
002ee78966
fix: resolve empty table dropdown issue with dynamic select options in add new row functionality (#37108)
## Description
**Problem**
When using a Table widget's Select column type with dynamic options, the
computed value binding fails to handle empty table states correctly. If
the table has no data (`processedTableData` is empty), the dynamic
options evaluation still attempts to map over the non-existent table
data, resulting in an empty array instead of the expected options.

**Root Cause**
The issue stems from the `getComputedValue` function always using the
table mapping binding prefix:
```typescript
{{${tableName}.processedTableData.map((currentRow, currentIndex) => (
  // dynamic options here
))}}
```
This creates an unnecessary dependency on table data even when the
dynamic options don't reference `currentRow` or `currentIndex`, causing
evaluation to fail when the table is empty.

### Problematic Evaluation
When the table is empty, expressions like this in table widget computed
properties:
```typescript
{{[
  { label: "Released", value: "Released" },
  { label: "Not Released", value: "Not Released" }
]}}
```
Would evaluate to an empty array `[]` because it's wrapped in a `.map()`
over empty table data.

**Solution**
Updated the binding logic to account for scenarios where table does not
have data and return the evaluated string directly in an IIFE

1. Updated the binding prefix and suffix
```typescript
static getBindingPrefix = (tableName: string) => {
  return `{{(() => { const tableData = ${tableName}.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (`;
};

static getBindingSuffix = (stringToEvaluate: string) => {
  return `)) : ${stringToEvaluate} })()}}`;
};
```

2. Refactored `getComputedValue` and `getInputComputedValue` to
implement the new bindings
3. Created a migration and migration test for the DSL change

This ensures that:
- Dynamic options not dependent on table context evaluate correctly even
with empty tables
- The component maintains consistent behaviour across all table states

The solution prevents unnecessary table data dependencies while
preserving the ability to use table-specific values when required.


Fixes #23470  

## Automation

/ok-to-test tags="@tag.Table, @tag.Binding, @tag.Select, @tag.Sanity,
@tag.Widget"

### 🔍 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/13514895959>
> Commit: 0d2e78a0a7be63d4f70fc3499829621bd1761b3d
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13514895959&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Table, @tag.Binding, @tag.Select, @tag.Sanity,
@tag.Widget`
> Spec:
> <hr>Tue, 25 Feb 2025 07:52:52 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 test coverage for adding new rows in the `TableV2` widget,
ensuring proper UI behavior when no data exists.
- **Bug Fixes**
- Improved validation of UI elements based on the "Allow adding a row"
property.
- **Refactor**
- Streamlined logic for handling computed values in the
`ComputeTablePropertyControlV2`, improving readability and
functionality.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-25 10:38:38 +01:00
NandanAnantharamu
3788647394
test: adding tests for Fork app related to multiple workspace (#39263)
/ok-to-test tags="@tag.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/13503486922>
> Commit: 88d22fbbbcc07ff136ef31850f6b3569147a6e16
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13503486922&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Mon, 24 Feb 2025 17:37:30 UTC
<!-- end of auto-generated comment: Cypress test results  -->

---------

Co-authored-by: “NandanAnantharamu” <“nandan@thinkify.io”>
2025-02-25 13:28:33 +05:30
Jacques Ikot
fc80866466
fix: stop tooltip from overflowing out of view in preview and deployed mode. (#39159)
### Problem
Tooltips in the application were overflowing out of the viewport,
causing them to be partially or completely hidden.

### Why This is Happening
The preventOverflow modifier was disabled, and the flip modifier was not
enabled in the Tooltip component, leading to improper positioning of
tooltips.

### Solution
- Enabled the preventOverflow modifier and set its boundary to the
viewport.
- Enabled the flip modifier to ensure better positioning of tooltips.
- Added a CSS assertion in the Input widget tests to verify that the
tooltip icon has an overflow property set to "hidden".

### Why This is the Best Solution
Enabling these modifiers ensures that tooltips adjust dynamically to
remain fully on-screen, improving the user experience by making tooltips
consistently visible. The additional test assertion helps maintain the
integrity of the tooltip icon's CSS properties.

Fixes #34445 

## 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/13305105052>
> Commit: 1f20716e5ad8bc3fff67da40e43a245ca8a0890f
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13305105052&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Thu, 13 Feb 2025 11:33:13 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 tooltip behavior improves positioning and visibility by
ensuring tooltips adjust dynamically to remain fully on-screen.
  
- **Tests**
- Added assertions to validate tooltip appearance and behavior in the
InputV2 widget tests.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-24 12:36:54 +01:00
Nilansh Bansal
af6540fc85
fix: cypress test for multipart/form-data (#39356)
## Description
> This PR fixes the cypress test for API multipart/form-data when the
FilePicker is selected as Base64

We have updated the cypress test to use `{{FilePicker1.files[0].data}}`
instead of `{{FilePicker1.files[0]}}`, this is because for base64 type
file picker we have to use `.data` property to make the file upload work
successfully.
Earlier, while the cypress test was passing with
{{FilePicker1.files[0]}} but the uploaded image was corrupted (please
check the screen recording below).


https://github.com/user-attachments/assets/c8cf07a1-db1c-4065-913a-00d544fe7e2b




Fixes #39354 

## Automation

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

### 🔍 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/13408509228>
> Commit: 7b2360f4c5967d6082a442ed2eba15d6348dad6b
> Workflow: `PR Automation test suite`
> Tags: `@tag.Datasource`
> Spec: ``
> <hr>Wed, 19 Feb 2025 08:40: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

- **Tests**
  - Updated file upload tests to properly validate file data extraction.
- Added a test scenario for adding new pages to enhance page management
verification.
- Revised page selection during tests for more accurate validation
outcomes.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-19 09:28:39 +00:00
Trisha Anand
6beeb2513c
chore: Migrate Tenant to Organization (#38891)
## 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

/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/13391658708>
> Commit: d30db4487d93622533aec846a17fecea12e0205e
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13391658708&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/ActionExecution/FrameworkFunctions_LocalStoreValueFunctions_spec.ts
>
<li>cypress/e2e/Regression/ClientSide/SetProperty/WidgetPropertySetters2_spec.ts
>
<li>cypress/e2e/Regression/ClientSide/Widgets/TableV2/table_data_change_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, 18 Feb 2025 14:35:32 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 organization-level configuration management, impacting
admin settings, login, and branding displays.
- Enhanced handling of permissions and feature flags now centered on
organizations.

- **Refactor**
- Updated user-facing terminology across the application from “tenant”
to “organization” (e.g., in dashboards, profile settings, error pages,
and admin panels).
- Refactored multiple components and services to utilize
organization-based logic instead of tenant-based logic.

- **Chore**
- Deployed comprehensive migration scripts to seamlessly transition all
settings and cached data to the new organization model.

These updates improve consistency and clarity in how configurations and
permissions are managed and presented.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-18 20:41:07 +05:30
Abhijeet
e4ed590822
chore: Code split for logout success handler (#39296)
## Description
## Description

Added redirect URL on user logout


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

## 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/13369328042>
> Commit: 5b4bbe9381d8591234c5b76687ed83b88e288f17
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13369328042&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Mon, 17 Feb 2025 12:14:39 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**
- Users are now automatically redirected to the login page after logout
for a smoother navigation experience.
- **Refactor**
- Simplified the logout request process to consistently use the "POST"
method, enhancing reliability.
- Streamlined the interception logic for logout API calls, improving
overall consistency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Albin <albin@appsmith.com>
2025-02-18 12:19:05 +05:30
Sagar Khalasi
f30ef2ee64
chore: Removed immur dependancy (#39324)
## Description
Fixing this error :
https://github.com/appsmithorg/appsmith-ee/pull/6115/files
Removed dependencies.

Fixes #
https://app.zenhub.com/workspaces/qa-63316faf86bb2e170ed2e46b/issues/gh/appsmithorg/appsmith/39318

## 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/13383377889>
> Commit: 55e9bb0a1366246508ed2e12be9cfae922212a02
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13383377889&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Tue, 18 Feb 2025 05:52: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

- **Refactor**
- Updated the app’s internal data handling to ensure more consistent and
reliable feature management.
- Enhanced robustness through improved error management, leading to
smoother operation and better control over feature updates.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-18 11:58:20 +05:30
Jacques Ikot
c0e073efa3
fix: infinite render loop in List Widget when hiding/unhiding with selected item (#39262)
## Description
When a List widget has a selected item and is hidden then unhidden
(unmounted/mounted), an infinite render loop occurs in the following
flow:

```typescript
// Triggered in componentDidUpdate
if (this.shouldUpdateSelectedItemAndView() && isString(this.props.selectedItemKey)) {
    this.updateSelectedItemAndPageOnResetOrMount();
}
```

### Root Cause
This happens because:

1. `updateSelectedItemAndPageOnResetOrMount` calls `updatePageNumber`.
2. `updatePageNumber` uses `calculatePageNumberFromRowIndex`, which
depends on `this.pageSize`.
3. Each page number calculation triggers a meta property update through
`onPageChange`.
4. This meta update causes a rerender, repeating the cycle.

#### Problematic Calculation
`this.pageSize` is calculated dynamically based on widget dimensions:

```typescript
calculatePageNumberFromRowIndex = (index: number) => {
    return Math.ceil((index + 1) / this.pageSize); // Using unstable this.pageSize
};
```

This creates instability during mount/unmount cycles as:

- Widget dimensions may not be fully stabilized.
- Each meta property update triggers recalculation.
- No break in the update-rerender cycle.

### Solution
Use `this.props.pageSize` instead of `this.pageSize` in page
calculations:

```typescript
calculatePageNumberFromRowIndex = (index: number) => {
    return Math.ceil((index + 1) / this.props.pageSize); // Using stable props value
};
```

### Why This Works
- `this.props.pageSize` represents the last stable value set through the
meta property system.
- It's protected by the existing `pageSizeUpdated` flag mechanism.
- Breaking the dependency on dynamically calculated dimensions prevents
the infinite loop.




Fixes #37683 

## Automation

/ok-to-test tags="@tag.Widget, @tag.Binding, @tag.List, @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/13366216706>
> Commit: 74028ec9f52aa25daf0d72c7cdf3c4fa9701e86e
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13366216706&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Widget, @tag.Binding, @tag.List, @tag.Sanity`
> Spec:
> <hr>Mon, 17 Feb 2025 10:23:19 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 the list widget’s pagination by updating how page numbers are
calculated, ensuring accurate reflection of the current page size
settings.

- **Tests**
- Enhanced test coverage for the list widget's visibility, adding new
tests to validate user interactions and ensuring the widget behaves as
expected when items are selected.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-17 11:43:24 +01:00
Hetu Nandu
22688f994f
chore: AppIDE Folder Structure (#39165)
## Description

Updates the folder structure and file breakup according to the new IDE
folder structure

Fixes #39048
Fixes #39049
Fixes #39051


## 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/13352717132>
> Commit: 54cd1a3b4679ae8bd0687ddb063692a26be1d7b9
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13352717132&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Sun, 16 Feb 2025 08:44:30 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No
2025-02-17 10:34:23 +03:00
Sagar Khalasi
cd519bb8a9
fix: Fix from for promise failure (#39295)
## 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.AppUrl"

### 🔍 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/13363538162>
> Commit: 0701248cbd6cd53a9777f00933cc56fb45abcfcf
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13363538162&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.AppUrl`
> Spec:
> <hr>Mon, 17 Feb 2025 05:49:10 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

- **Tests**
- Streamlined redirection tests by removing an unnecessary sign out
step.
- Enhanced URL validation with improved logging to ensure correct
encoding.
- Refined the testing process to robustly verify that redirection
parameters are accurately passed.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-17 12:52:38 +05:30
shadabbuchh
854381671a
fix: skip snowflake test cases in cypress (#39304)
## Description
This PR skips snowflake cypress tests.


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

## Automation

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

### 🔍 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/13363519219>
> Commit: e3975ef121de8c6ea363da3a4a79b49230b40287
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13363519219&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Snowflake`
> Spec:
> <hr>Mon, 17 Feb 2025 05:48:57 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

- **Tests**
- Temporarily disabled the test suite for Snowflake datasource
integration due to external service quota issues. Existing test logic
remains intact and will resume once the external constraint is resolved.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-17 11:19:12 +05:30