DSL Reference
ArchTect implements the Structurizr DSL for architecture modeling. This page summarizes the key syntax.
Authoritative grammar
Section titled “Authoritative grammar”The canonical grammar used by ArchTect’s parser is maintained in the repository at:
frontend/src/lib/dsl/grammar.txtThis file describes all supported syntax, view types, and configuration options. When in doubt, this file is the source of truth.
Quick syntax reference
Section titled “Quick syntax reference”Workspace
Section titled “Workspace”workspace "Name" "Description" { !identifiers hierarchical // optional model { ... } views { ... }}Model elements
Section titled “Model elements”identifier = person "Name" "Description"identifier = softwareSystem "Name" "Description" { identifier = container "Name" "Description" "Technology" identifier = container "Name" "Description" "Technology" { identifier = component "Name" "Description" "Technology" }}Groups
Section titled “Groups”group "Group Name" { system1 = softwareSystem "System A" system2 = softwareSystem "System B"}Relationships
Section titled “Relationships”source -> destination "Description" "Technology"Tags and properties
Section titled “Tags and properties”element = softwareSystem "Name" { tags "Tag1" "Tag2" properties { "Key" "Value" }}Deployment
Section titled “Deployment”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" { ... }}Styles
Section titled “Styles”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 } }}Themes
Section titled “Themes”views { theme default themes https://url/to/theme.json}External references
Section titled “External references”- Structurizr DSL reference — The canonical upstream language reference
- DSL Support Matrix — What ArchTect supports vs. what is parsed-only or not supported
- DSL Basics — Tutorial-style introduction to the DSL