PromucFlow_constructor/app/server/appsmith-plugins
Nirmal Sarswat 997326774b
chore: Add after delete hook for Appsmith AI datasource (#31466)
## Description
Created a pre delete hook to delete datasource files on Appsmith AI
server when datasource is deleted in Appsmith instance.

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

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

## Automation

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

## 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
- [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 method `preDeleteHook` in the `PluginExecutor`
interface to serve as a hook after deleting a datasource.
- Added a new method `disassociateDatasource` in the AI plugin to notify
the AI server about datasource deletion and provide file context if
available.
- **Refactor**
- Enhanced the AI plugin by refactoring methods to use a new
`createAssociateDTO` method for generating `AssociateDTO` instances,
improving code readability and maintainability.
- **Chores**
- Updated the `archiveById` method in DatasourceServiceCEImpl to include
a `flatMap` operation that triggers a `preDeleteHook` method on the
plugin executor before archiving the datasource. Also added a new
private method `findPluginExecutor` for retrieving the plugin executor.
<!-- end of auto-generated comment: release notes by coderabbit.ai
--><!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]  
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8338230830>
> Commit: `800915ea99c93663af34d08e8bcf4a14ad1356d0`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8338230830&attempt=2"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉

<!-- end of auto-generated comment: Cypress test results  -->
2024-03-19 12:52:32 +05:30
..
amazons3Plugin chore: Fix double-brace-initialization (#31643) 2024-03-11 11:54:25 +05:30
anthropicPlugin fix: using data key for messages in AI plugins (#29639) 2023-12-15 13:44:43 +05:30
appsmithAiPlugin chore: Add after delete hook for Appsmith AI datasource (#31466) 2024-03-19 12:52:32 +05:30
arangoDBPlugin chore: JUnit test cases added for rate limit functions (#28399) 2023-10-26 21:40:55 +05:30
awsLambdaPlugin chore: Fixing failing test cases in AWS lambda (#29854) 2023-12-26 12:22:35 +05:30
databricksPlugin fix: Making userTag a hidden field to not expose it as a user configurable option with Appsmith being the default value (#31792) 2024-03-14 16:18:44 +05:30
dynamoPlugin chore: Applied Spotless formatter (#25173) 2023-07-07 00:43:11 +05:30
elasticSearchPlugin chore: JUnit test cases added for rate limit functions (#28399) 2023-10-26 21:40:55 +05:30
firestorePlugin chore: Fix double-brace-initialization (#31643) 2024-03-11 11:54:25 +05:30
googleAiPlugin fix: using data key for messages in AI plugins (#29639) 2023-12-15 13:44:43 +05:30
googleSheetsPlugin chore: GSheet Internal error logging updated (#29897) 2023-12-28 12:49:21 +05:30
graphqlPlugin chore(deps): Upgrade graphql-java version to gev fix for CVE-2023-2976 (#27400) 2023-09-19 09:09:29 +05:30
jsPlugin chore: Applied Spotless formatter (#25173) 2023-07-07 00:43:11 +05:30
mongoPlugin fix: removed ab_mock_mongo_schema_enabled, ab_gsheet_schema_enabled flag code (#30113) 2024-01-16 14:00:51 +05:30
mssqlPlugin chore: JUnit test cases added for rate limit functions (#28399) 2023-10-26 21:40:55 +05:30
mysqlPlugin fix: sorting schema options alphabetically (#29460) 2023-12-13 13:21:23 +05:30
openAiPlugin feat: Databricks plugin (#29746) 2023-12-26 10:04:09 +05:30
oraclePlugin chore: JUnit test cases added for rate limit functions (#28399) 2023-10-26 21:40:55 +05:30
postgresPlugin feat: PGSql MTLS support (#31067) 2024-03-04 14:38:27 +05:30
redisPlugin chore: JUnit test cases added for rate limit functions (#28399) 2023-10-26 21:40:55 +05:30
redshiftPlugin chore: JUnit test cases added for rate limit functions (#28399) 2023-10-26 21:40:55 +05:30
restApiPlugin test: Add AssertJ for plugins, for better assertions (#31380) 2024-03-04 07:33:45 +05:30
saasPlugin chore: Applied Spotless formatter (#25173) 2023-07-07 00:43:11 +05:30
smtpPlugin chore: JUnit test cases added for rate limit functions (#28399) 2023-10-26 21:40:55 +05:30
snowflakePlugin feat: Add isSuggested value to templates for all plugins (#26623) 2023-08-30 11:49:25 +01:00
pom.xml test: Add AssertJ for plugins, for better assertions (#31380) 2024-03-04 07:33:45 +05:30