digraph G{ subgraph cluster_0{ label="Legend" tool [label="Batch Tool",shape=octagon] dir [label="Directory",shape=box] file [label="File(s)",shape=note] comp [label="Other Component"] xxx [style=invis] yyy [style=invis] zzz [style=invis] www [style=invis] tool -> dir [style=invis] dir -> file [style=invis] file -> comp [style=invis] # file -> xxx [style=invis] xxx -> yyy [label="Pass Data"] yyy -> zzz [label="Generate Files",color=red] zzz -> www [label="Read Data",style=dashed] } subgraph cluster_1 { label="HackerBase Architecture" hackerbase [label="HackerBase",shape=octagon] hb_fetch_fio [label="HB Fio Fetcher",shape=octagon] { rank=same varlib [label="Var Data\n(/var/lib/jendasap currently)",shape=box] spaceapijson [label="SpaceAPI JSON\n(/home/brmdoor-web/spaceapi-status/brmstatus.json)",shape=note] } dokuwiki [label="DokuWiki"] dw_brmburo [label="DokuWiki BrmBuro\n(plugin)"] bankpartial [label="Yearly Account Statements\n(/root/sap/parts currently)",shape=box] apikey [label="apikey.ntlm",shape=note] { rank=same gitmembers [label="Member Files git Repository\n(/root/sap/members currently)",shape=box] bankfull [label="Bank Account Statements\n(/root/sap currently)",shape=box] mailman [label="MailMan Binaries",shape=octagon] dwpasswd [label="DokuWiki: conf/users.auth.php",shape=note] } apikey -> hb_fetch_fio [label="Read Accounts, Keys\nAnd Configuration",style=dashed] hb_fetch_fio -> bankpartial [label="cron *:57\nDownload CSVs",color=red] bankpartial -> bankfull [label="cron *:57\nMerge CSVs",color=red] bankfull -> hackerbase [label="Read cached bank accounts",style=dashed] varlib -> dw_brmburo [style=dashed,label="Read static pages"] gitmembers -> hackerbase [label="Read and Parse\nData and Metadata",style=dashed] dwpasswd -> hackerbase [label="Users Metadata",style=dashed] apikey -> hackerbase [label="Read Account List",style=dashed] hackerbase -> varlib [label="cron *:59\nGenerate static member pages",color=red] mailman -> hackerbase [label="Read Members Subscriptions",style=dashed] spaceapijson -> dw_brmburo [style=dashed,label="Parse status JSON data"] hackerbase -> mailman [label="Update Members Subscriptions",color=red,constraint=false] dw_brmburo -> dokuwiki [label="Payments"] dw_brmburo -> dokuwiki [label="BrmDoor Status"] dwpasswd -> dokuwiki [label="Users",style=dashed] dokuwiki -> dwpasswd [label="User Modifications",color=red,constraint=false] } }