Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: refactor datasource import flow to add support for transaction in pg #34514

Merged
merged 13 commits into from
Jul 3, 2024

Conversation

AnaghHegde
Copy link
Member

@AnaghHegde AnaghHegde commented Jun 26, 2024

Description

Please refer this document - https://www.notion.so/appsmith/Transaction-Handling-in-PG-468cf8d4255749c3915699e59e91dc2f
This pr is addressing the refactor for datasource import flow only.

Automation

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

🔍 Cypress test results

Tip

🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/9772380637
Commit: 1f5ab41
Cypress dashboard.
Tags: @tag.Git

Communication

Should the DevRel and Marketing teams inform users about this change?

  • Yes
  • No

Summary by CodeRabbit

  • New Features

    • Introduced support for dry run queries in datasource operations. Users can now perform dry runs when creating, saving, or importing datasources.
  • Improvements

    • Enhanced datasource import functionality by adding logic to handle and save dry run queries.
    • Improved validation and correction processes for datasources during action imports.
  • Internal Enhancements

    • Added a new DryOperationRepository for managing dry run operations for datasources and datasource storage.

@AnaghHegde AnaghHegde self-assigned this Jun 26, 2024
@AnaghHegde AnaghHegde requested review from nidhi-nair, sondermanish and a team as code owners June 26, 2024 14:56
@AnaghHegde AnaghHegde marked this pull request as draft June 26, 2024 14:56
Copy link
Contributor

coderabbitai bot commented Jun 26, 2024

Walkthrough

Recent updates to the DatasourceServiceCE and related classes introduced isDryOps and datasourceStorageDryRunQueries parameters to support dry run operations for datasources and their storage. These changes involve updates to methods in several service classes, the introduction of DryOperationRepository for managing dry run data, and modifications to import and creation logic to accommodate dry run executions.

Changes

Files/Paths Change Summary
app/.../DatasourceServiceCE.java, DatasourceServiceCEImpl.java Added isDryOps and datasourceStorageDryRunQueries parameters to methods for handling dry run operations for datasource management.
app/.../DatasourceImportableServiceCEImpl.java Modified import and creation logic to handle dry run queries for datasources and storage.
app/.../ImportServiceCEImpl.java, PartialImportServiceCEImpl.java Added dependency on DryOperationRepository and implemented logic for dry run executions during resource import.
app/.../repositories/DryOperationRepository.java Introduced DryOperationRepository for managing dry run data for Datasource and DatasourceStorage.
app/.../NewActionImportableServiceCEImpl.java Enhanced datasource validation and correction logic within action import processes.

Poem

Code whispers in the morning light,
Dry runs take their winged flight,
Commands now handle, swift and sleek,
With storages in their mystic peak.
Repositories store, without a sigh,
Datasources dream as they fly high.
AI’s gift to coding bright,
A rabbit's joy in purest byte.

Tip

AI model upgrade

gpt-4o model for reviews and chat is now live

OpenAI claims that this model is better at understanding and generating code than the previous models. Please join our Discord Community to provide any feedback or to report any issues.


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@AnaghHegde AnaghHegde requested review from sharat87 and abhvsn and removed request for a team and sondermanish June 26, 2024 14:57
@github-actions github-actions bot added the skip-changelog Adding this label to a PR prevents it from being listed in the changelog label Jun 26, 2024
@AnaghHegde AnaghHegde removed the request for review from nidhi-nair June 26, 2024 14:57
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Outside diff range and nitpick comments (3)
app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/ce/MappedImportableResourcesCE_DTO.java (1)

50-52: Addition of Dry Run Query Maps:

The new fields datasourceDryRunQueries and datasourceStorageDryRunQueries are added to handle dry run operations. It's crucial to ensure that these maps are used in a thread-safe manner throughout the codebase, especially if accessed concurrently.

Please review all usages of these new maps to ensure thread safety and correct synchronization if needed.

app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/importable/DatasourceImportableServiceCEImpl.java (1)

Line range hint 283-337: Optimize datasource creation logic.

The creation logic is somewhat complex and could benefit from further breakdown into smaller, more manageable methods. This would improve readability and maintainability.

- return datasourceService.createDatasourceFromDatasourceStorage(datasourceStorage)
-     .flatMap(datasource -> datasourceService.createWithoutPermissions(datasource, mappedImportableResourcesDTO.getDatasourceStorageDryRunQueries()));
+ return createAndRegisterDatasource(datasourceStorage, mappedImportableResourcesDTO);

Create a new method createAndRegisterDatasource that encapsulates the creation and registration logic.

app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCEImpl.java (1)

Line range hint 153-236: Approved: Extensive method refactoring to support dry run operations.

The method createEx has been significantly refactored to handle dry run conditions effectively. Consider adding comprehensive unit tests to cover the new logic paths introduced by isDryOps and datasourceStorageDryRunQueries.

Would you like assistance in setting up the unit tests for this method?

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 57f86de and 0853b38.

Files selected for processing (8)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java (1 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCE.java (3 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCEImpl.java (6 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/importable/DatasourceImportableServiceCEImpl.java (5 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCE.java (2 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCEImpl.java (4 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/ce/MappedImportableResourcesCE_DTO.java (2 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/DatasourceContextServiceCEImpl.java (1 hunks)
Additional context used
Gitleaks
app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java

5-5: Identified a HashiCorp Terraform password field, risking unauthorized infrastructure configuration and security breaches. (hashicorp-tf-password)

Additional comments not posted (11)
app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCE.java (2)

18-19: Addition of isDryOps Parameter in create Method:

The new isDryOps parameter in the create method should be documented to explain its purpose and effect when set to true or false.

Consider adding a Javadoc comment for the isDryOps parameter to improve code readability and maintainability.


38-38: Handling of isDryOps in updateDatasourceStorage:

Ensure that the isDryOps parameter is appropriately used within the method to perform operations based on its value, especially concerning transactional integrity and rollback scenarios.

Verification successful

Handling of isDryOps in updateDatasourceStorage:

The isDryOps parameter is appropriately used within the updateDatasourceStorage method to control whether changes are persisted to the repository or not, ensuring proper handling of dry-run operations.

  • The parameter is passed to the validateAndSaveDatasourceStorageToRepository method, which uses it to decide whether to perform a bulk write operation without saving to the repository.
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that the `isDryOps` parameter is used correctly in the `updateDatasourceStorage` method.

# Test: Search for the method usage. Expect: Correct handling of the parameter in all usages.
rg --type java $'updateDatasourceStorage'

Length of output: 2549



Script:

#!/bin/bash
# Extract the implementation of the `updateDatasourceStorage` method in DatasourceStorageServiceCE.java and DatasourceStorageServiceCEImpl.java

# Search for the method implementation in DatasourceStorageServiceCE.java
ast-grep --lang java --pattern $'Mono<DatasourceStorage> updateDatasourceStorage($_, $_, $_, $_) {
  $$$
}' app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCE.java

# Search for the method implementation in DatasourceStorageServiceCEImpl.java
ast-grep --lang java --pattern $'public Mono<DatasourceStorage> updateDatasourceStorage($_, $_, $_, $_) {
  $$$
}' app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCEImpl.java

Length of output: 1461



Script:

#!/bin/bash
# Locate the method definition of `updateDatasourceStorage` in DatasourceStorageServiceCE.java and DatasourceStorageServiceCEImpl.java

# Search for the method definition in DatasourceStorageServiceCE.java
rg --type java --pcre2 --context 10 'Mono<DatasourceStorage> updateDatasourceStorage\(' app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCE.java

# Search for the method definition in DatasourceStorageServiceCEImpl.java
rg --type java --pcre2 --context 10 'public Mono<DatasourceStorage> updateDatasourceStorage\(' app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCEImpl.java

Length of output: 2275



Script:

#!/bin/bash
# Extract the complete implementation of the `updateDatasourceStorage` method in DatasourceStorageServiceCEImpl.java

# Search for the complete method implementation in DatasourceStorageServiceCEImpl.java
rg --type java --pcre2 --context 50 'public Mono<DatasourceStorage> updateDatasourceStorage\(' app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCEImpl.java

Length of output: 5200



Script:

#!/bin/bash
# Extract the implementation of the `validateAndSaveDatasourceStorageToRepository` method in DatasourceStorageServiceCEImpl.java

# Search for the method implementation in DatasourceStorageServiceCEImpl.java
rg --type java --pcre2 --context 50 'validateAndSaveDatasourceStorageToRepository\(' app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCEImpl.java

Length of output: 12735

app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCE.java (1)

43-44: Addition of Dry Run Parameters in save and createWithoutPermissions Methods:

The isDryOps and datasourceStorageDryRunQueries parameters are added to support dry run operations. Ensure that these parameters are handled correctly to maintain data integrity and prevent any side effects in non-dry run scenarios.

Also applies to: 69-70

app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java (1)

206-206: Addition of CREATE Constant:

The new constant CREATE is set to "save". Ensure that this constant is used consistently across the codebase to avoid any discrepancies or conflicts with other constants.

app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCEImpl.java (1)

68-70: Implementation of isDryOps in Various Methods:

The isDryOps parameter is implemented in several methods to support dry run operations. It's crucial to ensure that this parameter is used correctly to avoid any unintended side effects or data corruption.

Also applies to: 138-141, 227-240

Verification successful

Implementation of isDryOps in Various Methods:

The isDryOps parameter is implemented in several methods to support dry run operations. It's crucial to ensure that this parameter is used correctly to avoid any unintended side effects or data corruption.

  • File: app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCEImpl.java
    • Lines 68-70: create method correctly includes the isDryOps parameter.
    • Lines 138-141: updateDatasourceStorage method correctly includes the isDryOps parameter.
    • Lines 227-240: validateAndSaveDatasourceStorageToRepository method correctly handles the isDryOps parameter.

These methods appear to handle the isDryOps parameter appropriately, ensuring that dry run operations are correctly implemented.

Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that the `isDryOps` parameter is used correctly in the implementation of various methods.

# Test: Search for the method usage. Expect: Correct handling of the parameter in all usages.
rg --type java $'create\|updateDatasourceStorage\|validateAndSaveDatasourceStorageToRepository'

Length of output: 96



Script:

#!/bin/bash
# Description: Locate the definitions and usages of methods to verify the correct handling of the `isDryOps` parameter.

# Search for the method definitions and their parameters in the codebase.
ast-grep --lang java --pattern 'public Mono<DatasourceStorage> create(DatasourceStorage $_, boolean isDryOps) { $$$ }'
ast-grep --lang java --pattern 'public Mono<DatasourceStorage> updateDatasourceStorage($_, boolean isDryOps) { $$$ }'
ast-grep --lang java --pattern 'private Mono<DatasourceStorage> validateAndSaveDatasourceStorageToRepository($_, boolean isDryOps) { $$$ }'

Length of output: 3079



Script:

#!/bin/bash
# Description: Locate the definitions and usages of the `create` and `updateDatasourceStorage` methods to verify the correct handling of the `isDryOps` parameter.

# Search for the `create` method definition with `isDryOps` parameter.
ast-grep --lang java --pattern 'public Mono<DatasourceStorage> create(DatasourceStorage $_, boolean isDryOps) { $$$ }'

# Search for the `updateDatasourceStorage` method definition with `isDryOps` parameter.
ast-grep --lang java --pattern 'public Mono<DatasourceStorage> updateDatasourceStorage($_, boolean isDryOps) { $$$ }'

Length of output: 240



Script:

#!/bin/bash
# Description: Locate the definitions and usages of the `create` and `updateDatasourceStorage` methods to verify the correct handling of the `isDryOps` parameter.

# Search for the `create` method definition with `isDryOps` parameter.
rg --type java 'public Mono<DatasourceStorage> create'

# Search for the `updateDatasourceStorage` method definition with `isDryOps` parameter.
rg --type java 'public Mono<DatasourceStorage> updateDatasourceStorage'

# Search for the `isDryOps` parameter usage in the codebase to trace its flow.
rg --type java 'isDryOps'

Length of output: 3528

app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/importable/DatasourceImportableServiceCEImpl.java (1)

245-254: Ensure proper handling of permissions and dry run operations.

The method createUniqueDatasourceIfNotPresent is correctly checking permissions and handling dry run operations. However, consider adding more detailed logging at each critical step to aid in debugging and operational monitoring.

+ log.debug("Checking permissions for creating datasource.");
+ log.debug("Handling dry run operation for datasource.");
app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCEImpl.java (5)

143-143: Approved: Updated method implementation aligns with PR objectives.

The method now correctly delegates to createEx with appropriate default values for new parameters, maintaining backward compatibility and extending functionality.


148-150: Approved: Method updated to support dry run operations.

The method now correctly handles datasourceStorageDryRunQueries for dry run operations, aligning with the new requirements.


402-414: Approved: Updated validation logic to support dry operations.

The method validateAndSaveDatasourceToRepository now includes conditional logic to handle dry run operations effectively, which aligns with the PR's objectives.


392-400: Approved: New method overload to handle dry operations.

The new overload of the save method supports dry operations, which is in line with the new functionality. Consider adding documentation to clarify the behavior and expected outcomes when isDryOps is true.


374-374: Approved: Updated method to support dry operations.

The method updateDatasourceStorage now correctly handles the isDryOps parameter, aligning with the PR's objectives. Ensure consistency in handling this parameter across all relevant methods.

Copy link

Failed server tests

  • com.appsmith.server.exports.internal.ExportServiceTests#createExportAppJsonForGitTest
  • com.appsmith.server.exports.internal.ExportServiceTests#createExportAppJsonWithActionAndActionCollectionTest
  • com.appsmith.server.exports.internal.ExportServiceTests#createExportAppJsonWithCustomJSLibTest
  • com.appsmith.server.exports.internal.ExportServiceTests#createExportAppJsonWithDatasourceButWithoutActionsTest
  • com.appsmith.server.exports.internal.ExportServiceTests#exportAndImportApplication_withMultiplePagesOrderDifferentInDeployAndEditMode_PagesOrderIsMaintainedInEditAndViewMode
  • com.appsmith.server.exports.internal.ExportServiceTests#exportAndImportApplication_withMultiplePagesOrderSameInDeployAndEditMode_PagesOrderIsMaintainedInEditAndViewMode
  • com.appsmith.server.exports.internal.ExportServiceTests#exportApplicationById_WhenContainsInternalFields_InternalFieldsNotExported
  • com.appsmith.server.exports.internal.ExportServiceTests#exportApplicationById_WhenThemeDoesNotExist_ExportedWithDefaultTheme
  • com.appsmith.server.exports.internal.ExportServiceTests#exportApplicationByWhen_WhenGitConnectedAndDatasourceRenamed_QueriesAreInUpdatedResources
  • com.appsmith.server.exports.internal.ExportServiceTests#exportApplicationByWhen_WhenGitConnectedAndPageRenamed_QueriesAreInUpdatedResources
  • com.appsmith.server.exports.internal.ExportServiceTests#exportApplicationTest_WithNavigationSettings
  • com.appsmith.server.exports.internal.ExportServiceTests#exportApplicationWithNullApplicationIdTest
  • com.appsmith.server.exports.internal.ExportServiceTests#exportApplication_WithBearerTokenAndExportWithConfig_exportedWithDecryptedFields
  • com.appsmith.server.exports.internal.ExportServiceTests#exportApplication_WithPageIcon_ValidPageIcon
  • com.appsmith.server.exports.internal.ExportServiceTests#exportApplication_withDatasourceConfig_exportedWithDecryptedFields
  • com.appsmith.server.exports.internal.ExportServiceTests#exportApplication_withInvalidApplicationId_throwNoResourceFoundException
  • com.appsmith.server.exports.internal.ExportServiceTests#exportApplication_withReadOnlyAccess_exportedWithDecryptedFields
  • com.appsmith.server.exports.internal.ExportServiceTests#exportImportApplication_importWithBranchName_updateApplicationResourcesWithBranch
  • com.appsmith.server.exports.internal.ExportServiceTests#exportPublicApplicationTest
  • com.appsmith.server.exports.internal.ExportServiceTests#importApplicationInWorkspaceFromGit_WithAppLayoutInEditMode_ImportedAppHasAppLayoutInEditAndViewMode
  • com.appsmith.server.exports.internal.ExportServiceTests#importApplicationInWorkspaceFromGit_WithNavSettingsInEditMode_ImportedAppHasNavSettingsInEditAndViewMode
  • com.appsmith.server.exports.internal.ExportServiceTests#importUpdatedApplicationIntoWorkspaceFromFile_publicApplication_visibilityFlagNotReset
  • com.appsmith.server.fork.ApplicationForkingServiceTests#cloneApplicationForkWithConfigurationFalseWithActionsThrice
  • com.appsmith.server.fork.ApplicationForkingServiceTests#cloneApplicationForkWithConfigurationTrueWithActionsThrice
  • com.appsmith.server.fork.ApplicationForkingServiceTests#forkApplication_withForkWithConfigurationFalseAndDatasourceNotUsed_IsPartialImportFalse
  • com.appsmith.server.fork.ApplicationForkingServiceTests#forkApplication_withForkWithConfigurationFalseAndDatasourceUsed_IsPartialImportTrue
  • com.appsmith.server.fork.ApplicationForkingServiceTests#forkApplication_withForkWithConfigurationTrue_IsPartialImportFalse
  • com.appsmith.server.git.CommonGitServiceCETest#checkoutRemoteBranch_CustomThemeSetToDefaultAppAndRemoteBranch_AppAndThemesCreated
  • com.appsmith.server.git.CommonGitServiceCETest#checkoutRemoteBranch_WhenApplicationObjectIsPresent_NewAppNotCreated
  • com.appsmith.server.git.CommonGitServiceCETest#checkoutRemoteBranch_notPresentInLocal_newApplicationCreated
  • com.appsmith.server.git.CommonGitServiceCETest#discardChanges_upstreamChangesAvailable_discardSuccess
  • com.appsmith.server.git.CommonGitServiceCETest#importArtifactFromGit_validRequestWithDuplicateApplicationName_Success
  • com.appsmith.server.git.CommonGitServiceCETest#importArtifactFromGit_validRequestWithDuplicateDatasourceOfDifferentType_ThrowError
  • com.appsmith.server.git.CommonGitServiceCETest#importArtifactFromGit_validRequestWithDuplicateDatasourceOfSameTypeCancelledMidway_Success
  • com.appsmith.server.git.CommonGitServiceCETest#importArtifactFromGit_validRequestWithDuplicateDatasourceOfSameType_Success
  • com.appsmith.server.git.CommonGitServiceCETest#importArtifactFromGit_validRequest_Success
  • com.appsmith.server.git.CommonGitServiceCETest#listBranchForArtifact_defaultBranchChangesInRemoteDoesNotExistsInDB_Success
  • com.appsmith.server.git.CommonGitServiceCETest#pullChanges_noUpstreamChanges_nothingToPullMessage
  • com.appsmith.server.git.CommonGitServiceCETest#pullChanges_upstreamChangesAvailable_pullSuccess
  • com.appsmith.server.git.ServerSchemaMigrationEnforcerTest#saveGitRepo_ImportAndThenExport_diffOccurs
  • com.appsmith.server.imports.internal.ImportServiceTests#applySchemaMigration_jsonFileWithFirstVersion_migratedToLatestVersionSuccess
  • com.appsmith.server.imports.internal.ImportServiceTests#createExportAppJsonForGitTest
  • com.appsmith.server.imports.internal.ImportServiceTests#createExportAppJsonWithActionAndActionCollectionTest
  • com.appsmith.server.imports.internal.ImportServiceTests#createExportAppJsonWithCustomJSLibTest
  • com.appsmith.server.imports.internal.ImportServiceTests#createExportAppJsonWithDatasourceButWithoutActionsTest
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_addAppLayoutAfterImport_addedAppLayoutRemoved
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_addNavigationAndThemeSettingAfterImport_addedNavigationAndThemeSettingRemoved
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_addNavigationSettingAfterAppPositioningAlreadyPresentInImport_addedNavigationSettingRemoved
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_addNewActionAfterImport_addedActionRemoved
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_addNewActionCollectionAfterImport_addedActionCollectionRemoved
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_addNewPageAfterImport_addedPageRemoved
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_removeNewActionAfterImport_removedActionRestored
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_removeNewActionCollection_removedActionCollectionRestored
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_removeNewPageAfterImport_removedPageRestored
  • com.appsmith.server.imports.internal.ImportServiceTests#exportAndImportApplication_withMultiplePagesOrderDifferentInDeployAndEditMode_PagesOrderIsMaintainedInEditAndViewMode
  • com.appsmith.server.imports.internal.ImportServiceTests#exportAndImportApplication_withMultiplePagesOrderSameInDeployAndEditMode_PagesOrderIsMaintainedInEditAndViewMode
  • com.appsmith.server.imports.internal.ImportServiceTests#exportApplicationById_WhenContainsInternalFields_InternalFieldsNotExported
  • com.appsmith.server.imports.internal.ImportServiceTests#exportApplicationById_WhenThemeDoesNotExist_ExportedWithDefaultTheme
  • com.appsmith.server.imports.internal.ImportServiceTests#exportApplicationByWhen_WhenGitConnectedAndDatasourceRenamed_QueriesAreInUpdatedResources
  • com.appsmith.server.imports.internal.ImportServiceTests#exportApplicationByWhen_WhenGitConnectedAndPageRenamed_QueriesAreInUpdatedResources
  • com.appsmith.server.imports.internal.ImportServiceTests#exportApplicationTest_WithNavigationSettings
  • com.appsmith.server.imports.internal.ImportServiceTests#exportApplication_WithBearerTokenAndExportWithConfig_exportedWithDecryptedFields
  • com.appsmith.server.imports.internal.ImportServiceTests#exportApplication_WithPageIcon_ValidPageIcon
  • com.appsmith.server.imports.internal.ImportServiceTests#exportApplication_withDatasourceConfig_exportedWithDecryptedFields
  • com.appsmith.server.imports.internal.ImportServiceTests#exportImportApplication_importWithBranchName_updateApplicationResourcesWithBranch
  • com.appsmith.server.imports.internal.ImportServiceTests#extractFileAndUpdateApplication_addNewPageAfterImport_addedPageRemoved
  • com.appsmith.server.imports.internal.ImportServiceTests#extractFileAndUpdateExistingApplication_existingApplication_applicationNameAndSlugRemainsUnchanged
  • com.appsmith.server.imports.internal.ImportServiceTests#extractFileAndUpdateExistingApplication_gitConnectedApplication_throwUnsupportedOperationException
  • com.appsmith.server.imports.internal.ImportServiceTests#extractFileAndUpdateNonGitConnectedApplication_WhenNoPermissionToCreatePage_Fails
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplicationInWorkspaceFromGit_WithAppLayoutInEditMode_ImportedAppHasAppLayoutInEditAndViewMode
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplicationInWorkspaceFromGit_WithNavSettingsInEditMode_ImportedAppHasNavSettingsInEditAndViewMode
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplicationInWorkspace_WhenCustomizedThemes_ThemesCreated
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplication_WhenUpdateLayoutFailures_Success
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplication_datasourceWithSameNameAndDifferentPlugin_importedWithValidActionsAndSuffixedDatasource
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplication_datasourceWithSameNameAndPlugin_importedWithValidActionsWithoutSuffixedDatasource
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplication_existingApplication_ApplicationReplacedWithImportedOne
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplication_importSameApplicationTwice_applicationImportedLaterWithSuffixCount
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplication_incompatibleJsonFile_throwException
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplication_invalidJson_createdAppIsDeleted
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplication_invalidPluginReferenceForDatasource_throwException
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplication_withUnConfiguredDatasources_Success
  • com.appsmith.server.imports.internal.ImportServiceTests#importArtifactFromInvalidFileTest
  • com.appsmith.server.imports.internal.ImportServiceTests#importArtifactFromInvalidJsonFileWithoutArtifactTest
  • com.appsmith.server.imports.internal.ImportServiceTests#importArtifactFromInvalidJsonFileWithoutPagesTest
  • com.appsmith.server.imports.internal.ImportServiceTests#importArtifactFromValidJsonFileTest
  • com.appsmith.server.imports.internal.ImportServiceTests#importArtifactIntoWorkspace_pageAddedInBranchApplication_Success
  • com.appsmith.server.imports.internal.ImportServiceTests#importArtifactWithNullWorkspaceIdTest
  • com.appsmith.server.imports.internal.ImportServiceTests#importArtifact_WithoutThemes_LegacyThemesAssigned
  • com.appsmith.server.imports.internal.ImportServiceTests#importArtifact_withoutActionCollection_succeedsWithoutError
  • com.appsmith.server.imports.internal.ImportServiceTests#importArtifact_withoutPageIdInActionCollection_succeeds
  • com.appsmith.server.imports.internal.ImportServiceTests#importFromValidJson_cancelledMidway_importSuccess
  • com.appsmith.server.imports.internal.ImportServiceTests#importUpdatedApplicationIntoWorkspaceFromFile_publicApplication_visibilityFlagNotReset
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplicationJsonWithApplication_WhenNoPermissionToCreatePage_Fails
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplicationJsonWithApplication_WhenPageListIProvided_OnlyListedPagesAreMerged
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplicationJsonWithApplication_WhenPageNameConflicts_PageNamesRenamed
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplication_existingApplication_pageAddedSuccessfully
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplication_gitConnectedApplicationChildBranch_pageAddedSuccessfully
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplication_gitConnectedApplicationSelectedAllPages_selectedPageAddedSuccessfully
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplication_gitConnectedApplicationSelectedSpecificPages_selectedPageAddedSuccessfully
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplication_gitConnectedApplication_pageAddedSuccessfully
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplication_nonGitConnectedApplicationSelectedAllPages_selectedPageAddedSuccessfully
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplication_nonGitConnectedApplicationSelectedSpecificPages_selectedPageAddedSuccessfully
  • com.appsmith.server.services.DatasourceContextServiceTest#checkDecryptionOfAuthenticationDTONullPassword
  • com.appsmith.server.services.DatasourceContextServiceTest#checkDecryptionOfAuthenticationDTOTest
  • com.appsmith.server.services.DatasourceContextServiceTest#testDatasourceCreate_withUpdatableConnection_recreatesConnectionAlways
  • com.appsmith.server.services.DatasourceContextServiceTest#testUpdateDatasourceAndSetAuthentication_withNoRealChange_keepsDatasourceConfigurationValuesDecrypted
  • com.appsmith.server.services.DatasourceServiceTest#checkEncryptionOfAuthenticationDTOAfterRemoval
  • com.appsmith.server.services.DatasourceServiceTest#checkEncryptionOfAuthenticationDTOAfterUpdate
  • com.appsmith.server.services.DatasourceServiceTest#checkEncryptionOfAuthenticationDTONullPassword
  • com.appsmith.server.services.DatasourceServiceTest#checkEncryptionOfAuthenticationDTOTest
  • com.appsmith.server.services.DatasourceServiceTest#createAndUpdateDatasourceDifferentAuthentication
  • com.appsmith.server.services.DatasourceServiceTest#createAndUpdateDatasourceValidDB
  • com.appsmith.server.services.DatasourceServiceTest#createDatasourceNotInstalledPlugin
  • com.appsmith.server.services.DatasourceServiceTest#createDatasourceValid
  • com.appsmith.server.services.DatasourceServiceTest#createDatasourceWithHostnameStartingWithSpace
  • com.appsmith.server.services.DatasourceServiceTest#createDatasourceWithInvalidCharsInHost
  • com.appsmith.server.services.DatasourceServiceTest#createNamelessDatasource
  • com.appsmith.server.services.DatasourceServiceTest#datasourceDefaultNameCounterAsPerWorkspaceId
  • com.appsmith.server.services.DatasourceServiceTest#deleteDatasourceWithActions
  • com.appsmith.server.services.DatasourceServiceTest#deleteDatasourceWithDeletedActions
  • com.appsmith.server.services.DatasourceServiceTest#deleteDatasourceWithoutActions
  • com.appsmith.server.services.DatasourceServiceTest#get_WhenDatasourcesPresent_SortedAndIsRecentlyCreatedFlagSet
  • com.appsmith.server.services.DatasourceServiceTest#testDatasourceEmptyFields
  • com.appsmith.server.services.DatasourceServiceTest#testDatasourceValid
  • com.appsmith.server.services.DatasourceServiceTest#testHintMessageNPE
  • com.appsmith.server.services.DatasourceServiceTest#testHintMessageOnLocalhostIPAddressOnUpdateEventOnNonApiDatasource
  • com.appsmith.server.services.DatasourceServiceTest#testHintMessageOnLocalhostUrlOnCreateEventOnApiDatasource
  • com.appsmith.server.services.DatasourceServiceTest#testHintMessageOnLocalhostUrlOnCreateEventOnNonApiDatasource
  • com.appsmith.server.services.DatasourceServiceTest#testHintMessageOnLocalhostUrlOnTestDatasourceEvent
  • com.appsmith.server.services.DatasourceServiceTest#testHintMessageOnLocalhostUrlOnUpdateEventOnApiDatasource
  • com.appsmith.server.services.DatasourceServiceTest#verifyTestDatasourceWithSavedDatasourceButNoDatasourceStorageSucceeds
  • com.appsmith.server.services.DatasourceServiceTest#verifyUpdateDatasourceStorageWithoutDatasourceId
  • com.appsmith.server.services.DatasourceServiceTest#verifyUpdateNameReturnsNullStorages
  • com.appsmith.server.services.MockDataServiceTest#testCreateMockDataSetsDuplicateName
  • com.appsmith.server.services.MockDataServiceTest#testCreateMockDataSetsMongo
  • com.appsmith.server.services.MockDataServiceTest#testCreateMockDataSetsPostgres
  • com.appsmith.server.services.WorkspaceServiceTest#addUserToWorkspaceAsAdminAndCheckApplicationAndDatasourcePermissions
  • com.appsmith.server.services.ce.ActionServiceCE_Test#checkNewActionAndNewDatasourceAnonymousPermissionInPublicApp
  • com.appsmith.server.services.ce.ActionServiceCE_Test#testActionHasPathKeyEntryWhenActionIsUpdated
  • com.appsmith.server.services.ce.ActionServiceCE_Test#testActionWithGraphQLDatasourceMoustacheBinding
  • com.appsmith.server.services.ce.ActionServiceCE_Test#testActionWithNonAPITypeDatasourceMoustacheBinding
  • com.appsmith.server.services.ce.ActionServiceCE_Test#updateActionShouldSetUpdatedAtField
  • com.appsmith.server.services.ce.ActionServiceCE_Test#updateShouldNotResetUserSetOnLoad
  • com.appsmith.server.services.ce.ApplicationServiceCETest#basicPublishApplicationTest
  • com.appsmith.server.services.ce.ApplicationServiceCETest#changeDefaultPageForAPublishedApplication
  • com.appsmith.server.services.ce.ApplicationServiceCETest#cloneApplication_WhenClonedSuccessfully_InternalFieldsResetToNull
  • com.appsmith.server.services.ce.ApplicationServiceCETest#cloneApplication_WithCustomSavedTheme_ThemesAlsoCopied
  • com.appsmith.server.services.ce.ApplicationServiceCETest#cloneApplication_applicationWithGitMetadataAndActions_success
  • com.appsmith.server.services.ce.ApplicationServiceCETest#cloneApplication_applicationWithGitMetadata_success
  • com.appsmith.server.services.ce.ApplicationServiceCETest#cloneApplication_noDatasourceCreateActionPermissions
  • com.appsmith.server.services.ce.ApplicationServiceCETest#cloneApplication_noPageEditPermissions
  • com.appsmith.server.services.ce.ApplicationServiceCETest#cloneApplication_withActionAndActionCollection_success
  • com.appsmith.server.services.ce.ApplicationServiceCETest#cloneApplication_withDeletedActionInActionCollection_deletedActionIsNotCloned
  • com.appsmith.server.services.ce.ApplicationServiceCETest#cloneGitConnectedApplication_withUpdatedDefaultBranch_sucess
  • com.appsmith.server.services.ce.ApplicationServiceCETest#createApplicationWithDuplicateName
  • com.appsmith.server.services.ce.ApplicationServiceCETest#createApplicationWithNullName
  • com.appsmith.server.services.ce.ApplicationServiceCETest#createValidApplication
  • com.appsmith.server.services.ce.ApplicationServiceCETest#defaultPageCreateOnCreateApplicationTest
  • com.appsmith.server.services.ce.ApplicationServiceCETest#deleteApplication_WithDeployKeysNotConnectedToRemote_Success
  • com.appsmith.server.services.ce.ApplicationServiceCETest#deleteApplication_withNullGitData_Success
  • com.appsmith.server.services.ce.ApplicationServiceCETest#deleteApplication_withPagesActionsAndActionCollections_resourcesArchived
  • com.appsmith.server.services.ce.ApplicationServiceCETest#deleteUnpublishedPageFromApplication
  • com.appsmith.server.services.ce.ApplicationServiceCETest#deleteUnpublishedPage_FromApplicationConnectedToGit_success
  • com.appsmith.server.services.ce.ApplicationServiceCETest#generateSshKeyPair_WhenDefaultApplicationIdNotSet_CurrentAppUpdated
  • com.appsmith.server.services.ce.ApplicationServiceCETest#generateSshKeyPair_WhenDefaultApplicationIdSet_DefaultApplicationUpdated
  • com.appsmith.server.services.ce.ApplicationServiceCETest#getApplicationByDefaultIdAndBranchName_emptyBranchName_success
  • com.appsmith.server.services.ce.ApplicationServiceCETest#getApplicationByDefaultIdAndBranchName_invalidBranchName_throwException
  • com.appsmith.server.services.ce.ApplicationServiceCETest#getApplicationByDefaultIdAndBranchName_validBranchName_success
  • com.appsmith.server.services.ce.ApplicationServiceCETest#getApplicationConnectedToGit_defaultBranchUpdated_returnBranchSpecificApplication
  • com.appsmith.server.services.ce.ApplicationServiceCETest#getApplicationInViewMode
  • com.appsmith.server.services.ce.ApplicationServiceCETest#getApplicationInvalidId
  • com.appsmith.server.services.ce.ApplicationServiceCETest#getApplicationNullId
  • com.appsmith.server.services.ce.ApplicationServiceCETest#getApplicationsByBranchName_validBranchName_success
  • com.appsmith.server.services.ce.ApplicationServiceCETest#invalidUpdateApplication
  • com.appsmith.server.services.ce.ApplicationServiceCETest#makeApplicationPrivate_applicationWithGitMetadata_success
  • com.appsmith.server.services.ce.ApplicationServiceCETest#makeApplicationPublic_applicationWithGitMetadata_success
  • com.appsmith.server.services.ce.ApplicationServiceCETest#newApplicationShouldHavePublishedState
  • com.appsmith.server.services.ce.ApplicationServiceCETest#publishApplication_noPageEditPermissions
  • com.appsmith.server.services.ce.ApplicationServiceCETest#publishApplication_withArchivedUnpublishedResources_resourcesArchived
  • com.appsmith.server.services.ce.ApplicationServiceCETest#publishApplication_withGitConnectedApp_success
  • com.appsmith.server.services.ce.ApplicationServiceCETest#publishApplication_withPageIconSet_success
  • com.appsmith.server.services.ce.ApplicationServiceCETest#reuseDeletedAppName
  • com.appsmith.server.services.ce.ApplicationServiceCETest#saveLastEditInformation_WhenUserHasPermission_Updated
  • com.appsmith.server.services.ce.ApplicationServiceCETest#testCreatePage_lastModifiedByShouldGetChanged
  • com.appsmith.server.services.ce.ApplicationServiceCETest#testPublicApp_whenMultiplePublicAppsInWorkspaceAndOneAccessRevoked_otherPublicAppRetainsAccessToWorkspaceLevelResources
  • com.appsmith.server.services.ce.ApplicationServiceCETest#testUpdateApplication_modifiedByShouldUpdate
  • com.appsmith.server.services.ce.ApplicationServiceCETest#testUploadAndDeleteNavigationLogo_validImage
  • com.appsmith.server.services.ce.ApplicationServiceCETest#testUploadNavigationLogo_invalidImageFormat
  • com.appsmith.server.services.ce.ApplicationServiceCETest#testUploadNavigationLogo_invalidImageSize
  • com.appsmith.server.services.ce.ApplicationServiceCETest#updateApplicationByIdAndBranchName_validBranchName_success
  • com.appsmith.server.services.ce.ApplicationServiceCETest#validChangeViewAccessCancelledMidWay
  • com.appsmith.server.services.ce.ApplicationServiceCETest#validCloneApplicationWhenCancelledMidWay
  • com.appsmith.server.services.ce.ApplicationServiceCETest#validGetApplicationById
  • com.appsmith.server.services.ce.ApplicationServiceCETest#validGetApplicationPagesMultiPageApp
  • com.appsmith.server.services.ce.ApplicationServiceCETest#validGetApplications
  • com.appsmith.server.services.ce.ApplicationServiceCETest#validMakeApplicationPrivate
  • com.appsmith.server.services.ce.ApplicationServiceCETest#validMakeApplicationPublic
  • com.appsmith.server.services.ce.ApplicationServiceCETest#validMakeApplicationPublicWithActions
  • com.appsmith.server.services.ce.ApplicationServiceCETest#validPrivateAppUpdateApplication
  • com.appsmith.server.services.ce.ApplicationServiceCETest#validPublicAppUpdateApplication
  • com.appsmith.server.services.ce.ApplicationServiceCETest#validUpdateApplication
  • com.appsmith.server.solutions.AuthenticationServiceTest#testGetAuthorizationCodeURL_invalidDatasourceWithNullAuthentication
  • com.appsmith.server.solutions.AuthenticationServiceTest#testGetAuthorizationCodeURL_validDatasource
  • com.appsmith.server.solutions.AuthenticationServiceTest#testGetAuthorizationCodeURL_validDatasourceAndBranchName
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPageWithInvalidApplicationIdTest
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPageWithInvalidDatasourceTest
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPageWithInvalidRequestBodyTest
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPageWithLessColumnsComparedToTemplateForPostgres
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPageWithLessColumnsComparedToTemplateForSql
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPageWithNullPageId
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPageWithNullPageIdForS3
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPageWithNullPageIdForSnowflake
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPageWithValidPageIdForGoogleSheet
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPageWithValidPageIdForMongoDB
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPageWithValidPageIdForMySqlDS
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPageWithValidPageIdForPostgresqlDS
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPageWithValidPageIdForRedshiftDS
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPage_withInvalidBranchName_throwException
  • com.appsmith.server.solutions.CreateDBTablePageSolutionTests#createPage_withValidBranch_validDefaultIds
  • com.appsmith.server.solutions.DatasourceStructureSolutionTest#verifyCaseWhereNoEnvironmentProvided
  • com.appsmith.server.solutions.DatasourceStructureSolutionTest#verifyDatasourceStorageStructureEntriesWithTwoEnvironmentId
  • com.appsmith.server.solutions.DatasourceStructureSolutionTest#verifyDatasourceStorageStructureGettingSaved
  • com.appsmith.server.solutions.DatasourceStructureSolutionTest#verifyDuplicateKeyErrorOnSave
  • com.appsmith.server.solutions.DatasourceStructureSolutionTest#verifyEmptyDatasourceStructureObjectIfDatasourceIsInvalid
  • com.appsmith.server.solutions.DatasourceStructureSolutionTest#verifyEmptyStructureForPluginsWithNoGetStructureImplementation
  • com.appsmith.server.solutions.DatasourceStructureSolutionTest#verifyGenerateNewStructureWhenNotPresent
  • com.appsmith.server.solutions.DatasourceStructureSolutionTest#verifyUseCachedStructureWhenStructurePresent
  • com.appsmith.server.solutions.DatasourceStructureSolutionTest#verifyUseCachedStructureWhenStructurePresentWithNoEnvironment
  • com.appsmith.server.solutions.DatasourceStructureSolutionTest#verifyUseNewStructureWhenIgnoreCacheSetTrue
  • com.appsmith.server.solutions.DatasourceTriggerSolutionTest#datasourceTriggerTest
  • com.appsmith.server.solutions.PartialExportServiceTest#testGetPartialExport_gitConnectedApp_branchResourceExported
  • com.appsmith.server.solutions.PartialExportServiceTest#testGetPartialExport_gitConnectedApp_featureBranchResourceExported
  • com.appsmith.server.solutions.PartialExportServiceTest#testGetPartialExport_nonGitConnectedApp_success
  • com.appsmith.server.solutions.PartialImportServiceTest#testPartialImportWithBuildingBlock_nameClash_success
  • com.appsmith.server.solutions.PartialImportServiceTest#testPartialImport_gitConnectedAppDefaultBranch_success
  • com.appsmith.server.solutions.PartialImportServiceTest#testPartialImport_nameClashInAction_successWithNoNameDuplicates
  • com.appsmith.server.solutions.PartialImportServiceTest#testPartialImport_nonGitConnectedApp_success
  • com.appsmith.server.solutions.ce.ActionExecutionSolutionCETest#executeActionNoStorageFound
  • com.appsmith.server.solutions.ce.ActionExecutionSolutionCETest#executeActionWithExternalDatasource
  • com.appsmith.server.solutions.ce.ActionExecutionSolutionCETest#executeAction_actionOnMockDatasource_success
  • com.appsmith.server.transactions.ImportApplicationTransactionServiceTest#importApplication_transactionExceptionDuringListActionSave_omitTransactionMessagePart

Copy link

Failed server tests

  • com.appsmith.server.git.CommonGitServiceCETest#checkoutRemoteBranch_CustomThemeSetToDefaultAppAndRemoteBranch_AppAndThemesCreated
  • com.appsmith.server.git.CommonGitServiceCETest#checkoutRemoteBranch_WhenApplicationObjectIsPresent_NewAppNotCreated
  • com.appsmith.server.git.CommonGitServiceCETest#checkoutRemoteBranch_notPresentInLocal_newApplicationCreated
  • com.appsmith.server.git.CommonGitServiceCETest#discardChanges_upstreamChangesAvailable_discardSuccess
  • com.appsmith.server.git.CommonGitServiceCETest#importArtifactFromGit_validRequestWithDuplicateApplicationName_Success
  • com.appsmith.server.git.CommonGitServiceCETest#importArtifactFromGit_validRequestWithDuplicateDatasourceOfSameTypeCancelledMidway_Success
  • com.appsmith.server.git.CommonGitServiceCETest#importArtifactFromGit_validRequestWithDuplicateDatasourceOfSameType_Success
  • com.appsmith.server.git.CommonGitServiceCETest#importArtifactFromGit_validRequest_Success
  • com.appsmith.server.git.CommonGitServiceCETest#listBranchForArtifact_defaultBranchChangesInRemoteDoesNotExistsInDB_Success
  • com.appsmith.server.git.CommonGitServiceCETest#pullChanges_noUpstreamChanges_nothingToPullMessage
  • com.appsmith.server.git.CommonGitServiceCETest#pullChanges_upstreamChangesAvailable_pullSuccess
  • com.appsmith.server.git.ServerSchemaMigrationEnforcerTest#saveGitRepo_ImportAndThenExport_diffOccurs
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_addNewActionAfterImport_addedActionRemoved
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_addNewActionCollectionAfterImport_addedActionCollectionRemoved
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_addNewPageAfterImport_addedPageRemoved
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_removeNewActionAfterImport_removedActionRestored
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_removeNewActionCollection_removedActionCollectionRestored
  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_removeNewPageAfterImport_removedPageRestored
  • com.appsmith.server.imports.internal.ImportServiceTests#extractFileAndUpdateApplication_addNewPageAfterImport_addedPageRemoved
  • com.appsmith.server.imports.internal.ImportServiceTests#extractFileAndUpdateExistingApplication_existingApplication_applicationNameAndSlugRemainsUnchanged
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplicationInWorkspace_WhenCustomizedThemes_ThemesCreated
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplication_datasourceWithSameNameAndDifferentPlugin_importedWithValidActionsAndSuffixedDatasource
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplication_datasourceWithSameNameAndPlugin_importedWithValidActionsWithoutSuffixedDatasource
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplication_existingApplication_ApplicationReplacedWithImportedOne
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplication_importSameApplicationTwice_applicationImportedLaterWithSuffixCount
  • com.appsmith.server.imports.internal.ImportServiceTests#importApplication_withUnConfiguredDatasources_Success
  • com.appsmith.server.imports.internal.ImportServiceTests#importArtifactFromValidJsonFileTest
  • com.appsmith.server.imports.internal.ImportServiceTests#importArtifactIntoWorkspace_pageAddedInBranchApplication_Success
  • com.appsmith.server.imports.internal.ImportServiceTests#importArtifact_WithoutThemes_LegacyThemesAssigned
  • com.appsmith.server.imports.internal.ImportServiceTests#importArtifact_withoutActionCollection_succeedsWithoutError
  • com.appsmith.server.imports.internal.ImportServiceTests#importArtifact_withoutPageIdInActionCollection_succeeds
  • com.appsmith.server.imports.internal.ImportServiceTests#importFromValidJson_cancelledMidway_importSuccess
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplication_existingApplication_pageAddedSuccessfully
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplication_gitConnectedApplicationChildBranch_pageAddedSuccessfully
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplication_gitConnectedApplicationSelectedAllPages_selectedPageAddedSuccessfully
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplication_gitConnectedApplicationSelectedSpecificPages_selectedPageAddedSuccessfully
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplication_gitConnectedApplication_pageAddedSuccessfully
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplication_nonGitConnectedApplicationSelectedAllPages_selectedPageAddedSuccessfully
  • com.appsmith.server.imports.internal.ImportServiceTests#mergeApplication_nonGitConnectedApplicationSelectedSpecificPages_selectedPageAddedSuccessfully
  • com.appsmith.server.services.DatasourceServiceTest#verifyTestDatasourceWithSavedDatasourceButNoDatasourceStorageSucceeds
  • com.appsmith.server.services.ce.ApplicationServiceCETest#newApplicationShouldHavePublishedState
  • com.appsmith.server.solutions.PartialImportServiceTest#testPartialImportWithBuildingBlock_nameClash_success
  • com.appsmith.server.solutions.PartialImportServiceTest#testPartialImport_nameClashInAction_successWithNoNameDuplicates
  • com.appsmith.server.transactions.ImportApplicationTransactionServiceTest#importApplication_transactionExceptionDuringListActionSave_omitTransactionMessagePart

@appsmithorg appsmithorg deleted a comment from github-actions bot Jun 27, 2024
@AnaghHegde AnaghHegde added the ok-to-test Required label for CI label Jun 30, 2024
@appsmithorg appsmithorg deleted a comment from github-actions bot Jun 30, 2024
@AnaghHegde AnaghHegde marked this pull request as ready for review June 30, 2024 10:06
@AnaghHegde AnaghHegde added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Jun 30, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 0853b38 and d3f21eb.

Files selected for processing (9)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCEImpl.java (7 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/importable/DatasourceImportableServiceCEImpl.java (5 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/imports/internal/ImportServiceCEImpl.java (3 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/imports/internal/ImportServiceImpl.java (3 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/imports/internal/partial/PartialImportServiceCEImpl.java (3 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/imports/internal/partial/PartialImportServiceImpl.java (3 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/newactions/importable/NewActionImportableServiceCEImpl.java (2 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/DryOperationRepository.java (1 hunks)
  • app/server/appsmith-server/src/test/java/com/appsmith/server/services/DatasourceServiceTest.java (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/importable/DatasourceImportableServiceCEImpl.java
Additional comments not posted (18)
app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/DryOperationRepository.java (4)

25-31: LGTM!


33-35: LGTM!


37-39: LGTM!


41-43: LGTM!

app/server/appsmith-server/src/main/java/com/appsmith/server/imports/internal/ImportServiceImpl.java (1)

12-12: LGTM!

Also applies to: 34-35, 47-48

app/server/appsmith-server/src/main/java/com/appsmith/server/imports/internal/partial/PartialImportServiceImpl.java (1)

19-19: LGTM!

Also applies to: 70-71, 100-101

app/server/appsmith-server/src/main/java/com/appsmith/server/newactions/importable/NewActionImportableServiceCEImpl.java (1)

321-339: LGTM!

app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCEImpl.java (10)

Line range hint 153-201: LGTM!


225-241: LGTM!


407-419: LGTM!


327-327: LGTM!


379-379: LGTM!


407-419: LGTM!


412-419: LGTM!


894-900: LGTM!


148-150: LGTM!

However, ensure that all function calls to createWithoutPermissions match the new signature.

Verification successful

LGTM!

All function calls to createWithoutPermissions match the new signature.

  • DatasourceImportableServiceCEImpl.java: The function call matches the new signature.
  • DatasourceServiceCE.java: The interface definition matches the new signature.
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify all function calls to `createWithoutPermissions` match the new signature.

# Test: Search for the function usage. Expect: Only occurrences of the new signature.
rg --type java $'createWithoutPermissions('

Length of output: 145



Script:

#!/bin/bash
# Description: Verify all function calls to `createWithoutPermissions` match the new signature.

# Test: Search for the function usage. Expect: Only occurrences of the new signature.
rg --type java 'createWithoutPermissions\('

Length of output: 574



Script:

#!/bin/bash
# Extract the relevant lines from the files to verify the function signature.

# Extract the call in DatasourceImportableServiceCEImpl.java
rg --type java -A 2 'createWithoutPermissions\(' app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/importable/DatasourceImportableServiceCEImpl.java

# Extract the interface definition in DatasourceServiceCE.java
rg --type java -A 2 'createWithoutPermissions\(' app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCE.java

Length of output: 711


143-143: LGTM!

However, ensure that all function calls to create match the new signature.

Verification successful

LGTM!

The changes have been verified, and the createEx method is correctly used within the DatasourceServiceCEImpl class with the expected signature. The remaining create method calls in other files do not impact the DatasourceServiceCEImpl class.

Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify all function calls to `create` match the new signature.

# Test: Search for the function usage. Expect: Only occurrences of the new signature.
rg --type java $'create('

Length of output: 91



Script:

#!/bin/bash
# Description: Verify all function calls to `create` match the new signature.

# Test: Search for the function usage. Expect: Only occurrences of the new signature.
rg --type java 'create\('

Length of output: 298267



Script:

#!/bin/bash
# Description: Verify all function calls to `create` in `DatasourceServiceCEImpl` match the new signature.

# Test: Search for the function usage within `DatasourceServiceCEImpl`. Expect: Only occurrences of the new signature.
rg --type java 'DatasourceServiceCEImpl' -A 10 | rg 'create\('

Length of output: 62



Script:

#!/bin/bash
# Description: Verify all function calls to `create` and `createEx` in the entire repository.

# Test: Search for the function usage within the entire repository. Expect: Only occurrences of the new signature.
rg --type java 'create\('
rg --type java 'createEx\('

Length of output: 298841

app/server/appsmith-server/src/test/java/com/appsmith/server/services/DatasourceServiceTest.java (1)

1997-1997: Ensure correct handling of the additional boolean parameter.

The create method call now includes an additional boolean parameter. Verify that this parameter is correctly handled and passed to the underlying method.

Copy link
Contributor

@abhvsn abhvsn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left few comments to be looked into.

datasourceStorageList.addAll(
datasourceStorageDryRunQueries.get(FieldName.CREATE));
datasourceStorageList.add(datasourceStorage1);
datasourceStorageDryRunQueries.put(FieldName.CREATE, datasourceStorageList);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't we just append the element in the existing list i.e. value of datasourceStorageDryRunQueries, instead of creating a new one everytime and then updating it?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried that but for list with map its not supported. Ran into exceptions and then ended up using this.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between d3f21eb and c5daa09.

Files selected for processing (10)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCE.java (3 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCEImpl.java (8 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/importable/DatasourceImportableServiceCEImpl.java (6 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCE.java (2 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCEImpl.java (4 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/DBOpsType.java (1 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/newactions/base/NewActionServiceCEImpl.java (1 hunks)
  • app/server/appsmith-server/src/test/java/com/appsmith/server/exports/internal/ExportServiceTests.java (1 hunks)
  • app/server/appsmith-server/src/test/java/com/appsmith/server/imports/internal/ImportServiceTests.java (1 hunks)
  • app/server/appsmith-server/src/test/java/com/appsmith/server/services/DatasourceServiceTest.java (2 hunks)
Files skipped from review due to trivial changes (1)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/DBOpsType.java
Files skipped from review as they are similar to previous changes (5)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCE.java
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/importable/DatasourceImportableServiceCEImpl.java
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCE.java
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasourcestorages/base/DatasourceStorageServiceCEImpl.java
  • app/server/appsmith-server/src/test/java/com/appsmith/server/services/DatasourceServiceTest.java
Additional comments not posted (9)
app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCEImpl.java (6)

395-403: LGTM!

The code changes are approved.


407-419: LGTM!

The code changes are approved.


893-900: LGTM!

The code changes are approved.


385-385: Verify the function usage in the codebase.

Ensure that all calls to the updateDatasourceStorage method are updated to use the new parameters.


144-144: Verify the function usage in the codebase.

Ensure that all calls to the create method are updated to use the new parameters.

Verification successful

The create method calls in DatasourceServiceCEImpl have been updated to use createEx.

The changes are consistent with the new method signature.

  • Verified occurrences of createEx within DatasourceServiceCEImpl.
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify all function calls to `create` match the new signature.

# Test: Search for the function usage. Expect: Only occurrences of the new signature.
rg --type java $'create('

Length of output: 91



Script:

#!/bin/bash
# Description: Verify all function calls to `create` match the new signature and ensure consistency.

# Test: Search for the function usage. Expect: Only occurrences of the new signature.
rg --type java 'create\('

# Test: Search for the new function usage. Expect: Occurrences of the new signature.
rg --type java 'createEx\('

Length of output: 299004


148-152: Verify the function usage in the codebase.

Ensure that all calls to the createWithoutPermissions method are updated to use the new parameters.

Verification successful

The function createWithoutPermissions has been correctly updated with the new parameter datasourceStorageDryRunQueries and is used appropriately in the codebase.

  • DatasourceImportableServiceCEImpl.java uses the new method signature.
  • DatasourceServiceCE.java and DatasourceServiceCEImpl.java include the new method signature alongside the old one.
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify all function calls to `createWithoutPermissions` match the new signature.

# Test: Search for the function usage. Expect: Only occurrences of the new signature.
rg --type java $'createWithoutPermissions('

Length of output: 145



Script:

#!/bin/bash
# Description: Verify all function calls to `createWithoutPermissions` match the new signature.

# Test: Search for the function usage. Expect: Only occurrences of the new signature.
rg --type java 'createWithoutPermissions\('

Length of output: 932



Script:

#!/bin/bash
# Description: Verify the specific usage of `createWithoutPermissions` in `DatasourceImportableServiceCEImpl.java` to check if it matches the new signature.

# Test: Display the relevant lines around the usage.
rg --type java -C 3 'createWithoutPermissions\(' app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/importable/DatasourceImportableServiceCEImpl.java

Length of output: 724



Script:

#!/bin/bash
# Description: Verify the method declarations in `DatasourceServiceCE.java` and `DatasourceServiceCEImpl.java` to ensure they are updated to the new signature.

# Test: Display the relevant lines around the method declarations.
rg --type java -C 3 'createWithoutPermissions\(' app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCE.java
rg --type java -C 3 'createWithoutPermissions\(' app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCEImpl.java

Length of output: 1078

app/server/appsmith-server/src/test/java/com/appsmith/server/exports/internal/ExportServiceTests.java (1)

2076-2076: Verify the correctness of the save method call.

The save method now requires a boolean isDryOps parameter. Ensure that passing false here is the intended behavior and that the method's behavior aligns with this change.

app/server/appsmith-server/src/test/java/com/appsmith/server/imports/internal/ImportServiceTests.java (2)

5183-5183: Improve Test Name for Clarity

The test name exportApplicationByWhen_WhenGitConnectedAndDatasourceRenamed_QueriesAreInUpdatedResources is a bit confusing. Consider renaming it to something more descriptive, such as exportApplication_WhenDatasourceRenamed_QueriesReflectUpdatedDatasource.


5183-5183: Improve Test Name for Clarity

The test name importApplication_WhenUpdateLayoutFailures_Success is a bit confusing. Consider renaming it to something more descriptive, such as importApplication_WithFaultyLayout_Success.

@AnaghHegde AnaghHegde requested a review from abhvsn July 1, 2024 15:39
@AnaghHegde AnaghHegde added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Jul 1, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between c5daa09 and 239a42f.

Files selected for processing (4)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCEImpl.java (8 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/importable/DatasourceImportableServiceCEImpl.java (6 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/imports/internal/ImportServiceCEImpl.java (3 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/DryOperationRepository.java (1 hunks)
Files skipped from review as they are similar to previous changes (3)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/importable/DatasourceImportableServiceCEImpl.java
  • app/server/appsmith-server/src/main/java/com/appsmith/server/imports/internal/ImportServiceCEImpl.java
  • app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/DryOperationRepository.java
Additional comments not posted (10)
app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCEImpl.java (10)

144-144: LGTM!

The code changes are approved.


149-152: LGTM!

The code changes are approved.


156-156: LGTM!

The code changes are approved.


159-163: LGTM!

The code changes are approved.


207-207: LGTM!

The code changes are approved.


326-326: LGTM!

The code changes are approved.


378-378: LGTM!

The code changes are approved.


388-396: LGTM!

The code changes are approved.


400-412: LGTM!

The code changes are approved.


886-893: LGTM!

The code changes are approved.

Copy link

github-actions bot commented Jul 1, 2024

Failed server tests

  • com.appsmith.server.imports.internal.ImportServiceTests#discardChange_addNewActionAfterImport_addedActionRemoved

.get(key);
return saveDatasourceStorageToDb(datasourceStorageList).collectList();
});
return Flux.merge(datasourceFLux, datasourceStorageFLux).then();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's update this logic to perform the ops in generic way as discussed over the call. Feel free to implement this while working on pages, apps refactor.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will work on this once i get more clarity on the page and actions refactor. These flows might require some changes hence i am going to stick to this approach for now.

@abhvsn
Copy link
Contributor

abhvsn commented Jul 2, 2024

@AnaghHegde changes LGTM for now but have we tested the flow with duplicate name entities?
Steps:

  1. Create workspace 1 and add 2 datasources:
    a. mongodb
    b. mongodb #1
  2. Create application1 and add pages and queries attached to above datasources.
  3. Create workspace2
  4. Create test_application and add a datasource with name mongodb
  5. Export and import application1 from step 2 to workspace2

Are we seeing failures because of duplicate key exception?

@AnaghHegde
Copy link
Member Author

/build-deploy-preview -skip-tests=true

Copy link

github-actions bot commented Jul 2, 2024

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/9758652221.
Workflow: On demand build Docker image and deploy preview.
skip-tests: . env: .
PR: 34514.
recreate: .

Copy link

github-actions bot commented Jul 2, 2024

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

@AnaghHegde AnaghHegde requested a review from abhvsn July 3, 2024 05:26
@AnaghHegde AnaghHegde added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Jul 3, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 239a42f and 1f5ab41.

Files selected for processing (2)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/imports/internal/partial/PartialImportServiceCEImpl.java (3 hunks)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/newactions/importable/NewActionImportableServiceCEImpl.java (3 hunks)
Files skipped from review as they are similar to previous changes (2)
  • app/server/appsmith-server/src/main/java/com/appsmith/server/imports/internal/partial/PartialImportServiceCEImpl.java
  • app/server/appsmith-server/src/main/java/com/appsmith/server/newactions/importable/NewActionImportableServiceCEImpl.java

Copy link
Contributor

@abhvsn abhvsn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving to unblock for now, but hoping to see the refactor for reducing the duplicate code from generic datsbase operation class.

@AnaghHegde AnaghHegde merged commit ffc09cf into release Jul 3, 2024
44 checks passed
@AnaghHegde AnaghHegde deleted the pg-transaction-datsoure-import-flow branch July 3, 2024 14:35
Shivam-z pushed a commit to Shivam-z/appsmith that referenced this pull request Jul 10, 2024
… in pg (appsmithorg#34514)

## Description


## Automation

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

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




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


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

- **New Features**
- Introduced support for dry run queries in datasource operations. Users
can now perform dry runs when creating, saving, or importing
datasources.

- **Improvements**
- Enhanced datasource import functionality by adding logic to handle and
save dry run queries.
- Improved validation and correction processes for datasources during
action imports.

- **Internal Enhancements**
- Added a new `DryOperationRepository` for managing dry run operations
for datasources and datasource storage.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@coderabbitai coderabbitai bot mentioned this pull request Nov 6, 2024
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ok-to-test Required label for CI skip-changelog Adding this label to a PR prevents it from being listed in the changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants