Commit Graph

3367 Commits

Author SHA1 Message Date
Abhijeet
d25ae858e9
fix: Add as a query param for workspace invite email as per updated format after homepage revamp (#31295)
#### PR fixes following issue(s)
Fixes https://github.com/appsmithorg/appsmith/issues/31280

#### Media
<img width="1471" alt="Screenshot 2024-02-27 at 11 04 33 AM"
src="https://github.com/appsmithorg/appsmith/assets/41686026/a7b574fb-5a9e-4be5-a3f1-18afd3f4f956">

#### Type of change
- Bug fix (non-breaking change which fixes an issue)

## Testing
>
#### How Has This Been Tested?
- [x] Manual
- [x] JUnit
- [ ] Jest
- [ ] Cypress

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

## Summary by CodeRabbit

- **Refactor**
- Modified the way workspace URLs are constructed to enhance link
handling.
- **Tests**
- Added tests to ensure the reliability of workspace invite URL
generation.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-28 02:22:08 -06:00
Sumit Kumar
3e29634cbb
chore: enable Micrometer metrics conditionally (#31204) 2024-02-28 13:42:55 +05:30
Shrikant Sharat Kandula
e2d226f127 Revert "chore: Use queryBulider for count op"
This reverts commit 70cd65ec7d.
2024-02-28 11:09:53 +05:30
Shrikant Sharat Kandula
70cd65ec7d chore: Use queryBulider for count op 2024-02-28 10:58:56 +05:30
Shrikant Sharat Kandula
21b0a5ebfb
chore: Fix for CVE-2024-1597 (#31301)
This should get rid of the vulnerable Postgres driver version.
2024-02-28 10:32:58 +05:30
Shrikant Sharat Kandula
e7573a7b81 Revert "chore: No upsert when saving datasource structure"
This reverts commit 75d2f2a8c4.
2024-02-27 22:00:13 +05:30
Shrikant Sharat Kandula
75d2f2a8c4 chore: No upsert when saving datasource structure 2024-02-27 21:58:13 +05:30
Shrikant Sharat Kandula
be027e8434
chore: Remove ineffectual user change handler (#31286)
This whole flow is not affecting anything. At the end, in the repo
methods, the change is applied to a `Workspace.userRoles` field, which
doesn't even exist today. Effectively making this flow ineffectual and
unnecessary.
2024-02-27 20:02:58 +05:30
Shrikant Sharat Kandula
e1f9f13dc4
chore: Replace remaining Q* usage with Fields (#31299)
Continuation of https://github.com/appsmithorg/appsmith/pull/31269.

We're not removing QueryDSL itself in this PR. That will happen after we
remove uses on the EE repo as well.
2024-02-27 17:39:05 +05:30
Shrikant Sharat Kandula
d59c8344c7
chore: Remove mongoTemplate in BaseService (#31283)
The `BaseService` keeps references to a `ReactiveMongoTemplate`, a
`MongoConverter` and a `Scheduler`.

For the first two, they shouldn't be directly used at all in Service
classes, that's an abstraction leak. That's what repositories are for.

The third one isn't really used anywhere in `BaseService` at all.

This PR removes all three of these from `BaseService`.
2024-02-27 16:48:02 +05:30
Shrikant Sharat Kandula
8f5efc94b5
chore: Remove simple mongoOperations uses in repo classes (#31285)
Replace simple uses of `mongoOperations` in repo classes with equivalent
operations using `queryBuilder` API.
2024-02-27 12:25:36 +05:30
sneha122
c9582f5e21
chore: instrumentation added for generate crud create action (#31277)
## Description

This PR adds `create_NEWACTION` instrumentation for generate crud flow.
Today generate crud flow is handled by `/crud` API, this API is
responsible for creating actions, widgets and everything that is needed
for generating crud app. When actions are created in generate crud flow,
`create_NEWACTION` event is triggered, we wanted to add details like
`isUserCreated` and `accelerator` to this event, which will help us in
segregation of actions based on whether they were created manually or by
generate crud accelerator.

In this PR, we are passing the event context of generate crud when
calling create action function, this context is then eventually added to
the event properties.

**Test cases:**
- When generate crud flow is triggered, `create_NEWACTION` event should
have two more props `isUserCreated: false` and `accelerator:
"generate-crud`
- When actions are created by any other method, these two properties
wont be there.

#### PR fixes following issue(s)
Fixes #31171 
#### Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video
>
>
#### Type of change
- Chore (housekeeping or task changes that don't impact user perception)
>
>
>
## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

## Summary by CodeRabbit

- **New Features**
- Introduced a new event type `GENERATE_PAGE` for enhanced analytics and
event tracking capabilities.
- **Refactor**
- Modified analytics properties generation across various services to
include context-specific information, improving the accuracy and
relevance of analytics data collected.

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

---------

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2024-02-27 11:50:20 +05:30
Shrikant Sharat Kandula
b5e9ce8718
chore: Use Lombok's FieldNameConstants instead of QueryDSL (#31269)
QueryDSL will be replaced with Lombok's `FieldNameConstants` here. Why?

1. QueryDSL with JPA on relational databases doesn't lend itself very
well to nested data structures. But with MongoDB, it works quite well.
So we've come to rely on it quite a bit. Since we intend to move towards
a more flat, relation-ed and normalized DB design once we get to
Postgres, dealing with nested data structures should be seen as
temporary.

2. We only use QueryDSL for field name constants, and absolutely nothing
else. QueryDSL is a far more capable and powerful system, and is
overkill for this purpose. Lombok's annotation is exactly tuned for this
purpose and is more concise and easy-to-use.

3. QueryDSL query generation current doesn't work in IntelliJ, but
Lombok's does. So this will free us up from having to run a Maven build
when sometimes switching branches.

**PS**: This PR doesn't remove QueryDSL entirely. Only a part of it.
That'd become a much bigger PR and I'm already uncomfortable with the
size of this PR. Once this is merged, I'll open further PRs until we
completely remove QueryDSL.

**PPS**: QueryDSL is a powerful querying mechanism that we don't use
today. Perhaps once we're comfortable with Postgres in the future, we
will very likely revisit.
2024-02-26 16:33:07 +05:30
Shrikant Sharat Kandula
a97c41ac43
chore: Add updateFirstAndFind to Fluent repo API (#31165) 2024-02-26 15:40:00 +05:30
Shrikant Sharat Kandula
aeee1fa697
chore: Remove mongoOperations use in Application repo (#31181)
Porting `CustomApplicationRepositoryCEImpl` to use the Bridge API, where
possible, and not use `mongoOperations` at all.
2024-02-26 14:34:06 +05:30
Shrikant Sharat Kandula
a690d15990
chore: Remove leaks of UpdateResult outside of repository layer (#31166)
This is a MongoDB-specific API class that won't be available with
Postgres, and we don't use its contents much either.
2024-02-26 11:22:32 +05:30
Shrikant Sharat Kandula
5647916478
chore: Upgrade Mockito and surefire plugin (#31073)
Upgrading Mockito ahead of upgrading Spring itself.
2024-02-25 00:24:51 +05:30
Trisha Anand
9c97aa2f0d
feat: Adding UserAgent Tag in databricks datasource configuration, a recommended practice (#31195)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Added the ability to set a user agent tag for Databricks connections,
with "Appsmith" as the default value.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-22 10:53:35 +05:30
Nirmal Sarswat
0dce1ee470
fix: Add missing policies field in Appsmith AI Default datasource (#31102)
## Description
Add missing fields in Appsmith AI Default datasource

#### Type of change
- Bug fix (non-breaking change which fixes an issue)

## Testing
#### How Has This Been Tested?
- [x] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress

## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

- **New Features**
- Introduced tracking for creation and update times (`createdAt` and
`updatedAt`) for Actions and Datasources to enhance data management and
auditing capabilities.
- Enhanced the default Appsmith AI Datasources with necessary fields and
default permission groups to ensure seamless operation and access
control.
- **Refactor**
- Consolidated and refined migration scripts to add missing fields and
configurations to Appsmith AI Datasources, improving their functionality
and reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-16 21:07:13 +05:30
Shrikant Sharat Kandula
712a28e059
fix: Signup error redirect to wrong path (#31179)
On signup failure, we need to redirect the client to same signup page
they were on, for the error message to show up. So instead of
redirecting to the homepage, we get the path from the incoming request
and use that.
2024-02-16 14:19:30 +05:30
Shrikant Sharat Kandula
91fea4fbe0
chore: use repo method to update workspace (#30998)
Reducing our use of `mongoTemplate` and kind-of undoing
https://github.com/appsmithorg/appsmith/pull/22549.
2024-02-16 10:08:21 +05:30
Shrikant Sharat Kandula
1cb53c4e8e
chore: Introducing the Bridge API (#31147)
The Bridge API is an alternative to building `Criteria` objects for
running operations on the database.

**Why do we need/want this?** The Bridge API will have the same
interface in Appsmith MongoDB, and in Appsmith Postgres. This means when
we write a function that uses the Bridge API to run a query, we enjoy
the guarantee that the function will work with both MongoDB and
Postgres.

**Why is that important?** As new features are being developed, and
changes made, the Postgres branch is having to play catch-up in porting
the queries to Postgres. But with this, that won't be necessary.
Besides, the diff between MongoDB and Postgres versions of Appsmith
would be significantly smaller with this.

**What conditions will be supported?** The Bridge API is intentionally
non-exhaustive. It is intended to replace the most commonly used
criteria definitions. For the rest, falling back to the way we used to
build Criteria is just fine. We're only changing the ladder used to get
to the ceiling. The hammers to break the ceiling to go further, is still
there.

**Can I start using it?** Yes please. I'm only adding one condition
here, but I have changes for ~4 more (`in`, `isNull`, etc.) that I'll be
pushing as PRs next up. I'm also only using it in one place in this PR.
I'll start moving more direct uses of Criteria API to the Bridge API in
future PRs.

**Why does Bridge have `.equal()` instead of `.where().is()`?** Two
reasons. One, an API like `.equal` is easier to implement, and since the
Bridge API is code that we will have to maintain, I voted for
simplicity. Two, once we move to Postgres, we'll be using the
`CriteriaBuilder` API, which uses the `.equal()` style, so might as well
get used it. 🙂
2024-02-16 05:46:04 +05:30
Manish Kumar
2a1ba8083c
chore: aforce issue for multipart file upload (#30376)
## Description
> small change to fix the issue of file uploads

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

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


- **New Features**
- Increased the maximum in-memory size for multipart requests to 150MB,
enhancing file upload capabilities.
- Added the ability to control the max size of multipart files in
request objects.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-15 21:25:40 +07:00
Nidhi
4dd9d77c8b
chore: Refactored importables to be artifact agnostic (#31123) 2024-02-15 19:42:35 +05:30
Shrikant Sharat Kandula
7d55eaabfb
chore: Remove mongoOperations in updateById method (#31141) 2024-02-15 19:25:21 +05:30
Shrikant Sharat Kandula
565dab4a62
fix: Request referer shouldn't influence redirect URL (#31155)
The form signup API responds in a failure state, with a redirection URL.
That URL blindly uses the `Referer` header as passed-in. This shows up a
security issue in a few places, although it's not very exploitable.


![shot-2024-02-15-11-13-01](https://github.com/appsmithorg/appsmith/assets/120119/9c4ea8b4-d028-4cbd-a348-f2483fad0f49)

Nonetheless, we don't need the host to show up in the redirection URL at
all. The signup success API is already using a redirect URL without
host, for example.


![shot-2024-02-15-11-11-41](https://github.com/appsmithorg/appsmith/assets/120119/5eb62c42-cf09-4c1f-8269-775f26af2dce)

With the changes in this PR, the failure response also uses a host-less
redirect.


![shot-2024-02-15-11-14-04](https://github.com/appsmithorg/appsmith/assets/120119/d0640ea2-f934-4f57-ade4-189964d6d11a)
2024-02-15 19:24:34 +05:30
Shrikant Sharat Kandula
1278287609
chore: Remove mongoOperations in two more methods (#31136)
It's doing exactly the same thing, but with a lot of the code
duplicated.
2024-02-15 13:37:25 +05:30
Nilansh Bansal
96ba97a1b2
fix: added escaping logic for html reserved characters (#31133)
## Description
> This PR adds escaping logic for HTML reserved characters `&quot;` and
`&#34;`. Both of these characters were getting unescaped to double
quotes (") leading to a JSON parse error.
> I have updated the code to escape these with a backslash before
getting converted.

[ref](https://theappsmith.slack.com/archives/C0341RERY4R/p1707900321201109?thread_ts=1707510761.277959&cid=C0341RERY4R)
#### PR fixes following issue(s)
Fixes #31056 


#### Type of change
- Bug fix (non-breaking change which fixes an issue)

## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [x] JUnit
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

## Summary by CodeRabbit

- **New Features**
- Enhanced data handling to ensure JSON validity by escaping double
quotes in certain outputs.
- **Tests**
- Added test cases to verify the new escaping logic for JSON and HTML
characters.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-15 11:36:34 +05:30
Shrikant Sharat Kandula
5c879230fc
chore: Fluent API for update methods (#31104) 2024-02-15 10:25:24 +05:30
Manish Kumar
0d77289e9c
chore: added split for permission provider (#31111) 2024-02-14 14:43:14 +05:30
Nilesh Sarupriya
c267965090
chore: refactor curl import API to support context type (#30934)
## Description

Support curl imports for different contexts. 

### Server changes

Previous API: 

`/api/v1/import?type=CURL&pageId={pageId}&name=Api2&workspaceId={workspaceId}`

New API: 
With context type, it will create for the specific context.

`/api/v1/import?type=CURL&contextId={contextId}&name=Api1&workspaceId={workspaceId}&contextType={contextType}`

Without context type, it will create for the page.

`/api/v1/import?type=CURL&contextId={contextId}&name=Api1&workspaceId={workspaceId}`

### Client changes
- Integrate api changes for curl import. Updated request params type and
interfaces for the saga functions
- Updated the form value types for the curl import editor



#### PR fixes following issue(s)
Fixes [[Task]: Curl Import isn't
working.](https://github.com/appsmithorg/appsmith/issues/30933)

#### Media
> N/A

#### Type of change
- Chore (housekeeping or task changes that don't impact user perception)

## Testing
>
#### How Has This Been Tested?
- [x] Manual (using postman)
- [x] JUnit (existing test cases should work)

#### Test Plan
> N/A

#### Issues raised during DP testing
> None

## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

## Summary by CodeRabbit

- **New Features**
- Enhanced API import functionality with a new context-aware mechanism,
allowing for more flexible integration within different parts of the
application.
- Updated various components and services to support the new contextId
and contextType parameters for improved data handling and redirection
logic.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com>
Co-authored-by: Ayush Pahwa <ayushpahwa96@gmail.com>
2024-02-14 12:18:30 +05:30
Manish Kumar
a5f3ff9ba0
chore: deleted import and export Application file (#31084) 2024-02-13 15:22:27 +05:30
Shrikant Sharat Kandula
99f919303d
chore: Don't expect .save() to return given object (#31049)
The `.save()` method currently returns the given object as is. But with
Hibernate, it returns the corresponding object from the persistence
store, if any, which _may_ be different. This is causing some very hard
to debug and subtle bugs.

This fix here, to just ignore the result of `.save()` is not a permanent
fix, it's just a workaround that works well in both worlds, MongoDB and
Hibernate. Once we move though, we may need to revisit.



![shot-2024-02-12-07-14-37](https://github.com/appsmithorg/appsmith/assets/120119/095d32fc-5009-4203-b906-df3d34a40818)
2024-02-13 09:47:05 +05:30
Sumit Kumar
334da091f6
chore: link Micrometer traces and metrics with NewRelic (#30957) 2024-02-13 00:21:42 +05:30
Shrikant Sharat Kandula
cdc5a358bb
chore: Remove InsertManyResult and BulkWriteResult (#31037)
These are MongoDB specific data structures and we don't actually use the
data we get in them. This PR removes their references entirely.
2024-02-12 13:33:44 +05:30
Shrikant Sharat Kandula
632c8a7b69
chore: use common function for building query (#31018)
The query execution methods, `queryAllExecute`, `queryOneExecute` etc.,
aren't using the same function to build the `Query` object. This PR
fixes it by using the common function.

But the common function has a problem. Check this out, this is the
current implementation:

```java
Query query = new Query();
criterias.stream().forEach(criteria -> query.addCriteria(criteria));
if (aclPermission == null) {
    query.addCriteria(new Criteria().andOperator(notDeleted()));
} else {
    query.addCriteria(new Criteria().andOperator(notDeleted(), userAcl(permissionGroups, aclPermission)));
}

if (!isEmpty(projectionFieldNames)) {
    projectionFieldNames.stream().forEach(fieldName -> query.fields().include(fieldName));
}

return query;
```

Here, we use `addCriteria` to add each of the criteria items given to
us, into the `query`. After that, we use `.andOperator` to add the
not-deleted and permission checks.

Looks good on the surface. Let's take an example. If the given criteria
list has `fieldName = "abc"` as the condition, this will end up in the
final query as (pseudo-code representation):

```javascript
{
	fieldName: "abc",
	$and: {
		$and: {
			deleted: false or missing,
			deletedAt: null
		},
		policies: {
			$elemMatch: permission check here,
		}
	}
}
```

Perfectly working query. Now, what if the incoming criteria list is a
little more complex, and has an `or` condition in it. This is what we
end up with:

```javascript
{
	$or: {
		field1: "val",
		field2: "val"
	},
	$and: {
		$and: {
			deleted: false or missing,
			deletedAt: null
		},
		policies: {
			$elemMatch: permission check here,
		}
	}
}
```

We end up with a `$or` and `$and` next to each other. This doesn't make
sense to MongoDB.

The way the query is built in the `queryAllExecute` method previously,
actually doesn't fall into this. That's the version we're changing the
common method into now. This is what it looks like:

```java
final ArrayList<Criteria> criteriaList = new ArrayList<>(criterias);
criteriaList.add(notDeleted());

final Criteria permissionCriteria = userAcl(permissionGroups, aclPermission);
if (permissionCriteria != null) {
    criteriaList.add(permissionCriteria);
}

final Query query = new Query(new Criteria().andOperator(criteriaList.toArray(new Criteria[0])));

if (!isEmpty(projectionFieldNames)) {
    query.fields().include(projectionFieldNames.toArray(new String[0]));
}

return query;
```

With this, the resulting query looks something like this:

```javascript
{
	$and: {
		$or: {
			field1: "val",
			field2: "val"
		},
		$and: {
			deleted: false or missing,
			deletedAt: null
		},
		policies: {
			$elemMatch: permission check here,
		}
	}
}
```

This isn't new code. This is how we've been building the query for
`queryAll` today. By moving this to the common method, we have this
resilient query building for `queryOne` and `queryFirst` as well.
2024-02-12 12:58:42 +05:30
Nidhi
2147b9fcea
chore: Moved datasource exportable to appropriate package (#31046) 2024-02-12 11:52:23 +05:30
Nidhi
010699e379
chore: CE companion to pkg export (#31039) 2024-02-12 11:29:59 +05:30
Nidhi
54091e255c
chore: Split changes for interface difference in generalizing exportable flow (#31017) 2024-02-09 16:18:49 +05:30
Shrikant Sharat Kandula
88c95b434b
chore: remove BaseDomain on WorkspacePlugin (take 2) (#31009)
Same as https://github.com/appsmithorg/appsmith/pull/30958, now with a
brand new migration to clean up!

The migration take 1.2 seconds on release and 0.1 seconds on
production-representative databases.
2024-02-09 13:03:07 +05:30
Manish Kumar
d1d13807e1
chore: Start Consumption for import and export (#30819) 2024-02-09 12:58:17 +05:30
Shrikant Sharat Kandula
ca5631e02c
test: Fix user used for test (#31012)
The test has a `@WithUserDetails(value = "admin@solutiontest.com")`
annotation, which means that's the logged-in user for the test's scope.
But the setup method calls `inviteUserToWorkspaceWithViewAccess`, which
tries to invite `usertest@usertest.com` and `admin@solutiontest.com` to
a just-created workspace. But since the workspace was just created by
`admin@solutiontest.com`, that user is already an admin on the workpace.
So we get this error:

```
com.appsmith.server.exceptions.AppsmithException: The user admin@solutiontest.com has already been added to the workspace with role Administrator - Source Workspace. To change the role, please navigate to `Manage users` page.
```

The test method's doesn't even get called. This error is from the
`setup` phase.

This PR fixes it by using `api_user` for the session instead of
`admin@solutiontest.com`.
2024-02-09 11:51:54 +05:30
Shrikant Sharat Kandula
8e62506524
chore: Fluent API for strict permission query (#31001)
Extending the fluent repository API to
`queryAllWithStrictPermissionGroups`.
2024-02-09 05:00:51 +05:30
Shrikant Sharat Kandula
45caf60b29 Revert "chore: remove BaseDomain on WorkspacePlugin (#30958)"
This reverts commit df6dce26e9.
2024-02-08 17:50:31 +05:30
Nidhi
e622836794
fix: Split changes for git support in apps with mi bugs (#30997) 2024-02-08 14:07:51 +05:30
sneha122
a13d3d82be
feat: expires in field added in oauth2 api datasource (#30866)
## Description

This PR adds `expires_in` field for authenticated API datasource. This
field will be used for all OAuth2 datasources, with use of this field
refresh token flow can be triggered.

This fixes the problem of [Salesforce not refreshing the tokens
automatically](https://github.com/appsmithorg/appsmith/issues/30239).

More about the issue can be found in this
[thread](https://theappsmith.slack.com/archives/CNQ9Q91C0/p1702972094026239)
and
[notion](https://www.notion.so/appsmith/Salesforce-OAuth2-problem-with-refresh-token-ea4b318eebb3420f89a47d87f94ef49a)
doc.

Server unit tests have been added in this PR itself.

Client unit tests will be added as part of #30829.

**Note: If we populate expires_in field for Monday.com OAuth2 provider,
it will not work as monday does not have refresh token flow.**

#### PR fixes following issue(s)
Fixes #30830 
#### Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video
>
>
#### Type of change
> Please delete options that are not relevant.
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update
>
>
>
## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [ ] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

## Summary by CodeRabbit

- **New Features**
- Added the ability to specify the expiration time for OAuth2
authorization in seconds when configuring REST API datasources. This
allows users to define how long the authorization should last before
needing a refresh.

- **Enhancements**
- Improved OAuth2 token generation logic to accurately handle expiration
times, enhancing the security and reliability of connections.

- **Tests**
- Updated application forking tests to account for the new OAuth2
authorization expiration time configuration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2024-02-07 18:26:21 +05:30
Shrikant Sharat Kandula
df6dce26e9
chore: remove BaseDomain on WorkspacePlugin (#30958)
The `WorkspacePlugin` is not a top-level entity. Yet, it extends
`BaseDomain`. It gets all the fields from `BaseDomain`, but since it
doesn't have a collection of its own, nothing is ever used.

This is fine today, with the `@Document` annotation, but with Postgres,
with `@Entity` annotation, querydsl is getting confused and is creating
a `QWorkspacePlugin` class, which is producing a compile error in
`QWorkspace.plugins` field.

This PR removes this unneeded inheritance.

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

## Summary by CodeRabbit

- **Refactor**
	- Updated the structure of the Workspace Plugin to enhance performance.
- **Bug Fixes**
- Ensured all plugins, including previously inaccessible ones, are now
correctly retrievable.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-07 15:43:26 +05:30
Shrikant Sharat Kandula
fb520fc817
test: better size assertions in tests (#30937)
Instead of a failure showing up like this:

```
org.opentest4j.AssertionFailedError: 
expected: 2
 but was: 0
Expected :2
Actual   :0
```

We get something like this:

```
java.lang.AssertionError: 
Expected size: 2 but was: 0 in:
{}
```

Which is a better insight into the test failure.
2024-02-07 12:14:10 +05:30
Akhil Varma
078f450d81
fix: Updated auto-commit message to be <72 characters (#30938) 2024-02-07 11:23:15 +05:30
Shrikant Sharat Kandula
dbe138778a
ci: Add server failed tests as PR comment (#30888)
And, don't show duplicates. Not sure why we're seeing duplicates though.
2024-02-06 16:07:43 +05:30
Shrikant Sharat Kandula
1afd321e13
chore: Fluent API for count() (#30898)
There's three signatures for `count()`, and the query building code is
duplicated from the `query*` methods. This PR fixes both.
2024-02-06 13:01:40 +05:30
Nirmal Sarswat
479f9132bd
feat: Add knowledge retrieval in Appsmith AI (#30725)
## Description
Frontend Changes
- Remove Appsmith AI Query as a default datasource query
- Add Appsmith AI Datasource in the AI section of Datasources screen
- ~~Creation of Appsmith AI datasource to mimic the mock datasource
flow. This was necessary because we are using a trigger in the
datasource edit form and inorder for the trigger to function the
datasource needs to be created before the trigger call.~~ (We are using
the plugin trigger to upload files and hence this change is not required
anymore)
- Add a new Form control element to support multiple file uploads. The
multiple file upload control type can either upload the files to the
trigger end point (multipart-form trigger api) or save the files as
base64 string in the datasource configuration. If the files are uploaded
in the trigger, only the file metadata (name, size, mimeType and id) is
saved in the datasource configuration.
- Fix a bug in Dropdown control. This fix makes sure that the options
that are disabled as infact disabled on the UI.
- Add preview for the new Multi file picker control type.

Backend Changes
- Add a new trigger end point for datasource to support multipart form
data
- Add trigger for Appsmith AI datasource to upload files during
datasource creation/edit flow
- Associate the file ids with the datasourceId in AI Node server
- Add Knowledge retrieval implementation in text generation action for
Appsmith AI datasource
- Add form.json for Appsmith AI Datasource
- Add a fetch files trigger for populating the files in the Text
generate action.

#### Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video
>
>
#### Type of change
> Please delete options that are not relevant.
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update
>
>
>
## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [ ] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

- **New Features**
- Introduced a multiple file picker control for users to select and
upload multiple files with options for file types and size limits.
- Added new AI Query functionality with enhanced file upload
capabilities, including timeout settings.
- Enhanced datasource editor to display the number of uploaded files or
a message if no files are uploaded.
- **Bug Fixes**
- Simplified the logic for showing the datasource selector by removing
specific conditions related to the Appsmith AI Plugin.
- **Refactor**
- Removed unused imports and functionalities related to Appsmith AI
across various components.
- Updated plugin handling to dynamically determine button text based on
plugin type.
- **Chores**
- Implemented backend support for file upload and association with
datasources and workspaces.
- Added new utility functions and DTOs for handling file uploads and AI
plugin interactions.
- **Documentation**
	- No visible changes to end-users.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Diljit VJ <diljit@appsmith.com>
2024-02-05 17:15:45 +05:30
Nayan
4167cc288f
chore: Add all the changes as part of the auto commit (#30644)
## Description
Instead of writing only the pages during auto commit, this PR makes the
change to write all the application resources. If there's any migration
change in DSL, the following auto commit will include all the server
side changes due to change in data structures.
#### PR fixes following issue(s)
Fixes #30466

#### Media
#### Type of change
- Chore (housekeeping or task changes that don't impact user perception)

## Testing
>
#### How Has This Been Tested?
- [x] Manual
- [x] JUnit

#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

- **New Features**
- Introduced a new system for tracking and managing updated resources
within applications.

- **Refactor**
- Streamlined the process of checking if specific resources have been
updated.
- Enhanced the logic related to exporting application components such as
action collections, custom JavaScript libraries, and pages.

- **Bug Fixes**
- Fixed issues with resource tracking to ensure accurate reflection of
changes.

- **Tests**
- Added test cases to verify the functionality of the new resource
management system.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-05 16:58:59 +05:30
Shrikant Sharat Kandula
9e0a7c71d7
chore: Use standard spring-data query method (#30883)
This query doesn't need a custom query implementation. Switching to
standard spring-data query method, so it can translate to Postgres easy.
2024-02-05 12:17:44 +05:30
Shrikant Sharat Kandula
24ebc4aaa4
chore: Fluent API for queryOne and queryFirst (#30846) 2024-02-05 12:13:53 +05:30
Shrikant Sharat Kandula
6d0b7af54e
chore: Use Spring projection for workspace user pics (#30804)
We use Spring's native support for projections here, instead of setting
the `.fields()` ourselves. The advantage is that this way translates
directly to Postgres.

The cost is that, the field names in projection are duplicated. For
example, if `profilePhotoAssetId` is renamed or otherwise changed, we
won't see a compile error. This can be prevented with a test. The
`findPhotoAssetsByUserIds_WhenPhotoAssetIdExist_ReturnsPhotoAssetId`
test is able to catch this case perfectly well.
2024-02-02 05:46:49 +05:30
Rudraprasad Das
fe7e4e8216
fix: allowing custom username is git url validation (#30738)
## Description
Fixes the validation issue with custom usernames in Git origin URL

#### PR fixes following issue(s)
Fixes #19881

#### Media
<img width="1728" alt="image"
src="https://github.com/appsmithorg/appsmith/assets/8724051/a0f52354-a876-4066-9d2c-1226b00b82f2">

#### Type of change
- Bug fix (non-breaking change which fixes an issue)

## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [ ] JUnit
- [x] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

- **Refactor**
- Enhanced support for a wider range of git remote URL formats in the
Git synchronization feature.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Nayan <nayan@appsmith.com>
2024-02-01 13:45:28 +05:30
Shrikant Sharat Kandula
5c4f2d28f6
chore: Fluent interface for queryAll method (#30758)
There is ~13 signatures of the `queryAll` method with parameters ranging
from 2 to 7, different combinations of the same superset. This is
extremely hard to grok and the resulting uses of `queryAll` aren't very
readable either. This PR introduces a fluent interface for this method.
If this works better for us, I'll look to move more such
over-signature-ed methods to a fluent interface.

This sprang from a frustration in trying to understand this method's
usages, to port to Postgres, and pulling my hair apart in the process.

Here's an example of the fluent API compared to current API:

![shot-2024-01-27-10-37-57@2x](https://github.com/appsmithorg/appsmith/assets/120119/ed11a4c6-a433-4e92-824c-7db00880a24a)
2024-02-01 11:19:25 +05:30
Shrikant Sharat Kandula
66d08eea77
chore: use default spring query instead of custom one (#30778) 2024-01-31 15:54:55 +05:30
Shrikant Sharat Kandula
d9835d5444
chore: Fix equals on TenantConfiguration (#30749)
Lack of checking fields in parent's class meant that the `.equals()`
method from `@Data` annotation in `TenantConfiguration` never compared
the values of fields in parent class. This meant that some part of
Hibernate's dirty-checking is getting thrown off, and changes to
TenantConfiguration aren't getting saved to database in Postgres.

Lombok even warns about this exact thing, but it's unfortunate we don't
take warnings as seriously as errors.

![shot-2024-01-30-13-11-41](https://github.com/appsmithorg/appsmith/assets/120119/fe3ba2c5-949d-47d0-ac81-8fe5a08c988c)

So instead, I added a test which would fail when this annotation is
missing in cases like this.
2024-01-31 11:33:16 +05:30
Nayan
00efa008b2
chore: Store only boolean flag to save auto deployment enabled or disabled state (#30727)
## Description
Instead of storing a list of branch names, we only need to store a
boolean flag.

#### PR fixes following issue(s)
Fixes #30726

#### Media
#### Type of change
- Chore (housekeeping or task changes that don't impact user perception)

## Testing
>
#### How Has This Been Tested?
- [ ] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

- **Refactor**
	- Streamlined deployment settings for improved Git integration.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-30 21:32:37 +05:30
Shrikant Sharat Kandula
e473070045
chore: Slim seed data (#30671) 2024-01-30 19:19:53 +05:30
Shrikant Sharat Kandula
9cd2e74038
chore: Remove unused UserRepository.findAllByEmails method (#30645)
This repository query method is unused in both repos, except for a test
which is only asserting the behaviour of this method istelf.
2024-01-30 18:45:04 +05:30
Shrikant Sharat Kandula
1842d1495c
chore: remove unused role graph (#30641) 2024-01-30 18:44:12 +05:30
Shrikant Sharat Kandula
13971fe18b
chore: Remove deprecated fields in Policy (#30556)
This PR removes the `Policy.users` and `Policy.groups` fields, that
aren't used, and are deprecated.
2024-01-30 15:42:44 +05:30
Nidhi
cc5598f573
fix: Only consider non-public apps and workspaces when searching entities in home page (#30711) 2024-01-30 08:47:21 +05:30
Nayan
1ff704f6f6
fix: Return default collection ID in update collection API response (#30667)
## Description
Return default collection id in the response of update action collection
API

#### PR fixes following issue(s)
Fixes #
[(ZH-68)](https://app.zenhub.com/workspaces/git-pod-63b7f52c55408d0011ef1e64/issues/zh/68)

#### Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video
>
>
#### Type of change
- Bug fix (non-breaking change which fixes an issue)

## Testing
>
#### How Has This Been Tested?
- [x] Manual
- [x] JUnit
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

- **Refactor**
- Improved the update logic for action collections to ensure more
reliable data handling.
- **Tests**
- Added tests for verifying the correct behavior of action collection
updates.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-29 22:12:13 +05:30
Aman Agarwal
cc620b3ab3
feat: removing delete multiple apps feature (#30661)
## Description
Removing the bulk delete applications feature as it not generally used
by many users and this was creating some UI conflicts rather than giving
us some valuable output.

Please follow this thread for more context :
https://theappsmith.slack.com/archives/C02Q4B2AGM8/p1706249168968689

#### PR fixes following issue(s)
Fixes #30660 
> if no issue exists, please create an issue and ask the maintainers
about this first
>
>
#### Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video
>
>
#### Type of change
> Please delete options that are not relevant.
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update
>
>
>
## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [ ] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

- **Refactor**
- Streamlined the application deletion process to handle multiple
deletions more efficiently.
- **Bug Fixes**
- Removed redundant code and unused features related to the multiple
selection and deletion of applications.
- **Chores**
- Cleaned up various files by removing unused imports, constants, and
state variables.
- **Documentation**
- Adjusted code comments and documentation to reflect removal of
multiple application deletion features and related UI elements.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-29 19:51:01 +05:30
Nidhi
bf5c296d5c
chore: Make sure policies and permissions are empty before export (#30690) 2024-01-29 12:35:08 +05:30
Manish Kumar
0c16ce02a0
chore: refactor export (#30521)
## Description
Pr for making a common interface for exporting application, packages,
and workflows

A few interfaces and classes have been added to support the refactor as
listed below:
- `ExportableArtifact & ExportableArtifactCE` : the base interface which
should be implemented by application, packages and workflows for
exports.
- `ExportServiceCE & ExportService` : This interface is for exporting
implementation of `ExportableArtifacts`, the exported class would
implement `ArtifactExchangeJson`.
- `ContextBasedExportService` : This interface is designed to abstract
out the common methods which each ArtifactExportService implementation
should implement.
- `ApplicationExportService` : this service implements
ContextBasedExportService for export of applications

# Fixes: 

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

- **New Features**
- Introduced export functionality for applications and related entities,
allowing users to export their applications to a standardized JSON
format.
- Implemented a new transactional interface for applications, enhancing
the management and manipulation of application properties during export
operations.

- **Enhancements**
- Renamed key terminologies to better reflect the broader scope of
exportable and importable artifacts, aligning with the new export
service capabilities.

- **Bug Fixes**
- Adjusted method parameters and logic to ensure consistent behavior in
exporting and importing applications and their associated artifacts.

- **Documentation**
- Updated method names and references in the codebase to match the new
terminology and functionality related to application and artifact
exports.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-29 13:23:27 +07:00
subratadeypappu
1d4cf0d2a4
chore: Add code split in clone page (#30504) 2024-01-29 10:51:29 +05:30
Nidhi
354cdb7eef
chore: Split for git with mi in apps (#30672) 2024-01-28 06:57:46 +05:30
Sumit Kumar
94ba4852b6
chore: consolidated API: return AppsmithAiPlugin's form config by default (#30601) 2024-01-26 19:16:17 +05:30
sneha122
692c2b8636
chore: added logs in update action flow (#30600)
## Description

This PR adds logs to update action flow, so that we can debug a-force
issues faster.

#### PR fixes following issue(s)
Fixes #30282
#### Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video
>
>
#### Type of change
> Please delete options that are not relevant.
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update
>
>
>
## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [ ] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

- **Chores**
- Enhanced logging for better debugging and monitoring of action
updates.
- Optimized import statements in test files for improved code
maintainability.
	- Refactored code for improved performance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2024-01-26 17:42:11 +05:30
Anagh Hegde
41e51c4703
feat: preserve datasource non sensitive config values while forking (#30597)
## Description
Preserve the non sensitive values like host name during forking. This
improves the user exprince when the reconnect modal is shown to enter
the credentials.

#### PR fixes following issue(s)
Fixes #29399

#### Type of change
- New feature (non-breaking change which adds functionality)

## Testing
#### How Has This Been Tested?
- [ ] Manual
- [ ] JUnit

#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

- **Bug Fixes**
- Enhanced the security of datasource configurations by refining the
conditions under which sensitive fields are removed during the forking
process.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-26 11:24:40 +05:30
Shrikant Sharat Kandula
fec8144034
fix: Fix unused imports in test 2024-01-25 20:12:18 +05:30
Diljit
f4d7de241d
chore: Increase Appsmith ai query timeout and add extra metadata to RUN_API analytics event (#30496)
## Description
This PR has the following changes
Frontend Changes
- Increase the default timeout for Appsmith AI Queries from 10s to 60s
- Add usecase details to the Api run mixpanel events. 

Backend Changes
- Add a new plugin execution error type for rate limit errors

#### PR fixes following issue(s)
Fixes # (issue number)
- https://github.com/appsmithorg/appsmith/issues/30491
- https://github.com/appsmithorg/appsmith/issues/30492
- https://github.com/appsmithorg/appsmith-ee/issues/3360

#### Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video
>
>
#### Type of change
> Please delete options that are not relevant.
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update
>
>
>
## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

## Summary by CodeRabbit

- **New Features**
- Added functionality to map plugin names to action property keys for
analytics purposes.
- Introduced a new logic for extracting and organizing action
properties.

- **Refactor**
- Updated timeout settings for AI-related queries to enhance performance
and reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Nirmal Sarswat <nirmal@appsmith.com>
Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
2024-01-24 22:19:55 +05:30
Shrikant Sharat Kandula
e9610b5ace
chore: Remove unused query variable
This snippet uses `archivedAt`, another deprecated field which needed to go away.
2024-01-24 16:47:24 +05:30
Abhijeet
80d5c2baf6
chore: Add workspaceId to the redirect url for auth datasource flow (#30463)
## Description
> Add a TL;DR when description is extra long (helps content team)
>
> Please include a summary of the changes and which issue has been
fixed. Please also include relevant motivation
> and context. List any dependencies that are required for this change
>
> Links to Notion, Figma or any other documents that might be relevant
to the PR
>
>
#### PR fixes following issue(s)
Fixes # (issue number)
> if no issue exists, please create an issue and ask the maintainers
about this first
>
>
#### Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video
>
>
#### Type of change
> Please delete options that are not relevant.
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update
>
>
>
## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [ ] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

- **New Features**
- Integrated workspace identification into authentication services for
enhanced multi-workspace support.

- **Refactor**
- Improved internal handling of workspace-specific data during
authentication processes.

- **Tests**
- Updated tests to include workspace identification checks in
authentication scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2024-01-24 15:16:12 +05:30
Shrikant Sharat Kandula
17546f86a1
chore: don't use CE repository directly (#30581) 2024-01-24 14:17:16 +05:30
Anagh Hegde
ab64bf29af
fix: duplicate name issue in partial import for queries and jsobjects (#30457)
## Description
When the queries and js objects are imported in the same page, the names
were not updated properly which ended up with duplicate names for
queries and jsobjects. This PR adds a fix which will append the number
in the increasing order to avoid the duplicate entries for the above
scenario.
Example - jsObject will be jsObject1

#### PR fixes following issue(s)
Fixes #30291 

#### Type of change
- Bug fix (non-breaking change which fixes an issue)

## Testing
#### How Has This Been Tested?
- [ ] Manual
- [ ] JUnit

#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

- **New Features**
- Enhanced import functionality to support partial imports, allowing
users to selectively import components into their applications.

- **Refactoring**
- Codebase refactored to improve the clarity and efficiency of the
import services.

- **Tests**
- Expanded test coverage to include new cases for partial imports and
ensure the integrity of import operations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-24 13:36:19 +05:30
Shrikant Sharat Kandula
a0563b71e1
chore: Remove deprecated Action and Page classes (#30524)
These classes are deprecated and have been replaced with `NewAction` and
`NewPage`.

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

## Summary by CodeRabbit

- **Refactor**
  - Updated permissions handling to support new page and action classes.
- Replaced deprecated page and action classes with their new
counterparts in various service implementations and policy generation
methods.
  
- **Tests**
- Adjusted test cases to align with the updated permissions and entity
references.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-24 05:54:05 +05:30
Abhijeet
2aa263a145
feat: Handle invalid workspaceId for fetching applications on homepage (#30374)
## Description
PR to throw no resource found exception if the invalid workspace id is
provided for fetching the applications for homepage.

#### PR fixes following issue(s)
Fixes https://github.com/appsmithorg/appsmith/issues/30330

#### Type of change
- Chore (housekeeping or task changes that don't impact user perception)

## Testing
>
#### How Has This Been Tested?
- [x] Manual
- [x] JUnit
- [ ] Jest
- [ ] Cypress

## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

- **New Features**
- Enhanced application management by integrating workspace-related
permissions.
  
- **Bug Fixes**
- Resolved an issue where a null `currentUser` could disrupt application
tests.
  
- **Tests**
  - Added a test to ensure proper handling of invalid workspace IDs.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-23 18:01:33 +05:30
Shrikant Sharat Kandula
92993cccef
chore: Remove unused services (#30292)
I've been doing this in pieces bit by bit, not to rock the boat too much
too fast, but it's taking too long, and too much effort. Instead opting
for a rip-the-bandaid style, hopefully without the pain.
2024-01-23 05:43:16 +05:30
Shrikant Sharat Kandula
d25b94fe50
chore: Remove unneeded exposing of 9001 port (#30499)
We're already using `/supervisor` for this, and don't expect anyone to
hit the port directly.
2024-01-22 15:06:08 +05:30
Pawan Kumar
c035806edf
feat: add icon style in application settings (#30418)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced a new setting for users to select icon styles within the
application theme.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-19 14:51:12 +03:00
Nidhi
e4456aabac
chore: use single page id in repo layer (#30446)
avoid in clause

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

- **New Features**
- Enhanced action collection retrieval to support view mode and user
permissions.
- Improved methods for fetching unpublished actions by page ID,
considering user access rights.

- **Refactor**
  - Streamlined action collection and action retrieval processes.
  - Removed unnecessary imports to optimize codebase.

- **Bug Fixes**
- Fixed issues with fetching action collections in different view modes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-19 15:57:59 +05:30
Manish Kumar
1ca691de09
fix: re-fix for issue 23456 (#30347)
## Description
> Now JSON is rendered in ordered format 

- When JSON used to be parsed, the order of the keys were
randomly/alphabetically ordered. some users needed these to be
unmodified for sending checksum as headers, the previous fix for issue
#23456 only dealt with first order trees.
In this Pr we have used the Gson to parse the JSONs. GSON natively used
linkedHashMaps for their JSONObjects, which preserves their keys order.
One downside for this is that GSON is a strict parser which parses json
only according to RFC4627.

- If GSON fails to parse the json (may happen because of invalid json)
we will fallback to older parsing strategy which is lenient in parsing
JSONs.

#### PR fixes following issue(s)
Fixes #23456

#### How Has This Been Tested?
- [x] Manual
- [x] JUnit

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

## Summary by CodeRabbit

- **New Features**
- Enhanced JSON parsing to ensure the order of keys is preserved,
improving data consistency.
	- Introduced support for new data types in the API plugin.

- **Refactor**
	- Updated JSON handling logic for better performance and reliability.

- **Tests**
- Modified tests to align with the updated JSON parsing and header
order.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-19 13:37:25 +07:00
Manish Kumar
20d6dfb591
chore: Import export application refactor (#29691)
## Description
First draft for Import export flow refactor
Steps for refactoring the application import flow to context agnostic
flow
         /**
         * Step 1: Schema Migration
         * Step 2: Validation of context Json
         * Step 3: create placeholder objects for internal stuffs
         * Step 4: set schema version and other stuffs common misc
         * Step 5: get workspace and user with right set of permission
         * Step 6: get application specific import entities
* Step 7: get allImportEntities like plugins, datasource, action and
other stuffs
* Step 8: get update page and new action with already created
references.
         */
 

fixes: https://github.com/appsmithorg/appsmith/issues/29748, #29819 ,
#29820, #29821, #29822

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

- **New Features**
- Introduced comprehensive application import capabilities, allowing
users to import and manage application artifacts easily.
  
- **Improvements**
- Enhanced artifact management with new functionalities for syncing
client and schema versions, updating artifacts, and permission handling.
  
- **Documentation**
- Added new interfaces and classes to support the import process,
ensuring clarity in the import service's operations.

- **Refactor**
- Streamlined import services by renaming and updating method signatures
for consistency and improved artifact-centric logic.
  
- **Bug Fixes**
- Addressed issues in the import logic to cater to different artifact
types, ensuring a smoother import experience.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-18 18:46:40 +07:00
Shrikant Sharat Kandula
81561a8c52
fix: Allow request headers up to 16KB (#30405)
This is so that large headers like JWT tokens can be accepted.

[Relevant Slack
conversation](https://theappsmith.slack.com/archives/C023V5Y0STH/p1705472948243609?thread_ts=1705395384.537429&cid=C023V5Y0STH).
2024-01-17 21:15:30 +05:30
Anagh Hegde
186d9934e8
fix: Queries do not get exported in a git connected app, by using partial export. (#30368)
## Description
The issue happens on a feature branch for a git connected application.
Works fine on master branch.
The reason is how the ids are handled for a git connected application.
We use the defaultResource and map the actual id with defaultResourceId
when sending the data to client. So for a git connected app the backend
code was using the mongo _id to filter the selected action but the
client sent the defaultResourceId in the request payload. Hence even
though the mongo query returned the correct result the filter on the
list was returning the empty list.

Used the default resource id for filtering

#### PR fixes following issue(s)
Fixes https://github.com/appsmithorg/appsmith/issues/29917

#### Type of change
- Bug fix (non-breaking change which fixes an issue)

## Testing
#### How Has This Been Tested?
- [ ] Manual
- [ ] JUnit

#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

- **New Features**
- Enhanced export functionality in git-connected applications to allow
filtering by branch name.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-17 21:09:44 +05:30
Nirmal Sarswat
811a342267
feat: Appsmith AI as datasource plugin (#29794)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced Appsmith AI capabilities for enhanced data query
functionalities.
- Added a new "Appsmith AI Query" creation operation with a dedicated
icon and description.
  - Implemented a new component for AI plugin datasource management.
- Launched default configurations for the Appsmith AI feature
integration.

- **Enhancements**
- Updated the query editor to conditionally render datasource selectors
based on plugin type.

- **Bug Fixes**
- Removed the redundant `NO_DATASOURCE_FOR_QUERY` constant to streamline
the user interface.

- **Documentation**
- Added detailed constants and service implementations for Appsmith AI
plugin development.

- **Refactor**
- Improved code structure to accommodate AI features and data source
checks across components.

- **Style**
- Integrated new styles for AI-related components and controls within
the application.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: arunvjn <arunvjn10@gmail.com>
Co-authored-by: Diljit <diljit@appsmith.com>
2024-01-16 20:19:08 +05:30
Nayan
7b977abe4e
feat: Added model fields for auto deployment configuration (#30297)
## Description
Adds the model fields for auto deployment configuration. 

#### PR fixes following issue(s)
Partially Fixes #30068
2024-01-16 19:21:14 +06:00
Nidhi
4d9264444e
fix: Split changes to allow access to all entities when refactoring something (#30344) 2024-01-16 18:19:58 +05:30
Aman Agarwal
64f8a7d31e
fix: removed ab_mock_mongo_schema_enabled, ab_gsheet_schema_enabled flag code (#30113)
## Description
Removed the code for `ab_mock_mongo_schema_enabled`,
`ab_gsheet_schema_enabled` feature flags as they both have been rolled
out to 100% of the users on Nov 20, 2023

#### PR fixes following issue(s)
Fixes #28971 
> if no issue exists, please create an issue and ask the maintainers
about this first
>
>
#### Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video
>
>
#### Type of change
> Please delete options that are not relevant.
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update
>
>
>
## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [ ] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

- **New Features**
- Streamlined the process for generating CRUD pages from various data
sources.
- Enhanced the test suite for better coverage of data source
functionalities.

- **Bug Fixes**
- Fixed issues with the CRUD generation logic and improved the
reliability of deployment mode verification.

- **Refactor**
- Removed deprecated feature flags related to data source schema
previews.
  - Simplified the logic for determining if a plugin can preview data.

- **Chores**
- Updated Cypress tests to align with the latest CRUD generation methods
and removed unnecessary feature flag setups.
  - Cleaned up test code for better maintainability and readability.

- **Documentation**
  - No visible documentation changes for end-users.

- **Style**
  - No visible style changes for end-users.

- **Tests**
- Refined end-to-end tests to reflect changes in feature flag
management.

- **Revert**
  - No reverts in this release.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-16 14:00:51 +05:30
Shrikant Sharat Kandula
364650122e
fix: Stop the "could not map" flood of logs (#30290)
With the recent changes to the boolean `deleted` field, we have a flood
of logs like this:

```
Could not map 'Domain.deleted'; Maybe a fragment in 'Boolean' is considered a simple type; Mapper continues with deleted
```

Where it's repeated for several of the domain classes, in place of
`Domain`.

The logs don't seem to have any functional impact anywhere, but are a
very loud noise. This PR fixes this noise.
2024-01-16 09:42:39 +05:30
Nidhi
6470a9456b
chore: Allow executable repo optionals to be nullable (#30298) 2024-01-15 12:12:46 +05:30
Abhijeet
efc303e760
chore: Update the build process to refer the Appsmith version from the info.json in all build artifacts (#29903)
Fixes #29623

Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2024-01-12 19:44:58 +05:30
Nilesh Sarupriya
7fcbb44d7d
chore: refactor executeActions and create plugin trigger which supports queries w/ and w/o datasources (#30001)
## Description
> Refactor code changes.
> 1. refactor `executeActions` so that Appsmith headers can be
transiently added to actionConfiguration, which is used as a parameter
in `executeParameterizedWithMetrics`. This would render the Appsmith
headers usable in the PluginExecutor.
> 2. Introduce a new plugin API `POST /plugins/<plugin_id>/trigger` to
replace the `POST /datasource/<datasource_id>/trigger`. This is done to
decouple the trigger API from `datasource_id` which can then be used for
fetching the dynamic data for queries (w/ or w/o datasources).

#### PR fixes following issue(s)
Fixes [[Task]: Create basic workflow plugin
structure](https://github.com/appsmithorg/appsmith/issues/30120)
Fixes [[Task]: Trigger API to populate workflow names
dynamically.](https://github.com/appsmithorg/appsmith/issues/30134)

#### Type of change
- Chore (housekeeping or task changes that don't impact user perception)

## Testing
>
#### How Has This Been Tested?
- [x] JUnit - Existing test cases should pass.

## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


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

## Summary by CodeRabbit

- **New Features**
- Introduced a new `INTERNAL` plugin type for enhanced integration
capabilities.
- Added trigger functionality for plugins, enabling dynamic data
fetching for query forms.

- **Enhancements**
- Improved the plugin execution flow with additional parameters to
better handle action and datasource triggers.

- **Bug Fixes**
- Standardized request header naming across the application for
consistency and to prevent potential conflicts.

- **Documentation**
- Added new error types and codes for better error handling and user
feedback.

- **Refactor**
- Updated method signatures to include HTTP headers for more robust
action execution.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com>
2024-01-12 19:05:41 +05:30
Rajat Agrawal
891d766030
chore: Add indexes to Application/Workspace/DatasourceStorage domains for pe… (#30190)
Fixes #30191
2024-01-12 13:22:57 +05:30