From 70c06e4fae7ac65a25bf23f476fbe8c41f88b86e Mon Sep 17 00:00:00 2001 From: Michael Hohn Date: Wed, 30 Apr 2025 10:50:54 -0700 Subject: [PATCH] Add mrva dot overview --- doc/mrva.dot | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ doc/mrva.pdf | Bin 0 -> 13385 bytes 2 files changed, 56 insertions(+) create mode 100644 doc/mrva.dot create mode 100644 doc/mrva.pdf diff --git a/doc/mrva.dot b/doc/mrva.dot new file mode 100644 index 0000000..d05037a --- /dev/null +++ b/doc/mrva.dot @@ -0,0 +1,56 @@ +digraph mrvacommander { + rankdir=LR; + node [shape=box style=filled fillcolor=lightgrey fontname="monospace"]; + + // Entry points + cmd_server [label="cmd/server\nmain()", fillcolor=lightblue]; + cmd_agent [label="cmd/agent\nmain()", fillcolor=lightblue]; + + // Config + config [label="config/mcc\nparseEnv()", shape=ellipse, fillcolor=lightyellow]; + + // Server-side + server [label="pkg/server\nServer.Run()"]; + deploy [label="pkg/deploy\nInit()"]; + qldbstore [label="pkg/qldbstore\nQLDB Store"]; + artifactstore [label="pkg/artifactstore\nArtifact Store"]; + queue [label="pkg/queue\nQueue Interface"]; + + // Agent-side + agent [label="pkg/agent\nAgent.Run()"]; + state [label="pkg/state\nState"]; + codeql [label="pkg/codeql\nrunCodeQL()"]; + + // Common + common [label="pkg/common\nTypes, MinIO, Jobs"]; + utils [label="utils\nDownload, Archive"]; + + // Edges: config used by both + cmd_server -> config; + cmd_agent -> config; + + // Server wiring + cmd_server -> server; + server -> queue; + server -> artifactstore; + server -> qldbstore; + + // Agent wiring + cmd_agent -> agent; + agent -> queue; + agent -> codeql; + agent -> artifactstore; + agent -> state; + + // Shared deps + server -> common; + agent -> common; + codeql -> common; + qldbstore -> common; + artifactstore -> common; + + // Utils used by backends + qldbstore -> utils; + artifactstore -> utils; + codeql -> utils; +} diff --git a/doc/mrva.pdf b/doc/mrva.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3052cd0031b2f4dd4ea53cb5d194a2dd9205da25 GIT binary patch literal 13385 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 E1@T;#CjbBd literal 0 HcmV?d00001