Skip to content

DSL Reference

ArchTect implements the Structurizr DSL for architecture modeling. This page summarizes the key syntax.

The canonical grammar used by ArchTect’s parser is maintained in the repository at:

frontend/src/lib/dsl/grammar.txt

This file describes all supported syntax, view types, and configuration options. When in doubt, this file is the source of truth.

workspace "Name" "Description" {
!identifiers hierarchical // optional
model { ... }
views { ... }
}
identifier = person "Name" "Description"
identifier = softwareSystem "Name" "Description" {
identifier = container "Name" "Description" "Technology"
identifier = container "Name" "Description" "Technology" {
identifier = component "Name" "Description" "Technology"
}
}
group "Group Name" {
system1 = softwareSystem "System A"
system2 = softwareSystem "System B"
}
source -> destination "Description" "Technology"
element = softwareSystem "Name" {
tags "Tag1" "Tag2"
properties {
"Key" "Value"
}
}
deploymentEnvironment "Production" {
deploymentNode "Name" "Description" "Technology" {
containerInstance identifier
infrastructureNode "Name" "Description" "Technology"
}
}
views {
systemLandscape "Key" { include * autoLayout }
systemContext identifier "Key" { include * autoLayout }
container identifier "Key" { include * autoLayout }
component identifier "Key" { include * autoLayout }
dynamic identifier "Key" "Title" { ... autoLayout }
deployment identifier "Environment" "Key" { include * autoLayout }
filtered "BaseKey" include "Tags" { title "Title" }
custom "Key" "Title" "Description" { ... }
}
views {
styles {
element "Tag" {
shape Person|Box|Cylinder|Pipe|...
background "#hex"
color "#hex"
stroke "#hex"
strokeWidth number
border solid|dashed|dotted
opacity 0-100
icon "url"
width number
height number
}
relationship "Tag" {
color "#hex"
thickness number
opacity 0-100
routing Direct|Orthogonal
style dashed
}
}
}
views {
theme default
themes https://url/to/theme.json
}