Skip to content

Convert mermaid class diagram specs to plantuml

kabir requested to merge convert-specs-to-plantuml into develop

Description

  • Working with reviewing #452 (comment 1970735659) and #259 (closed) and seeking to explain things in terms of the dms diagram that we produced in mermaid;
  • and given that the mermaid proved to be difficult to navigate and we anyway wanted to convert it to another more user-friendly framework (either Draw.io, used by Sam and others or PlantUML, originally proposed by Dagim sometime ago);
  • I took a stab and converted the whole dms class diagram originally proposed in open-api/platform-data/model https://gitlab.com/nunet/open-api/platform-data-model/-/blob/proposed/device-management-service/models/classDiagrams/dms-global.mermaid?ref_type=heads but then (possibly) converted into specs by @0xPravar (i cannot find that merge request) into PlantUML specifications, which actually seem very versatile and appropriate for us to use;
  • Considering also multiple automation and rendering tools that we can integrate;
  • It seems that PlantUML allows for both constructing the whole diagram as well as parts of it as well as to break specs to each package and store close to the code;

Checklist

Here is the proposed structure (what is done and what would could be done further):

  • every package and subpackage (including the root directory) contains ./specs folder which contains 'class_diagram.puml' file;
  • class_diagram.puml contains only class descriptions pertaining to that package and subpackages with links to their respective class_diagram.puml specs;
  • in this way, each package specs contains only classes that are relevant to that package (and all subpackages); full dms class diagram is displayed by rendering file in the root directory of the repository ./specs/class_diagram.puml which actually contains only links to the package specifications.
  • i included all the structure and links from the original mermaid description;
  • adapted to new packages and structure of dms package, which was implemented after we did the initial class diagram;
  • PlantUML supports full naming of packages in the form dms.orchestrator.matching.Capability; some of the links and packages in the proposed specs are updated, but not all;
  • I have been using VS Code https://github.com/well-ar/vscode-plantuml plugin to visualize diagrams in the IDE, which also follows the links;
  • Visualizing directly on gitlab is possible, but would need some additional integration work

Merge request reports