workspace [name] [description] {
name
description
properties
!docs - attach Markdown / AsciiDoc to parent context
!adrs (Architecture decision records - attach text document)
!identifiers
!impliedRelationships
model { (only one)
enterprise [name] {
one model only one enterprise
so only "inside / outside", no multiple enterprise
if try to define multiple enterprise, only one can have a name, and all blocks deem the one enterprise
permits [ group, person, softwareSystem, relationship ]
group - named grouping of elements
allowed children dependents on parent
model -> group -> people / softwareSystems
softwareSystem -> group -> containers
container -> group -> components
person
softwareSystem
!docs
!adrs
group
container
!docs
!adrs
group
component
description
technology - just a name
tags
url
properties
perspectives (security, performance, scalability, etc.)
multiple name / description
-> (relationship)
description
technology
tags
url
properties
perspectives
-> (relationship)
description
tags
url
properties
perspectives
-> (relationship)
deploymentEnvironment
element
-> (relationship)
views
configuration
Workspace can extends other workspace in separate file
Test results of Feb 2023:
IDEA plugin - nothing
VS Code plugin
C4 DSL Extension (version 3.2.0 works, 3.2.3 don't, also often stops with “C4 Language Server has stopped” error, but a quick restart solves
3. https://github.com/avisi-cloud/structurizr-site-generatr
1. install - then requires Java high version
1. brew reinstall openjdk
2. JAVA_HOME=/usr/local/Cellar/openjdk/19.0.2 structurizr-site-generatr --help
2. try docker - fails to start on MacOS