Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Improve data connection load/registration #14

Closed
kyungtaak opened this issue Aug 13, 2018 · 37 comments
Closed

Improve data connection load/registration #14

kyungtaak opened this issue Aug 13, 2018 · 37 comments
Assignees
Labels
@datasource Component Name : Datasource/Connection Management enhancement Request Change and Feature Enhancement
Milestone

Comments

@kyungtaak
Copy link
Contributor

kyungtaak commented Aug 13, 2018

Is your feature request related to a problem? Please describe.

  • 기존 데이터 커넥션 타입이 적재/워크벤치 용도로 나뉘어져 있어 동일한 연결임에도 2개씩 관리하는 어려움이 있습니다.
  • 타입이 통합되면서 Security, Permission 부분을 하나의 화면에서 등록 할수 있도록 UI 처리가 필요합니다.

Describe the solution you'd like

  • 커넥션 타입 타입 통합 및 등록 화면 UX 개선
    image
    image

  • 커넥션 등록 화면 변경에 따른 데이터 적재 단계내 커넥션 로드 화면 UX 개선
    image

  • 커넥션 목록 화면내 타입관련 처리 제거

Describe alternatives you've considered
None.

Additional context

  • 커넥션 화면을 사용하는 데이터 적재 관련 화면/워크벤치 기능에 대한 전수 점검이 필요합니다.
@kyungtaak kyungtaak added enhancement Request Change and Feature Enhancement @datasource Component Name : Datasource/Connection Management labels Aug 13, 2018
@brandon-wonjune
Copy link
Contributor

@ufoscw

  1. 해당 화면에 새로 추가된 security 에 관한 파라메터는 어떤 값으로 던져야되나요?
  2. 기존에 있던 일반용/워크벤치용으로 사용되던 usageScope는 더 이상 파라메터로 전달하지 않으면 되나요?

@brandon-wonjune
Copy link
Contributor

f#14-improve_data_connection 브랜치 생성하였습니다

@ufoscw
Copy link
Contributor

ufoscw commented Aug 14, 2018

@brandon-exntu

  1. security 관련 파라미터는 새로 추가된 파라미터가 아닙니다.
    해당 기능은 이미 구현되어 사용하던 기능이므로 자세한 기능은 Workbench Front-end쪽 소스 참고하시기 바랍니다.
    property : authenticationType
  • 항상 연결 : MANUAL
  • 사용자계정으로 연결 : USERINFO
  • 아이디와 비번으로 연결 : DIALOG
  1. usageScope 속성은 Entity에서 삭제됩니다. 파라미터에서도 삭제해주시고 response 참조 부분도 삭제해주세요.

@ufoscw
Copy link
Contributor

ufoscw commented Aug 14, 2018

@brandon-exntu
issue 본문의 내용 중

Additional context
커넥션 화면을 사용하는 데이터 적재 관련 화면/워크벤치 기능에 대한 전수 점검이 필요합니다.

이 부분은 확인 다 하시고 pull request 하시는건가요?

@brandon-wonjune
Copy link
Contributor

@ufoscw
기존에 생성된 데이터커넥션을 이용하는 소스화면 / 워크벤치에 대한 기능에는 이상이없습니다.
다만 워크스페이스에서 워크벤치에서 생성시에 usageScope가 default에 대한 커넥션에 대해 표기되지 않아 수정하였습니다.
필터링에 대해서는 서버로 통신하고 있기 때문에 값이없던 커넥션에 대해 처리가 필요합니다.

@ufoscw
Copy link
Contributor

ufoscw commented Aug 14, 2018

@brandon-exntu
데이터 소스 생성시 데이터커넥션을 불러올 경우 문제가 많을텐데 이상없다고 하시니 이상하네요.
데이터소스 생성시 문제가 되는 부분에 대해 프로세스 재정리 중입니다.
API 쪽 수정 후 다시 작업 시작하시죠.

ufoscw added a commit that referenced this issue Aug 17, 2018
1. usageScope property removed.
2. jdbcIngestionInfo handling modified.
ufoscw added a commit that referenced this issue Aug 17, 2018
@ufoscw
Copy link
Contributor

ufoscw commented Aug 17, 2018

@brandon-exntu
서버사이드 API 작업이 완료되었습니다.
이 외에 프로세스 변경사항은 @AnnieHwang 님을 통해서 전달될 예정입니다.

기존 로직에서 상당히 많은 버그를 발견하였습니다. 작업 후 꼼꼼히 테스트 바랍니다.

변경사항

  1. JDBC 타입의 DataSource 등록시 connection authentication 유형이 DIALOG일 경우 필수 속성 추가
    ingestion.connectionUsername
    ingestion.connectionPassword

"ingestion": {
"dataType": "TABLE",
"type": "single",
"rollup": true,
"query": "simple",
"database": "sample",
"scope": "ALL",
"connectionUsername":"polaris",
"connectionPassword":"polaris"
}

  1. DataConnection Authentication 몇차례 변경으로 인해 기본값에 대한 예외처리 추가필요함.
    AuthenticationType이 공백이거나, "default"일 경우 "MANUAL" 과 동일하게 UI에서 처리해주시기 바랍니다.
    기 등록된 DataConnection 상세 보기시 UI 오작동이 없도록 조치바랍니다.

오류사항

  1. DataSource 등록 및 DataConnection 등록시 파라미터 오류가 굉장히 많습니다.
    DataConnection 유형이 MANUAL 이 아닌경우는 사용자정보를 서버에 저장하지 않아야 하는데 현재 모두 서버에 파라미터로 보내고 있습니다.
    그러므로 기존 DataConnection으로 테스트하지 마시고 신규로 생성한 DataConnection으로 테스트하시기 바랍니다.

  2. DataConnection.Authenticaition 이 DIALOG, USERINFO 인 경우 파라미터에 누락된 값들이 많습니다.
    websocketId, Dialog를 통한 사용자 정보 등등.
    1번 오류사항 때문에 그 동안 버그로 검출되지 않는상황이었습니다.
    3가지 Authentication 유형에 대해 워크벤치에서 오작동하는 경우가 없도록 조치 바랍니다.

  3. DataConnection 등록 시 탭키 이동 오작동
    사용자명에서 탭키 클릭시 포커스 사라집니다.

  4. DataSource 등록시 커넥션 정보 입력 다음 스텝에서 커넥션 정보로 되돌아 갈 경우 기존 값들 유지 안됨.

@ufoscw
Copy link
Contributor

ufoscw commented Aug 17, 2018

@brandon-exntu

참고로 제가 데이터 소스 생성시 JDBC DataConneciton기능을 사용하는 경우의 수입니다.

DataSource connType
: ENGINE, LINKED

기존 DataConnection Preset 사용 여부
: O, X

DataConnection authenticationType
: MANUAL, USERINFO, DIALOG

DataSource Ingestion Type
: single, batch

모든 케이스에서 오류가 없도록 꼼꼼히 확인해주세요.

@brandon-wonjune
Copy link
Contributor

@ufoscw
위 오류사항 문의 드립니다.

  1. Authentication 이 MANUAL이 아닌경우 사용자 정보를 저장하지 않아야된다는 것은
    username과 password를 파라메터로 전달하지 말라는 말씀인가요?
    만약 커넥션 수정시에 기존 Authentication이 MANUAL에서 DIALOG나 USERINFO로 변경한경우 username과 password를 빈 값으로 넘기면되나요?
  2. Authentication 가 DIALOG인 경우 데이터커넥션 생성 및 수정에서도 username과 password 대신 connectionUsername과 connectionPassword로 전달하면 되나요?

@brandon-wonjune brandon-wonjune added the awaiting feedback need to feedback label Aug 21, 2018
@ufoscw
Copy link
Contributor

ufoscw commented Aug 21, 2018

@brandon-exntu

  1. 네. 넘기셔도 지금은 DB에 저장되지 않습니다.
  2. connectionUsername과 connectionPassword 파라미터는 데이터 커넥션이 아니라 데이터소스의 ingestion 속성입니다. 데이터 커넥션 생성/수정에서는 connectionUsername, connectionPassword 속성을 사용하지 않습니다.

@brandon-wonjune
Copy link
Contributor

brandon-wonjune commented Aug 22, 2018

@ufoscw
데이터소스 생성시 MANUAL을 제외한 나머지 두 타입에 대한 문의입니다.

  1. 소스 생성시에도 MANUAL을 제외한 나머지 두 값은 password와 username을 전달하지 말아야 되나요?

  2. 현재 생성단계에서 프리셋을 사용하지 않고.
    DIALOG로 설정시 기존에 connection 내의 password와 username을 제외하고
    connectionUsername과 connectionPassword를 추가하였을때 발생하는 에러입니다.

connType:"ENGINE"
description:""
dsType:"MASTER"
fields:[,…]
granularity:"MONTH"
ingestion:{
connection:{type: "JDBC", implementor: "MYSQL", url: "jdbc:mysql://localhost:3306"}
connectionPassword:"polaris"
connectionUsername:"polaris"
dataType:"TABLE"
database:"polaris_v2"
query:"activity_stream"
rollup:true
scope:"ALL"
type:"single"
}
name:"1"
segGranularity:"MONTH"
srcType:"JDBC"
app.metatron.discovery.domain.datasource.connection.jdbc.JdbcDataConnectionException: Fail to query : SELECT command denied to user ''@'localhost' for table 'activity_stream'
	at app.metatron.discovery.domain.datasource.connection.jdbc.JdbcCSVWriter.write(JdbcCSVWriter.java:200)
	at app.metatron.discovery.domain.datasource.connection.jdbc.JdbcConnectionService.selectQueryToCsv(JdbcConnectionService.java:1070)
	at app.metatron.discovery.domain.datasource.connection.jdbc.JdbcConnectionService.selectQueryToCsv(JdbcConnectionService.java:921)
	at app.metatron.discovery.domain.datasource.connection.jdbc.JdbcConnectionService.selectQueryToCsv(JdbcConnectionService.java:912)
	at app.metatron.discovery.domain.datasource.connection.jdbc.JdbcConnectionService.selectQueryToCsv(JdbcConnectionService.java:905)
	at app.metatron.discovery.domain.engine.EngineIngestionService.doDBToFileIngestion(EngineIngestionService.java:332)
	at app.metatron.discovery.domain.engine.EngineIngestionService.doIngestion(EngineIngestionService.java:161)
	at app.metatron.discovery.domain.engine.EngineIngestionService$$FastClassBySpringCGLIB$$8904beb2.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
	at app.metatron.discovery.domain.engine.EngineIngestionService$$EnhancerBySpringCGLIB$$aa41f9bd.doIngestion(<generated>)
	at app.metatron.discovery.domain.datasource.DataSourceEventHandler.initEngineIngestion(DataSourceEventHandler.java:359)
	at app.metatron.discovery.domain.datasource.DataSourceEventHandler.checkCreateAuthority(DataSourceEventHandler.java:132)
	at app.metatron.discovery.domain.datasource.DataSourceEventHandler$$FastClassBySpringCGLIB$$d36826d1.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
	at app.metatron.discovery.domain.datasource.DataSourceEventHandler$$EnhancerBySpringCGLIB$$44668559.checkCreateAuthority(<generated>)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:216)
	at org.springframework.data.rest.core.event.AnnotatedEventHandlerInvoker.onApplicationEvent(AnnotatedEventHandlerInvoker.java:98)
	at org.springframework.data.rest.core.event.AnnotatedEventHandlerInvoker.onApplicationEvent(AnnotatedEventHandlerInvoker.java:59)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)
	at org.springframework.data.rest.webmvc.RepositoryEntityController.createAndReturn(RepositoryEntityController.java:484)
	at org.springframework.data.rest.webmvc.RepositoryEntityController.postCollectionResource(RepositoryEntityController.java:272)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at app.metatron.discovery.common.web.CommonLocalVariableFilter.doFilter(CommonLocalVariableFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at app.metatron.discovery.common.web.LogbackMdcFilter.doFilter(LogbackMdcFilter.java:59)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:167)
	at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:80)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)

@brandon-wonjune
Copy link
Contributor

@ufoscw
워크벤치에서 connection 관련 api를 이용하는 경우 websocketId 파라메터가 누락되어 있어서 생긴 문제였습니다.
워크벤치에서 connection api 사용시 websocketId 파라메터를 추가하도록 수정하였습니다.
더이상 위와같은 에러가 발견되지 않았습니다.

@kyungtaak kyungtaak added this to the 3.1.0 milestone Aug 29, 2018
ufoscw added a commit that referenced this issue Aug 30, 2018
@ufoscw
Copy link
Contributor

ufoscw commented Aug 30, 2018

@brandon-wonjune
워크벤치의 스키마 브라우저 새창보기시 에러 발생합니다.
이 부분도 확인 바랍니다.

@ufoscw
Copy link
Contributor

ufoscw commented Aug 30, 2018

@brandon-wonjune
작업이 거의 다 되신것 같은데요.
작업 마무리 되시면 Pull Request 오픈 해주시면 됩니다.

@brandon-wonjune
Copy link
Contributor

@ufoscw 스키마 브라우저 새창보기시 웹소켓아이디 전달에서 문제가있어서 수정하였습니다.

brandon-wonjune added a commit that referenced this issue Sep 4, 2018
@ufoscw ufoscw closed this as completed Sep 6, 2018
@ufoscw ufoscw reopened this Sep 6, 2018
@ufoscw
Copy link
Contributor

ufoscw commented Sep 6, 2018

미흡한 내용이 있어 이슈 리오픈 합니다.
_m-core_wf-d1-datastorage__1_

@minjung-cho
퍼블리싱에도 해당 기획내용이 반영되어 있는지 확인바랍니다.

@brandon-wonjune
해당 내용 추가로 작업해서 커밋 바랍니다.

@minjung-cho
Copy link

@ufoscw 구분선 관련 의견 주신 것은.. 맞는 말인것 같습니다. 의견 고맙습니다. @AnnieHwang 구분선 위치는 변경하는게 좋겠지요?

screenshot-19
@brandon-wonjune Ingestion type 순서, 보안3번째 항목에 경고 문구 는 디자인은 나왔고 퍼블에 전달되었다고 합니다~ 한번 체크해 보셔야 할 것 같아요. 번거롭지만, 구분선 위치도 퍼블 수정하실때 변경 부탁드립니다. @koeun222 참고해 주세요~

@ufoscw
Copy link
Contributor

ufoscw commented Sep 7, 2018

@brandon-wonjune
작업 완료되면 PR 오픈 해주세요.

@ufoscw
Copy link
Contributor

ufoscw commented Sep 7, 2018

@brandon-wonjune
PostgreSQL 버튼 마우스 오버시 버튼 길이가 조금씩 바뀝니다. 확인 부탁드려요.
해당 이슈는 오전중에 review까지 마무리 하고 오후 2차 통합테스트에 포함될 예정입니다.

@brandon-wonjune
Copy link
Contributor

@ufoscw
구분선, 문구, 마우스 호버 버튼 길이, 체크 css수정하였습니다. PR오픈 하겠습니다.
2018-09-07 10 42 27

@brandon-wonjune
Copy link
Contributor

@ufoscw
통합테스트 중 기존에 생성된 GENERAL 타입에 대한 커넥션 사용시 다음과 같은 에러사항이 발생하였습니다.

테스트
데이터커넥션 > GENERAL 타입의 커넥션 상세 조회 > 권한 수정 > 에러 발생

// api
api/connections/ba2fbb39-d624-4a53-92c0-f994a2ca7bfd

// params
{published:true}

// error 
error:"Internal Server Error"
exception:"org.springframework.transaction.TransactionSystemException"
message:"Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Error while committing the transaction"
path:"/api/connections/ba2fbb39-d624-4a53-92c0-f994a2ca7bfd"
status:500
timestamp:"2018-09-07T02:46:32.658+0000"

ui에서 다른 처리가 필요한가요?

@brandon-wonjune brandon-wonjune added the awaiting feedback need to feedback label Sep 7, 2018
@ufoscw
Copy link
Contributor

ufoscw commented Sep 7, 2018

@brandon-wonjune
api 오류 수정 예정입니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
@datasource Component Name : Datasource/Connection Management enhancement Request Change and Feature Enhancement
Projects
None yet
Development

No branches or pull requests

4 participants