diff --git a/app/server/appsmith-plugins/mongoPlugin/src/main/java/com/external/plugins/MongoPlugin.java b/app/server/appsmith-plugins/mongoPlugin/src/main/java/com/external/plugins/MongoPlugin.java index 1673e9e13f..8cb64bb2a4 100644 --- a/app/server/appsmith-plugins/mongoPlugin/src/main/java/com/external/plugins/MongoPlugin.java +++ b/app/server/appsmith-plugins/mongoPlugin/src/main/java/com/external/plugins/MongoPlugin.java @@ -338,6 +338,17 @@ public class MongoPlugin extends BasePlugin { } + if(!CollectionUtils.isEmpty(endpoints)) { + boolean usingSrvUrl = endpoints + .stream() + .anyMatch(endPoint -> endPoint.getHost().contains("mongodb+srv")); + + if (usingSrvUrl) { + invalids.add("MongoDb SRV URLs are not yet supported. Please extract the individual fields from " + + "the SRV URL into the datasource configuration form."); + } + } + DBAuth authentication = (DBAuth) datasourceConfiguration.getAuthentication(); if (authentication != null) { DBAuth.Type authType = authentication.getAuthType(); diff --git a/app/server/appsmith-plugins/mongoPlugin/src/test/java/com/external/plugins/MongoPluginTest.java b/app/server/appsmith-plugins/mongoPlugin/src/test/java/com/external/plugins/MongoPluginTest.java index e0fdda02db..e7a8e1ae0a 100644 --- a/app/server/appsmith-plugins/mongoPlugin/src/test/java/com/external/plugins/MongoPluginTest.java +++ b/app/server/appsmith-plugins/mongoPlugin/src/test/java/com/external/plugins/MongoPluginTest.java @@ -26,6 +26,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.CompletableFuture; import static org.junit.Assert.assertArrayEquals; @@ -404,4 +405,19 @@ public class MongoPluginTest { }) .verifyComplete(); } + + @Test + public void testErrorMessageOnSrvUrl() { + DatasourceConfiguration dsConfig = createDatasourceConfiguration(); + dsConfig.getEndpoints().get(0).setHost("mongodb+srv:://url.net"); + Mono> invalidsMono = Mono.just(pluginExecutor.validateDatasource(dsConfig)); + + StepVerifier.create(invalidsMono) + .assertNext(invalids -> { + assertTrue(invalids + .stream() + .anyMatch(error -> error.contains("MongoDb SRV URLs are not yet supported"))); + }) + .verifyComplete(); + } }