Created
August 20, 2021 22:38
-
-
Save dvinciguerra/af04eeb132adfb95a2332ef50b789ca0 to your computer and use it in GitHub Desktop.
Structurizr Ruby DSL that transpile to native Structurizr DSL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # frozen_string_literal: true | |
| workspace do | |
| system = nil | |
| model do | |
| user = person "User" | |
| system = software_system "Software System" do | |
| webapp = container "Web Application" do |webapp_container| | |
| user.point_to webapp_container, label: "Uses" | |
| end | |
| container "Database" do |database_container| | |
| webapp.point_to database_container, label: "Reads from and writes to" | |
| end | |
| end | |
| end | |
| views do |view| | |
| system_context system do |context| | |
| context.includes :all | |
| context.auto_layout :lr | |
| end | |
| container system do |context| | |
| context.includes :all | |
| context.auto_layout :lr | |
| end | |
| view.theme :default | |
| end | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # frozen_string_literal: true | |
| # reference: https://github.com/structurizr/dsl/blob/master/examples/deployment-groups.dsl | |
| workspace do | |
| api = nil | |
| database = nil | |
| model do | |
| system = software_system "Software System" do | |
| database = container "Database" | |
| api = container "Service API" | |
| api.point_to database, label: "Uses" | |
| end | |
| deployment_environment "Example 1" do | |
| deployment_node "Server 1" do | |
| container_instance api | |
| container_instance database | |
| end | |
| deployment_node "Server 2" do | |
| container_instance api | |
| container_instance database | |
| end | |
| end | |
| deployment_environment "Example 2" do | |
| service_instance1 = deployment_group "Service Instance 1" | |
| service_instance2 = deployment_group "Service Instance 2" | |
| deployment_node "Server 1" do | |
| container_instance api, service_instance1 | |
| container_instance database, service_instance1 | |
| end | |
| deployment_node "Server 2" do | |
| container_instance api, service_instance2 | |
| container_instance database, service_instance2 | |
| end | |
| end | |
| end | |
| views do |view| | |
| deployment :all, "Example 1" do |deploy| | |
| deploy.includes :all | |
| deploy.auto_layout | |
| end | |
| deployment :all, "Example 2" do |deploy| | |
| deploy.includes :all | |
| deploy.auto_layout | |
| end | |
| view.theme :default | |
| end | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment