ArchGuard is a architecture governance tool which can analysis architecture in container, component, code level, create architecure fitness functions, and anaysis system dependencies..

Related tags

App archguard
Overview

ArchGuard backend

CI codecov GitHub release languages Java support License Gitpod Ready-to-Code

ArchGuard is a architecture governance tool which can analysis architecture in container, component, code level, database, create architecture fitness functions, and test for architecture rules.

Chinese: ArchGuard 是一个架构治理工具,用于管理和分析组织级别的软件架构。 结合 C4 模型,进行依赖分析,含容器级别(服务级别)、组件级别(/模块级别)、代码级别、数据库级别等。 同时,可以创建系统的架构适应度函数,度量系统的各项指标。

Document: https://archguard.org/

Others:

Screenshots:

1 2
3

Languages parse by Chapi

Features/Languages Java Python Go Kotlin TypeScript C C# Scala C++
http api decl 🆕 🆕 🆕 🆕 🆕
syntax parse 🆕 🆕
function call 🆕
arch/package
real world validate

Chat

欢迎加入我们:

(PS:如果群满,请添加微信 phodal02,并注明 ArchGuard)

License

@2020~2022 Thoughtworks. This code is distributed under the MPL license. See LICENSE in this directory.

Comments
  • SSL certificate problem: unable to get local issuer certificate

    SSL certificate problem: unable to get local issuer certificate

    主要操纵步骤如下:

    1. git clone https://github.com/archguard/archguard
    2. docker-compose -p ArchGuard -f ./docker-compose.yml up -d 所有组件启动OK
    3. 参考 https://archguard.org/ ,访问 http://localhost:11080/, 创建系统 image
    4. ./docker-compose logs -f 查看日志打印,出现SSL certificate problem: unable to get local issuer certificate错误。可以确定代码仓在机器上可以clone的 image

    查找网上一些解决方法【暂时未解决问题】: (1)git config --global http.sslVerify false

    bug 
    opened by xuexiansen123 21
  • archguard-backend exited with code 139

    archguard-backend exited with code 139

    Describe the bug docker-compose无法拉起backend容器实例。 image

    image

    Env (please complete the following information):

    • OS: centos7
    • Env: Docker compose
    • Browser: chrome
    • Version: master branch
    good first issue 
    opened by shihai1991 19
  • backend服务一直是unhealthy

    backend服务一直是unhealthy

    backend服务一直是unhealthy, docker compose切换到1.29.2也试过了不行

    环境: Mac M1 Docker version 20.10.14, build a224086 docker-compose version 1.29.2, build 5becea4c image

    image
    opened by awephy 13
  • archguard-backend无法启动

    archguard-backend无法启动

    Describe the bug 通过curl -s https://raw.githubusercontent.com/archguard/archguard/master/install.sh | bash -s master 启动,后端服务无法启动: Could not load hsdis-amd64.so; library not loadable; PrintAssembly is disabled。

    详细报错信息:

      .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::                (v2.7.0)
    
    2022-06-29 11:02:23.971 [main] INFO  c.t.archguard.ApplicationKt - Starting ApplicationKt using Java 12-ea on e12269af70d4 with PID 1 (/home/spring/app.jar started by spring in /home/spring)
    2022-06-29 11:02:23.978 [main] INFO  c.t.archguard.ApplicationKt - The following 1 profile is active: "debug"
    2022-06-29 11:02:30.579 [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http)
    2022-06-29 11:02:30.604 [main] INFO  o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
    2022-06-29 11:02:30.604 [main] INFO  o.a.catalina.core.StandardService - Starting service [Tomcat]
    2022-06-29 11:02:30.604 [main] INFO  o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.63]
    #
    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  SIGILL (0x4) at pc=0x00007f50616309bc, pid=1, tid=7
    #
    # JRE version: OpenJDK Runtime Environment (12.0+29) (build 12-ea+29)
    # Java VM: OpenJDK 64-Bit Server VM (12-ea+29, mixed mode, sharing, tiered, compressed oops, serial gc, linux-amd64)
    # Problematic frame:
    # v  ~StubRoutines::updateBytesCRC32
    #
    # Core dump will be written. Default location: /home/spring/core.1
    #
    # An error report file with more information is saved as:
    # /tmp/hs_err_pid1.log
    Could not load hsdis-amd64.so; library not loadable; PrintAssembly is disabled
    #
    # If you would like to submit a bug report, please visit:
    #   http://bugreport.java.com/bugreport/crash.jsp
    #
    
    

    Env (please complete the following information): CentOS Linux release 7.6.1810 (Core) Docker version 20.10.6, build 370c289 Docker Compose version v2.6.1

    bug 
    opened by gonker 8
  • 版本2.0.0-beta.2扫描代码后没有生成结果

    版本2.0.0-beta.2扫描代码后没有生成结果

    Describe the bug A clear and concise description of what the bug is.

    Env (please complete the following information):

    • OS: Ubuntu虚拟机
    • Env: Docker compose
    • Browser:chrome
    • Version:clone Archguard最新版本2.0.0-beta.2

    To Reproduce Steps to reproduce the behavior:

    1. 子系统分析页面选择新增系统
    2. 填写系统github信息,如下截图所示
    3. 在新增系统图标选择查询日志,内容如下截图所示。从archguard-backend的后台日志看,有如下内容:
    2022-10-11 17:21:16.443 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader workspace path: /home/spring
    2022-10-11 17:21:16.443 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader analyser install path: /home/spring/dependencies/analysers
    2022-10-11 17:21:16.445 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader analyser: rule-webapi - [2.0.0-beta.2] is installed
    2022-10-11 17:21:16.452 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.scanner.ctl.loader.SlotHubImpl register slot: rule-webapi
    2022-10-11 17:21:16.452 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader workspace path: /home/spring
    2022-10-11 17:21:16.453 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader analyser install path: /home/spring/dependencies/analysers
    2022-10-11 17:21:16.458 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader analyser: rule-test - [2.0.0-beta.2] is installed
    2022-10-11 17:21:16.463 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.scanner.ctl.loader.SlotHubImpl register slot: rule-test
    2022-10-11 17:21:16.464 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader workspace path: /home/spring
    2022-10-11 17:21:16.464 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader analyser install path: /home/spring/dependencies/analysers
    2022-10-11 17:21:16.464 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader analyser: rule-sql - [2.0.0-beta.2] is installed
    2022-10-11 17:21:16.469 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.scanner.ctl.loader.SlotHubImpl register slot: rule-sql
    2022-10-11 17:21:16.490 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] org.archguard.scanner.ctl.Runner <cli parameters>
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |type: SCA
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |systemId: 2
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |serverUrl: http://localhost:8080
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |workspace: /tmp/archguard16869049267192936151
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |path: /tmp/archguard16869049267192936151
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |output: [http]
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - <customized analysers>
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |analyzerSpec: []
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |slotSpec: []
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - <additional parameters>
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |language: kotlin
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |features: []
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |repoId: null
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |branch: master
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |startedAt: 0
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |since: null
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |until: null
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |depth: 7
    2022-10-11 17:21:16.491 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - |rules: []
    2022-10-11 17:21:16.544 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader workspace path: /home/spring
    2022-10-11 17:21:16.546 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader analyser install path: /home/spring/dependencies/analysers
    2022-10-11 17:21:16.557 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader analyser: sca - [2.0.0-beta.2] is installed
    2022-10-11 17:21:16.658 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader workspace path: /home/spring
    2022-10-11 17:21:16.658 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader analyser install path: /home/spring/dependencies/analysers
    2022-10-11 17:21:16.658 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.loader.AnalyserLoader analyser: kotlin - [2.0.0-beta.2] is installed
    2022-10-11 17:21:16.728 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - Exception in thread "main" java.lang.NoSuchMethodError: java.util.stream.Stream.toList()Ljava/util/List;
    2022-10-11 17:21:16.728 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at org.archguard.scanner.core.sourcecode.LanguageSourceCodeAnalyser$DefaultImpls.getFilesByPath(LanguageSourceCodeAnalyser.kt:18)
    2022-10-11 17:21:16.733 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at org.archguard.scanner.analyser.KotlinAnalyser.getFilesByPath(KotlinAnalyser.kt:13)
    2022-10-11 17:21:16.735 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at org.archguard.scanner.analyser.KotlinAnalyser$analyse$1.invokeSuspend(KotlinAnalyser.kt:19)
    2022-10-11 17:21:16.738 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:279)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at org.archguard.scanner.analyser.KotlinAnalyser.analyse(KotlinAnalyser.kt:17)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at org.archguard.scanner.core.sourcecode.LanguageSourceCodeAnalyser$DefaultImpls.analyse(LanguageSourceCodeAnalyser.kt:10)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at org.archguard.scanner.analyser.KotlinAnalyser.analyse(KotlinAnalyser.kt:13)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at org.archguard.scanner.ctl.loader.SourceCodeWorker$run$1.invokeSuspend(AnalyserDispatcher.kt:71)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:279)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
    2022-10-11 17:21:16.740 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
    2022-10-11 17:21:16.741 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at org.archguard.scanner.ctl.loader.SourceCodeWorker.run(AnalyserDispatcher.kt:69)
    2022-10-11 17:21:16.741 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at org.archguard.scanner.ctl.loader.AnalyserDispatcher.dispatch(AnalyserDispatcher.kt:34)
    2022-10-11 17:21:16.741 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at org.archguard.scanner.ctl.Runner.run(Runner.kt:92)
    2022-10-11 17:21:16.741 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:198)
    2022-10-11 17:21:16.741 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:18)
    2022-10-11 17:21:16.741 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at com.github.ajalt.clikt.core.CliktCommand.parse(CliktCommand.kt:395)
    2022-10-11 17:21:16.741 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at com.github.ajalt.clikt.core.CliktCommand.parse$default(CliktCommand.kt:392)
    2022-10-11 17:21:16.741 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:410)
    2022-10-11 17:21:16.751 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:435)
    2022-10-11 17:21:16.757 [DefaultDispatcher-worker-3] INFO  c.t.a.s.infra.ScannerCliClient - 	at org.archguard.scanner.ctl.RunnerKt.main(Runner.kt:96)
    2022-10-11 17:21:17.358 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.client.ArchGuardHttpClient process topic: sca-dependencies
    2022-10-11 17:21:18.365 [http-nio-8080-exec-4] DEBUG c.t.a.s.repository.ScaRepository - clean up old data for systemId: 2
    2022-10-11 17:21:18.367 [http-nio-8080-exec-4] DEBUG c.t.a.s.repository.ScaRepository - save new data for systemId: 2
    2022-10-11 17:21:18.519 [http-nio-8080-exec-4] DEBUG c.t.a.s.repository.ScaRepository - save new data for systemId: 2 done
    2022-10-11 17:21:18.560 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.client.ArchGuardHttpClient response status: 200
    2022-10-11 17:21:18.560 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - response body: 
    
    1. 点击代码分析、影响分析等各个页面,内容都是空的,系统也无法选择

    Expected behavior 产生代码分析结果

    Screenshots image image image

    opened by AllenShi 7
  • 服务更新之后启动失败

    服务更新之后启动失败

    我首先关闭了docker服务(docker-compose down),今天从github上拉下来最近代码,删除了镜像,执行命令docker-compose -p ArchGuard -f ./docker-compose.yml up -d重新去拉去新的镜像,然后失败了archguard/archguard-backend:latest Detected failed migration to version 202206020001 (add governance issue). Please remove any half-completed changes then run repair to fix the schema history. Need more flexibility with validation rules? Learn more: https://rd.gt/3AbJUZE at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)

    opened by 1175239102 7
  • docker-compose启动backend服务无法访问到mysql网络

    docker-compose启动backend服务无法访问到mysql网络

    Describe the bug docker-compose启动backend服务无法访问到mysql网络 latest镜像打包的代码感觉数据库配置不对, spring.datasource.url=jdbc:mysql://archguard-mysql:3306/archguard 配置成了spring.datasource.url=jdbc:mysql://archguard_mysql:3306/archguard

    Screenshots backend 启动报错 参考附图:
    image

    opened by wujun27 7
  • Look me:ArchGuard 部署搭建 —— help !!!

    Look me:ArchGuard 部署搭建 —— help !!!

    本人小白一枚,最近刚刚接触ArchGuard,在部署搭建过程中遇到一些问题,麻烦大佬们各显神通,救救小菜鸡。 以下操作按照READ.ME进行,如有理解不当,还请大家多多指教。 ArchGuard scanner - scan source code, binary data and othes, and feed to database. ArchGuard frontend - visualization results & dashboard ArchGuard backend - connect scanner and show data.

    ArchGuard backend

    docker setup

    docker-compose -p ArchGuard -f ./docker-compose.yml up -d,无报错信息,执行完毕后,需要干啥??

    [+] Running 7/7
     ⠿ Network archguard_dependence_network  Created                                                                               0.1s
     ⠿ Volume "archguard_mysql"              Created                                                                               0.0s
     ⠿ Volume "archguard_influxdb"           Created                                                                               0.0s
     ⠿ Container archguard_influxdb          Started                                                                               1.3s
     ⠿ Container archguard_mysql             Healthy                                                                              31.9s
     ⠿ Container archguard-backend           Started                                                                              32.1s
     ⠿ Container archguard-frontend          Started                                                                              32.3s
    
    question 
    opened by xuexiansen123 7
  • 系统分析指标不完整

    系统分析指标不完整

    系统分析后,控制台报下面的异常: 2022-06-09 15:13:54.447 [pool-1-thread-5] INFO c.t.a.s.d.a.ArchitectureDependencyAnalysis - ************************************ 2022-06-09 15:13:54.447 [pool-1-thread-5] INFO c.t.a.s.d.a.ArchitectureDependencyAnalysis - Finished level 2 analysis metrics 2022-06-09 15:13:54.447 [pool-1-thread-5] INFO c.t.a.s.d.a.ArchitectureDependencyAnalysis - ************************************ 2022-06-09 15:13:55.029 [http-nio-8080-exec-2] ERROR c.t.a.m.i.influx.InfluxDBClient - Client exception when send metrics to InfluxDB. {} org.springframework.web.client.HttpClientErrorException$Unauthorized: 401 Unauthorized: [no body] at org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:105) at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:168) at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:122) at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63) at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:819) at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:777) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:711) at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:437) at com.thoughtworks.archguard.metrics.infrastructure.influx.InfluxDBClient.save(InfluxDBClient.kt:19) at com.thoughtworks.archguard.metrics.infrastructure.MetricsRepositoryImpl.insertAllClassCouplings(MetricsRepositoryImpl.kt:24) at com.thoughtworks.archguard.metrics.infrastructure.MetricsRepositoryImpl$$FastClassBySpringCGLIB$$b2127064.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) at com.thoughtworks.archguard.metrics.infrastructure.MetricsRepositoryImpl$$EnhancerBySpringCGLIB$$d41d6c69.insertAllClassCouplings(<generated>) at com.thoughtworks.archguard.metrics.domain.coupling.CouplingServiceImpl.persistAllClassCouplingResults(CouplingServiceImpl.kt:24) at com.thoughtworks.archguard.code.module.domain.LogicModuleService.autoDefineLogicModule(LogicModuleService.kt:62) at com.thoughtworks.archguard.code.module.controller.LogicModuleController.autoDefineLogicModule(LogicModuleController.kt:90) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833) 2022-06-09 15:13:55.029 [pool-1-thread-5] INFO c.t.a.s.i.c.AnalysisModuleClient - Auto-define request to module-analysis for system 1 2022-06-09 15:13:55.029 [pool-1-thread-5] INFO c.t.a.s.d.a.ArchitectureDependencyAnalysis - ************************************ 2022-06-09 15:13:55.029 [pool-1-thread-5] INFO c.t.a.s.d.a.ArchitectureDependencyAnalysis - Finished logic module auto define 2022-06-09 15:13:55.029 [pool-1-thread-5] INFO c.t.a.s.d.a.ArchitectureDependencyAnalysis - ************************************

    influxdb server端报如下异常: 2022-06-09T07:01:28.973888Z info Unauthorized {"log_id": "0ayewLQ0000", "error": "token required"} 2022-06-09T07:01:29.052127Z info Unauthorized {"log_id": "0ayewLQ0000", "error": "token required"} 2022-06-09T07:13:55.025657Z info Unauthorized {"log_id": "0ayewLQ0000", "error": "token required"} 2022-06-09T07:13:55.104592Z info Unauthorized {"log_id": "0ayewLQ0000", "error": "token required"} 2022-06-09T07:13:55.141257Z info Unauthorized {"log_id": "0ayewLQ0000", "error": "token required"} 2022-06-09T07:13:55.212737Z info Unauthorized {"log_id": "0ayewLQ0000", "error": "token required"} 2022-06-09T07:13:55.219839Z info Unauthorized {"log_id": "0ayewLQ0000", "error": "token required"} 2022-06-09T07:13:55.303146Z info Unauthorized {"log_id": "0ayewLQ0000", "error": "token required"}

    我感觉我本地mac influxdb没有配置正确,但没找到,求助

    opened by duguyixiaono1 5
  • 扫描后内容为空,日志报错scan jar包不完整

    扫描后内容为空,日志报错scan jar包不完整

    本地虚拟机搭建起来服务,添加系统后,进行扫描后,扫描结果为空,没有数据,查询日志如下:

    日志 HEAD is now at a53da432 chore: remove project name of docker compose Removing archguard.log Removing countTest.log Removing scm_git_hot_file.txt From https://gitee.com/luzhanheng/archguard

    • branch master -> FETCH_HEAD Already up to date. Current branch master is up to date. Error: Invalid or corrupt jarfile scan_sourcecode.jar jar 包不完整,请尝试连接 VPN 下载。访问: https://archguard.org/docs/faq.html 了解更多 Error: Invalid or corrupt jarfile scan_git.jar jar 包不完整,请尝试连接 VPN 下载。访问: https://archguard.org/docs/faq.html 了解更多 Error: Unable to access jarfile scan_test_badsmell.jar 下载 Scanner 可能出错,请尝试连接 VPN 下载。访问: https://archguard.org/docs/faq.html 了解更多

    随后我进入backend的docker容器内部,进入/home/spring目录下,查看存在scan等jar包,如下 ~ $ ls -l total 63068 -rw-r--r-- 1 root root 58272645 Apr 13 21:02 app.jar -rw-r--r-- 1 spring spring 3767698 Apr 21 14:19 scan_git-1.5.0-all.jar -rw-r--r-- 1 spring spring 605579 Apr 21 14:15 scan_sourcecode-1.5.0-all.jar -rw-r--r-- 1 spring spring 1932680 Apr 21 14:21 scan_test_badsmell-1.4.5-all.jar ~ $ pwd /home/spring

    请大佬指教

    opened by zhanhengLu 5
  • 使用默认docker-compose文件启动,Mysql8告警

    使用默认docker-compose文件启动,Mysql8告警

    Describe the bug 使用默认docker-compose文件启动,Mysql8告警

    mbind: Operation not permitted
    mbind: Operation not permitted
    mbind: Operation not permitted
    mbind: Operation not permitted
    mbind: Operation not permitted
    mbind: Operation not permitted
    mbind: Operation not permitted
    mbind: Operation not permitted
    

    Env (please complete the following information):

    • OS: macOS Monterey
    • Env: Docker compose、docker-desktop 3.6.0
    • Browser N/A
    • Version N/A

    To Reproduce Steps to reproduce the behavior:

    1. git clone archguard 代码库
    2. Go to 'archguard' 目录
    3. 执行 docker-compose up
    4. 等一会mysql启动
    5. See error

    Expected behavior 不断打印

    mbind: Operation not permitted
    mbind: Operation not permitted
    mbind: Operation not permitted
    mbind: Operation not permitted
    mbind: Operation not permitted
    mbind: Operation not permitted
    mbind: Operation not permitted
    mbind: Operation not permitted
    
    good first issue 
    opened by victoryw 4
  • 扫描结束后没有任何提示信息

    扫描结束后没有任何提示信息

    Describe the bug 开始扫描结束后,即没有提示扫描成功也没有提示失败

    Env (please complete the following information): 2.0.0-beta版本的容器环境,官方提供的镜像

    To Reproduce Steps to reproduce the behavior:

    1. 进入 子系统分析
    2. 新增系统
    3. 点击扫描 没有提示最终扫面结果,所有下拉框,新建工程都是灰色不可选中
    4. 数据库中的数据已经存在
    5. 数据库 表 system_info的scanned一直是NONE
    6. 修改NONE 为“SCANNED” ,可选中,数据也可以显示

    Expected behavior

    bug 
    opened by handongGit 2
  • 扫描代码报错

    扫描代码报错

    2022-11-23 08:32:44.429 [DefaultDispatcher-worker-2] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.a.xml.XmlParser$Companion org.xml.sax.SAXParseExceptionpublicId: -//Puppy Crawl//DTD Check Configuration 1.3//EN; systemId: http://checkstyle.org/dtds/configuration_1_3.dtd; lineNumber: 1; columnNumber: 2; The markup declarations contained or pointed to by the document type declaration must be well-formed.
    2022-11-23 08:32:44.434 [DefaultDispatcher-worker-2] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.client.ArchGuardHttpClient process topic: datamap-relations
    2022-11-23 08:32:44.441 [http-nio-8080-exec-5] INFO  c.t.a.s.c.ScannerReportingService - ========================================================
    2022-11-23 08:32:44.441 [http-nio-8080-exec-5] INFO  c.t.a.s.c.ScannerReportingService - delete data_code_database_relation spend 0
    2022-11-23 08:32:44.441 [pool-2-thread-5] INFO  c.t.a.i.task.SqlExecuteRunnable - thread-data_code_database_relation is running
    2022-11-23 08:32:44.442 [http-nio-8080-exec-5] INFO  c.t.a.s.c.ScannerReportingService - ============ system 1 clean db is done ==============
    2022-11-23 08:32:44.443 [http-nio-8080-exec-5] INFO  c.t.a.s.c.ScannerReportingService - ============ system 1 insert db is done ==============
    2022-11-23 08:32:44.443 [http-nio-8080-exec-5] INFO  c.t.a.s.c.ScannerReportingService - ============ system 1 update db is done ==============
    2022-11-23 08:32:44.443 [http-nio-8080-exec-5] INFO  c.t.a.s.c.ScannerReportingService - ========================================================
    2022-11-23 08:32:44.447 [DefaultDispatcher-worker-2] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.client.ArchGuardHttpClient response status: 200
    2022-11-23 08:32:44.447 [DefaultDispatcher-worker-2] INFO  c.t.a.s.infra.ScannerCliClient - response body: 
    2022-11-23 08:32:44.496 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - [SCANNER] o.a.s.ctl.client.ArchGuardHttpClient response status: 200
    2022-11-23 08:32:44.496 [DefaultDispatcher-worker-4] INFO  c.t.a.s.infra.ScannerCliClient - response body: 
    2022-11-23 08:32:45.699 [pool-1-thread-4] INFO  c.t.a.s.domain.service.DitService - Finish calculate all DepthOfInheritance, count: 700
    2022-11-23 08:32:47.128 [pool-1-thread-4] INFO  c.t.a.s.domain.service.NocService - Finish calculate all noc, count: 700
    2022-11-23 08:33:07.618 [pool-1-thread-4] INFO  c.t.a.s.domain.service.LCOM4Service - Finish calculate all lcom4, count: 700
    2022-11-23 08:33:07.657 [pool-1-thread-4] INFO  c.t.a.s.i.m.ClassMetricRepositoryImpl - Delete system class metric old data with id: 1
    2022-11-23 08:33:07.712 [pool-1-thread-4] INFO  c.t.a.s.i.m.ClassMetricRepositoryImpl - Insert system class metric new data with id: 1
    2022-11-23 08:33:07.712 [pool-1-thread-4] INFO  c.t.a.s.a.MetricPersistApplService - -----------------------------------------------------------------------
    2022-11-23 08:33:07.712 [pool-1-thread-4] INFO  c.t.a.s.a.MetricPersistApplService - Finished persist class Metric to mysql for systemId 1
    2022-11-23 08:33:07.712 [pool-1-thread-4] INFO  c.t.a.s.a.MetricPersistApplService - -----------------------------------------------------------------------
    2022-11-23 08:33:07.781 [pool-1-thread-4] INFO  c.t.a.s.a.MetricPersistApplService - Finished persist moduleCircularDependency in systemId 1
    2022-11-23 08:33:07.873 [pool-1-thread-4] INFO  c.t.a.s.a.MetricPersistApplService - Finished persist packageCircularDependency in systemId 1
    2022-11-23 08:33:08.084 [pool-1-thread-4] INFO  c.t.a.s.a.MetricPersistApplService - Finished persist classCircularDependency in systemId 1
    2022-11-23 08:33:08.276 [pool-1-thread-4] INFO  c.t.a.s.a.MetricPersistApplService - Finished persist methodCircularDependency in systemId 1
    2022-11-23 08:33:08.276 [pool-1-thread-4] INFO  c.t.a.s.a.MetricPersistApplService - -----------------------------------------------------------------------
    2022-11-23 08:33:08.276 [pool-1-thread-4] INFO  c.t.a.s.a.MetricPersistApplService - Finished persist circularDependenciesCount for systemId 1
    2022-11-23 08:33:08.276 [pool-1-thread-4] INFO  c.t.a.s.a.MetricPersistApplService - -----------------------------------------------------------------------
    2022-11-23 08:33:17.889 [pool-1-thread-4] INFO  c.t.a.s.a.MetricPersistApplService - -----------------------------------------------------------------------
    2022-11-23 08:33:17.889 [pool-1-thread-4] INFO  c.t.a.s.a.MetricPersistApplService - Finished persist data class Metric for systemId 1
    2022-11-23 08:33:17.889 [pool-1-thread-4] INFO  c.t.a.s.a.MetricPersistApplService - -----------------------------------------------------------------------
    2022-11-23 08:34:03.786 [pool-1-thread-4] INFO  c.t.a.s.i.client.Scanner2Client - send metrics analysis request to module service
    2022-11-23 08:34:03.786 [pool-1-thread-4] INFO  c.t.a.s.d.a.ArchitectureDependencyAnalysis - ************************************
    2022-11-23 08:34:03.786 [pool-1-thread-4] INFO  c.t.a.s.d.a.ArchitectureDependencyAnalysis -  Finished level 2 analysis metrics
    2022-11-23 08:34:03.786 [pool-1-thread-4] INFO  c.t.a.s.d.a.ArchitectureDependencyAnalysis - ************************************
    2022-11-23 08:34:05.594 [http-nio-8080-exec-7] ERROR c.t.a.m.i.influx.InfluxDBClient - Client exception when send metrics to InfluxDB. {}
    org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request: "{"error":"partial write: unable to parse 'metric_class_coupling,class_name=.ConsulRegistryServiceTest,package_name=,module_name=root,system_id=1 inner_fan_in=0,inner_fan_out=0,outer_fan_in=0,outer_fan_out=0,inner_instability=0.0,inner_coupling=0.0,outer_instability=0.0,outer_coupling=0.0': missing tag value dropped=0"}<EOL>"
            at org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:101)
            at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:168)
            at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:122)
            at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63)
            at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:819)
            at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:777)
            at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:711)
            at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:437)
            at com.thoughtworks.archguard.metrics.infrastructure.influx.InfluxDBClient.save(InfluxDBClient.kt:19)
            at com.thoughtworks.archguard.metrics.infrastructure.MetricsRepositoryImpl.insertAllClassCouplings(MetricsRepositoryImpl.kt:24)
            at com.thoughtworks.archguard.metrics.infrastructure.MetricsRepositoryImpl$$FastClassBySpringCGLIB$$b2127064.invoke(<generated>)
            at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
            at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
            at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
            at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
            at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
            at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
            at com.thoughtworks.archguard.metrics.infrastructure.MetricsRepositoryImpl$$EnhancerBySpringCGLIB$$9a26562a.insertAllClassCouplings(<generated>)
            at com.thoughtworks.archguard.metrics.domain.coupling.CouplingServiceImpl.persistAllClassCouplingResults(CouplingServiceImpl.kt:24)
            at com.thoughtworks.archguard.code.module.domain.LogicModuleService.autoDefineLogicModule(LogicModuleService.kt:62)
            at com.thoughtworks.archguard.code.module.controller.LogicModuleController.autoDefineLogicModule(LogicModuleController.kt:90)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:567)
            at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
            at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
            at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
            at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
            at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
            at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
            at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
            at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
            at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
            at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
            at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
            at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
            at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
            at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
            at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
            at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
            at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
            at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
            at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
            at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
            at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
            at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
            at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
            at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
            at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
            at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
            at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
            at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
            at java.base/java.lang.Thread.run(Thread.java:835)
    
    bug help wanted 
    opened by luodanqing 2
  • [RFC-0001] refactor backend code to v2

    [RFC-0001] refactor backend code to v2

    What

    Refactor data persist with mongodb 以 code data structure 为 mvp,然后逐步替代其他接口/功能

    Why

    https://github.com/archguard/rfcs/pull/2 https://github.com/archguard/rfcs/blob/master/text/0001-decoupling-with-mq.md

    How

    • 将已有功能逐步迁移至新的package v2 ,根据以下原则:
      • 重构代码,坏味道、循环调用
      • 将面向终端用户的业务功能,逐步迁移到 frontier
      • 剥离存储实现、框架配置到 infrastructure
      • 对于内部数据转换、回写的技术功能,迁移到 backyard
      • frontier,面向业务的功能拆分,比如 项目的配置,各项数据的展示、分析
        backyard,面向技术的功能拆分,比如 数据的回写接口,事件bus,扫描器驱动
        infra,需要解耦的需要外部依赖的功能,比如 数据持久化、消息发送
        ps: backyard 依赖 frontier,技术为业务服务
        ps: infra 依赖 backyard 和 frontier,基础设施为上层组件服务(基于IOP),如果完全不需要解耦,就留在各自的包内进行实现
        
    • 增加 stream channel 的功能,对 scanner 发送的事件予以响应,回写对应的数据
      • 先基于内存做最简单实现
    opened by Anddd7 0
  • 【精准测试】变更影响分析

    【精准测试】变更影响分析

    Is your feature request related to a problem? Please describe. 在交付过程中,新增或修改功能,我们期望有一种手段可以快速了解变更的代码所影响到的功能,并快速找出这些功能的相关自动化测试与 API。

    Describe the solution you'd like 根据两次提交(from 与 until)的提交记录找到变更的函数(当前处理的最小粒度),根据找到的变更函数列表,查找当前系统中相关的自动化测试(单元测试、集成测试)与 API,并返回给前端,前端可以直接运行这些测试,并了解关联的 API 列表。

    Describe alternatives you've considered

    1. 对比提交记录
    2. 找出关联函数,并识别测试代码与 API
    3. 打包结论并返回给前端

    Additional context 精准测试能够给团队提供更准确的测试建议,在帮助那些已有全面自动化测试守护的团队快速运行重要的自动化测试用例的方式节省变更需要运行测试的时间的同时,还能为团队测试人员提供一种显式的启发列表 -- 关联 API,从而让测试人员在测试相关代码时更聚焦,让测试更有针对性,而降低每次都要运行全量回归测试的需求,在节省这样的测试人员人力成本的同时,让测试人员可以更加聚焦去做那些需要更贴近用户直觉的“探索式测试”。

    enhancement 
    opened by NoaLand 1
  • Import MQ to refactor the data flow to STREAMING & REACTIVE

    Import MQ to refactor the data flow to STREAMING & REACTIVE

    Is your feature request related to a problem? Please describe. 计划引入 @Kafka or @Pulsar 作为分析数据的中转站(也可以直接作为底部载体) 计划引入 @Mongodb or @Postgresql 作为结果数据的存储池(非结构化) deprecated mysql & influxdb https://github.com/archguard/archguard/issues/64

    Describe the solution you'd like

    1. 利用 MQ 解耦各个Analyser/Linter的依赖关系,大家都变成 function-on-demond 的模式
    2. backend 只作为落盘数据 和 3.0 的工作台,即操纵的是 workflow 而非数据本身
    3. ...

    Additional context Streaming calculation...

    opened by Anddd7 1
Releases(v2.0.0-beta.5)
Owner
ArchGuard
Evolution you architectrue in programming way. 守护架构,放权代码
ArchGuard
ArchGuard Scanner for scan Git change history, scan source code by Chapi for Java, TypeScript, Kotlin, Go..、Java bytecode use for JVM languages, scan Jacoco test coverage.

Arch Scanner Requirements: JDK 12 Scanner: scan_git - Git commit history scan scan_jacoco - Jacoco scan scan_bytecode - for JVM languages known issues

ArchGuard 27 Jul 28, 2022
StaCoAn is a crossplatform tool which aids developers, bugbounty hunters and ethical hackers performing static code analysis on mobile applications.

StaCoAn Not maintained anymore! Will be archived soon. StaCoAn is a crossplatform tool which aids developers, bugbounty hunters and ethical hackers pe

Vincent Cox 769 Dec 31, 2022
Android Package Inspector - dynamic analysis with api hooks, start unexported activities and more. (Xposed Module)

Inspeckage - Android Package Inspector Inspeckage is a tool developed to offer dynamic analysis of Android applications. By applying hooks to function

acpm 2.5k Jan 8, 2023
Easy setup of static analysis tools for Android and Java projects.

[DEPRECATED] Gradle static analysis plugin ⚠️ A fork of this project is maintained at https://github.com/GradleUp/static-analysis-plugin/ Please migra

Novoda 408 Dec 19, 2022
Middle/senior level questions and answers

Android-Notes (in progress) RUS Список вопросов Список вопросов по темам о разработке на андроид, корутинам и compose. Kotlin Разница между class и da

Vera 5 Dec 15, 2022
Veyron - Covid 19 analysis using OWID data

veyron Covid 19 & Vaccine history representation by country. The app was designe

Nino Matassa 0 Feb 10, 2022
Mole Analysis Use Case for HMS ML Kit Custom Model

Mole Analysis Mole Analysis Use Case for HMS ML Kit Custom Model Introduction What is Melanoma? Melanoma is the most serious among skin cancers becaus

null 15 Aug 23, 2022
HideDroid is an Android app that allows the per-app anonymization of collected personal data according to a privacy level chosen by the user.

HideDroid An Android App for preserving user privacy HideDroid is an Android app that allows the per-app anonymization of collected personal data acco

null 100 Dec 12, 2022
Coinbase-pro-feed-kotlin - Kotlin Coinbase Pro Level 2 Order Book Feed

Kotlin Coinbase Pro Level 2 Order Book Feed Quick start Depending on your OS run

Eric McEvoy 0 Jan 2, 2022
A Simple Expense Tracker App 📱 built to demonstrate the use of modern android architecture component with MVVM Architecture

Expenso ?? A Simple Expense Tracker App ?? built to demonstrate the use of modern android architecture component with MVVM Architecture ?? . Made with

Michel Horacio 1 Dec 28, 2022
This component allows you to interact with remote machine via SSH. You can execute commands or run scripts located on that machine

th2 act ssh (1.2.0) Overview Provides user with the ability to execute specified scripts or commands with the parameter he needs Custom resources for

th2 1 Dec 18, 2022
Source code of JekyllEx Android App which can manage your Jekyll blog directly from your Android device!

JekyllEx Android App Built with ❤︎ by Gourav Khunger ?? Introduction JekyllEx is an Android App that allows you to manage a Jekyll Blog directly from

JekyllEx 24 Nov 8, 2022
Auto-pipeline: a source code generator, it will generate your component's pipeline

auto-pipeline ?? auto-pipeline is a source code generator, it will generate your

Zava 106 Dec 20, 2022
A minimalistic Android application Built with Clean architecture and Jetpack component

MovieMania A minimalistic Android application Built with Clean architecture and Jetpack component (Jetpack Compose, MVVM , Paging 3.0, HILT, ROOM DB,

Farhan Tanvir 196 Jan 1, 2023
To Do List App is built in Kotlin using Material 3, Data Binding, Navigation Component Graphs, Room persistence library, Kotlin coroutines, LiveData, Dagger Hilt, and Notifications following MVVM Architecture.

ToDoListApp ToDoList App demonstrates modern Android development with Hilt, Coroutines, LiveData, Jetpack (Room, ViewModel), and Material 3 Design bas

Naman Garg 10 Jan 8, 2023
ADX provides extension functions and lint.

ADX: Android development extensions Overview ADX provides extension functions and lint. Installation ADX implementation "com.github.wada811.adx:adx:$v

wada811 2 Nov 7, 2022
An app which displays questions from Stack Exchange from it's api. Can search questions with tags as well. Uses MVVM architecture, dependency injection, coroutines, retrofit2 for network calls

Stack Exchange app What the app does? Shows a list of trending questions from stack exchange api Can search for the desires question. Can add tags to

null 0 Apr 27, 2022
NewsApp - Modern Minimalistic Design, MVVM, Pagination, Retrofit, Coroutines, Room, Glide, Navigation Component (Clean Architecture)

NewsApp is a modern news android application which features virtually ALL recent and recommended android development tech stack and tools used

Osama Sayed 4 Dec 6, 2021