Support Structurizr diagrams
Update
GitLab supports Kroki (https://docs.gitlab.com/ee/administration/integration/kroki.html), which requires setting up a Kroki server alongside your self-managed instance.
Kroki supports Structurizr via the default Docker container (yuzutech/kroki
) that we suggest pairing with the integration (https://docs.kroki.io/kroki/setup/install/#_the_kroki_container).
Proposal
Structurizr is a "diagrams as code" tool with a simple DSL based on a single model. It is designed for the C4 model for visualising software architecture. In this context, GitLab a perfect companion to manage the diagrams lifecycle via a git repository and merge requests.
We already support various types of diagram solutions like mermaid.js, plantUML, or kroki: https://docs.gitlab.com/ee/user/asciidoc.html#diagrams-and-flowcharts
PlantUML is rendering via a server that must be installed and configured (also see our tanka deployment).
Structurizr can be rendered via a CLI or a running server (see also https://structurizr.com/help/about for all options)
The main difference between Structurizr and the available diagram solutions in GitLab is that Structurizr can render multiple views from a single file. This means we'll have to figure out how to display them. Some ideas:
- Export all the views inline
- Select the view to display (like https://structurizr.com/dsl does)
- Specify the view(s) to render in the markdown code block