ac4c714932
13450 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ac4c714932
|
chore: Require form data for login endpoint (#37402)
The Login API endpoint isn't checking for the request `Content-Type`, and is attempting to parse the payload as form data (?) irrespective of the incoming content type. So, if we attempt to make a JSON login attempt, like: ``` http -v :8080/api/v1/login username=a@b.com password=dummy ``` <details> <summary>We see the following lengthy useless error on the server:</summary> <pre> [2024-11-15 07:22:12,040] [nioEventLoopGroup-3-8] requestId= userEmail= traceId= spanId= - Can't find user [2024-11-15 07:22:12,042] [boundedElastic-1] requestId= userEmail= traceId= spanId= - In the login failure handler. Cause: Unable to find username: org.springframework.security.core.userdetails.UsernameNotFoundException: Unable to find username: at com.appsmith.server.authentication.handlers.ce.CustomFormLoginServiceCEImpl.findByUsername(CustomFormLoginServiceCEImpl.java:36) Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Assembly trace from producer [reactor.core.publisher.MonoLift] : reactor.core.publisher.Mono.error(Mono.java:299) com.appsmith.server.authentication.handlers.ce.CustomFormLoginServiceCEImpl.findByUsername(CustomFormLoginServiceCEImpl.java:37) Error has been observed at the following site(s): *__________________________________Mono.error ⇢ at com.appsmith.server.authentication.handlers.ce.CustomFormLoginServiceCEImpl.findByUsername(CustomFormLoginServiceCEImpl.java:37) *__________________________Mono.switchIfEmpty ⇢ at com.appsmith.server.authentication.handlers.ce.CustomFormLoginServiceCEImpl.findByUsername(CustomFormLoginServiceCEImpl.java:37) |_ Mono.onErrorMap ⇢ at com.appsmith.server.authentication.handlers.ce.CustomFormLoginServiceCEImpl.findByUsername(CustomFormLoginServiceCEImpl.java:38) |_ Mono.map ⇢ at com.appsmith.server.authentication.handlers.ce.CustomFormLoginServiceCEImpl.findByUsername(CustomFormLoginServiceCEImpl.java:43) |_ Mono.doOnNext ⇢ at org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:105) |_ Mono.publishOn ⇢ at org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:106) |_ Mono.filter ⇢ at org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:107) |_ Mono.switchIfEmpty ⇢ at org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:108) |_ Mono.flatMap ⇢ at org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:109) |_ Mono.flatMap ⇢ at org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:110) |_ Mono.doOnNext ⇢ at org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:111) |_ Mono.map ⇢ at org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:112) |_ Mono.doOnSuccess ⇢ at org.springframework.security.authentication.ObservationReactiveAuthenticationManager.lambda$authenticate$3(ObservationReactiveAuthenticationManager.java:58) |_ Mono.doOnCancel ⇢ at org.springframework.security.authentication.ObservationReactiveAuthenticationManager.lambda$authenticate$3(ObservationReactiveAuthenticationManager.java:61) |_ Mono.doOnError ⇢ at org.springframework.security.authentication.ObservationReactiveAuthenticationManager.lambda$authenticate$3(ObservationReactiveAuthenticationManager.java:61) *__FluxOnErrorResume$ResumeSubscriber.onError ⇢ at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onError(MDCConfig.java:64) *________________________Mono.deferContextual ⇢ at org.springframework.security.authentication.ObservationReactiveAuthenticationManager.authenticate(ObservationReactiveAuthenticationManager.java:54) *________________________________Mono.flatMap ⇢ at org.springframework.security.web.server.authentication.AuthenticationWebFilter.authenticate(AuthenticationWebFilter.java:122) |_ Mono.switchIfEmpty ⇢ at org.springframework.security.web.server.authentication.AuthenticationWebFilter.authenticate(AuthenticationWebFilter.java:123) |_ Mono.flatMap ⇢ at org.springframework.security.web.server.authentication.AuthenticationWebFilter.authenticate(AuthenticationWebFilter.java:125) |_ Mono.doOnError ⇢ at org.springframework.security.web.server.authentication.AuthenticationWebFilter.authenticate(AuthenticationWebFilter.java:127) *________________________________Mono.flatMap ⇢ at org.springframework.security.web.server.authentication.AuthenticationWebFilter.filter(AuthenticationWebFilter.java:115) Original Stack Trace: at com.appsmith.server.authentication.handlers.ce.CustomFormLoginServiceCEImpl.findByUsername(CustomFormLoginServiceCEImpl.java:36) at org.springframework.security.authentication.UserDetailsRepositoryReactiveAuthenticationManager.retrieveUser(UserDetailsRepositoryReactiveAuthenticationManager.java:45) at org.springframework.security.authentication.AbstractUserDetailsReactiveAuthenticationManager.authenticate(AbstractUserDetailsReactiveAuthenticationManager.java:104) at org.springframework.security.authentication.ObservationReactiveAuthenticationManager.lambda$authenticate$3(ObservationReactiveAuthenticationManager.java:58) at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:47) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:117) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245) at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1865) at reactor.core.publisher.MonoCacheTime.subscribeOrReturn(MonoCacheTime.java:151) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:63) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:210) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmit(FluxFlatMap.java:547) at reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:988) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:968) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) at reactor.core.publisher.Mono.subscribe(Mono.java:4576) at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:430) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:210) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:335) at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:373) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onSubscribe(FluxPeekFuseable.java:178) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onComplete(FluxDefaultIfEmpty.java:134) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147) at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onComplete(FluxHandleFuseable.java:239) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69) at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1866) at reactor.core.publisher.MonoCacheTime$CoordinatorSubscriber.signalCached(MonoCacheTime.java:337) at reactor.core.publisher.MonoCacheTime$CoordinatorSubscriber.onNext(MonoCacheTime.java:354) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.MonoCacheTime$CoordinatorSubscriber.onSubscribe(MonoCacheTime.java:293) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoCacheTime.subscribeOrReturn(MonoCacheTime.java:143) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:63) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) at reactor.core.publisher.Mono.subscribe(Mono.java:4576) at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:265) at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) at reactor.core.publisher.Mono.subscribe(Mono.java:4576) at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:82) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onComplete(MonoFlatMap.java:189) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147) at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onComplete(FluxFilterFuseable.java:171) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onComplete(FluxPeekFuseable.java:277) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147) at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2573) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.request(FluxFilterFuseable.java:191) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:117) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onSubscribe(FluxFilterFuseable.java:87) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onSubscribe(FluxPeekFuseable.java:178) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) at reactor.core.publisher.Mono.subscribe(Mono.java:4576) at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:265) at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) at reactor.core.publisher.Mono.subscribe(Mono.java:4576) at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:82) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:155) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.request(FluxFilterFuseable.java:191) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:117) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onSubscribe(FluxFilterFuseable.java:87) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245) at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onComplete(MDCConfig.java:69) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onComplete(FluxHide.java:147) at reactor.core.publisher.FluxIterable$IterableSubscription.fastPath(FluxIterable.java:424) at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:291) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2067) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.MonoFlatMap$FlatMapInner.onSubscribe(MonoFlatMap.java:291) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.Operators$BaseFluxToMonoOperator.onSubscribe(Operators.java:2051) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxFilterWhen$FluxFilterWhenSubscriber.drain(FluxFilterWhen.java:302) at reactor.core.publisher.FluxFilterWhen$FluxFilterWhenSubscriber.onNext(FluxFilterWhen.java:140) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onNext(MDCConfig.java:59) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:335) at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) at reactor.core.publisher.FluxFilterWhen$FluxFilterWhenSubscriber.onSubscribe(FluxFilterWhen.java:200) at com.appsmith.server.configurations.MDCConfig$MdcContextLifter.onSubscribe(MDCConfig.java:53) at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) at reactor.core.publisher.Mono.subscribe(Mono.java:4576) at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:265) at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) at reactor.core.publisher.Mono.subscribe(Mono.java:4576) at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:265) at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1176) at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:715) at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) at reactor.netty.http.server.HttpServerOperations.handleDefaultHttpRequest(HttpServerOperations.java:829) at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:774) at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:115) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:262) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:333) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:455) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:833) </pre> </details> In this PR, we're changing the matcher for the login endpoint to check for the `Content-Type` explicitly. With this, the server doesn't log any error, and responds with a `401 Unauthorized`. ## Automation /test sanity authentication ### 🔍 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/11853152657> > Commit: 3a4620da8af82b727e2fd91756318c5aa3cf9910 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11853152657&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity, @tag.Authentication` > Spec: > <hr>Fri, 15 Nov 2024 09:25:59 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced authentication mechanism for the login process, improving request validation. - **Bug Fixes** - Refined matching logic for authentication requests to ensure better security compliance. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
7e13fcbe7f
|
fix: getQueryParamsFromString function updated to use URLSearchParams (#37559) | ||
|
|
7612e4f14d
|
chore: perf optimisation for js action creation phase 1 (#37391)
## Description [During analysis of action creation flow metrics](https://github.com/appsmithorg/appsmith/issues/37151#issuecomment-2468354426), we observed that RefactoringService.isNameAllowed is taking 80-90% of the total JS object action time. This PR optimises this part in a way that for any jsobject action, instead of fetching all actions from DB and comparing it to see if current action name is allowed, we simply do that check in memory where for current action collection, if any action names are being duplicated, we throw the error. We could make this change easily because recently we merged a [PR](https://github.com/appsmithorg/appsmith/pull/36958) which removes the actions with duplicate name from client payload whenever Js object update API is called, with this change, we can guarantee that for any JS object update call, all actions inside it will always have unique names. This PR makes the similar check on backend where if any action has duplicate name within collection, we throw an error and don't store that action in the DB. We may need to consider following test case in both before and after implementation of this approach. This can be covered during PR testing: What happens if the client sends multiple requests to add a new function in an existing collection. That is, as a result of the debounce logic, if the server receives 2 consecutive requests with a populated collection but without actionId associated to either request. Relevant thread: https://theappsmith.slack.com/archives/C040LHZN03V/p1731571364933089 Fixes #37365 _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.JS" ### 🔍 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/11911295324> > Commit: d5c75edd301e75b2432b642f366bc80c6fea6b89 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11911295324&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.JS` > Spec: > <hr>Tue, 19 Nov 2024 11:14:16 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced validation to prevent the creation of actions with duplicate names in action collections. - Simplified handling of JavaScript actions, allowing them to bypass certain validation checks. - **Bug Fixes** - Improved error handling during action updates and collection modifications to ensure better logging and management of failures. - **Tests** - Added tests to verify that duplicate action names trigger appropriate error messages, enhancing the robustness of the action collection feature. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: “sneha122” <“sneha@appsmith.com”> |
||
|
|
5ec2ff15b6
|
chore: update logic to calculate length of lint (#36548)
## Description As part of project to migrate linter to eslint, a small dependency we need to take care of is to update how we calculate the length of the lint to be shown. Today we use an array of variables and calculate their char lengths. With eslint, we directly get the length and hence can be passed down to this function. To ensure backward compatibility till we are still phasing out JSHint, a conditional check is added to the linthelper file. > [!NOTE] > This PR is part of a series of [stacked diffs](https://newsletter.pragmaticengineer.com/p/stacked-diffs) and might have changes from it's parent PRs. Untill the blocking parent PRs are merged, this diff would show more changes than are relevant for this PR. Blocking PRs: - #36543 Fixes #36546 ## Automation /test js sanity ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11907265100> > Commit: 7da61e78bb2dffe41e148aba8a62062234eb59d1 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11907265100&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.JS, @tag.Sanity` > Spec: > <hr>Tue, 19 Nov 2024 07:50:17 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new optional property `lintLength` to enhance lint error reporting. - Improved handling of dynamic bindings for better accuracy and responsiveness to changes. - **Bug Fixes** - Enhanced test coverage for lint error annotations to ensure correct behavior with and without `lintLength`. - **Documentation** - Updated comments for clarity regarding new linting logic and error handling. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
72eb2cd4cb
|
chore: Updating generate page interaction to show it in a modal following the IDE 2.0 interaction pattern (#37414)
## Description Updating generate page interaction to show it in a modal following the IDE 2.0 interaction pattern Fixes [#32952](https://github.com/appsmithorg/appsmith/issues/32952) ## Automation /ok-to-test tags="@tag.All" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11900113834> > Commit: 3903c44fe5a6c7db0d22d9cf982c28a1380f4546 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11900113834&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Mon, 18 Nov 2024 21:26:44 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes - **New Features** - Introduced a modal for generating pages, enhancing user interaction. - Added new action types and constants for managing page generation processes. - Updated UI messages for clarity in the page generation context. - Improved handling of datasource selection and page generation in various components. - **Bug Fixes** - Improved error handling in various components to prevent silent failures. - **Refactor** - Streamlined routing logic by removing deprecated paths and functions. - Transitioned from direct navigation to modal-based interactions for page generation. - Enhanced control flow and error handling within components. - **Chores** - Updated import paths for better organization of action-related functions within the Redux architecture. - **Tests** - Enhanced test cases for CRUD operations, ensuring better validation and error handling. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
94a3add6bc
|
chore(deps): bump cross-spawn from 7.0.3 to 7.0.5 in /app/client (#37419)
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.5. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md">cross-spawn's changelog</a>.</em></p> <blockquote> <h3><a href="https://github.com/moxystudio/node-cross-spawn/compare/v7.0.4...v7.0.5">7.0.5</a> (2024-11-07)</h3> <h3>Bug Fixes</h3> <ul> <li>fix escaping bug introduced by backtracking (<a href=" |
||
|
|
0aa853755e
|
chore(deps): bump http-proxy-middleware from 2.0.6 to 2.0.7 in /app/client (#37044)
Bumps [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware) from 2.0.6 to 2.0.7. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/chimurai/http-proxy-middleware/releases">http-proxy-middleware's releases</a>.</em></p> <blockquote> <h2>v2.0.7</h2> <p><strong>Full Changelog</strong>: <a href="https://github.com/chimurai/http-proxy-middleware/compare/v2.0.6...v2.0.7">https://github.com/chimurai/http-proxy-middleware/compare/v2.0.6...v2.0.7</a></p> <h2>v2.0.7-beta.1</h2> <p><strong>Full Changelog</strong>: <a href="https://github.com/chimurai/http-proxy-middleware/compare/v2.0.7-beta.0...v2.0.7-beta.1">https://github.com/chimurai/http-proxy-middleware/compare/v2.0.7-beta.0...v2.0.7-beta.1</a></p> <h2>v2.0.7-beta.0</h2> <p><strong>Full Changelog</strong>: <a href="https://github.com/chimurai/http-proxy-middleware/compare/v2.0.6...v2.0.7-beta.0">https://github.com/chimurai/http-proxy-middleware/compare/v2.0.6...v2.0.7-beta.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/chimurai/http-proxy-middleware/blob/v2.0.7/CHANGELOG.md">http-proxy-middleware's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/chimurai/http-proxy-middleware/releases/tag/v2.0.7">v2.0.7</a></h2> <ul> <li>ci(github actions): add publish.yml</li> <li>fix(filter): handle errors</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
756eb6c7ad
|
chore(deps): bump rollup from 2.79.1 to 2.79.2 in /app/client (#36611)
Bumps [rollup](https://github.com/rollup/rollup) from 2.79.1 to 2.79.2. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rollup/rollup/blob/master/CHANGELOG.md">rollup's changelog</a>.</em></p> <blockquote> <h1>rollup changelog</h1> <h2>4.22.5</h2> <p><em>2024-09-27</em></p> <h3>Bug Fixes</h3> <ul> <li>Allow parsing of certain unicode characters again (<a href="https://redirect.github.com/rollup/rollup/issues/5674">#5674</a>)</li> </ul> <h3>Pull Requests</h3> <ul> <li><a href="https://redirect.github.com/rollup/rollup/pull/5674">#5674</a>: Fix panic with unicode characters (<a href="https://github.com/sapphi-red"><code>@sapphi-red</code></a>, <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/5675">#5675</a>: chore(deps): update dependency rollup to v4.22.4 [security] (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/5680">#5680</a>: chore(deps): update dependency <code>@rollup/plugin-commonjs</code> to v28 (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot], <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/5681">#5681</a>: chore(deps): update dependency <code>@rollup/plugin-replace</code> to v6 (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/5682">#5682</a>: chore(deps): update dependency <code>@rollup/plugin-typescript</code> to v12 (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/5684">#5684</a>: chore(deps): lock file maintenance minor/patch updates (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> </ul> <h2>4.22.4</h2> <p><em>2024-09-21</em></p> <h3>Bug Fixes</h3> <ul> <li>Fix a vulnerability in generated code that affects IIFE, UMD and CJS bundles when run in a browser context (<a href="https://redirect.github.com/rollup/rollup/issues/5671">#5671</a>)</li> </ul> <h3>Pull Requests</h3> <ul> <li><a href="https://redirect.github.com/rollup/rollup/pull/5670">#5670</a>: refactor: Use object.prototype to check for reserved properties (<a href="https://github.com/YuHyeonWook"><code>@YuHyeonWook</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/5671">#5671</a>: Fix DOM Clobbering CVE (<a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> </ul> <h2>4.22.3</h2> <p><em>2024-09-21</em></p> <h3>Bug Fixes</h3> <ul> <li>Ensure that mutations in modules without side effects are observed while properly handling transitive dependencies (<a href="https://redirect.github.com/rollup/rollup/issues/5669">#5669</a>)</li> </ul> <h3>Pull Requests</h3> <ul> <li><a href="https://redirect.github.com/rollup/rollup/pull/5669">#5669</a>: Ensure impure dependencies of pure modules are added (<a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> </ul> <h2>4.22.2</h2> <p><em>2024-09-20</em></p> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
bbf298a20d
|
test: added test for incompatible file (#37323)
Added test for incompatible json file which validates error message. /ok-to-test tags="@tag.All" <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11842679143> > Commit: e25dece2db1249fca257f089162faa5cdfaa85ae > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11842679143&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Fri, 15 Nov 2024 06:05:44 UTC <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new test suite to validate the partial import functionality, ensuring compatibility checks for JSON files. - Added a structured JSON file representing an application's configuration, including metadata, pages, and actions. - **Bug Fixes** - Implemented error message validation for importing incompatible JSON files. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: “NandanAnantharamu” <“nandan@thinkify.io”> |
||
|
|
c70adf7440
|
chore: Switch from OTLP HTTP/protobuf (New Relic) to HTTP/JSON (Grafana) (#37404)
## Description
> [!TIP]
> _Add a TL;DR when the description is longer than 500 words or
extremely technical (helps the content, marketing, and DevRel team)._
>
> _Please also include relevant motivation and context. List any
dependencies that are required for this change. Add links to Notion,
Figma or any other documents that might be relevant to the PR._
Fixes #`Issue Number`
_or_
Fixes `Issue URL`
> [!WARNING]
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._
## Automation
/ok-to-test tags=""
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!WARNING]
> Tests have not run on the HEAD
065cddccdcf3c98cb48ff201daf752708f24666c yet
> <hr>Fri, 15 Nov 2024 11:48:13 UTC
<!-- end of auto-generated comment: Cypress test results -->
## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced new monitoring paths for telemetry data exports:
`/monitoring/traces` and `/monitoring/metrics`.
- Added a function to streamline URL management for telemetry exports.
- **Bug Fixes**
- Updated telemetry export protocols to enhance reliability and
performance.
- **Chores**
- Updated multiple OpenTelemetry dependencies to their latest versions
for improved functionality and security.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
|
||
|
|
cd3ed89b44
|
chore: Abstraction of Bottom View in Cypress (#37410) | ||
|
|
952fb93d4b
|
fix: Query Editor Routing in the redesign flow (#37411)
## Description Fixes the order of routes which caused issues in the redesign flow ## Automation /ok-to-test tags="@tag.Datasource" ### 🔍 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/11855933830> > Commit: db5e1051b045e3a3214d168ff2c2ec7256bf1f15 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11855933830&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Datasource` > Spec: > <hr>Fri, 15 Nov 2024 12:53:11 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new component for adding queries, enhancing the query management experience. - Improved loading experience with a `Skeleton` display while the `AddQuery` component is being loaded. - **Bug Fixes** - Adjusted routing logic for query operations based on feature flags for better performance. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
5db78900fd
|
feat: pass workspace id to form control (#37413)
## Description > [!TIP] > _Add a TL;DR when the description is longer than 500 words or extremely technical (helps the content, marketing, and DevRel team)._ > > _Please also include relevant motivation and context. List any dependencies that are required for this change. Add links to Notion, Figma or any other documents that might be relevant to the PR._ Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.Sanity" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11859064065> > Commit: 3640388e4f5eae27e6bd833d1862e52e15500138 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11859064065&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity` > Spec: > <hr>Fri, 15 Nov 2024 16:30:45 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new optional property `workspaceId` to enhance form control data handling. - Updated logic in the `FormControl` component to utilize the current workspace ID for improved control rendering. - **Bug Fixes** - Adjusted template visibility logic to consider the new workspace ID, ensuring accurate rendering in the template menu. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
1c9e8c12bf
|
chore(deps): bump elliptic from 6.5.7 to 6.6.0 in /app/client (#37120)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.7 to 6.6.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
aa8b153303
|
chore: add sheet + sidebar (#37408)
/ok-to-test tags="@tag.Anvil" <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes - **New Features** - Introduced a new `Sheet` component for modal-like overlays, enhancing content display. - Added a `Sidebar` component for improved navigation and organization within the design system. - **Improvements** - Enhanced styling and animations for the `Sheet` and `Sidebar` components, providing a more interactive user experience. - Updated dependencies to improve performance and accessibility. - **Documentation** - Added Storybook configurations for `Sheet` and `Sidebar` components, showcasing their functionality and usage. <!-- end of auto-generated comment: release notes by coderabbit.ai --> <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11855312043> > Commit: f8f4d2c836597b5ec316bec48579f4e39bb18387 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11855312043&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Anvil` > Spec: > <hr>Fri, 15 Nov 2024 11:40:45 UTC <!-- end of auto-generated comment: Cypress test results --> |
||
|
|
7f2c4c6dd2
|
chore(deps): Remove commons-io from /app/server/appsmith-server (#37403)
Not needed as it comes from `appsmith-interfaces` as a transitive dependency anyway. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/appsmithorg/appsmith/network/alerts). </details> /test sanity <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11853130017> > Commit: b103f148fe25d1ca33aea6bbc635c392a0c1acfd > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11853130017&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity` > Spec: > <hr>Fri, 15 Nov 2024 09:24:19 UTC <!-- end of auto-generated comment: Cypress test results --> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com> |
||
|
|
6883e496e5
|
fix: added edge case fixes for consolidated api and publishing (#37399)
## Description Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.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/11851164290> > Commit: 3a76919cab6a000ae1d2dcac76cbaf6afee33aa7 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11851164290&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Git` > Spec: > <hr>Fri, 15 Nov 2024 07:01:40 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced handling of Git operations, including improved branch management and artifact importation. - Expanded analytics integration for tracking changes in branch protection settings. - **Bug Fixes** - Improved error handling for various Git operations and application/page retrieval scenarios. - **Tests** - Added new test cases for Git-related functionalities and improved error handling in tests. - Enhanced test coverage for the `getConsolidatedInfoForPageLoad` method, particularly for feature branches. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
77bae7c0c6
|
chore: Don't break when Appsmtih API URL isn't set (#37309)
We actually don't need the `APPSMITH_API_BASE_URL` variable to be varying in production ever at all, and the `routes.ts` file already does have a default for this (on EE). Let's just use that instead of throwing an impact-less error. Ideally though, we shouldn't have this env variable at all. Less things that are configurable, less things that can break other things. ## Automation /test sanity ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11812221529> > Commit: f049d468998530cddd9f7ad45542790c9e12241b > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11812221529&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity` > Spec: > <hr>Wed, 13 Nov 2024 07:41:57 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes - **New Features** - Introduced constants for API URLs to streamline endpoint configurations. - **Bug Fixes** - Updated API request URLs to use new constants, ensuring consistency across the application. - **Refactor** - Centralized route constants to improve maintainability. - Renamed entities in test cases for clarity while preserving functionality. - **Chores** - Removed obsolete environment variable related to API base URL from the Docker configuration. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
a601acf173
|
chore: Fix string equality checks (#37397)
As well as fixed some warnings with unused function parameters and unneeded initialization values. /test sanity authentication ### 🔍 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/11850858814> > Commit: 8e14037b4e72a4549ee3910113d4608623d71de3 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11850858814&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity, @tag.Authentication` > Spec: > <hr>Fri, 15 Nov 2024 06:06:57 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Improved handling of user email verification during authentication processes. - Enhanced robustness of string comparisons for signup and login methods. - **Bug Fixes** - Refined logic for determining email verification requirements, ensuring accurate updates to user properties. - **Refactor** - Simplified method signatures and internal logic for better clarity and maintainability. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
1deab1fe06
|
chore(deps): bump commons-io:commons-io from 2.13.0 to 2.17.0 in /app/server/appsmith-interfaces (#36683)
Bumps commons-io:commons-io from 2.13.0 to 2.14.0. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/appsmithorg/appsmith/network/alerts). </details> /test all <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11850006699> > Commit: eb9fb2a2bd2b43e3286dd1a3f1471a874922cfbf > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11850006699&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Fri, 15 Nov 2024 05:10:24 UTC <!-- end of auto-generated comment: Cypress test results --> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com> |
||
|
|
646f29fd5d
|
chore: Remove unused JSON signup API handler (#37387)
This PR removes the JSON-version of signup API handler, and its unused references. We use the other Form-body-version of this API, but not this. So this isn't needed. Fewer things there are, fewer there are to protect. ## Automation /test sanity authentication ### 🔍 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/11838832000> > Commit: f27d2c9fa7d9b154eb6649b1f9885fd54d1921b5 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11838832000&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity, @tag.Authentication` > Spec: > <hr>Thu, 14 Nov 2024 14:49:54 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced new Cypress commands for enhanced API interactions and UI validations. - Added a method for handling user creation through form-encoded data. - **Bug Fixes** - Improved error handling and validation checks in various commands. - **Documentation** - Updated type definitions and submit handler functions for better clarity and maintainability. - **Chores** - Removed unused user management functionalities, streamlining the codebase. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
6fc632795b
|
fix: SMTP datasource should work without username and password (#37319)
## Description
### Bug Description
Issue: When configuring an SMTP datasource without a username and
password, the system throws an error: “Invalid authentication
credentials. Please check datasource configuration.”
Expected Behavior: The system should allow SMTP datasource configuration
without requiring authentication credentials, as it is possible to
connect to some SMTP servers without a username or password.
**Steps To Reproduce**
Use any email service for configuring SMTP datasource without setting up
username and password
Create SMTP datasource with host port, keeping username and password
blank
Test the configuration
**Root Cause**
Manual validation in the codebase was enforcing that both username and
password fields are mandatory for SMTP configuration. This validation
prevented the successful configuration of SMTP services that do not
require authentication.
**Solution Details**
_To fix this, the following changes were implemented:
Updated Validation Method (validateDatasource)_
Before: Enforced mandatory username and password validation.
After: Removed the strict validation check for authentication fields,
allowing for configurations without credentials.
```
if (authentication == null || !StringUtils.hasText(authentication.getUsername()) || !StringUtils.hasText(authentication.getPassword())) {
invalids.add(new AppsmithPluginException(AppsmithPluginError.PLUGIN_AUTHENTICATION_ERROR).getMessage());
}
```
_Modified the SMTP Session Creation (datasourceCreate)_
Before: Always initialized the SMTP session with authentication,
assuming credentials were required.
After: Updated the session creation to support both authenticated and
unauthenticated configurations.
```
Properties prop = new Properties();
prop.put("mail.smtp.auth", "false"); // Default to no authentication
if (authentication != null && StringUtils.hasText(authentication.getUsername()) && StringUtils.hasText(authentication.getPassword())) {
prop.put("mail.smtp.auth", "true");
session = Session.getInstance(prop, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
} else {
session = Session.getInstance(prop);
}
```
_Enhanced Testing for Authentication Scenarios (testDatasource)_
Before: Errors were logged if authentication failed, even for servers
where authentication wasn’t required.
After: Introduced a flag to detect if authentication was required based
on the session configuration, and adjusted error handling accordingly.
```
boolean isAuthRequired = "true".equals(connection.getProperty("mail.smtp.auth"));
if (isAuthRequired && transport != null) {
try {
transport.connect();
} catch (AuthenticationFailedException e) {
invalids.add(SMTPErrorMessages.DS_AUTHENTICATION_FAILED_ERROR_MSG);
}
}
```
**Testing and Verification**
**Unit Tests**
Without Authentication:
_Updated testNullAuthentication test case to ensure no errors are
returned when authentication is absent._
```
@Test
public void testNullAuthentication() {
DatasourceConfiguration invalidDatasourceConfiguration = createDatasourceConfiguration();
invalidDatasourceConfiguration.setAuthentication(null);
assertEquals(0, pluginExecutor.validateDatasource(invalidDatasourceConfiguration).size());
}
```
Fixes #37271
## Automation
/ok-to-test tags=""
updated testNullAuthentication() from SmtpPluginTest class
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced SMTP plugin now supports conditional authentication during
session creation.
- Improved error handling for authentication failures, providing clearer
validation results.
- Added support for testing SMTP connections without authentication.
- **Bug Fixes**
- Streamlined validation logic for datasource configurations,
particularly for authentication scenarios.
- **Documentation**
- Updated test methods to clarify expected error messages for invalid
configurations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: muhammed.shanid@zemosolabs.com <muhammed.shanid@zemosolabs.com>
|
||
|
|
6d524c1666
|
chore(deps): bump net.snowflake:snowflake-jdbc from 3.13.29 to 3.20.0 in /app/server/appsmith-plugins/snowflakePlugin (#37175)
Bumps [net.snowflake:snowflake-jdbc](https://github.com/snowflakedb/snowflake-jdbc) from 3.13.29 to 3.20.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/snowflakedb/snowflake-jdbc/releases">net.snowflake:snowflake-jdbc's releases</a>.</em></p> <blockquote> <h2>v3.20.0</h2> <ul> <li>Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <h2>v3.19.1</h2> <ul> <li>Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <h2>v3.19.0</h2> <ul> <li>Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <h2>v3.18.0</h2> <ul> <li>Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <h2>v3.17.0</h2> <ul> <li>Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <h2>v3.16.1</h2> <ul> <li>Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <h2>v3.16.0</h2> <ul> <li>Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <h2>v3.15.1</h2> <ul> <li>Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <h2>v3.15.0</h2> <ul> <li>Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <h2>v3.14.5</h2> <p>Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></p> <h2>Release</h2> <ul> <li>Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <h2>Release</h2> <p>Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></p> <h2>Release</h2> <p>Please Refer to Release Notes at <a href="https://community.snowflake.com/s/article/JDBC-Driver-Release-Notes">https://community.snowflake.com/s/article/JDBC-Driver-Release-Notes</a></p> <h2>Release</h2> <p>Please Refer to Release Notes at <a href="https://community.snowflake.com/s/article/JDBC-Driver-Release-Notes">https://community.snowflake.com/s/article/JDBC-Driver-Release-Notes</a></p> <h2>Release</h2> <ul> <li>Please Refer to Release Notes at <a href="https://community.snowflake.com/s/article/JDBC-Driver-Release-Notes">https://community.snowflake.com/s/article/JDBC-Driver-Release-Notes</a></li> </ul> <h2>Release</h2> <ul> <li>Please Refer to Release Notes at <a href="https://community.snowflake.com/s/article/JDBC-Driver-Release-Notes">https://community.snowflake.com/s/article/JDBC-Driver-Release-Notes</a></li> </ul> <h2>Release</h2> <ul> <li>Please Refer to Release Notes at <a href="https://community.snowflake.com/s/article/JDBC-Driver-Release-Notes">https://community.snowflake.com/s/article/JDBC-Driver-Release-Notes</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/snowflakedb/snowflake-jdbc/blob/master/CHANGELOG.rst">net.snowflake:snowflake-jdbc's changelog</a>.</em></p> <blockquote> <p><strong>JDBC Driver 3.20.0</strong></p> <ul> <li>||Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <p><strong>JDBC Driver 3.19.1</strong></p> <ul> <li>||Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <p><strong>JDBC Driver 3.19.0</strong></p> <ul> <li>||Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <p><strong>JDBC Driver 3.18.0</strong></p> <ul> <li>||Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <p><strong>JDBC Driver 3.17.0</strong></p> <ul> <li>||Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <p><strong>JDBC Driver 3.16.1</strong></p> <ul> <li>||Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <p><strong>JDBC Driver 3.16.0</strong></p> <ul> <li>||Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <p><strong>JDBC Driver 3.15.1</strong></p> <ul> <li>||Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <p><strong>JDBC Driver 3.15.0</strong></p> <ul> <li>||Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <p><strong>JDBC Driver 3.14.5</strong></p> <ul> <li>||Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <p><strong>JDBC Driver 3.14.4</strong></p> <ul> <li>||Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <p><strong>JDBC Driver 3.14.3</strong></p> <ul> <li>||Please Refer to Release Notes at <a href="https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc">https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc</a></li> </ul> <p><strong>JDBC Driver 3.14.2</strong></p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
4f6938923d
|
chore: Fix role field serialization | ||
|
|
17537e721c
|
chore: Plugin Action Editor routing (#37389)
## Description - Earlier we had the new Plugin Action Editor implementation mixed in with the older API and Query Editor components. We have now separated it out so that the eventual removal of older editors is easy - Move AppPluginActionEditor outside the EE split ## Automation /ok-to-test tags="@tag.Datasource" ### 🔍 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/11835509083> > Commit: 3a7fda761dcff8e77edfe80a449ba965fe5bfb12 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11835509083&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Datasource` > Spec: > <hr>Thu, 14 Nov 2024 11:25:19 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced new routes for `PluginActionEditor`, `AddQuery`, and `QueryEmpty` with a standardized fallback UI. - **Bug Fixes** - Removed obsolete feature flag checks that prevented the rendering of the `AppPluginActionEditor`. - **Chores** - Deleted the `AppPluginActionEditor` component and its associated exports, streamlining the codebase. - **Refactor** - Improved the structure and clarity of hooks and component definitions. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
a007bd0f05
|
chore: Remove unused JSON superuser signup route (#37378)
The JSON payload version of the super user signup route is not used anywhere significant. This PR removes it. ## Automation /test sanity authentication ### 🔍 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/11830003644> > Commit: d051ed852ff68727805a81b5b59b54bdb50f1d2e > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11830003644&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity, @tag.Authentication` > Spec: > <hr>Thu, 14 Nov 2024 03:53:00 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Updated user creation process to use URL-encoded data instead of JSON for super user creation. - **Bug Fixes** - Removed deprecated `createSuperUser` methods from the API and server controllers, streamlining user management. - **Chores** - Modified setup scripts to reflect changes in user data transmission for creating super users. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
7e209d2615
|
chore: Remove unused UserData.role (#37381)
The `role` field is not sent by the client and is not used by the server anywhere. We're not removing the `role` field in analytics payloads, since changes like that in the past have broken other analytics pipelines (where a field value was `null` instead of `""` started to throw NPEs in some internal workflows). We can solve that as a separate problem later. ## Automation /test sanity authentication ### 🔍 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/11830985060> > Commit: 986fc8986a81aa212eaed455e22181cf927002f0 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11830985060&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity, @tag.Authentication` > Spec: > <hr>Thu, 14 Nov 2024 05:59:04 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes - **New Features** - Simplified user update requests by removing the `role` field, streamlining user data management. - **Bug Fixes** - Adjusted analytics tracking to exclude user role information, ensuring compliance with updated data handling practices. - **Documentation** - Updated test cases to reflect changes in user role management, focusing on name and use case updates instead. These changes enhance the user experience by simplifying user management and improving data privacy in analytics. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
035d315cb8
|
fix: misc Button implementations not using isIconButton prop (#37382)
## Description Fixes issues introduced when we added min width for buttons in #37367 ## Automation /ok-to-test tags="@tag.Sanity" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > 🟣 🟣 🟣 Your tests are running. > Tests running at: <https://github.com/appsmithorg/appsmith/actions/runs/11831136814> > Commit: dce8dcd991d54ccc016a073cc3521bd0f50abad8 > Workflow: `PR Automation test suite` > Tags: `@tag.Sanity` > Spec: `` > <hr>Thu, 14 Nov 2024 05:12:11 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No |
||
|
|
d90faa2e61
|
chore: Updating the function icon on JS editor (#37340)
## Description Updating the function icon on JS editor to use the below icon: https://www.figma.com/design/8L9BXMzNTKboGWlHpdXyYP/Appsmith-IDE?node-id=3320-86616&t=m7Tv72GIRzKZCugh-4 Fixes [#37331](https://github.com/appsmithorg/appsmith/issues/37331) ## Automation /ok-to-test tags="@tag.JS" ### 🔍 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/11811778322> > Commit: 1e8555bd5ae7e3635652107441bf5a51311611ce > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11811778322&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.JS` > Spec: > <hr>Wed, 13 Nov 2024 07:03:04 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new JavaScript function icon (`js-function-v2`) for enhanced visual representation in the application. - Added a new icon for data sources (`DataSourcesIconV2`). - Updated dropdown options for JavaScript functions to improve organization and accessibility. - **Bug Fixes** - Adjusted the icon rendering logic to ensure the correct icon is displayed based on the feature flag. - **Documentation** - Improved clarity in the action selection interface for JavaScript functions and their arguments. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
df7521e93a
|
chore: Update ADS button min width (#37338)
## Description Sets the min width of an ADS button (expect icon buttons) to be 60px Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!CAUTION] > 🔴 🔴 🔴 Some tests have failed. > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11809774671> > Commit: 224483d356083468d27acc5bb6a3d2b059ba8146 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11809774671&attempt=1&selectiontype=test&testsstatus=failed&specsstatus=fail" target="_blank">Cypress dashboard</a>. > Tags: @tag.All > Spec: > The following are new failures, please fix them before merging the PR: <ol> > <li>cypress/e2e/Regression/ClientSide/Widgets/ListV2/Childwigets/List_Inputs_spec.js</ol> > <a href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master" target="_blank">List of identified flaky tests</a>. > <hr>Wed, 13 Nov 2024 04:12:40 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced button styles to include minimum width constraints: 60 pixels for small buttons and 80 pixels for medium buttons, improving layout consistency for non-icon buttons. - Introduced a new property `isIconButton` in the `Button` component to adjust button presentation. - Added functionality to refresh the workspace list immediately after creating a new workspace. - Implemented improved error handling by checking for `workspace.id` before rendering workspace items. - Added a new state variable to manage the visibility of the import application modal. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
8773bdd1e9
|
chore: Update ObservationHelper to allow sampling of spans (#37345) | ||
|
|
91cf54ba47
|
chore: Updating the settings icon throughout the product (#37330)
## Description Updating the settings icon throughout the product to use the below icon: https://www.figma.com/design/8L9BXMzNTKboGWlHpdXyYP/Appsmith-IDE?node-id=33-3546&t=qpptzxhkWatrFIn1-4 Fixes [#37248](https://github.com/appsmithorg/appsmith/issues/37248) ## Automation /ok-to-test tags="@tag.Sanity" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11796204902> > Commit: 0e57343a6c2b7543f37e37940f8447be10ccd9e9 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11796204902&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity` > Spec: > <hr>Tue, 12 Nov 2024 12:12:33 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Updated icons for various settings-related components from "settings-2-line" to "settings-v3" to enhance visual representation. - **Bug Fixes** - Improved handling of frame ancestor settings in the AdminSettings configuration, ensuring better management of stored values. - **Documentation** - No changes to the documentation were made in this release. - **Chores** - Updated multiple components to reflect the new icon, maintaining overall functionality without introducing new logic. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
5af1bbe9f6
|
feat: feature flag for eslint migration (#36543)
## Description This PR introduces a feature flag to control the ESLint migration. Fixes #36542 ## Automation /test js sanity ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11795470649> > Commit: ac773e1ccb4a3e67159ac21e4abc757f5f959693 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11795470649&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.JS, @tag.Sanity` > Spec: > <hr>Tue, 12 Nov 2024 11:58:31 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new feature flag, `rollout_eslint_enabled`, for managing ESLint functionality. - Added an enumeration for linter versions, including `"JSHINT"` and `"ESLINT"`. - Implemented a function to dynamically determine the linter version based on the feature flag. - **Bug Fixes** - Enhanced linting error handling by updating the linter version dynamically instead of using a hardcoded value. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
276b39b669
|
feat: add CarbonConnect component (#37280)
## Description > [!TIP] > _Add a TL;DR when the description is longer than 500 words or extremely technical (helps the content, marketing, and DevRel team)._ > > _Please also include relevant motivation and context. List any dependencies that are required for this change. Add links to Notion, Figma or any other documents that might be relevant to the PR._ Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.Sanity" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11795876861> > Commit: d5f2c7119b75cb79f51c64e0f38790cde602045e > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11795876861&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity` > Spec: > <hr>Tue, 12 Nov 2024 11:53:26 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes - **New Features** - Introduced an optional `fallback` prop in the ErrorBoundary component for customizable error handling. - Added a new `datasourceId` property to enhance control configuration. - Launched the `CarbonButton` component, expanding form control options. - Registered the `CARBON_BUTTON` form control type, increasing available control types. - **Enhancements** - Improved rendering logic in the FormControl component for better user experience. - Optimized performance through refined memoization in the FormControl component. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
d4007e12bc
|
chore: Switch server tracing configs to use OTEL (#37333) | ||
|
|
12ab7e6269
|
fix: Bug where identifyUser not called in cloud (#37329)
## Description Fix the bug where return was called before the await for cloud conditions. This made the identifyUser case being skipped almost always Missed in https://github.com/appsmithorg/appsmith/pull/37303 ## Automation /ok-to-test tags="@tag.Sanity" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > 🟣 🟣 🟣 Your tests are running. > Tests running at: <https://github.com/appsmithorg/appsmith/actions/runs/11791461362> > Commit: 94bc9890be85ac51d52d9d0962e8f3f6e84fc7b0 > Workflow: `PR Automation test suite` > Tags: `@tag.Sanity` > Spec: `` > <hr>Tue, 12 Nov 2024 05:44:55 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced analytics initialization process to ensure completion before user identification. - **Bug Fixes** - Improved error handling for analytics setup with Sentry logging. - **Documentation** - Updated function signatures for clarity and consistency. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
b24b66f450
|
chore: Add span for measuring performance of consolidated api (#37328)
This PR adds spans for fetching consolidated api from client perspective <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced API call functionality with improved error handling and response validation. - Added tracing for better observability during API interactions. - **Bug Fixes** - Refined error handling for specific scenarios, including unauthorized access. - **Documentation** - Updated function signatures for better clarity on API response handling. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
8cbf8a5504
|
fix: Implement dynamic dropdown width in SelectField in JSONForm (#37289)
## Description <ins>Problem</ins> The SelectField inside JSONForm widget's dropdown width was not dynamically adjusted, resulting in inconsistent responsiveness. <ins>Root cause</ins> The SelectField component's dropdown width was not being updated dynamically, causing the component to become too wide or too narrow, affecting its usability. <ins>Solution</ins> This PR enhances the SelectField component to adjust its dropdown width dynamically for improved responsiveness. This PR handles... - Dynamically adjusting the dropdown width based on the available screen space, ensuring a responsive user experience. - Properly setting up and tearing down the ResizeObserver to ensure accurate width detection. Fixes #37279 _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.JSONForm" ### 🔍 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/11790765022> > Commit: 1438c99fb6760f87879363ed1ad82bc0f3ddea54 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11790765022&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.JSONForm` > Spec: > <hr>Tue, 12 Nov 2024 04:59:15 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced the `SelectField` component for dynamic dropdown width adjustment based on its wrapper size. - Improved filter update handling within the `SelectField`. - **Bug Fixes** - Expanded tests for validation logic to ensure accurate behavior based on the `isRequired` property. - **Tests** - Added comprehensive tests for the `SelectField`, including mock implementations for `ResizeObserver` to validate resizing behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
d8d0d1a61c
|
feat: Custom Widget Editor integration with AI (#37257)
## Description Adds the AI widget builder integration inside the Custom Widget Editor. User can prompt the AI on the changes and the bot will update the code of the widget direclty. Fixes #37250 ## Automation /ok-to-test tags="@tag.Sanity" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > 🟣 🟣 🟣 Your tests are running. > Tests running at: <https://github.com/appsmithorg/appsmith/actions/runs/11772460894> > Commit: cffb595675ade95c74601285627d59fd3f050b34 > Workflow: `PR Automation test suite` > Tags: `@tag.Sanity` > Spec: `` > <hr>Mon, 11 Nov 2024 05:03:57 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [x] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes - **New Features** - Introduced a feature flag for a custom AI widget builder. - Added a new `ChatBot` component for enhanced interactivity within the editor. - **Improvements** - Simplified layout management by removing the `LayoutControls` component. - Enhanced the `TabsLayout` to conditionally display an AI tab based on the feature flag. - Updated the `Editor` component to include the AI tab dynamically. - **Bug Fixes** - Streamlined state management for layout selection in the custom widget builder context. These updates improve user experience by integrating AI capabilities and simplifying the interface. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
5c075e89de
|
fix: Adding permission check for the view tab on datasource editor (#37308)
## Description Adding permission check for the view tab on datasource editor Fixes [#37317](https://github.com/appsmithorg/appsmith/issues/37317) ## Automation /ok-to-test tags="@tag.Sanity, @tag.Datasource" ### 🔍 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/11766974110> > Commit: bd2ecfe1a834869a99962116e2d45512e6dfc54a > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11766974110&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity, @tag.Datasource` > Spec: > <hr>Sun, 10 Nov 2024 18:51:27 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced feature flag checks for tab rendering based on user permissions. - Conditional display of the "View Data" tab, ensuring only authorized users can access it. - **Bug Fixes** - Improved control flow for tab activation based on datasource validity and user permissions. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
ec1d737edc
|
fix: Analytics identify user not called correctly (#37303)
## Description Update the call sequence during init to solve for analytics issue. It was found that the `identifyUser` in analytics was not called properly when in edit mode. This change will fix the call sequence. It also ensures that the init of analytics is not a blocker by forking out the call into a different generator function ## Automation /ok-to-test tags="@tag.Sanity" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11742239861> > Commit: 984e325a14e8c4f9d3a0ac87d31365728b37785e > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11742239861&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity` > Spec: > <hr>Fri, 08 Nov 2024 13:16:33 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced analytics tracking capabilities by integrating user identification into the analytics setup process. - Simplified the initialization of analytics trackers for improved performance. - **Bug Fixes** - Improved error handling for analytics initialization and user tracking. - **Documentation** - Updated comments for clarity regarding the new analytics tracking logic. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
c2bf6c830e
|
chore: add spotless for sql files for postgres (#37016)
## Description Add spotless check for SQL files. ## Automation /ok-to-test tags="@tag.All" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11549507562> > Commit: 5614181e15e5cfa768f43fb73d23b559ddaba782 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11549507562&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Mon, 28 Oct 2024 11:13:16 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **New Features** - Added user guidance in SQL templates to prompt users for valid table names. - **Bug Fixes** - Improved formatting of SQL statements for better readability across various plugins. - **Chores** - Updated configuration to include SQL files for formatting by the Spotless Maven plugin. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
f6787db0d2
|
chore: Updating the UI for save and edit datasource button in API editor (#37302)
## Description Updating the UI for save and edit datasource button in API editor Fixes [#37286](https://github.com/appsmithorg/appsmith/issues/37286) ## Automation /ok-to-test tags="@tag.Sanity, @tag.Datasource" ### 🔍 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/11741487860> > Commit: 555d2c24c14716efbe919f0b46bb5b3a80e9d366 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11741487860&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity, @tag.Datasource` > Spec: > <hr>Fri, 08 Nov 2024 13:49:22 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced tooltip functionality for the datasource management button, providing contextual information for saving and editing actions. - Introduced specific tooltips for editing and saving datasources, improving user understanding. - **Bug Fixes** - Corrected a typographical error in the function name responsible for rendering nested components, enhancing clarity in the rendering process. - **Documentation** - Improved clarity of messages related to datasource actions, specifying "Save URL" for saving actions. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
806c710ac3
|
chore: Modified default behaviour of consolidated API for missing url params and extra url params (#37274)
## Description - PR for handling Consolidated API when url params are incomplete or have extra params. > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.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/11738054403> > Commit: f6124cbc2003258953c52d1b06ec3fd806157fbf > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11738054403&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Git` > Spec: > <hr>Fri, 08 Nov 2024 08:27:02 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Improved logic for application and page retrieval based on branch names and application modes. - Enhanced error handling and logging for better user experience during page loads. - **Bug Fixes** - Resolved issues with application ID fetching when branch names are present. - **Tests** - Added new test cases to cover various scenarios related to page loading in Git-connected and non-Git applications, ensuring robust functionality across different contexts. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
5e89aa056e
|
chore: Opening response pane by default on query creation and for page load queries (#37245)
## Description Opening response pane by default on query creation and for page load queries Fixes [#37216](https://github.com/appsmithorg/appsmith/issues/37216) ## Automation /ok-to-test tags="@tag.Sanity" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11723600626> > Commit: 98db89cea1891e15fa5881503fa34a26d42cfd76 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11723600626&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity` > Spec: > <hr>Thu, 07 Nov 2024 13:48:18 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced the `PluginActionResponse` component for improved functionality and dynamic response handling. - Introduced a new state variable to manage response tab visibility on initial load. - Added logic to automatically open the response and schema tabs based on action responses. - **Bug Fixes** - Improved control flow and error handling for displaying responses based on action success. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Ankita Kinger <ankitakinger@Ankitas-MacBook-Pro.local> |
||
|
|
1f25adccd7
|
chore: remove padding for anvil embed apps (#37173)
## Description I removed the styles from the DSL and changed the layout type for main container to `LAYOUT_COLUMN`. ## Automation /ok-to-test tags="@tag.All" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11720581716> > Commit: 4ccd8772d1e4f11e1638213787b646932301762c > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11720581716&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Thu, 07 Nov 2024 11:30:39 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced the `MainCanvasWrapper` component for dynamic styling based on URL parameters. - Added a new rendering behavior for the `LayoutColumn` component. - **Improvements** - Updated highlight derivation and layout type in the `LayoutColumn` component. - Simplified layout structure in the `anvilDSLTransformer` function. - Adjusted layout properties for better alignment and spacing in the `LayoutColumn` component. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
9ffcb64da9
|
chore: Add documentation for property pane config (#36880)
/ok-to-test tags="@tag.Anvil" <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new `PropertyControlFactory` class for managing property controls. - Added new properties to the `PropertyPaneControlConfig` interface, enhancing customization and validation options. - Implemented methods for creating and registering control builders, improving the flexibility of property controls. - **Documentation** - Enhanced JSDoc comments for existing properties and methods, providing clearer guidance on their usage. - Updated documentation for the `PropertyPaneSectionConfig`, `PropertyPaneControlConfig`, and `ValidationConfigParams` interfaces to clarify their functionality. <!-- end of auto-generated comment: release notes by coderabbit.ai --> <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11716829822> > Commit: 62df82621a44126f2d876c77a892010265ec53d3 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11716829822&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Anvil` > Spec: > <hr>Thu, 07 Nov 2024 05:15:44 UTC <!-- end of auto-generated comment: Cypress test results --> |
||
|
|
83e75583e3
|
chore: use spybean for SessionUserService and remove unused method for populating the userId in the ActionExecuteDTO (#37268)
## Description > Fix test case for EE Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.Sanity" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/11717655239> > Commit: 87131cbe02fa4e13ef4a88288ffa64a27846c9fc > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11717655239&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity` > Spec: > <hr>Thu, 07 Nov 2024 06:49:49 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Updated the `sessionUserService` field in the test class to utilize partial mocking, enhancing the verification of interactions during tests. - **Bug Fixes** - Removed the method responsible for populating user IDs in action execution, streamlining user identification handling. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com> |
||
|
|
ae7f8c73ec
|
feat: add unmount field validation logic to JSON form widget (#37220) (#37259)
## Description <ins>Problem</ins> When deleting all fields of array item, submit became disabled. <ins>Root cause</ins> The JSON form widget did not properly handle field validation during unmounting of array items, leading to inconsistencies in the form's error state. <ins>Solution</ins> This PR implements `useUnmountFieldValidation` to `FieldRenderer.tsx`, enhancing field validation for array items in the JSON form widget. This PR handles... - Ensuring proper cleanup of field validation when an array field is removed from the form, resolving visibility issues in list view mode. - Maintaining a consistent and accurate form state even after field removal. Fixes #18752 _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.JSONForm" ### 🔍 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/11703351095> > Commit: 521fd25a83c099ddcc0273cf11b4cca80074c7a5 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11703351095&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.JSONForm` > Spec: > <hr>Wed, 06 Nov 2024 12:45:42 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new mechanism for handling field validation upon unmounting in the form widget. - **Bug Fixes** - Improved field validation logic to enhance form data management during component unmounting. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
0c406b0d02
|
feat: Enhance date validation logic and add tests for timePrecision in DatePickerWidget2 (#37218)
## Description <ins>Problem</ins> The DatePickerWidget2 component had incomplete date validation logic, allowing incorrect dates to be selected, and lacked comprehensive testing for time precision. <ins>Root cause</ins> The date validation logic did not accurately account for time precision, and the testing was limited, making it difficult to ensure the component's correctness. <ins>Solution</ins> This PR enhances the date validation logic in DatePickerWidget2 to provide better granularity checks based on the timePrecision property, and adds comprehensive tests to ensure correct date handling across boundaries for different timePrecision settings. This PR handles... - Enhanced date validation logic to accurately account for time precision. - Comprehensive testing to ensure correct date handling for all possible input combinations. Fixes #37083 _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.Datepicker" ### 🔍 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/11702221741> > Commit: 306373ac3b64a5a9ba037f513accd15dd9aaa36e > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11702221741&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Datepicker` > Spec: > <hr>Wed, 06 Nov 2024 11:32:28 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced date validation logic in the DatePickerWidget2 for improved accuracy based on time precision. - **Tests** - Introduced comprehensive test cases for the `isValidDate` function, covering various scenarios related to time precision, ensuring robust validation against defined date ranges. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |