├── .github └── workflows │ └── main.yml ├── .gitignore ├── .vscode └── settings.json ├── Dockerfile ├── README.md ├── Ultimate_Hitchhikers_Guide_front.jpg ├── _plantuml.sh ├── _sphinx_build.sh ├── _sphinx_build_confluence.sh ├── docker_build.sh ├── docker_test.sh ├── docs ├── .vscode │ └── settings.json ├── C4 │ ├── C4-PlantUML │ │ ├── C4_ComponentDiagramSample-bigbankplc.png │ │ ├── C4_ComponentDiagramSample-bigbankplc.puml │ │ ├── C4_ContainerDiagramSample-bigbankplc.puml │ │ ├── C4_ContextDiagramSample-bigbankplc-landscape.puml │ │ └── C4_ContextDiagramSample-bigbankplc.puml │ ├── C4Stdlib.rst │ ├── acme_c1.puml │ ├── acme_c2_workstation.puml │ ├── acme_c3.puml │ ├── acme_c3_monitoring.puml │ ├── c4.png │ ├── c4.rst │ ├── c4acme.rst │ ├── swarchv1.png │ └── swarchv2.png ├── DocumentationAsCode │ ├── JourneyDocumentationASCode.rst │ ├── LivingDocs1.png │ └── LivingDocs2.png ├── NetworkUsersMachines │ ├── Network.puml │ ├── NetworkUsersMachines.puml │ ├── NetworkUsersMachines.rst │ ├── NetworkUsersMachines1.puml │ ├── NetworkUsersMachines2.puml │ ├── NetworkUsersMachines3.puml │ ├── NetworkUsersMachines4.puml │ ├── NetworkUsersMachines5.puml │ ├── NetworkUsersMachines6.puml │ ├── NetworkUsersMachines7.puml │ └── osa.tar.gz ├── PassSpriteAsParameter │ ├── 1.puml │ ├── PassSpriteAsParameter.rst │ ├── option1.puml │ ├── option2.puml │ └── option3.puml ├── PlantUMLSpriteLibraries │ ├── 0.1.png │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ ├── C4person100.png │ ├── C4person4.sprite │ ├── C4person48.png │ ├── C4person48_16.sprite │ ├── C4person48_4.sprite │ ├── C4person48_8.sprite │ ├── C4person48blackwhite.png │ ├── activity.puml │ ├── all.png │ ├── aws_comments-architecture.puml │ ├── aws_nested-components.puml │ ├── awslabs.png │ ├── bigsmall.puml │ ├── c4.png │ ├── component.puml │ ├── deployment.puml │ ├── deployment_diagram.puml │ ├── image.puml │ ├── keysequence.puml │ ├── links.puml │ ├── links.svg │ ├── listopeniconic.png │ ├── listopeniconic.puml │ ├── osa.puml │ ├── osa_sprites.puml │ ├── osa_sprites1.puml │ ├── osa_sprites10.puml │ ├── osa_sprites2.puml │ ├── osa_sprites3.puml │ ├── osa_sprites4.puml │ ├── osa_sprites5.puml │ ├── osa_sprites6.puml │ ├── osa_sprites7.puml │ ├── osa_sprites8.puml │ ├── osa_sprites9.puml │ ├── plantuml_sprites.rst │ ├── sequence.puml │ ├── sequence_draft.puml │ ├── state.puml │ ├── state_draft.puml │ ├── swarchv1.png │ ├── swarchv2.png │ └── timing.puml ├── Stdlib │ ├── ProcedureBuildup.puml │ ├── StandardisingStdLib.rst │ ├── StandardisingStdLib2.rst │ ├── StdLibOverview.rst │ ├── StdlibGroupings.puml │ ├── _dynamic3.puml │ ├── dynamic.png │ ├── dynamic.puml │ ├── dynamic1.0.puml │ ├── dynamic1.1.png │ ├── dynamic1.1.puml │ ├── dynamic2.0.puml │ ├── dynamic2.1.puml │ ├── dynamic2.2.puml │ ├── dynamic2.3.puml │ ├── dynamic2.4.puml │ ├── dynamic2.5.puml │ ├── dynamic2.png │ ├── dynamic2.puml │ ├── dynamic3.0.puml │ ├── dynamic3.1.puml │ ├── dynamic3.puml │ ├── dynamic4.png │ ├── dynamic4.puml │ ├── dynamic5.1.puml │ ├── dynamic5.2.puml │ ├── dynamic5.3.puml │ ├── dynamic5.4.puml │ ├── dynamic5.5.png │ ├── dynamic5.5.puml │ ├── dynamic5.puml │ ├── modes.txt │ ├── pre-processing.puml │ ├── pre-processing2.puml │ ├── sequence.puml │ ├── stdlibFileLayout.png │ ├── stdlibFileLayout.puml │ └── stdlibRequirements.rst ├── StdlibUnderTheHood │ ├── 1.puml │ ├── 2.puml │ ├── 3.1.puml │ ├── 3.2.puml │ ├── 3.3.puml │ ├── 3.puml │ ├── 4.1.puml │ ├── 4.puml │ ├── 5.puml │ ├── 6.1.puml │ ├── 6.puml │ └── StdlibUnderstanding.rst ├── _plantumllogo.png ├── _play.png ├── about │ ├── AboutPlantUML.rst │ ├── AboutThisGuide.rst │ ├── Sections.rst │ ├── future.rst │ ├── marvin.puml │ ├── mindmapfuture.puml │ ├── plantuml.github.io.png │ ├── plantumllogo.png │ ├── play.png │ └── style.css ├── aws │ ├── 1.1.puml │ ├── 1.2.puml │ ├── 1.3.puml │ ├── 1.4.puml │ ├── 1.5.puml │ ├── 1.6.puml │ ├── 1.7.png │ ├── 1.7.puml │ ├── 1.puml │ ├── 2.1.puml │ ├── 2.2.puml │ ├── 2.3.puml │ ├── 2.4.puml │ ├── 2.5.puml │ ├── 2.6.puml │ ├── 2.7.png │ ├── 2.7.puml │ ├── 2.8.png │ ├── 2.8.puml │ ├── 3.1.puml │ ├── 3.2.puml │ ├── 3.3.1.puml │ ├── 3.3.puml │ ├── 3.4.1.puml │ ├── 3.4.2.puml │ ├── 3.4.3.puml │ ├── 3.4.puml │ ├── 3.5.puml │ ├── 3.8.puml │ ├── AppStream-2.0-can-be-managed-through-the-AWS-SDK-1.png │ ├── BBVA-uses-AWS-Transit-Gateway-to-build-a-hub-and-spoke-network-topology-2.png │ ├── High-level-digram-1-Smadex-1024x584.png │ ├── Pre-processing-pipeline-architecture-SM.jpg │ ├── aws.rst │ ├── plantumlserver.png │ └── pre-processing-pipeline.puml ├── color │ ├── 0.puml │ ├── 1.2.puml │ ├── 1.puml │ └── color.rst ├── conf.py ├── delivervalue.png ├── diagramAnnotation │ ├── NetworkUsersMachines7_annot.puml │ └── diagramAnnotation.rst ├── gcp │ ├── 01_WebApp_ArchDiagram.png │ ├── Minecraft_Blog_Arch-1.png │ ├── MySQL_database_architecture.max-900x900.jpg │ ├── Proposed_architecture.max-2000x2000.png │ ├── gcp.rst │ ├── gcp1.puml │ ├── gcp2.puml │ ├── gcp3.puml │ └── gcp4.puml ├── github │ ├── filefinder.png │ └── githubFileFinder.rst ├── index.rst ├── kubernetes │ ├── aks.png │ ├── k1.puml │ └── kubernetes.rst ├── layout │ ├── arrows.puml │ ├── hideunlinked.puml │ ├── layout.rst │ ├── left2right.puml │ ├── level.puml │ ├── nodesepranksep.puml │ ├── nodesepranksep1.puml │ ├── nodesepranksep2.puml │ ├── test.puml │ ├── together.puml │ └── top2bottom.puml ├── plantuml │ ├── plantuml_cfg.puml │ └── plantuml_handwritten.puml ├── plantumllogo.png ├── play.png ├── procedures │ ├── defaultArgument.puml │ └── procedures.rst ├── scale │ ├── bigsmallscale.puml │ ├── scale.rst │ └── scale1.puml └── todo.rst ├── docs_cut ├── ContributingToStdlib.rst ├── CreateSpriteLibrary.rst ├── GenerateDiagrams │ ├── Dockerfile │ ├── GenerateDiagrams.rst │ ├── GenerateDiagramsLambda.rst │ ├── PlantumlGenerate.yml │ ├── action.png │ ├── github1.png │ ├── github2.png │ ├── github3_upload2.png │ ├── png.png │ ├── sequence.puml │ ├── state-ptask.puml │ └── workflow.yml ├── MixingSyntax.rst ├── azure │ ├── ai-at-the-edge.png │ ├── azure.rst │ ├── chatbot-dr.png │ ├── personalized-offers.png │ └── recommenders-architecture.png └── panels.rst ├── kisspng-marvin-paranoid-android-free-pixel-dungeon-compute-paranoid-android-icon-5ab061c1e39ea5.9699232415215088019323.jpg ├── marvinplay.xcf ├── marvinplay2.1.xcf ├── marvinplay2.2.xcf ├── marvinplay2.2like.xcf ├── marvinplay2.xcf ├── marvinplaylike.xcf ├── marvinplaylike_.xcf ├── plantuml.1.2020.10.jar ├── plantuml2pte.sh ├── plantumllogoMarvinUML.sprite ├── play.png ├── sphinx_build.sh └── theme_overrides.css /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/.github/workflows/main.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .java 2 | docs/build/* 3 | osa/ -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "restructuredtext.confPath": "${workspaceFolder}/docs" 3 | } -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:latest 2 | 3 | 4 | # MAINTAINER="Chris_m11" 5 | 6 | 7 | RUN mkdir -p /usr/share/man/man1 \ 8 | && apt-get update \ 9 | && apt-get install -y \ 10 | wget \ 11 | python3-pip \ 12 | python3-dev \ 13 | default-jre \ 14 | graphviz \ 15 | doxygen \ 16 | && cd /usr/local/bin \ 17 | && ln -s /usr/bin/python3 python \ 18 | && pip3 install --no-cache --upgrade pip && pip install \ 19 | sphinx_rtd_theme \ 20 | sphinxcontrib-plantuml \ 21 | exhale \ 22 | && mkdir /usr/share/plantuml \ 23 | && wget https://sourceforge.net/projects/plantuml/files/latest/download -O ./plantuml.jar \ 24 | && mv ./plantuml.jar /usr/share/plantuml/ \ 25 | && rm -rf /var/lib/apt/lists/* 26 | 27 | 28 | RUN pip3 install --no-cache --upgrade sphinxcontrib.yt sphinxcontrib-confluencebuilder 29 | 30 | # for mixing RST and MD files https://www.sphinx-doc.org/en/1.6/markdown.html 31 | RUN pip3 install recommonmark 32 | 33 | RUN pip3 install sphinxcontrib.twitter 34 | 35 | # since plantuml url is not the final file location, we need to explicitly save the file as "plantuml.jar" 36 | # it would save as file "download" if we didn't 37 | 38 | # /usr/share/man/man1 required so default-jre (Java Runtime required for Plantuml) installs 39 | 40 | # https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run recommends to RUN 'rm -rf /var/lib/apt/lists/*' at end to reduce image size 41 | 42 | # Plantuml + Java content adds ~300MB to image size 43 | 44 | COPY ./plantuml.1.2020.10.jar /usr/share/plantuml/plantuml.jar 45 | 46 | RUN pip3 install sphinx-panels 47 | 48 | #env setup 49 | ENV GRAPHVIZ_DOT=/usr/bin/dot 50 | 51 | WORKDIR /home/documentation 52 | 53 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.0 Generic License. 2 | -------------------------------------------------------------------------------- /Ultimate_Hitchhikers_Guide_front.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/Ultimate_Hitchhikers_Guide_front.jpg -------------------------------------------------------------------------------- /_plantuml.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | java -jar /usr/share/plantuml/plantuml.jar #for guide use no config - it breaks things like listopeniconic 3 | #java -jar /usr/share/plantuml/plantuml.jar -config /home/documentation/docs/plantuml/plantuml_cfg.puml #location as per Dockerfile 4 | #java -Djava.awt.headless=true -jar /usr/share/plantuml/plantuml.jar -tsvg -failfast2 "$@" 5 | 6 | 7 | ####!/bin/bash 8 | #java -jar /usr/share/plantuml/plantuml.jar -config /home/documentation/docs/plantuml/plantuml_cfg.puml #location as per Dockerfile 9 | 10 | -------------------------------------------------------------------------------- /_sphinx_build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd docs/ 4 | sphinx-build -b html ./ ./build 5 | 6 | #sphinx-build -b singlehtml ./ ./build/singlehtml 7 | #sphinx-build -b latex ./ ./build 8 | #sphinx-build -b confluence ./ ./build/confluence 9 | 10 | 11 | -------------------------------------------------------------------------------- /_sphinx_build_confluence.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd docs/ 4 | sphinx-build -b confluence ./ ./build/confluence -------------------------------------------------------------------------------- /docker_build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker build -t docdac:latest -t docdac:ubuntu-1.0 . 4 | 5 | # This fixes ReadTheDocs Theme Bug where table text does not auto wrap for long lines. 6 | # https://rackerlabs.github.io/docs-rackspace/tools/rtd-tables.html 7 | mkdir ./docs/build/_static/ 8 | cp ./theme_overrides.css ./docs/build/_static/ -------------------------------------------------------------------------------- /docker_test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #test installed executables by running to show version of executable 4 | 5 | echo "doxygen" 6 | docker run -u `id -u $USER`:`id -g $USER` -i --rm -v $(pwd):/home/documentation -t docdac:ubuntu-1.0 doxygen -v 7 | 8 | echo "" 9 | docker run -u `id -u $USER`:`id -g $USER` -i --rm -v $(pwd):/home/documentation -t docdac:ubuntu-1.0 sphinx-build --version 10 | 11 | echo "" 12 | docker run -u `id -u $USER`:`id -g $USER` -i --rm -v $(pwd):/home/documentation -t docdac:ubuntu-1.0 java -jar /usr/share/plantuml/plantuml.jar -v 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /docs/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "restructuredtext.confPath": "" 3 | } -------------------------------------------------------------------------------- /docs/C4/C4-PlantUML/C4_ComponentDiagramSample-bigbankplc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/C4/C4-PlantUML/C4_ComponentDiagramSample-bigbankplc.png -------------------------------------------------------------------------------- /docs/C4/C4-PlantUML/C4_ComponentDiagramSample-bigbankplc.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | '!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Component.puml 4 | !include 5 | 6 | 7 | LAYOUT_WITH_LEGEND() 8 | 9 | 10 | title Component diagram for Internet Banking System - API Application 11 | 12 | Container(spa, "Single Page Application", "javascript and angular", "Provides all the internet banking functionality to customers via their web browser.") 13 | Container(ma, "Mobile App", "Xamarin", "Provides a limited subset ot the internet banking functionality to customers via their mobile mobile device.") 14 | ContainerDb(db, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.") 15 | System_Ext(mbs, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") 16 | 17 | Container_Boundary(api, "API Application") { 18 | Component(sign, "Sign In Controller", "MVC Rest Controlle", "Allows users to sign in to the internet banking system") 19 | Component(accounts, "Accounts Summary Controller", "MVC Rest Controlle", "Provides customers with a summory of their bank accounts") 20 | Component(security, "Security Component", "Spring Bean", "Provides functionality related to singing in, changing passwords, etc.") 21 | Component(mbsfacade, "Mainframe Banking System Facade", "Spring Bean", "A facade onto the mainframe banking system.") 22 | 23 | Rel(sign, security, "Uses") 24 | Rel(accounts, mbsfacade, "Uses") 25 | Rel(security, db, "Read & write to", "JDBC") 26 | Rel(mbsfacade, mbs, "Uses", "XML/HTTPS") 27 | } 28 | 29 | Rel(spa, sign, "Uses", "JSON/HTTPS") 30 | Rel(spa, accounts, "Uses", "JSON/HTTPS") 31 | 32 | Rel(ma, sign, "Uses", "JSON/HTTPS") 33 | Rel(ma, accounts, "Uses", "JSON/HTTPS") 34 | @enduml 35 | -------------------------------------------------------------------------------- /docs/C4/C4-PlantUML/C4_ContainerDiagramSample-bigbankplc.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | '!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Container.puml 3 | !include 4 | 5 | 'ref http://plantuml.com/stdlib 6 | !include 7 | !include 8 | 9 | LAYOUT_WITH_LEGEND() 10 | 11 | 12 | title Container diagram for Internet Banking System 13 | 14 | Person(customer , Customer , "<$user> <$mobile_user>\n A customer of the bank, with personal bank accounts" ) 15 | 16 | System_Boundary(c1, "Internet Banking") { 17 | Container(web_app, "Web Application", "Java, Spring MVC", "Delivers the static content and the Internet banking SPA") 18 | Container(spa, "Single-Page App", "JavaScript, Angular", "Provides all the Internet banking functionality to cutomers via their web browser") 19 | Container(mobile_app, "Mobile App", "C#, Xamarin", "Provides a limited subset of the Internet banking functionality to customers via their mobile device") 20 | ContainerDb(database, "Database", "SQL Database", "Stores user registraion information, hased auth credentials, access logs, etc.") 21 | Container(backend_api, "API Application", "Java, Docker Container", "Provides Internet banking functionality via API") 22 | } 23 | 24 | System_Ext(email_system, "E-Mail System", "The internal Microsoft Exchange system") 25 | System_Ext(banking_system, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") 26 | 27 | Rel(customer, web_app, "Uses", "HTTPS") 28 | Rel(customer, spa, "Uses", "HTTPS") 29 | Rel(customer, mobile_app, "Uses") 30 | 31 | Rel_Neighbor(web_app, spa, "Delivers") 32 | Rel(spa, backend_api, "Uses", "async, JSON/HTTPS") 33 | Rel(mobile_app, backend_api, "Uses", "async, JSON/HTTPS") 34 | Rel_Back_Neighbor(database, backend_api, "Reads from and writes to", "sync, JDBC") 35 | 36 | Rel_Back(customer, email_system, "Sends e-mails to") 37 | Rel_Back(email_system, backend_api, "Sends e-mails using", "sync, SMTP") 38 | Rel_Neighbor(backend_api, banking_system, "Uses", "sync/async, XML/HTTPS") 39 | 40 | 41 | @enduml 42 | 43 | -------------------------------------------------------------------------------- /docs/C4/C4-PlantUML/C4_ContextDiagramSample-bigbankplc-landscape.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | 4 | 'ref http://plantuml.com/stdlib 5 | !include 6 | !include 7 | 8 | 'LAYOUT_TOP_DOWN 9 | 'LAYOUT_AS_SKETCH() 10 | LAYOUT_WITH_LEGEND() 11 | 12 | title System Landscape diagram for Big Bank plc 13 | 14 | Person(customer , Customer , "<$user> <$mobile_user>\n A customer of the bank, with personal bank accounts" ) 15 | 16 | Enterprise_Boundary(c0, "Big Bank plc") { 17 | System(banking_system, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") 18 | 19 | System_Ext(atm, "ATM", "Allows customers to withdraw cash.") 20 | System_Ext(mail_system, "E-mail system", "The internal Microsoft Exchange e-mail system.") 21 | 22 | System_Ext(mainframe, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") 23 | 24 | Person_Ext(customer_service, "Customer Service Staff", "Customer service staff within the bank.") 25 | Person_Ext(back_office, "Back Office Staff", "Administration and support staff within the bank.") 26 | } 27 | 28 | Rel_Neighbor(customer, banking_system, "Uses") 29 | Rel_R(customer, atm, "Withdraws cash using") 30 | Rel_Back(customer, mail_system, "Sends e-mails to") 31 | 32 | Rel_R(customer, customer_service, "Asks questions to", "Telephone") 33 | 34 | Rel_D(banking_system, mail_system, "Sends e-mail using") 35 | Rel_R(atm, mainframe, "Uses") 36 | Rel_R(banking_system, mainframe, "Uses") 37 | Rel_D(customer_service, mainframe, "Uses") 38 | Rel_U(back_office, mainframe, "Uses") 39 | 40 | Lay_D(atm, banking_system) 41 | 42 | Lay_D(atm, customer) 43 | Lay_U(mail_system, customer) 44 | @enduml 45 | -------------------------------------------------------------------------------- /docs/C4/C4-PlantUML/C4_ContextDiagramSample-bigbankplc.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | 4 | 'ref http://plantuml.com/stdlib 5 | !include 6 | !include 7 | 8 | 'LAYOUT_WITH_LEGEND 9 | 10 | title System Context diagram for Internet Banking System 11 | 12 | Person(customer , Customer , "<$user> <$mobile_user>\n A customer of the bank, with personal bank accounts" ) 13 | 14 | System(banking_system, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") 15 | 16 | System_Ext(mail_system, "E-mail system", "The internal Microsoft Exchange e-mail system.") 17 | System_Ext(mainframe, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") 18 | 19 | Rel(customer, banking_system, "Uses") 20 | Rel_Back(customer, mail_system, "Sends e-mails to") 21 | Rel_Neighbor(banking_system, mail_system, "Sends e-mails", "SMTP") 22 | Rel(banking_system, mainframe, "Uses") 23 | @enduml 24 | -------------------------------------------------------------------------------- /docs/C4/C4Stdlib.rst: -------------------------------------------------------------------------------- 1 | .. _c4plantuml-label: 2 | 3 | ******************************************************************************* 4 | Using PlantUML Stdlib C4 Lightweight Software Architecture Description Method 5 | ******************************************************************************* 6 | 7 | 8 | C4 9 | =============================================================================== 10 | .. tip :: 11 | 12 | This section details PlantUML stdlib support for C4. 13 | 14 | See :ref:`c4-label` for details of C4. 15 | 16 | .. include:: c4.rst 17 | :start-after: c4-intro-begin-content 18 | :end-before: c4-intro-end-content 19 | 20 | 21 | C4 PlantUML 22 | =============================================================================== 23 | 24 | `C4-PlantUML `__ is included in PlantUML Stdlib. It combines 25 | the benefits of `PlantUML `__ and the :ref:`c4-label` model for providing a simple way of describing 26 | and communicating software architectures - especially during up-front design sessions - with an intuitive language using open source and platform independent tools. 27 | 28 | It also supports `C4 PlantUML Snippets for Visual Studio Code `__ 29 | 30 | .. 31 | 32 | https://github.com/plantuml/plantuml-stdlib/tree/master/C4 33 | 34 | C4 Example Big Bank 35 | =============================================================================== 36 | .. note :: 37 | The examples from `C4-PlantUML `__ are used. 38 | 39 | Person sprites are added to the customer box to emphasize the user in the diagrams. 40 | 41 | Context 42 | ------------------------------------------------------------------------------- 43 | .. note :: 44 | The top-level diagram shows the big boxes in the system i.e. the overall context in which a system operates. 45 | 46 | The grey boxes are external i.e. not part of the system we're defining. 47 | 48 | .. uml:: ./C4-PlantUML/C4_ContextDiagramSample-bigbankplc.puml 49 | :align: center 50 | 51 | 52 | .. literalinclude:: ./C4-PlantUML/C4_ContextDiagramSample-bigbankplc.puml 53 | :linenos: 54 | 55 | Context With More detail 56 | ------------------------------------------------------------------------------- 57 | .. note :: 58 | More detail is then added. 59 | 60 | .. uml:: ./C4-PlantUML/C4_ContextDiagramSample-bigbankplc-landscape.puml 61 | :align: center 62 | 63 | .. literalinclude:: ./C4-PlantUML/C4_ContextDiagramSample-bigbankplc-landscape.puml 64 | :linenos: 65 | 66 | 67 | 68 | 69 | Container 70 | ------------------------------------------------------------------------------- 71 | .. note :: 72 | We then drill down into the "Internet Banking" box. 73 | 74 | .. uml:: ./C4-PlantUML/C4_ContainerDiagramSample-bigbankplc.puml 75 | :align: center 76 | 77 | .. literalinclude:: ./C4-PlantUML/C4_ContainerDiagramSample-bigbankplc.puml 78 | :linenos: 79 | 80 | 81 | 82 | Component 83 | ------------------------------------------------------------------------------- 84 | 85 | .. note :: 86 | We then drill down into the "API Application" box. 87 | 88 | 89 | .. uml:: ./C4-PlantUML/C4_ComponentDiagramSample-bigbankplc.puml 90 | :align: center 91 | 92 | .. literalinclude:: ./C4-PlantUML/C4_ComponentDiagramSample-bigbankplc.puml 93 | :linenos: 94 | 95 | Class 96 | ------------------------------------------------------------------------------- 97 | 98 | 99 | .. note :: 100 | We could then add the Class diagrams for the different Components. 101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /docs/C4/acme_c1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | 5 | LAYOUT_WITH_LEGEND() 6 | 7 | 8 | title Top level Context diagram for ACME Global Widget Production 9 | 10 | 11 | Person(AcmeProdOwner, Acme Production Owner , "<$user> \n Responsible for Production of widgets in ACME Production Site" ) 12 | Person(3rdProdOwner, 3rdParty Production Owner , "<$user> \n Responsible for Production of widgets in 3rdParty Production Site" ) 13 | 14 | 15 | System_Boundary(Remote, "Remote") { 16 | 17 | System(ProdSystemHost, "Production Host", "Drives widget Production\n Analyses widget Production data to create reports") 18 | System(Analytics, "Analytics", "Provides data analysis and a dashboard view data - including relevant Production data") 19 | System(Monitoring, "Monitoring", "Monitors Production Host\nUses AWS Services") 20 | System_Ext(SupplyChain, "SupplyChain", "Provides parts to make the widgets") 21 | System_Ext(InventoryTracking, "InventoryTracking", "Customer Reference") 22 | 23 | 24 | } 25 | 26 | 27 | 28 | Enterprise_Boundary(AcmeProd, "ACME Production Site") { 29 | 30 | System(AcmeWorkStation1, "WorkStation1", " Production setup for a group of widgets") 31 | System(AcmeWorkStation2, "WorkStation2", " Production setup for a group of widgets") 32 | System(AcmeWorkStationN, "WorkStationN", " Production setup for a group of widgets") 33 | 34 | } 35 | 36 | 37 | Enterprise_Boundary(3rdProd, "3rdParty Production Site") { 38 | 39 | 40 | System(3rdWorkStation1, "WorkStation1", " Production setup for a group of widgets") 41 | System(3rdWorkStation2, "WorkStation2", " Production setup for a group of widgets") 42 | System(3rdWorkStationN, "WorkStationN", " Production setup for a group of widgets") 43 | } 44 | 45 | 46 | Rel_U(AcmeWorkStation1, ProdSystemHost, "Sends Production report for widget") 47 | Rel_U(AcmeWorkStation2, ProdSystemHost, "Sends Production report for widget") 48 | Rel_U(AcmeWorkStationN, ProdSystemHost, "Sends Production report for widget") 49 | 50 | 51 | Rel_U(3rdWorkStation1, ProdSystemHost, "Sends Production report for widget") 52 | Rel_U(3rdWorkStation2, ProdSystemHost, "Sends Production report for widget") 53 | Rel_U(3rdWorkStationN, ProdSystemHost, "Sends Production report for widget") 54 | 55 | 56 | 57 | 58 | 59 | Rel_D(AcmeProdOwner, ProdSystemHost, "Reviews Acme and 3rdParty site Production reports") 60 | Rel_D(3rdProdOwner, ProdSystemHost, "Reviews 3rdParty site Production reports") 61 | 62 | 63 | Rel_D(Analytics, ProdSystemHost, "Data Analysis") 64 | Rel_D(SupplyChain, ProdSystemHost, "Parts") 65 | Rel_D(InventoryTracking, ProdSystemHost, "Tracking") 66 | Rel_D(Monitoring, ProdSystemHost, "Monitoring") 67 | 68 | footer %filename() rendered with PlantUML version %version()\nThe Hitchhiker’s Guide to PlantUML 69 | 70 | @enduml -------------------------------------------------------------------------------- /docs/C4/acme_c2_workstation.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | 6 | LAYOUT_WITH_LEGEND() 7 | skinparam handwritten false 8 | 9 | 10 | title Container Diagram for ACME Widget Workstation 11 | 12 | 13 | 14 | System_Boundary(WorkStation, "Workstation") { 15 | Person(AcmeOperator, Operator , "<$user> \n On-site Operator who produces Widget" ) 16 | 17 | System(WorkStationPC, "WorkStation PC", "Drives the Production process. \nProvides feedback to operator. \nConnects to central Production system") 18 | 19 | System(Hub, "Hub", "Connects Multiple Widgets") 20 | 21 | System(Unit1, "Unit1", "Widget 1") 22 | System(Unit2, "Unit2", "Widget 2") 23 | System(UnitN, "UnitN", "Widget N") 24 | } 25 | 26 | Rel_R(AcmeOperator, WorkStationPC, "Checks Production status") 27 | Rel_D(WorkStationPC, Hub, "Drive Production and Info Retrieval") 28 | Rel(Hub, Unit1, "Connect") 29 | Rel(Hub, Unit2, "Connect") 30 | Rel(Hub, UnitN, "Connect") 31 | 32 | footer %filename() rendered with PlantUML version %version()\nThe Hitchhiker’s Guide to PlantUML 33 | @enduml -------------------------------------------------------------------------------- /docs/C4/acme_c3_monitoring.puml: -------------------------------------------------------------------------------- 1 | 2 | !includeurl 3 | !includeurl 4 | !includeurl 5 | 6 | !includeurl 7 | !includeurl 8 | !includeurl 9 | !includeurl 10 | 11 | !includeurl 12 | !includeurl 13 | !includeurl 14 | 15 | !includeurl 16 | !includeurl 17 | !includeurl 18 | !includeurl 19 | !includeurl 20 | !includeurl 21 | 22 | !includeurl 23 | !includeurl 24 | !includeurl 25 | !includeurl 26 | 27 | !includeurl 28 | !includeurl 29 | !includeurl 30 | 31 | !includeurl 32 | !includeurl 33 | !includeurl 34 | 35 | !includeurl 36 | !includeurl 37 | !includeurl 38 | 39 | !includeurl 40 | 41 | skinparam componentArrowColor Black 42 | skinparam componentBackgroundColor White 43 | skinparam nodeBackgroundColor White 44 | skinparam agentBackgroundColor White 45 | skinparam artifactBackgroundColor White 46 | 47 | 48 | 49 | 50 | 51 | AWSCLOUD(awscloud){ 52 | 53 | 54 | APPLICATIONLOADBALANCER(loadbalancer, "ALB Logs") 55 | AMAZONS3(S3, "S3 access Logs") 56 | AWSLAMBDA(Lambda, "Lambda logs\nand metrics") 57 | AWSCLOUDTRAIL(AWSCloudTrail, "API logs") 58 | 59 | AMAZONCLOUDWATCH(AmazonCloudWatch) 60 | AMAZONSNS(AmazonSNS, "Send Notifications\n to Owner/Admin") 61 | 62 | 63 | loadbalancer --> AmazonCloudWatch 64 | S3 --> AmazonCloudWatch 65 | Lambda --> AmazonCloudWatch 66 | AWSCloudTrail --> AmazonCloudWatch 67 | 68 | AmazonCloudWatch --> AmazonSNS 69 | 70 | } 71 | footer %filename() rendered with PlantUML version %version()\nThe Hitchhiker’s Guide to PlantUML 72 | @enduml -------------------------------------------------------------------------------- /docs/C4/c4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/C4/c4.png -------------------------------------------------------------------------------- /docs/C4/swarchv1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/C4/swarchv1.png -------------------------------------------------------------------------------- /docs/C4/swarchv2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/C4/swarchv2.png -------------------------------------------------------------------------------- /docs/DocumentationAsCode/JourneyDocumentationASCode.rst: -------------------------------------------------------------------------------- 1 | .. _JourneyDOC-label: 2 | 3 | ******************************************************************************* 4 | Journey to Documentation as Code 5 | ******************************************************************************* 6 | 7 | My journey to Documentation as Code began over a decade ago when either no documentation, or MS Word Documents were common. In more organised companies, these documents were maintained in MS Sharepoint. 8 | 9 | Working as part of a large multi-national, I championed the use of Living Documents (Confluence was the tool used as we were using Atlassian tool suite). 10 | 11 | My view today is that the documentation of software should live as close as possible to the software it is describing (e.g. same source code repository). 12 | It can then be published to multiple formats or platforms from there for consumption. 13 | 14 | Having powerful tools like PlantUML and Sphinx enable this. 15 | 16 | Documentation in this case 17 | 18 | #. refers to diagrams or models, user stories, requirements, guides etc... 19 | #. is useful to guide the software architecture, implementation, development, and maintainance 20 | 21 | 22 | My View On Documentation From 2013 23 | =============================================================================== 24 | 25 | Below is what I wrote at the time and I still believe it - even more so now. 26 | 27 | 28 | .. figure:: LivingDocs1.png 29 | 30 | .. figure:: LivingDocs2.png 31 | 32 | -------------------------------------------------------------------------------- /docs/DocumentationAsCode/LivingDocs1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/DocumentationAsCode/LivingDocs1.png -------------------------------------------------------------------------------- /docs/DocumentationAsCode/LivingDocs2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/DocumentationAsCode/LivingDocs2.png -------------------------------------------------------------------------------- /docs/NetworkUsersMachines/Network.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | ' for OSA PUMLENTITY 3 | !include 4 | !include 5 | !include 6 | !include 7 | '!include 8 | 9 | Client(Client1, "Bob", "Apple Mac") 10 | Client(Client2, "Mary", "Windows 10") 11 | MobileClient(MobileClient1, "Chris", "Android Phone") 12 | MobileClient(MobileClient2, "Mary", "Apple Tablet") 13 | TraditionalServer(TraditionalServer1, "Server", "All info lives here") 14 | VPCRouter(VPCRouter, "Router", "sasfd") 15 | 'GenericFirewall(VPCRouter, "Router", "sasfd") - not working 16 | InternetGateway(InternetGateway, "GateWay", "Internet Access") 17 | 18 | 'FIREWALL(FIREWALL1) 19 | 20 | Client1 -up-> VPCRouter 21 | Client2 -up-> VPCRouter 22 | MobileClient1 -up-> VPCRouter 23 | MobileClient2 -up-> VPCRouter 24 | TraditionalServer1 -up-> VPCRouter 25 | VPCRouter -up-> InternetGateway 26 | 27 | 'VPCRouter -up-> FIREWALL1 28 | 'FIREWALL1 -up-> InternetGateway 29 | 30 | 31 | @enduml 32 | 33 | -------------------------------------------------------------------------------- /docs/NetworkUsersMachines/NetworkUsersMachines.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | ' for OSA PUMLENTITY 3 | !include 4 | !include 5 | !include 6 | !include 7 | '!include 8 | 9 | Client(Client1, "Bob", "Apple Mac") 10 | Client(Client2, "Mary", "Windows 10") 11 | MobileClient(MobileClient1, "Chris", "Android Phone") 12 | MobileClient(MobileClient2, "Mary", "Apple Tablet") 13 | TraditionalServer(TraditionalServer1, "Server", "All info lives here") 14 | VPCRouter(VPCRouter, "Router", "sasfd") 15 | 'GenericFirewall(VPCRouter, "Router", "sasfd") - not working 16 | InternetGateway(InternetGateway, "GateWay", "Internet Access") 17 | 18 | 'FIREWALL(FIREWALL1) 19 | 20 | Client1 -up-> VPCRouter 21 | Client2 -up-> VPCRouter 22 | MobileClient1 -up-> VPCRouter 23 | MobileClient2 -up-> VPCRouter 24 | TraditionalServer1 -up-> VPCRouter 25 | VPCRouter -up-> InternetGateway 26 | 27 | 'VPCRouter -up-> FIREWALL1 28 | 'FIREWALL1 -up-> InternetGateway 29 | 30 | footer %filename() rendered with PlantUML version %version()\nThe Hitchhiker’s Guide to PlantUML 31 | @enduml 32 | 33 | -------------------------------------------------------------------------------- /docs/NetworkUsersMachines/NetworkUsersMachines1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !define osaPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-opensecurityarchitecture2-icons/master 4 | !include osaPuml/Common.puml 5 | !include osaPuml/User/all.puml 6 | !include osaPuml/Hardware/all.puml 7 | !include osaPuml/Misc/all.puml 8 | !include osaPuml/Server/all.puml 9 | !include osaPuml/Site/all.puml 10 | 11 | listsprites 12 | 13 | footer %filename() rendered with PlantUML version %version()\nThe Hitchhiker’s Guide to PlantUML 14 | @enduml 15 | -------------------------------------------------------------------------------- /docs/NetworkUsersMachines/NetworkUsersMachines2.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !define osaPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-opensecurityarchitecture2-icons/master 4 | !include osaPuml/Common.puml 5 | !include osaPuml/User/all.puml 6 | !include osaPuml/Hardware/all.puml 7 | !include osaPuml/Misc/all.puml 8 | !include osaPuml/Server/all.puml 9 | !include osaPuml/Site/all.puml 10 | 11 | ' Users 12 | osa_user_green_developer: <$osa_user_green_developer> 13 | osa_user_green_operations: <$osa_user_green_operations> 14 | osa_user_green_business_manager: <$osa_user_green_business_manager> 15 | 16 | ' Devices 17 | osa_desktop: <$osa_desktop> 18 | osa_laptop: <$osa_laptop> 19 | osa_iPhone: <$osa_iPhone> 20 | osa_server: <$osa_server> 21 | 22 | ' Network 23 | osa_device_wireless_router: <$osa_device_wireless_router> 24 | osa_hub: <$osa_hub> 25 | osa_firewall: <$osa_firewall> 26 | osa_osa_cloud: <$osa_cloud> 27 | 28 | footer %filename() rendered with PlantUML version %version()\nThe Hitchhiker’s Guide to PlantUML 29 | @enduml 30 | -------------------------------------------------------------------------------- /docs/NetworkUsersMachines/NetworkUsersMachines3.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !define osaPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-opensecurityarchitecture2-icons/master 4 | !include osaPuml/Common.puml 5 | !include osaPuml/User/all.puml 6 | !include osaPuml/Hardware/all.puml 7 | !include osaPuml/Misc/all.puml 8 | !include osaPuml/Server/all.puml 9 | !include osaPuml/Site/all.puml 10 | 11 | 12 | ' Users 13 | osa_user_green_developer(osa_user_green_developer, "label", "tech") 14 | osa_user_green_operations(osa_user_green_operations, "label", "tech") 15 | osa_user_green_business_manager(osa_user_green_business_manager, "label", "tech") 16 | 17 | ' Devices 18 | osa_desktop(osa_desktop, "label", "tech") 19 | osa_laptop(osa_laptop, "label", "tech") 20 | osa_iPhone(osa_iPhone, "label", "tech") 21 | osa_server(osa_server, "label", "tech") 22 | 23 | ' Network 24 | osa_device_wireless_router(osa_device_wireless_router, "label", "tech") 25 | osa_hub(osa_hub, "label", "tech") 26 | osa_firewall(osa_firewall, "label", "tech") 27 | osa_cloud(osa_cloud, "label", "tech") 28 | 29 | footer %filename() rendered with PlantUML version %version()\nThe Hitchhiker’s Guide to PlantUML 30 | @enduml 31 | 32 | 33 | -------------------------------------------------------------------------------- /docs/NetworkUsersMachines/NetworkUsersMachines4.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !define osaPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-opensecurityarchitecture2-icons/master 4 | !include osaPuml/Common.puml 5 | !include osaPuml/User/all.puml 6 | !include osaPuml/Hardware/all.puml 7 | !include osaPuml/Misc/all.puml 8 | !include osaPuml/Server/all.puml 9 | !include osaPuml/Site/all.puml 10 | 11 | '. Mary is a Developer in the Product team. She has a Windows 10 PC and an Android phone. 12 | '. Bob is a Manager in the Accounts team. He has Mac and an iPhone. 13 | '. Ivan is an IT guy who looks after the server. 14 | '. They connect to the network hub, and via a firewall to the Internet. 15 | 16 | 17 | ' Users 18 | osa_user_green_developer(Mary, "Mary", "Product team", "Developer") 19 | osa_user_green_operations(Ivan, "Ivan", "IT Team", "Server Admin") 20 | osa_user_green_business_manager(Bob, "Bob", "Accounts team", "Manager") 21 | 22 | ' Devices 23 | osa_desktop(pc, "192.168.1.10", "Windows 10", "PC") 24 | osa_laptop(mac, "192.168.1.12", "Mac", "Mac") 25 | osa_iPhone(iphone, "Dynamic IP", "iPhone 11", "Phone") 26 | osa_iPhone(android, "Dynamic IP", "Android 10", "Phone") 27 | osa_server(server, "192.168.1.100", "Ubuntu Server 20.04 LTS", "Server") 28 | 29 | ' Network 30 | osa_device_wireless_router(wifiAP, "192.168.1.1", "Network") 31 | osa_hub(hub, "Office hub", "Hub") 32 | osa_firewall(firewall, "51.37.24.103", "Network") 33 | osa_cloud(cloud, "Internet", "Network") 34 | 35 | Mary -> pc: source code 36 | Mary -> android: social media 37 | 38 | Bob -> mac: financial info 39 | Bob -> iphone: phone calls 40 | 41 | Ivan -> server: configuration 42 | 43 | iphone -> wifiAP 44 | android -> wifiAP 45 | 46 | wifiAP -> hub 47 | server -> hub 48 | mac -> hub 49 | pc -> hub 50 | 51 | hub -> firewall 52 | 53 | firewall -> cloud 54 | 55 | footer %filename() rendered with PlantUML version %version()\nThe Hitchhiker’s Guide to PlantUML 56 | @enduml 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /docs/NetworkUsersMachines/NetworkUsersMachines5.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !define osaPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-opensecurityarchitecture2-icons/master 4 | !include osaPuml/Common.puml 5 | !include osaPuml/User/all.puml 6 | !include osaPuml/Hardware/all.puml 7 | !include osaPuml/Misc/all.puml 8 | !include osaPuml/Server/all.puml 9 | !include osaPuml/Site/all.puml 10 | 11 | '. Mary is a Developer in the Product team. She has a Windows 10 PC and an Android phone. 12 | '. Bob is a Manager in the Accounts team. He has Mac and an iPhone. 13 | '. Ivan is an IT guy who looks after the server. 14 | '. They connect to the network hub, and via a firewall to the Internet. 15 | 16 | 17 | ' Users 18 | 19 | osa_user_green_developer(Mary, "Mary", "Product team", "Developer") 20 | osa_user_green_operations(Ivan, "Ivan", "IT Team", "Server Admin") 21 | osa_user_green_business_manager(Bob, "Bob", "Accounts team", "Manager") 22 | 23 | ' Devices 24 | osa_desktop(pc, "192.168.1.10", "Windows 10", "PC") 25 | osa_laptop(mac, "192.168.1.12", "Mac", "Mac") 26 | osa_iPhone(iphone, "Dynamic IP", "iPhone 11", "Phone") 27 | osa_iPhone(android, "Dynamic IP", "Android 10", "Phone") 28 | osa_server(server, "192.168.1.100", "Ubuntu Server 20.04 LTS", "Server") 29 | 30 | ' Network 31 | osa_device_wireless_router(wifiAP, "192.168.1.1", "Network") 32 | osa_hub(hub, "Office hub", "Hub") 33 | osa_firewall(firewall, "51.37.24.103", "Network") 34 | osa_cloud(cloud, "Internet", "Network") 35 | 36 | 37 | Mary --> pc: source code 38 | Mary --> android: social media 39 | 40 | Bob --> mac: financial info 41 | Bob --> iphone: phone calls 42 | 43 | 44 | Ivan --> server: configuration 45 | 46 | iphone --> wifiAP 47 | android --> wifiAP 48 | wifiAP --> hub 49 | 50 | server --> hub 51 | mac --> hub 52 | pc --> hub 53 | 54 | 55 | hub --> firewall 56 | 57 | firewall --> cloud 58 | 59 | footer %filename() rendered with PlantUML version %version()\nThe Hitchhiker’s Guide to PlantUML 60 | @enduml 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /docs/NetworkUsersMachines/NetworkUsersMachines6.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !define osaPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-opensecurityarchitecture2-icons/master 4 | !include osaPuml/Common.puml 5 | !include osaPuml/User/all.puml 6 | !include osaPuml/Hardware/all.puml 7 | !include osaPuml/Misc/all.puml 8 | !include osaPuml/Server/all.puml 9 | !include osaPuml/Site/all.puml 10 | 11 | '. Mary is a Developer in the Product team. She has a Windows 10 PC and an Android phone. 12 | '. Bob is a Manager in the Accounts team. He has Mac and an iPhone. 13 | '. Ivan is an IT guy who looks after the server. 14 | '. They connect to the network hub, and via a firewall to the Internet. 15 | 16 | 17 | ' Users 18 | together { 19 | osa_user_green_developer(Mary, "Mary", "Product team", "Developer") 20 | osa_user_green_operations(Ivan, "Ivan", "IT Team", "Server Admin") 21 | osa_user_green_business_manager(Bob, "Bob", "Accounts team", "Manager") 22 | } 23 | 24 | ' Devices 25 | together { 26 | osa_desktop(pc, "192.168.1.10", "Windows 10", "PC") 27 | osa_laptop(mac, "192.168.1.12", "Mac", "Mac") 28 | osa_iPhone(iphone, "Dynamic IP", "iPhone 11", "Phone") 29 | osa_iPhone(android, "Dynamic IP", "Android 10", "Phone") 30 | osa_server(server, "192.168.1.100", "Ubuntu Server 20.04 LTS", "Server") 31 | } 32 | 33 | 34 | ' Network 35 | 36 | osa_device_wireless_router(wifiAP, "192.168.1.1", "Network") 37 | osa_hub(hub, "Office hub", "Hub") 38 | osa_firewall(firewall, "51.37.24.103", "Network") 39 | osa_cloud(cloud, "Internet", "Network") 40 | 41 | 42 | Mary --> pc: source code 43 | Mary --> android: social media 44 | 45 | Bob --> mac: financial info 46 | Bob --> iphone: phone calls 47 | 48 | 49 | Ivan --> server: configuration 50 | 51 | iphone --> wifiAP 52 | android --> wifiAP 53 | wifiAP --> hub 54 | 55 | server --> hub 56 | mac --> hub 57 | pc --> hub 58 | 59 | 60 | hub --> firewall 61 | 62 | firewall --> cloud 63 | 64 | footer %filename() rendered with PlantUML version %version()\nThe Hitchhiker’s Guide to PlantUML 65 | @enduml 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /docs/NetworkUsersMachines/NetworkUsersMachines7.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !define osaPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-opensecurityarchitecture2-icons/master 4 | !include osaPuml/Common.puml 5 | !include osaPuml/User/all.puml 6 | !include osaPuml/Hardware/all.puml 7 | !include osaPuml/Misc/all.puml 8 | !include osaPuml/Server/all.puml 9 | !include osaPuml/Site/all.puml 10 | 11 | '. Mary is a Developer in the Product team. She has a Windows 10 PC and an Android phone. 12 | '. Bob is a Manager in the Accounts team. He has Mac and an iPhone. 13 | '. Ivan is an IT guy who looks after the server. 14 | '. They connect to the network hub, and via a firewall to the Internet. 15 | 16 | 17 | 18 | ' Users 19 | together { 20 | osa_user_green_developer(Mary, "Mary", "Product team", "Developer") 21 | osa_user_green_operations(Ivan, "Ivan", "IT Team", "Server Admin") 22 | osa_user_green_business_manager(Bob, "Bob", "Accounts team", "Manager") 23 | note left : Look at Bob 24 | } 25 | 26 | ' Devices 27 | together { 28 | osa_desktop(pc, "192.168.1.10", "Windows 10", "PC") 29 | osa_laptop(mac, "192.168.1.12", "Mac", "Mac") 30 | osa_iPhone(iphone, "Dynamic IP", "iPhone 11", "Phone") 31 | osa_iPhone(android, "Dynamic IP", "Android 10", "Phone") 32 | osa_server(server, "192.168.1.100", "Ubuntu Server 20.04 LTS", "Server") 33 | } 34 | 35 | 36 | ' Network 37 | 38 | osa_device_wireless_router(wifiAP, "192.168.1.1", "Network") 39 | osa_hub(hub, "Office hub", "Hub") 40 | osa_firewall(firewall, "51.37.24.103", "Network") 41 | osa_cloud(cloud, "Internet", "Network") 42 | 43 | 44 | Mary --> pc: source code 45 | Mary --> android: social media 46 | 47 | Bob --> mac: financial info 48 | Bob --> iphone: phone calls 49 | 50 | 51 | Ivan --> server: configuration 52 | 53 | iphone --> wifiAP 54 | android --> wifiAP 55 | wifiAP --> hub 56 | 57 | server --> hub 58 | mac --> hub 59 | pc --> hub 60 | 61 | 62 | hub --> firewall 63 | 64 | firewall --> cloud 65 | 66 | 67 | legend 68 | |= Color |= Type |= Description | 69 | | Mary | <$osa_user_green_developer*.4> | Mary details... This is a stdlib sprite | 70 | | Ivan | <$osa_user_green_operations*.4> | Ivan details... | 71 | | Bob | <$osa_user_green_business_manager*.4> | Bob details... | 72 | | Box | <&box> | A Box. This is an openiconic sprite | 73 | endlegend 74 | 75 | footer %filename() rendered with PlantUML version %version()\nThe Hitchhiker’s Guide to PlantUML 76 | @enduml 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /docs/NetworkUsersMachines/osa.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/NetworkUsersMachines/osa.tar.gz -------------------------------------------------------------------------------- /docs/PassSpriteAsParameter/1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | sprite $Batch [64x64/16z] { 3 | xLQ7bjim30CdzFzVtEV1iErPkJpT7iYm5aWDKERujFZ5Bp8YkSvM011VfMzSDy2Mw1JidbCGAtmllmbPuIkoImjyGUsyBV4LV95_Xny50bpW4uTRAjOKu81b 4 | Xa0vbX3OKFG5C0IMNLyxXA_3PvW5hqHSOFBP_Ovk4036hYi0pJdTCgqD6A0g4FQ0hOwygxSikGOanw11AuvtomxXjNiRDECmn21xxTkJP0N4tdy1Gmu5T2GW 5 | 6ygFL_sqbx3NvA_FVtt_ri_F1CZNra-10TpNhvVr2KGcyVCOdoBySlpv-jC1ZSVveO36_Fwb0UASqGqG0QpfJgP2Eo60u59-fLVozhhdNk2WTeDpq2O6AAL_ 6 | uV7KGPNO2lya17gz1pMiD1VmFNH9IBLNe3xA3q07eNsMy_WdXESwU4jRmddEk-FUuPFjjthiqAEGVUz8rlqmsK1nhtYlklvp7vWRfka0jUNITUdTzgxFyzLx 7 | -Ikh_YdmYr_y0G 8 | } 9 | 10 | 11 | sprite $foo1 { 12 | FFFFFFFFFFFFFFF 13 | F0123456789ABCF 14 | F0123456789ABCF 15 | F0123456789ABCF 16 | F0123456789ABCF 17 | F0123456789ABCF 18 | F0123456789ABCF 19 | F0123456789ABCF 20 | F0123456789ABCF 21 | FFFFFFFFFFFFFFF 22 | } 23 | !procedure $ffoo() 24 | Alice -> Bob : Testing <$foo1> 25 | !endprocedure 26 | 27 | $ffoo() 28 | 29 | rectangle "<$Batch>" as rectangle 30 | 31 | !function $dummy() 32 | !local $ijk = "local" 33 | !return "Alice -> Bob : " + $ijk 34 | !endfunction 35 | 36 | !global $ijk = "foo" 37 | 38 | Alice -> Bob : $ijk 39 | $dummy() 40 | 41 | 42 | 43 | '!procedure $bBatch() 44 | '<$Batch> 45 | '!endprocedure 46 | 47 | '$bBatch() 48 | @enduml -------------------------------------------------------------------------------- /docs/PassSpriteAsParameter/PassSpriteAsParameter.rst: -------------------------------------------------------------------------------- 1 | ****************************************************** 2 | PassSpriteAsParameter 3 | ****************************************************** 4 | 5 | 6 | 7 | .. _MigrationNotes: https://plantuml.com/preprocessing#ajlk3nchu0zkka0ybjng 8 | .. _DefaultArgumentValue: https://plantuml.com/preprocessing#ae1b47605326b65f 9 | 10 | 11 | 12 | 13 | 14 | 15 | Understand How To Pass A Sprite To A Procedure 16 | =============================================================================== 17 | 18 | .. uml:: option1.puml 19 | :align: center 20 | 21 | Source 22 | ------------------------------------------------------------------------------- 23 | 24 | .. literalinclude:: ./option1.puml 25 | :emphasize-lines: 12, 16 26 | :linenos: 27 | 28 | 29 | 30 | 31 | 32 | 33 | Understand How To Pass A Sprite To A Procedure - using unquoted keyword 34 | =============================================================================== 35 | This option uses the unquoted keyword. The caller of the procedure does not need 36 | to add quotes when calling the procedure. 37 | 38 | 39 | .. uml:: option2.puml 40 | :align: center 41 | 42 | 43 | Source 44 | ------------------------------------------------------------------------------- 45 | 46 | .. literalinclude:: ./option2.puml 47 | :emphasize-lines: 12, 16 48 | :linenos: 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | Use Procedure Defaults 57 | =============================================================================== 58 | 59 | And Tidy Up The Procedure So It's Easier To Read 60 | 61 | .. uml:: option3.puml 62 | :align: center 63 | :caption: *blah* 64 | 65 | Source 66 | ------------------------------------------------------------------------------- 67 | 68 | .. literalinclude:: ./option3.puml 69 | :emphasize-lines: 12, 22 70 | :linenos: 71 | 72 | 73 | 74 | 75 | So What? 76 | =============================================================================== 77 | We said previously that the current stdlib macros are largely the same across files - changing for each icon. 78 | 79 | So now we have a way to define a procedure(s) in one place, and pass an icon. 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /docs/PassSpriteAsParameter/option1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | 'create equivalent of icons shown here https://github.com/awslabs/aws-icons-for-plantuml 4 | sprite $Batch [64x64/16z] { 5 | xLQ7bjim30CdzFzVtEV1iErPkJpT7iYm5aWDKERujFZ5Bp8YkSvM011VfMzSDy2Mw1JidbCGAtmllmbPuIkoImjyGUsyBV4LV95_Xny50bpW4uTRAjOKu81b 6 | Xa0vbX3OKFG5C0IMNLyxXA_3PvW5hqHSOFBP_Ovk4036hYi0pJdTCgqD6A0g4FQ0hOwygxSikGOanw11AuvtomxXjNiRDECmn21xxTkJP0N4tdy1Gmu5T2GW 7 | 6ygFL_sqbx3NvA_FVtt_ri_F1CZNra-10TpNhvVr2KGcyVCOdoBySlpv-jC1ZSVveO36_Fwb0UASqGqG0QpfJgP2Eo60u59-fLVozhhdNk2WTeDpq2O6AAL_ 8 | uV7KGPNO2lya17gz1pMiD1VmFNH9IBLNe3xA3q07eNsMy_WdXESwU4jRmddEk-FUuPFjjthiqAEGVUz8rlqmsK1nhtYlklvp7vWRfka0jUNITUdTzgxFyzLx 9 | -Ikh_YdmYr_y0G 10 | } 11 | 12 | !procedure $SpritePass2($MySprite) 13 | rectangle "<$MySprite>\n2" as 2 14 | !endprocedure 15 | 16 | $SpritePass2("$Batch") 17 | @enduml 18 | 19 | -------------------------------------------------------------------------------- /docs/PassSpriteAsParameter/option2.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | 'create equivalent of icons shown here https://github.com/awslabs/aws-icons-for-plantuml 4 | sprite $Batch [64x64/16z] { 5 | xLQ7bjim30CdzFzVtEV1iErPkJpT7iYm5aWDKERujFZ5Bp8YkSvM011VfMzSDy2Mw1JidbCGAtmllmbPuIkoImjyGUsyBV4LV95_Xny50bpW4uTRAjOKu81b 6 | Xa0vbX3OKFG5C0IMNLyxXA_3PvW5hqHSOFBP_Ovk4036hYi0pJdTCgqD6A0g4FQ0hOwygxSikGOanw11AuvtomxXjNiRDECmn21xxTkJP0N4tdy1Gmu5T2GW 7 | 6ygFL_sqbx3NvA_FVtt_ri_F1CZNra-10TpNhvVr2KGcyVCOdoBySlpv-jC1ZSVveO36_Fwb0UASqGqG0QpfJgP2Eo60u59-fLVozhhdNk2WTeDpq2O6AAL_ 8 | uV7KGPNO2lya17gz1pMiD1VmFNH9IBLNe3xA3q07eNsMy_WdXESwU4jRmddEk-FUuPFjjthiqAEGVUz8rlqmsK1nhtYlklvp7vWRfka0jUNITUdTzgxFyzLx 9 | -Ikh_YdmYr_y0G 10 | } 11 | 12 | !unquoted procedure $SpritePass2($MySprite) 13 | rectangle "<$MySprite>\n2" as 2 14 | !endprocedure 15 | 16 | $SpritePass2($Batch) 17 | @enduml 18 | -------------------------------------------------------------------------------- /docs/PassSpriteAsParameter/option3.puml: -------------------------------------------------------------------------------- 1 | 2 | @startuml 3 | 4 | sprite $Batch [64x64/16z] { 5 | xLQ7bjim30CdzFzVtEV1iErPkJpT7iYm5aWDKERujFZ5Bp8YkSvM011VfMzSDy2Mw1JidbCGAtmllmbPuIkoImjyGUsyBV4LV95_Xny50bpW4uTRAjOKu81b 6 | Xa0vbX3OKFG5C0IMNLyxXA_3PvW5hqHSOFBP_Ovk4036hYi0pJdTCgqD6A0g4FQ0hOwygxSikGOanw11AuvtomxXjNiRDECmn21xxTkJP0N4tdy1Gmu5T2GW 7 | 6ygFL_sqbx3NvA_FVtt_ri_F1CZNra-10TpNhvVr2KGcyVCOdoBySlpv-jC1ZSVveO36_Fwb0UASqGqG0QpfJgP2Eo60u59-fLVozhhdNk2WTeDpq2O6AAL_ 8 | uV7KGPNO2lya17gz1pMiD1VmFNH9IBLNe3xA3q07eNsMy_WdXESwU4jRmddEk-FUuPFjjthiqAEGVUz8rlqmsK1nhtYlklvp7vWRfka0jUNITUdTzgxFyzLx 9 | -Ikh_YdmYr_y0G 10 | } 11 | 12 | !unquoted procedure $ffoo5($alias, $description="", $label="", $technology="", $scale=1, $colour="red") 13 | rectangle rect5 as " 14 | <<$alias>> 15 | ==$label== 16 | <$Batch*$scale> 17 | //[$technology]// 18 | 19 | $description 556" 20 | !endprocedure 21 | 22 | $ffoo5(myalias, "description\non several lines", $scale=2) 23 | 24 | @enduml 25 | 26 | -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/0.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/0.1.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/1.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/2.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/3.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/4.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/5.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/6.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/7.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/8.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/C4person100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/C4person100.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/C4person4.sprite: -------------------------------------------------------------------------------- 1 | sprite $C4person100 [100x100/4] { 2 | 0000000000000000000000000000000000000000115555LLLLLLLL5555110000000000000000000000000000000000000000 3 | 00000000000000000000000000000000000115LLLLLLLLLLLLLLLLLLLLLLLL51000000000000000000000000000000000000 4 | 0000000000000000000000000000000015LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL1000000000000000000000000000000000 5 | 00000000000000000000000000000015LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL50000000000000000000000000000000 6 | 000000000000000000000000000005LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL100000000000000000000000000000 7 | 00000000000000000000000000005LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL10000000000000000000000000000 8 | 0000000000000000000000000000LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL0000000000000000000000000000 9 | 0000000000000000000000000000LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL0000000000000000000000000000 10 | 0000000000000000000000000000LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL0000000000000000000000000000 11 | 0000000000000000000000000000KLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLG0000000000000000000000000000 12 | 00000000000000000000000000000KLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLG00000000000000000000000000000 13 | 0000000000000000000000000000000KLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLK0000000000000000000000000000000 14 | 000000000000000000000000000000000KLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKG000000000000000000000000000000000 15 | 00000000001115555555555555555555555LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL55555555555555555555511110000000000 16 | 00000115LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL51000000 17 | 0001LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL51000 18 | 01LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL00 19 | 0LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL0 20 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL5 21 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 22 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 23 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 24 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 25 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 26 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 27 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 28 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 29 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 30 | KLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLG 31 | 0KLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLK0 32 | 00KLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLG00 33 | 0000GKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKG0000 34 | 0000000GGKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKGG0000000 35 | 000000000000000GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG000000000000000 36 | } 37 | 38 | -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/C4person48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/C4person48.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/C4person48_16.sprite: -------------------------------------------------------------------------------- 1 | sprite $C4person48 [48x48/16] { 2 | 000000000000000000002567764200000000000000000000 3 | 000000000000000000367777777763000000000000000000 4 | 000000000000000015777777777777500000000000000000 5 | 000000000000000167777777777777750000000000000000 6 | 000000000000000577777777777777774000000000000000 7 | 000000000000003777777777777777777200000000000000 8 | 000000000000006777777777777777777500000000000000 9 | 000000000000027777777777777777777710000000000000 10 | 000000000000047777777777777777777730000000000000 11 | 000000000000057777777777777777777740000000000000 12 | 000000000000057777777777777777777750000000000000 13 | 000000000000057777777777777777777750000000000000 14 | 000000000000047777777777777777777740000000000000 15 | 000000000000037777777777777777777720000000000000 16 | 000000000000017777777777777777777700000000000000 17 | 000000000000005777777777777777777400000000000000 18 | 000000000000001777777777777777776100000000000000 19 | 000000000000000377777777777777772000000000000000 20 | 000000000000000047777777777777730000000000000000 21 | 000002456666666667777777777777766666666654200000 22 | 000367777777777777777777777777777777777777762000 23 | 004777777777777777777777777777777777777777777300 24 | 037777777777777777777777777777777777777777777720 25 | 077777777777777777777777777777777777777777777760 26 | 377777777777777777777777777777777777777777777772 27 | 577777777777777777777777777777777777777777777774 28 | 677777777777777777777777777777777777777777777776 29 | 777777777777777777777777777777777777777777777777 30 | 777777777777777777777777777777777777777777777777 31 | 777777777777777777777777777777777777777777777777 32 | 777777777777777777777777777777777777777777777777 33 | 777777777777777777777777777777777777777777777777 34 | 777777777777777777777777777777777777777777777777 35 | 777777777777777777777777777777777777777777777777 36 | 777777777777777777777777777777777777777777777777 37 | 777777777777777777777777777777777777777777777777 38 | 777777777777777777777777777777777777777777777777 39 | 777777777777777777777777777777777777777777777777 40 | 777777777777777777777777777777777777777777777777 41 | 777777777777777777777777777777777777777777777777 42 | 677777777777777777777777777777777777777777777776 43 | 577777777777777777777777777777777777777777777774 44 | 377777777777777777777777777777777777777777777772 45 | 077777777777777777777777777777777777777777777760 46 | 037777777777777777777777777777777777777777777720 47 | 004777777777777777777777777777777777777777777400 48 | 000367777777777777777777777777777777777777762000 49 | 000002466777777777777777777777777777777664200000 50 | } 51 | 52 | -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/C4person48_4.sprite: -------------------------------------------------------------------------------- 1 | sprite $C4person48 [48x48/4] { 2 | 000000000000000001155LLLLLL551100000000000000000 3 | 0000000000000005LLLLLLLLLLLLLLLL5000000000000000 4 | 00000000000001LLLLLLLLLLLLLLLLLLLL00000000000000 5 | 0000000000000LLLLLLLLLLLLLLLLLLLLLL0000000000000 6 | 0000000000000GLLLLLLLLLLLLLLLLLLLLG0000000000000 7 | 00000000000000GKLLLLLLLLLLLLLLLLKG00000000000000 8 | 0000115555555555LLLLLLLLLLLLLLL55555555555110000 9 | 01LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL510 10 | 5LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL5 11 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 12 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 13 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 14 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 15 | LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 16 | 0KLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLK0 17 | 00GGKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKGG00 18 | } 19 | 20 | -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/C4person48_8.sprite: -------------------------------------------------------------------------------- 1 | sprite $C4person48 [48x48/8] { 2 | 00000000000000000013BJRRRRJB31000000000000000000 3 | 00000000000000003JRRRRRRRRRRRRJ20000000000000000 4 | 000000000000001JRRRRRRRRRRRRRRRRJ100000000000000 5 | 00000000000001RRRRRRRRRRRRRRRRRRRJ00000000000000 6 | 0000000000000IRRRRRRRRRRRRRRRRRRRRA0000000000000 7 | 0000000000000IRRRRRRRRRRRRRRRRRRRRI0000000000000 8 | 0000000000000HRRRRRRRRRRRRRRRRRRRRH0000000000000 9 | 00000000000000QRRRRRRRRRRRRRRRRRRQ00000000000000 10 | 000000000000000PRRRRRRRRRRRRRRRRP000000000000000 11 | 0000012233333333JRRRRRRRRRRRRRRB3333333322100000 12 | 002BRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRB100 13 | 0BRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRB0 14 | ARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRA 15 | RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR 16 | RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR 17 | RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR 18 | RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR 19 | RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR 20 | RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR 21 | RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR 22 | QRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRQ 23 | 8RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR8 24 | 08QRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRQ80 25 | 0008OPQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRQPO8000 26 | } 27 | 28 | -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/C4person48blackwhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/C4person48blackwhite.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/activity.puml: -------------------------------------------------------------------------------- 1 | ' https://real-world-plantuml.com/umls/4886556628221952 2 | 3 | @startuml 4 | 5 | 6 | 7 | title Servlet Container 8 | 9 | (*) --> "ClickServlet.handleRequest()" 10 | --> "new Page" 11 | 12 | if "Page.onSecurityCheck" then 13 | ->[true] "Page.onInit()" 14 | 15 | if "isForward?" then 16 | ->[no] "Process controls" 17 | 18 | if "continue processing?" then 19 | -->[yes] ===RENDERING=== 20 | else 21 | -->[no] ===REDIRECT_CHECK=== 22 | endif 23 | 24 | else 25 | -->[yes] ===RENDERING=== 26 | endif 27 | 28 | if "is Post?" then 29 | -->[yes] "Page.onPost()" 30 | --> "Page.onRender()" as render 31 | --> ===REDIRECT_CHECK=== 32 | else 33 | -->[no] "Page.onGet()" 34 | --> render 35 | endif 36 | 37 | else 38 | -->[false] ===REDIRECT_CHECK=== 39 | endif 40 | 41 | if "Do redirect?" then 42 | ->[yes] "redirect request" 43 | --> ==BEFORE_DESTROY=== 44 | else 45 | if "Do Forward?" then 46 | -left->[yes] "Forward request" 47 | --> ==BEFORE_DESTROY=== 48 | else 49 | -right->[no] "Render page template" 50 | --> ==BEFORE_DESTROY=== 51 | endif 52 | endif 53 | 54 | --> "Page.onDestroy()" 55 | -->(*) 56 | 57 | @enduml 58 | 59 | -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/all.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/aws_comments-architecture.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | 4 | !includeurl 5 | !includeurl 6 | !includeurl 7 | !includeurl 8 | !includeurl 9 | !includeurl 10 | !includeurl 11 | !includeurl 12 | !includeurl 13 | !includeurl 14 | !includeurl 15 | !includeurl 16 | 17 | skinparam componentArrowColor Black 18 | skinparam componentBackgroundColor White 19 | skinparam nodeBackgroundColor White 20 | skinparam agentBackgroundColor White 21 | skinparam artifactBackgroundColor White 22 | 23 | 24 | USER(user) 25 | CLIENT(browser) 26 | JAVASCRIPT(js,SDK) 27 | 28 | AWSCLOUD(aws) { 29 | 30 | AMAZONS3(s3) { 31 | BUCKET(site,www.insecurity.co) 32 | BUCKET(logs,logs.insecurity.co) 33 | } 34 | 35 | AMAZONAPIGATEWAY(api) 36 | 37 | AWSLAMBDA(lambda) { 38 | LAMBDAFUNCTION(addComments,addComments) 39 | } 40 | 41 | AMAZONDYNAMODB(dynamo) { 42 | TABLE(comments,Comments) 43 | } 44 | } 45 | 46 | user - browser 47 | 48 | browser -d-> site :**1a**) get\nstatic\ncontent 49 | site ~> logs :1a 50 | site .u.> browser :**1b** 51 | browser - js 52 | js -r-> comments :**2a**) get\ncomments 53 | comments ..> js :**2b** 54 | 55 | js -r-> api :**3**) add\ncomment 56 | 57 | api -d-> addComments :**4** 58 | 59 | addComments -> comments :**5** 60 | 61 | comments ..> js :**6**) new\ncomments 62 | @enduml -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/aws_nested-components.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !include 4 | !include 5 | !include 6 | 7 | AMAZONS3(s3) { 8 | BUCKET(site,www.insecurity.co) 9 | BUCKET(logs,logs.insecurity.co) 10 | } 11 | 12 | site .r.> logs : events 13 | 14 | @enduml -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/awslabs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/awslabs.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/c4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/c4.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/component.puml: -------------------------------------------------------------------------------- 1 | ' https://real-world-plantuml.com/umls/4619683198140416 2 | 3 | @startuml 4 | package "ArduCopter - Simple Version" { 5 | [EnginesControl] -down-> Engines 6 | [EnginesControl] - [MainCopterProcess] 7 | [MainCopterProcess] - [Rangefinder] 8 | [Rangefinder] -down-> BottomSonicSensor 9 | [MainCopterProcess] -down- [GPSSignalListener] 10 | } 11 | package "CarDuino Nano" { 12 | [GPSSignalMaker] -down- [MainCarDuinoProcess] 13 | [MainCarDuinoProcess] -down- [CommandListener] 14 | [GPSSignalMaker] -up- [GPSSignalSender] 15 | [MainCarDuinoProcess] - [5x Rangefinders] 16 | [5x Rangefinders] -down-> 5xSonicSensors 17 | [TelemetricsSender] - [MainCarDuinoProcess] 18 | [TelemetricsSender] -down- MiniUSB 19 | [CommandListener] -left- MiniUSB 20 | } 21 | package "Intell 2800 - Simple Version" { 22 | [ComputerCommunications] -up- USB 23 | [ComputerCommunications] - [MainComputerProcess] 24 | [KinectProcessing] -down-> KINECT 25 | [KinectProcessing] - [MainComputerProcess] 26 | [VideoProcessing] -down-> Camera 27 | [VideoProcessing] - [MainComputerProcess] 28 | [ComputerCommunications2] -up- [MainComputerProcess] 29 | [ComputerCommunications2] -down- WiFi 30 | [ComputerCommunications2] -down- Bluetooth 31 | } 32 | [GPSSignalListener] -down- [GPSSignalSender] 33 | USB -up- MiniUSB 34 | @enduml -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/deployment.puml: -------------------------------------------------------------------------------- 1 | ' http://plantuml.com/deployment-diagram 2 | 3 | @startuml 4 | actor actor 5 | agent agent 6 | artifact artifact 7 | boundary boundary 8 | card card 9 | cloud cloud 10 | component component 11 | control control 12 | database database 13 | entity entity 14 | file file 15 | folder folder 16 | frame frame 17 | interface interface 18 | node node 19 | package package 20 | queue queue 21 | stack stack 22 | rectangle rectangle 23 | storage storage 24 | usecase usecase 25 | @enduml 26 | 27 | -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/deployment_diagram.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | actor actor 3 | agent agent 4 | artifact artifact 5 | boundary boundary 6 | card card 7 | cloud cloud 8 | component component 9 | control control 10 | database database 11 | entity entity 12 | file file 13 | folder folder 14 | frame frame 15 | interface interface 16 | node node 17 | package package 18 | queue queue 19 | stack stack 20 | rectangle rectangle 21 | storage storage 22 | usecase usecase 23 | @enduml -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/image.puml: -------------------------------------------------------------------------------- 1 | 'diagram from https://plantuml.com/creole 2 | @startuml 3 | :* You can change text color 4 | * You can change background color 5 | * You can change size 6 | * You use legacy HTML tag 7 | * You use color in HTML tag 8 | ---- 9 | * image x0.5 : 10 | ---- 11 | * image x1.5 : 12 | ; 13 | @enduml 14 | 15 | -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/keysequence.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | 4 | autonumber 5 | box "UnTrustedDomain" #Red 6 | database UnTrustedKeyStore as UKS 7 | control UnTrustedKeyManager as UKM 8 | boundary KeyLoader as KL 9 | end box 10 | 11 | box "TrustedDomain" #Green 12 | database PersistentStorage as KS 13 | control KeyManager as KM 14 | 15 | end box 16 | 17 | 18 | group In the Beginning... 19 | 20 | group RootKBPK 21 | note over KM: A Unique random key is born 22 | KS --> KS: Root KBPK exists 23 | end 24 | 25 | group Storage in UnTrustedDomain 26 | KM --> KM: Create Class N KPBK 27 | KS --> KM: RootKBPK 28 | note over KM: Shorthand for create a KeyBlock with ClassKBPK N as key payload, and RootKBPK as KBPK 29 | UKM --> UKS: KeyBlock[ClassKBPK N]RootKBPK 30 | note over UKS: Process is repeated for ClassKBPK 1,2,3...N 31 | end 32 | end 33 | 34 | @enduml -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/links.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | actor Bob [[http://plantuml.com/sequence-diagram]] 3 | actor "This is [[http://plantuml.com/sequence-diagram Alice]] actor" as Alice 4 | Bob -> Alice [[http://plantuml.com/index]] : hello 5 | note left [[http://plantuml.com/index]] 6 | a note with a link 7 | end note 8 | Alice -> Bob : hello with [[http://plantuml.com/index{Tooltip for message} some link]] 9 | note right [[http://plantuml.com/index]] : another note 10 | note left of Bob 11 | ' You can use [[http://plantuml.com/index links in notes]] also. 12 | end note 13 | @enduml 14 | -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/listopeniconic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/listopeniconic.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/listopeniconic.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | listopeniconic 3 | @enduml -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/osa.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !include 4 | !include 5 | !include 6 | 7 | Auditor : <$audit> 8 | Architect: <$architect> 9 | BlackHat : <$black_hat> 10 | 11 | Auditor -> Architect : blah 12 | Architect -> BlackHat : blahblah 13 | 14 | 15 | @enduml 16 | 17 | -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/osa_sprites.puml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @startuml 4 | 5 | !include 6 | !include 7 | !include 8 | !include 9 | !include 10 | !include 11 | !include 12 | !include 13 | !include 14 | !include 15 | !include 16 | !include 17 | !include 18 | !include 19 | !include 20 | !include 21 | !include 22 | !include 23 | !include 24 | !include 25 | !include 26 | !include 27 | !include 28 | !include 29 | !include 30 | !include 31 | !include 32 | !include 33 | !include 34 | !include 35 | !include 36 | !include 37 | !include 38 | !include 39 | !include 40 | !include 41 | !include 42 | !include 43 | !include 44 | !include 45 | !include 46 | !include 47 | !include 48 | !include 49 | !include 50 | !include 51 | !include 52 | !include 53 | !include 54 | !include 55 | 56 | 57 | 58 | Left: <$left> 59 | Right: <$right> 60 | Awareness: <$awareness> 61 | Contract: <$contract> 62 | Database: <$database> 63 | Desktop: <$desktop> 64 | Imac: <$imac> 65 | Device_music: <$device_music> 66 | Device_scanner: <$device_scanner> 67 | Device_usb: <$device_usb> 68 | Device_wireless_router: <$device_wireless_router> 69 | Disposal: <$disposal> 70 | Drive_optical: <$drive_optical> 71 | Firewall: <$firewall> 72 | Hub: <$hub> 73 | Drive: <$drive> 74 | Plc: <$plc> 75 | Thermometer: <$thermometer> 76 | Card: <$card> 77 | Laptop: <$laptop> 78 | Lifecycle: <$lifecycle> 79 | Lightning: <$lightning> 80 | Media_flash: <$media_flash> 81 | Media_optical: <$media_optical> 82 | Media_tape: <$media_tape> 83 | Pda: <$pda> 84 | Padlock: <$padlock> 85 | Printer: <$printer> 86 | Site_branch: <$site_branch> 87 | Site_factory: <$site_factory> 88 | Audit: <$audit> 89 | Hat: <$hat> 90 | Blue: <$blue> 91 | Specialist: <$specialist> 92 | Sysadmin: <$sysadmin> 93 | Tester: <$tester> 94 | Tie: <$tie> 95 | Architect: <$architect> 96 | Manager: <$manager> 97 | Developer: <$developer> 98 | Green: <$green> 99 | Operations: <$operations> 100 | Manager: <$manager> 101 | Manager: <$manager> 102 | Warning: <$warning> 103 | Group: <$group> 104 | Green: <$green> 105 | Hat: <$hat> 106 | Vpn: <$vpn> 107 | Network: <$network> 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | @enduml -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/osa_sprites1.puml: -------------------------------------------------------------------------------- 1 | !include 2 | !include 3 | !include 4 | !include 5 | !include 6 | 7 | Left: <$left> 8 | Right: <$right> 9 | Awareness: <$awareness> 10 | Contract: <$contract> 11 | Database: <$database> -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/osa_sprites10.puml: -------------------------------------------------------------------------------- 1 | 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | 8 | Group: <$group> 9 | Green: <$green> 10 | Hat: <$hat> 11 | Vpn: <$vpn> 12 | Network: <$network> 13 | -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/osa_sprites2.puml: -------------------------------------------------------------------------------- 1 | !include 2 | !include 3 | !include 4 | !include 5 | !include 6 | 7 | 8 | Desktop: <$desktop> 9 | Imac: <$imac> 10 | Device_music: <$device_music> 11 | Device_scanner: <$device_scanner> 12 | Device_usb: <$device_usb> -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/osa_sprites3.puml: -------------------------------------------------------------------------------- 1 | !include 2 | !include 3 | !include 4 | !include 5 | !include 6 | 7 | Device_wireless_router: <$device_wireless_router> 8 | Disposal: <$disposal> 9 | Drive_optical: <$drive_optical> 10 | Firewall: <$firewall> 11 | Hub: <$hub> -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/osa_sprites4.puml: -------------------------------------------------------------------------------- 1 | !include 2 | !include 3 | !include 4 | !include 5 | !include 6 | 7 | Drive: <$drive> 8 | Plc: <$plc> 9 | Thermometer: <$thermometer> 10 | Card: <$card> 11 | Laptop: <$laptop> -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/osa_sprites5.puml: -------------------------------------------------------------------------------- 1 | !include 2 | !include 3 | !include 4 | !include 5 | !include 6 | 7 | Lifecycle: <$lifecycle> 8 | Lightning: <$lightning> 9 | Media_flash: <$media_flash> 10 | Media_optical: <$media_optical> 11 | Media_tape: <$media_tape> -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/osa_sprites6.puml: -------------------------------------------------------------------------------- 1 | !include 2 | !include 3 | !include 4 | !include 5 | !include 6 | 7 | Pda: <$pda> 8 | Padlock: <$padlock> 9 | Printer: <$printer> 10 | Site_branch: <$site_branch> 11 | Site_factory: <$site_factory> -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/osa_sprites7.puml: -------------------------------------------------------------------------------- 1 | !include 2 | !include 3 | !include 4 | !include 5 | !include 6 | 7 | Audit: <$audit> 8 | Hat: <$hat> 9 | Blue: <$blue> 10 | Specialist: <$specialist> 11 | Sysadmin: <$sysadmin> -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/osa_sprites8.puml: -------------------------------------------------------------------------------- 1 | !include 2 | !include 3 | !include 4 | !include 5 | !include 6 | 7 | Tester: <$tester> 8 | Tie: <$tie> 9 | Architect: <$architect> 10 | Manager: <$manager> 11 | Developer: <$developer> -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/osa_sprites9.puml: -------------------------------------------------------------------------------- 1 | !include 2 | !include 3 | !include 4 | !include 5 | !include 6 | 7 | Green: <$green> 8 | Operations: <$operations> 9 | Manager: <$manager> 10 | Manager: <$manager> 11 | Warning: <$warning> -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/sequence.puml: -------------------------------------------------------------------------------- 1 | ' https://real-world-plantuml.com/umls/4606798564687872 2 | 3 | 4 | @startuml 5 | autonumber 6 | 7 | participant "app: Application" as app 8 | participant "cm: ContentManager" as cm 9 | participant "item: DownloadItem" as item 10 | 11 | activate app 12 | activate cm 13 | 14 | note over app: User enters media info page 15 | 16 | note over app: Check if item exists 17 | app->cm: findItem(itemId) 18 | cm->cm: lookup(itemId) 19 | 20 | alt item found 21 | cm-->app: item 22 | else not found 23 | cm-->app: null 24 | app->cm: createItem(itemId, contentURL) 25 | cm->item: new(itemId, contentURL) 26 | activate item 27 | cm-->app: item 28 | 29 | app->cm: loadMetadata() 30 | note over cm 31 | Download and parse manifest, save in db 32 | end note 33 | cm-->app: onTracksAvailable 34 | cm-->app: onDownloadMetadata 35 | note over app: * See //track-selection// flow 36 | end group 37 | 38 | note over app: app is ready to start downloading 39 | app->item: startDownload() 40 | 41 | 42 | @enduml -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/sequence_draft.puml: -------------------------------------------------------------------------------- 1 | ' https://real-world-plantuml.com/umls/4606798564687872 2 | 3 | 4 | @startuml 5 | skinparam handwritten true 6 | 7 | autonumber 8 | 9 | participant "app: Application" as app 10 | participant "cm: ContentManager" as cm 11 | participant "item: DownloadItem" as item 12 | 13 | activate app 14 | activate cm 15 | 16 | note over app: User enters media info page 17 | 18 | note over app: Check if item exists 19 | app->cm: findItem(itemId) 20 | cm->cm: lookup(itemId) 21 | 22 | alt item found 23 | cm-->app: item 24 | else not found 25 | cm-->app: null 26 | app->cm: createItem(itemId, contentURL) 27 | cm->item: new(itemId, contentURL) 28 | activate item 29 | cm-->app: item 30 | 31 | app->cm: loadMetadata() 32 | note over cm 33 | Download and parse manifest, save in db 34 | end note 35 | cm-->app: onTracksAvailable 36 | cm-->app: onDownloadMetadata 37 | note over app: * See //track-selection// flow 38 | end group 39 | 40 | note over app: app is ready to start downloading 41 | app->item: startDownload() 42 | 43 | 44 | @enduml -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/state.puml: -------------------------------------------------------------------------------- 1 | ' https://real-world-plantuml.com/umls/4724780511002624 2 | 3 | @startuml 4 | 5 | title performing I/O 6 | 7 | [*] --> Client 8 | Client: Process uri in Client 9 | 10 | Client -> Server : uri-data 11 | state Server { 12 | [*] -> monitor 13 | monitor: Server starts monitoring 14 | monitor: Stops at end of Server life 15 | } 16 | 17 | Client -> Database: Client 18 | Database: database operations 19 | 20 | state runcommand { 21 | Database -> command: Database 22 | command -> find: query 23 | command: send command to server 24 | 25 | monitor -> select: server-data 26 | 27 | find --> select 28 | select: select process to find proper server 29 | select --> find: Server 30 | 31 | find --> query: server 32 | query: encodes query and send to server 33 | query: decodes result 34 | query --> find: result 35 | 36 | } 37 | 38 | find -> Cursor: cursor-data 39 | Cursor: stores docs 40 | Cursor: retrieves new docs 41 | 42 | Cursor -> fetch: document 43 | fetch --> getmore 44 | getmore: encodes query and send to server 45 | getmore: decodes result 46 | getmore --> fetch: new-documents 47 | 48 | 49 | fetch -> [*] 50 | @enduml -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/state_draft.puml: -------------------------------------------------------------------------------- 1 | ' https://real-world-plantuml.com/umls/4724780511002624 2 | 3 | @startuml 4 | skinparam handwritten true 5 | 6 | title performing I/O 7 | 8 | [*] --> Client 9 | Client: Process uri in Client 10 | 11 | Client -> Server : uri-data 12 | state Server { 13 | [*] -> monitor 14 | monitor: Server starts monitoring 15 | monitor: Stops at end of Server life 16 | } 17 | 18 | Client -> Database: Client 19 | Database: database operations 20 | 21 | state runcommand { 22 | Database -> command: Database 23 | command -> find: query 24 | command: send command to server 25 | 26 | monitor -> select: server-data 27 | 28 | find --> select 29 | select: select process to find proper server 30 | select --> find: Server 31 | 32 | find --> query: server 33 | query: encodes query and send to server 34 | query: decodes result 35 | query --> find: result 36 | 37 | } 38 | 39 | find -> Cursor: cursor-data 40 | Cursor: stores docs 41 | Cursor: retrieves new docs 42 | 43 | Cursor -> fetch: document 44 | fetch --> getmore 45 | getmore: encodes query and send to server 46 | getmore: decodes result 47 | getmore --> fetch: new-documents 48 | 49 | 50 | fetch -> [*] 51 | @enduml -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/swarchv1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/swarchv1.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/swarchv2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/PlantUMLSpriteLibraries/swarchv2.png -------------------------------------------------------------------------------- /docs/PlantUMLSpriteLibraries/timing.puml: -------------------------------------------------------------------------------- 1 | ' http://plantuml.com/timing-diagram 2 | 3 | @startuml 4 | robust "Web Browser" as WB 5 | concise "Web User" as WU 6 | 7 | WB is Initializing 8 | WU is Absent 9 | 10 | @WB 11 | 0 is idle 12 | +200 is Processing 13 | +100 is Waiting 14 | WB@0 <-> @50 : {50 ms lag} 15 | 16 | @WU 17 | 0 is Waiting 18 | +500 is ok 19 | @200 <-> @+150 : {150 ms} 20 | @enduml -------------------------------------------------------------------------------- /docs/Stdlib/ProcedureBuildup.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 'create equivalent of icons shown here https://github.com/awslabs/aws-icons-for-plantuml 3 | 4 | 5 | sprite $Batch [64x64/16z] { 6 | xLQ7bjim30CdzFzVtEV1iErPkJpT7iYm5aWDKERujFZ5Bp8YkSvM011VfMzSDy2Mw1JidbCGAtmllmbPuIkoImjyGUsyBV4LV95_Xny50bpW4uTRAjOKu81b 7 | Xa0vbX3OKFG5C0IMNLyxXA_3PvW5hqHSOFBP_Ovk4036hYi0pJdTCgqD6A0g4FQ0hOwygxSikGOanw11AuvtomxXjNiRDECmn21xxTkJP0N4tdy1Gmu5T2GW 8 | 6ygFL_sqbx3NvA_FVtt_ri_F1CZNra-10TpNhvVr2KGcyVCOdoBySlpv-jC1ZSVveO36_Fwb0UASqGqG0QpfJgP2Eo60u59-fLVozhhdNk2WTeDpq2O6AAL_ 9 | uV7KGPNO2lya17gz1pMiD1VmFNH9IBLNe3xA3q07eNsMy_WdXESwU4jRmddEk-FUuPFjjthiqAEGVUz8rlqmsK1nhtYlklvp7vWRfka0jUNITUdTzgxFyzLx 10 | -Ikh_YdmYr_y0G 11 | } 12 | 13 | 14 | rectangle "<$Batch>\n0" as rectangle 15 | 16 | 17 | 'Render a sprite 18 | !procedure $ffoo1() 19 | rectangle "<$Batch>\n1" 20 | !endprocedure 21 | 22 | $ffoo1() 23 | 24 | 25 | 'Render a sprite - with color red 26 | !procedure $ffoo2() 27 | rectangle "<$Batch>\n2" as 2 28 | !endprocedure 29 | 30 | $ffoo2() 31 | 32 | 33 | 'https://github.com/awslabs/aws-icons-for-plantuml/blob/master/dist/General/Disk.puml 34 | 'rectangle "==e_label\n<$e_sprite>\n//[e_techn]//" <> as e_alias 35 | '!define DiskParticipant(p_alias, p_label, p_techn, p_descr) AWSParticipant(p_alias, p_label, p_techn, p_descr, #232F3E, Disk, Disk) 36 | 'https://github.com/awslabs/aws-icons-for-plantuml/blob/master/source/AWSCommon.puml 37 | 'common.puml: rectangle "==e_label\n<$e_sprite>\n//[e_techn]//\n\n e_descr" <> as e_alias 38 | 39 | 40 | 'Render a sprite - with color red - and add some text 41 | !procedure $ffoo3() 42 | rectangle "==label\n<$Batch>\n[technology]\n\n Description 3" as 3 43 | !endprocedure 44 | 45 | $ffoo3() 46 | 47 | 48 | 'Render a sprite - with color red - and add some text - with some formatting 49 | !procedure $ffoo4() 50 | rectangle "<>\n==label\n<$Batch>\n//[technology]//\n\n Description 4" as 4 51 | !endprocedure 52 | 53 | $ffoo4() 54 | 55 | 56 | 57 | '!procedure $ffoo5($alias, $description="", $label="", $technology="", $scale=1, $colour=red) 58 | 'OBSERVATION 1: the next line does not work - sprite is white - not red; there is where the unquoted keyword comes in 59 | 'rectangle "<<$alias>>\n==$label\n<$Batch*$scale>\n//[$technology]//\n\n $description 5" as 5 60 | 'the next line works i.e. sprite is red 61 | 'rectangle "<>\n==$label\n"<$Batch*$scale>"\n//[$technology]//\n\n $description 5" as $alias 62 | '!endprocedure 63 | 64 | '$ffoo5("myalias", "mydescription", "mylabel", "mytechnology", 2, blue) 65 | 66 | 67 | 68 | 69 | 'unquoted means that you don't have to use quotes when calling the procedure 70 | !unquoted procedure $ffoo51($alias, $description="", $label="", $technology="", $scale=1, $colour=red) 71 | rectangle "<<$alias>>\n==$label\n<$Batch*$scale>\n//[$technology]//\n\n $description 51" as 5 72 | !endprocedure 73 | 74 | $ffoo51(myalias, mydescription, mylabel, mytechnology, 2, blue) 75 | 76 | 77 | !procedure $ffoo6($alias, $description="", $label="", $technology="", $scale=1, $colour=red) 78 | rectangle "<>\n==$label\n<$Batch*$scale>\n//[$technology]//\n\n $description 6 " as $alias 79 | !endprocedure 80 | 81 | $ffoo6("myaliasbatch2", "mydescription", "mylabel", "mytechnology", 2, blue) 82 | 83 | 84 | 85 | 'OBSERVATION 2: can't do something like this 86 | ' $ffoo6($scale=2) 87 | 88 | @enduml -------------------------------------------------------------------------------- /docs/Stdlib/StdlibGroupings.puml: -------------------------------------------------------------------------------- 1 | 2 | @startmindmap 3 | * Standard Library groupings 4 | ** C4 (does not contain sprites) 5 | ** Sprites 6 | *** Sprites only 7 | **** logos 8 | **** cloudinsight 9 | **** kubernetes 10 | *** Sprites and Macros 11 | **** Type 1 12 | ***** aws (origina) 13 | ****** osa 14 | ****** elastic 15 | **** Type 2 16 | ***** azure 17 | ****** awslib (newest) 18 | **** Type 3 19 | ***** office 20 | ***** tupadr3 21 | ****** cloudogu 22 | **** Type 4 23 | ***** material 24 | @endmindmap 25 | -------------------------------------------------------------------------------- /docs/Stdlib/dynamic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/Stdlib/dynamic.png -------------------------------------------------------------------------------- /docs/Stdlib/dynamic.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 'all sprites in a category would be included in an all.puml file for that category 3 | '================================================================================================== 4 | 5 | 'create equivalent of icons shown here https://github.com/awslabs/aws-icons-for-plantuml 6 | sprite $Batch [64x64/16z] { 7 | xLQ7bjim30CdzFzVtEV1iErPkJpT7iYm5aWDKERujFZ5Bp8YkSvM011VfMzSDy2Mw1JidbCGAtmllmbPuIkoImjyGUsyBV4LV95_Xny50bpW4uTRAjOKu81b 8 | Xa0vbX3OKFG5C0IMNLyxXA_3PvW5hqHSOFBP_Ovk4036hYi0pJdTCgqD6A0g4FQ0hOwygxSikGOanw11AuvtomxXjNiRDECmn21xxTkJP0N4tdy1Gmu5T2GW 9 | 6ygFL_sqbx3NvA_FVtt_ri_F1CZNra-10TpNhvVr2KGcyVCOdoBySlpv-jC1ZSVveO36_Fwb0UASqGqG0QpfJgP2Eo60u59-fLVozhhdNk2WTeDpq2O6AAL_ 10 | uV7KGPNO2lya17gz1pMiD1VmFNH9IBLNe3xA3q07eNsMy_WdXESwU4jRmddEk-FUuPFjjthiqAEGVUz8rlqmsK1nhtYlklvp7vWRfka0jUNITUdTzgxFyzLx 11 | -Ikh_YdmYr_y0G 12 | } 13 | 14 | 15 | ' We define 1 or more sprite decorators in stdlib 16 | '--------------------------------------------------- 17 | !unquoted procedure $SpriteDecorator($MySprite, $alias, $description="", $label="", $technology="", $scale=1, $colour="red") 18 | 19 | rectangle $alias as " 20 | <<$alias>> 21 | $label 22 | <$MySprite*$scale> 23 | //[$technology]// 24 | 25 | $description" 26 | !endprocedure 27 | 28 | 'stdlib macros pass the sprite to the decorator - and the other parameters 29 | 'all this would happen in an all.puml file per sprite category 30 | '================================================================================================== 31 | !unquoted procedure $BATCH($alias, $description="", $label="", $technology="", $scale=1, $colour="red") 32 | $SpriteDecorator($Batch, $alias, $description, $label, $technology, $scale, $colour) 33 | !endprocedure 34 | 35 | 36 | ' First call: we call directly "$SpriteDecorator" 37 | $SpriteDecorator("$Batch", "somealias1") 38 | 39 | ' Second call: we dynamically call "$SpriteDecorator" 40 | 'I dynamically create the name of the procedure to be called: 41 | 42 | !$dyn = "$Sprite"+ "Decorator" 43 | 44 | ' The first argument of %invoke_procedure if the name of the real procedure to be called. 45 | ' Other arguments are passed to the called procedure - $SpriteDecorator in that case. 46 | %invoke_procedure($dyn, "$Batch", "somealias2") 47 | 48 | ' Right now it does NOT work with "named arguments" with last official release. 49 | ' But I just fixed this in last beta http://beta.plantuml.net/plantuml.jar 50 | %invoke_procedure($dyn, "$Batch", "somealias3", $scale=3) 51 | 52 | 53 | 'if this works, then can add named arguments 54 | @enduml -------------------------------------------------------------------------------- /docs/Stdlib/dynamic1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/Stdlib/dynamic1.1.png -------------------------------------------------------------------------------- /docs/Stdlib/dynamic1.1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 'all sprites in a category would be included in an all.puml file for that category 3 | '================================================================================================== 4 | 5 | 'create equivalent of icons shown here https://github.com/awslabs/aws-icons-for-plantuml 6 | sprite $Batch [64x64/16z] { 7 | xLQ7bjim30CdzFzVtEV1iErPkJpT7iYm5aWDKERujFZ5Bp8YkSvM011VfMzSDy2Mw1JidbCGAtmllmbPuIkoImjyGUsyBV4LV95_Xny50bpW4uTRAjOKu81b 8 | Xa0vbX3OKFG5C0IMNLyxXA_3PvW5hqHSOFBP_Ovk4036hYi0pJdTCgqD6A0g4FQ0hOwygxSikGOanw11AuvtomxXjNiRDECmn21xxTkJP0N4tdy1Gmu5T2GW 9 | 6ygFL_sqbx3NvA_FVtt_ri_F1CZNra-10TpNhvVr2KGcyVCOdoBySlpv-jC1ZSVveO36_Fwb0UASqGqG0QpfJgP2Eo60u59-fLVozhhdNk2WTeDpq2O6AAL_ 10 | uV7KGPNO2lya17gz1pMiD1VmFNH9IBLNe3xA3q07eNsMy_WdXESwU4jRmddEk-FUuPFjjthiqAEGVUz8rlqmsK1nhtYlklvp7vWRfka0jUNITUdTzgxFyzLx 11 | -Ikh_YdmYr_y0G 12 | } 13 | 14 | 15 | ' We define 1 or more sprite decorators in stdlib 16 | '--------------------------------------------------- 17 | !unquoted procedure $SpriteDecorator($MySprite, $alias, $description="", $label="", $technology="", $scale=1, $colour="red") 18 | 19 | rectangle $alias as " 20 | <<$alias>> 21 | $label 22 | <$MySprite*$scale> 23 | //[$technology]// 24 | 25 | $description" 26 | !endprocedure 27 | 28 | 'stdlib macros pass the sprite to the decorator - and the other parameters 29 | 'all this would happen in an all.puml file per sprite category 30 | '================================================================================================== 31 | '!unquoted procedure $BATCH($alias, $description="", $label="", $technology="", $scale=1, $colour="red") 32 | '$SpriteDecorator($Batch, $alias, $description, $label, $technology, $scale, $colour) 33 | '!endprocedure 34 | 35 | 36 | ' First call: we call directly "$SpriteDecorator" 37 | $SpriteDecorator("$Batch", "somealias1") 38 | 39 | ' Second call: we dynamically call "$SpriteDecorator" 40 | 'I dynamically create the name of the procedure to be called: 41 | 42 | !$dyn = "$Sprite"+ "Decorator" 43 | 44 | ' The first argument of %invoke_procedure if the name of the real procedure to be called. 45 | ' Other arguments are passed to the called procedure - $SpriteDecorator in that case. 46 | %invoke_procedure($dyn, "$Batch", "somealias2") 47 | 48 | ' Right now it does NOT work with "named arguments" with last official release. 49 | ' But I just fixed this in last beta http://beta.plantuml.net/plantuml.jar 50 | '%invoke_procedure($dyn, "$Batch", "somealias3", $scale=3) 51 | 52 | %invoke_procedure($dyn, "$Batch", "somealias3", $scale=3, $color="blue") 53 | 54 | 'if this works, then can add named arguments 55 | @enduml -------------------------------------------------------------------------------- /docs/Stdlib/dynamic2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/Stdlib/dynamic2.png -------------------------------------------------------------------------------- /docs/Stdlib/dynamic2.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 'all sprites in a category would be included in an all.puml file for that category 3 | '================================================================================================== 4 | 5 | 'create equivalent of icons shown here https://github.com/awslabs/aws-icons-for-plantuml 6 | sprite $Batch [64x64/16z] { 7 | xLQ7bjim30CdzFzVtEV1iErPkJpT7iYm5aWDKERujFZ5Bp8YkSvM011VfMzSDy2Mw1JidbCGAtmllmbPuIkoImjyGUsyBV4LV95_Xny50bpW4uTRAjOKu81b 8 | Xa0vbX3OKFG5C0IMNLyxXA_3PvW5hqHSOFBP_Ovk4036hYi0pJdTCgqD6A0g4FQ0hOwygxSikGOanw11AuvtomxXjNiRDECmn21xxTkJP0N4tdy1Gmu5T2GW 9 | 6ygFL_sqbx3NvA_FVtt_ri_F1CZNra-10TpNhvVr2KGcyVCOdoBySlpv-jC1ZSVveO36_Fwb0UASqGqG0QpfJgP2Eo60u59-fLVozhhdNk2WTeDpq2O6AAL_ 10 | uV7KGPNO2lya17gz1pMiD1VmFNH9IBLNe3xA3q07eNsMy_WdXESwU4jRmddEk-FUuPFjjthiqAEGVUz8rlqmsK1nhtYlklvp7vWRfka0jUNITUdTzgxFyzLx 11 | -Ikh_YdmYr_y0G 12 | } 13 | 14 | 15 | 16 | 17 | 18 | 19 | ' We define 1 or more sprite decorators in stdlib 20 | '--------------------------------------------------- 21 | !unquoted procedure $SpriteDecorator($MySprite, $alias, $description="", $label="", $technology="", $scale=1, $colour="red") 22 | 23 | rectangle $alias as " 24 | <<$alias>> 25 | $label 26 | <$MySprite*$scale> 27 | //[$technology]// 28 | 29 | $description" 30 | !endprocedure 31 | 32 | 'add a new shape parameter 33 | '--------------------------------------------------- 34 | !unquoted procedure $SpriteDecorator2($MySprite, $alias, $description="", $label="", $technology="", $scale=1, $colour="red", $shape="node") 35 | 36 | $shape $alias as " 37 | <<$alias>> 38 | $label 39 | <$MySprite*$scale> 40 | //[$technology]// 41 | 42 | $description" 43 | !endprocedure 44 | 45 | 'add a new shape parameter + a mystery parameter 46 | '--------------------------------------------------- 47 | !unquoted procedure $SpriteDecorator3($MySprite, $alias, $description="", $label="", $technology="", $scale=1, $colour="red", $shape="cloud", $mystery="x?x?") 48 | 49 | $shape $alias as " 50 | <<$alias>> 51 | $label 52 | <$MySprite*$scale> 53 | //[$technology]// 54 | 55 | $description $mystery" 56 | !endprocedure 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | ' Define our decorators that we know now - and can easily define new ones in future with as manty new parameters 65 | ' as we want, that we don't even know about yet 66 | $SpriteDecorator("$Batch", "somealias1") 67 | $SpriteDecorator2("$Batch", "somealias_2", $shape="node") 68 | $SpriteDecorator3("$Batch", "somealias_3", $shape="cloud", $mystery="0") 69 | 70 | 71 | 72 | 'this does not work directly as $SpriteDecorator - so we do indirect as the following line 73 | !$dyn = "$Sprite"+ "Decorator" 74 | %invoke_procedure($dyn, "$Batch", "somealias_dyn1") 75 | 76 | !$dyn2 = "$Sprite"+ "Decorator2" 77 | %invoke_procedure($dyn2, "$Batch", "somealias_dyn2") 78 | 79 | !$dyn3 = "$Sprite"+ "Decorator3" 80 | %invoke_procedure($dyn3, "$Batch", "somealias_dyn3") 81 | 82 | 83 | 84 | 85 | 'stdlib macros pass the sprite to the decorator - and the other parameters 86 | 'all this would happen in an all.puml file per sprite category 87 | '================================================================================================== 88 | 89 | 90 | 91 | !unquoted procedure $BATCH($alias, $description="", $label="", $technology="", $scale=1, $colour="red") 92 | $SpriteDecorator($Batch, $alias, $description, $label, $technology, $scale, $colour) 93 | !endprocedure 94 | 95 | $BATCH("sdsd", "", "") 96 | 97 | 98 | 99 | !unquoted procedure $BATCH_DYN($dynamic, $Batch, $alias) 100 | %invoke_procedure($dyn, $Batch, $alias) 101 | 102 | !endprocedure 103 | 104 | $BATCH_DYN(dyn2, $Batch, "sdasdf") 105 | $BATCH_DYN(dyn2, $Batch, "test") 106 | $BATCH_DYN(dyn2, $Batch, "test2") 107 | 108 | 109 | 110 | 'if this works, then can add named arguments 111 | @enduml -------------------------------------------------------------------------------- /docs/Stdlib/dynamic4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/Stdlib/dynamic4.png -------------------------------------------------------------------------------- /docs/Stdlib/dynamic5.5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/Stdlib/dynamic5.5.png -------------------------------------------------------------------------------- /docs/Stdlib/modes.txt: -------------------------------------------------------------------------------- 1 | #Legacy 2 | #ordering does matter 3 | ExistingMacro("alias", "label", "techn", "descr") 4 | 5 | #Standard 6 | #keyword arguments for all parameters 7 | #ordering does NOT matter 8 | NewMacro(alias="myalias", label="mylabel", techn="mytechn", descr="mydescr", newParam1="whatever", newParam2=3) 9 | NewMacro(techn="mytechn", alias="myalias", descr="mydescr", newParam1="whatever", label="mylabel", newParam2=3) 10 | 11 | #Mixed 12 | #if we don't use keyword arguments then same as ExistingMacro 13 | #ordering does matter 14 | NewMacro("alias", "label", "techn", "descr") 15 | 16 | #ordering does matter for existing parameters only 17 | NewMacro("alias", "label", "techn", "descr", newParam1="whatever", newParam2=3) -------------------------------------------------------------------------------- /docs/Stdlib/pre-processing.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | 'all sprites in a category would be included in an all.puml file for that category 4 | '================================================================================================== 5 | 6 | 'create equivalent of icons shown here https://github.com/awslabs/aws-icons-for-plantuml 7 | sprite $Batch [64x64/16z] { 8 | xLQ7bjim30CdzFzVtEV1iErPkJpT7iYm5aWDKERujFZ5Bp8YkSvM011VfMzSDy2Mw1JidbCGAtmllmbPuIkoImjyGUsyBV4LV95_Xny50bpW4uTRAjOKu81b 9 | Xa0vbX3OKFG5C0IMNLyxXA_3PvW5hqHSOFBP_Ovk4036hYi0pJdTCgqD6A0g4FQ0hOwygxSikGOanw11AuvtomxXjNiRDECmn21xxTkJP0N4tdy1Gmu5T2GW 10 | 6ygFL_sqbx3NvA_FVtt_ri_F1CZNra-10TpNhvVr2KGcyVCOdoBySlpv-jC1ZSVveO36_Fwb0UASqGqG0QpfJgP2Eo60u59-fLVozhhdNk2WTeDpq2O6AAL_ 11 | uV7KGPNO2lya17gz1pMiD1VmFNH9IBLNe3xA3q07eNsMy_WdXESwU4jRmddEk-FUuPFjjthiqAEGVUz8rlqmsK1nhtYlklvp7vWRfka0jUNITUdTzgxFyzLx 12 | -Ikh_YdmYr_y0G 13 | } 14 | 15 | 'https://github.com/awslabs/aws-icons-for-plantuml/blob/master/dist/ARVR/ARVR.puml 16 | sprite $Arvr [64x64/16z] { 17 | xTG3WiH054NHzutP_th7RHkfsmnEdE1HZMZsIn0_DGDuuVsZJwnMVJ-57txuuKrsP4Tv1mjl3Nw43qZlo147VO9xPueyu8j1l3jm7V0GtPFWe8_UKzpL3rzc 18 | TO4l0gZEzufCsDd-rnhoN2zKtKLoWk-bkHq--vabr0TypEy_WiwEmc9K7FATAd_fVDwOZygdU_uEF_pmLgUMA_wChkV1SavCc4LdXNVe2m 19 | } 20 | 21 | 'https://github.com/awslabs/aws-icons-for-plantuml/blob/master/dist/ARVR/Sumerian.puml 22 | sprite $Sumerian [64x64/16z] { 23 | xPO5qkim38HN3FU_xuE29mMx-Hbtg4to6GIZxVVJhtvLLI-XbK2QJo6sVv90JA3SImUJRVuAjBeDl8zE0G2EyVy42d87NGOmGG0vVHuu7iRWZt4daBUWWW6j 24 | 8w_zNufuHES9KgxpKjr5o6CKQyh5uGi59BTfEuR1GHvEi6cu0N2sWE8sb99j03370L41CkryG9FQh6rTffOJlEWGLz-cbv5N4Pqh83Vf5THL67BA-qXltEu_ 25 | 2XWrtrzlzZUfwuBCdjy_3ilGeY0Pgmj0NO5ehtb1vh9c0OhsaV_Qfa_hKUzKUDIs_eJgy7myMFEPLzinwd3nSQ0rpwYR_kiWmAgVmezmYuKSJ_94VZJDABad 26 | y4EnAVcdyy4Xo6H_7g-02Se1oIVprMqKX_YdW9_AEtjtdVlNiykVmAS0Tjd_1exTl8wS3Ju5q5sydGux-94Dty4xGtfeyAEewG4FQCvv0vQy0b8zvuiN_EYw 27 | AHy0nu8Ue-gMJrFBOgjTKr_pYfyChlaOjDhmay6vj0xaWvyFxdKOyiYlZSFQGGZIVMbSrhaa46WOf-dmcOS1a3mPjp9mFqqf77FZ-7JZ-Y76UQvV_Uel 28 | } 29 | 30 | 31 | ' sprite decorator is defined once only - not once per sprite as per current puml files in stdlib 32 | '================================================================================================== 33 | 34 | ' We define 1 or more sprite decorators in stdlib 35 | '--------------------------------------------------- 36 | !unquoted procedure $SpriteDecorator($MySprite, $alias, $description="", $label="", $technology="", $scale=1, $colour="red") 37 | 38 | rectangle $alias as " 39 | <<$alias>> 40 | $label 41 | <$MySprite*$scale> 42 | //[$technology]// 43 | 44 | $description" 45 | !endprocedure 46 | 47 | 'stdlib macros pass the sprite to the decorator - and the other parameters 48 | 'all this would happen in an all.puml file per sprite category 49 | '================================================================================================== 50 | !unquoted procedure $BATCH($alias, $description="", $label="", $technology="", $scale=1, $colour="red") 51 | $SpriteDecorator($Batch, $alias, $description, $label, $technology, $scale, $colour) 52 | !endprocedure 53 | 54 | !unquoted procedure $ARVR($alias, $description="", $label="", $technology="", $scale=1, $colour="red") 55 | $SpriteDecorator($Arvr, $alias, $description, $label, $technology, $scale, $colour) 56 | !endprocedure 57 | 58 | !unquoted procedure $SUMERIAN($alias, $description="", $label="", $technology="", $scale=1, $colour="red") 59 | $SpriteDecorator($Sumerian, $alias, $description, $label, $technology, $scale, $colour) 60 | !endprocedure 61 | 62 | 63 | 64 | 65 | 'user code 66 | '================ 67 | $BATCH(BATCH, $scale=2) 68 | 69 | $ARVR(ARVR, "description\non several lines", $scale=.9, $colour="blue") 70 | 71 | $SUMERIAN(SUMERIAN, "other description", $label="sdsd", $scale=1.4) 72 | 73 | 74 | 'TODO: play with this to see if "Dynamic invocation" could be useful here? 75 | ' i.e. given 76 | ' a sprite 77 | ' a decorator function/procedure with params ($alias, $description, $label, $technology, $scale, $colour) 78 | ' %call_user_func("decorator", "$sprite") 79 | ' this would reduce the duplication even further in examples below 80 | @enduml 81 | -------------------------------------------------------------------------------- /docs/Stdlib/sequence.puml: -------------------------------------------------------------------------------- 1 | @startuml Sequence Diagram - Spots and stereotypes 2 | 3 | 'source from https://github.com/awslabs/aws-icons-for-plantuml 4 | 5 | !define AWSPuml https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/master/dist 6 | !includeurl AWSPuml/AWSCommon.puml 7 | !includeurl AWSPuml/Compute/all.puml 8 | !includeurl AWSPuml/Mobile/APIGateway.puml 9 | !includeurl AWSPuml/General/InternetGateway.puml 10 | !includeurl AWSPuml/Database/DynamoDB.puml 11 | 12 | actor User as user 13 | APIGatewayParticipant(api, Credit Card System, All methods are POST) 14 | LambdaParticipant(lambda,AuthorizeCard,) 15 | DynamoDBParticipant(db, PaymentTransactions, sortkey=transaction_id+token) 16 | InternetGatewayParticipant(processor, Authorizer, Returns status and token) 17 | 18 | user -> api: Process transaction\nPOST /prod/process 19 | api -> lambda: Invokes lambda with cardholder details 20 | lambda -> processor: Submit via API token\ncard number, expiry, CID 21 | processor -> processor: Validate and create token 22 | processor -> lambda: Returns status code and token 23 | lambda -> db: PUT transaction id, token 24 | lambda -> api: Returns\nstatus code, transaction id 25 | api -> user: Returns status code 26 | @enduml -------------------------------------------------------------------------------- /docs/Stdlib/stdlibFileLayout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/Stdlib/stdlibFileLayout.png -------------------------------------------------------------------------------- /docs/Stdlib/stdlibFileLayout.puml: -------------------------------------------------------------------------------- 1 | @startsalt 2 | { 3 | {T 4 | + **PlantUML stdlib** 5 | ++ **library** e.g. awslib 6 | +++ **library category** e.g. awslib/ARVR 7 | ++++ **sprite** e.g. awslib/ARVR/Sumerian 8 | ++++ **all.puml** file e.g. awslib/ARVR/all.puml 9 | 10 | } 11 | } 12 | @endsalt 13 | -------------------------------------------------------------------------------- /docs/StdlibUnderTheHood/1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !include 4 | !include 5 | 6 | rectangle "<$Batch>" 7 | 8 | 'NOTE that if we add a more than one call - nothing happens! We're missing an "as x" 9 | rectangle "<$Batch>" 10 | 11 | @enduml 12 | -------------------------------------------------------------------------------- /docs/StdlibUnderTheHood/2.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !include 4 | !include 5 | 6 | rectangle "<$Batch>" 7 | 8 | 'NOTE that if we add a more than one call - nothing happens! Need to change the second one to "as whateverElse" 9 | rectangle "<$Batch>" as whatever 10 | rectangle "<$Batch>" as whatever 11 | @enduml -------------------------------------------------------------------------------- /docs/StdlibUnderTheHood/3.1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !include 4 | !include 5 | 6 | @enduml -------------------------------------------------------------------------------- /docs/StdlibUnderTheHood/3.2.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !include 4 | !include 5 | 6 | @enduml 7 | -------------------------------------------------------------------------------- /docs/StdlibUnderTheHood/3.3.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !include 4 | !include 5 | 6 | listsprites 7 | 8 | @enduml 9 | -------------------------------------------------------------------------------- /docs/StdlibUnderTheHood/3.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | sprite $Batch [64x64/16z] { 4 | xLQ7bjim30CdzFzVtEV1iErPkJpT7iYm5aWDKERujFZ5Bp8YkSvM011VfMzSDy2Mw1JidbCGAtmllmbPuIkoImjyGUsyBV4LV95_Xny50bpW4uTRAjOKu81b 5 | Xa0vbX3OKFG5C0IMNLyxXA_3PvW5hqHSOFBP_Ovk4036hYi0pJdTCgqD6A0g4FQ0hOwygxSikGOanw11AuvtomxXjNiRDECmn21xxTkJP0N4tdy1Gmu5T2GW 6 | 6ygFL_sqbx3NvA_FVtt_ri_F1CZNra-10TpNhvVr2KGcyVCOdoBySlpv-jC1ZSVveO36_Fwb0UASqGqG0QpfJgP2Eo60u59-fLVozhhdNk2WTeDpq2O6AAL_ 7 | uV7KGPNO2lya17gz1pMiD1VmFNH9IBLNe3xA3q07eNsMy_WdXESwU4jRmddEk-FUuPFjjthiqAEGVUz8rlqmsK1nhtYlklvp7vWRfka0jUNITUdTzgxFyzLx 8 | -Ikh_YdmYr_y0G 9 | } 10 | @enduml 11 | 12 | -------------------------------------------------------------------------------- /docs/StdlibUnderTheHood/4.1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | sprite $Batch [64x64/16z] { 4 | xLQ7bjim30CdzFzVtEV1iErPkJpT7iYm5aWDKERujFZ5Bp8YkSvM011VfMzSDy2Mw1JidbCGAtmllmbPuIkoImjyGUsyBV4LV95_Xny50bpW4uTRAjOKu81b 5 | Xa0vbX3OKFG5C0IMNLyxXA_3PvW5hqHSOFBP_Ovk4036hYi0pJdTCgqD6A0g4FQ0hOwygxSikGOanw11AuvtomxXjNiRDECmn21xxTkJP0N4tdy1Gmu5T2GW 6 | 6ygFL_sqbx3NvA_FVtt_ri_F1CZNra-10TpNhvVr2KGcyVCOdoBySlpv-jC1ZSVveO36_Fwb0UASqGqG0QpfJgP2Eo60u59-fLVozhhdNk2WTeDpq2O6AAL_ 7 | uV7KGPNO2lya17gz1pMiD1VmFNH9IBLNe3xA3q07eNsMy_WdXESwU4jRmddEk-FUuPFjjthiqAEGVUz8rlqmsK1nhtYlklvp7vWRfka0jUNITUdTzgxFyzLx 8 | -Ikh_YdmYr_y0G 9 | } 10 | 11 | rectangle "<$Batch>" 12 | 13 | @enduml 14 | -------------------------------------------------------------------------------- /docs/StdlibUnderTheHood/4.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | 4 | sprite $Batch [64x64/16z] { 5 | xLQ7bjim30CdzFzVtEV1iErPkJpT7iYm5aWDKERujFZ5Bp8YkSvM011VfMzSDy2Mw1JidbCGAtmllmbPuIkoImjyGUsyBV4LV95_Xny50bpW4uTRAjOKu81b 6 | Xa0vbX3OKFG5C0IMNLyxXA_3PvW5hqHSOFBP_Ovk4036hYi0pJdTCgqD6A0g4FQ0hOwygxSikGOanw11AuvtomxXjNiRDECmn21xxTkJP0N4tdy1Gmu5T2GW 7 | 6ygFL_sqbx3NvA_FVtt_ri_F1CZNra-10TpNhvVr2KGcyVCOdoBySlpv-jC1ZSVveO36_Fwb0UASqGqG0QpfJgP2Eo60u59-fLVozhhdNk2WTeDpq2O6AAL_ 8 | uV7KGPNO2lya17gz1pMiD1VmFNH9IBLNe3xA3q07eNsMy_WdXESwU4jRmddEk-FUuPFjjthiqAEGVUz8rlqmsK1nhtYlklvp7vWRfka0jUNITUdTzgxFyzLx 9 | -Ikh_YdmYr_y0G 10 | } 11 | 12 | "<$Batch>" 13 | 14 | @enduml 15 | -------------------------------------------------------------------------------- /docs/StdlibUnderTheHood/5.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !include 4 | !include 5 | 6 | rectangle "<$Batch>" 7 | 8 | 'this overides/specifies a color as red 9 | rectangle "<$Batch>" 10 | @enduml 11 | -------------------------------------------------------------------------------- /docs/StdlibUnderTheHood/6.1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !include 4 | !include 5 | !include 6 | 7 | 8 | 'Use the Compute icon here for contrast 9 | 'this uses a macro - and hardcodes the color - color copyNpasted from Batch.puml file 10 | '=================================================================================== 11 | !define Compute(e_alias) rectangle "<$Compute>" 12 | Compute(Compute) 13 | Compute(Compute) as something 14 | 15 | 16 | ' This uses the AWSEntity macros defined in Batch.puml 17 | ' the end result is same as above - but we use the e_alias so that multiple calls show 18 | '=================================================================================== 19 | !definelong AWSEntity(e_sprite, e_color) 20 | rectangle "<$e_sprite>" 21 | !enddefinelong 22 | 23 | ' Batch.puml 24 | !define Batch(e_alias, scale) AWSEntity(Batch*scale, #D86613) as e_alias 25 | Batch(whatever,2) 26 | Batch(whateverElse,5) 27 | Batch(3.13xyz, 0.3) 28 | 29 | 30 | @enduml 31 | -------------------------------------------------------------------------------- /docs/StdlibUnderTheHood/6.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !include 4 | !include 5 | !include 6 | 7 | 8 | 9 | 'Use the Compute icon here for contrast 10 | 'this uses a macro - and hardcodes the color - color copyNpasted from Batch.puml file 11 | '=================================================================================== 12 | !define Compute(e_alias) rectangle "<$Compute>" 13 | Compute(Compute) 14 | Compute(Compute) as something 15 | 16 | 17 | ' This uses the AWSEntity macros defined in Batch.puml 18 | ' the end result is same as above - but we use the e_alias so that multiple calls show 19 | '=================================================================================== 20 | !definelong AWSEntity(e_sprite, e_color) 21 | rectangle "<$e_sprite>" 22 | !enddefinelong 23 | 24 | ' Batch.puml 25 | !define Batch(e_alias) AWSEntity(Batch, #D86613) as e_alias 26 | 27 | Batch(whatever) 28 | Batch(whateverElse) 29 | Batch(3.13xyz) 30 | 31 | 32 | @enduml 33 | -------------------------------------------------------------------------------- /docs/_plantumllogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/_plantumllogo.png -------------------------------------------------------------------------------- /docs/_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/_play.png -------------------------------------------------------------------------------- /docs/about/Sections.rst: -------------------------------------------------------------------------------- 1 | ******************************************************************************* 2 | Sections of the Guide 3 | ******************************************************************************* 4 | 5 | .. _vision: https://www.scaledagileframework.com/vision/ 6 | .. _PlantUML: https://www.plantuml.com/ 7 | .. _PlantUMLStdlib: https://plantuml.com/stdlib 8 | .. _PlantUMLPreProcessor: https://plantuml.com/preprocessing 9 | .. _PlantUMLStdlibRFC: https://github.com/plantuml/rfc-for-standard-plantuml-stdlib 10 | 11 | .. _Twice: https://en.wikipedia.org/wiki/Joseph_Joubert 12 | 13 | 14 | 15 | .. csv-table:: 16 | :header: "Sections of the Guide" 17 | :widths: 15, 30 18 | 19 | "**Introduction**", "Sets context for PlantUML and this guide." 20 | "**Using Standard Library**", "Examples of what PlantUMLStdlib_ can do and how it does it." 21 | "**PlantUML Features**", "Details on the relevant PlantUML features for drawing diagrams. Some of these are lesser known or undocumented." 22 | "**Understanding Standard Library**", "My notes and experiments from trying to understand PlantUMLStdlib._" 23 | "**Standardising Standard Library**", "Sets the context for why PlantUMLStdlib_ should be standardised to benefit users and developers. This was the driver for the PlantUMLStdlibRFC_." 24 | "**Future**", "Some thoughts to be explored and progressed." 25 | "**Annex Standard Library C4**", "Details on C4 in general, and as supported in PlantUMLStdlib_." 26 | "**Annex**", "Other items that may help the user, or set context." 27 | -------------------------------------------------------------------------------- /docs/about/mindmapfuture.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | 18 | * Future 19 | ** A Showcase Template Site 20 | ** Hyperlinked Interactive Diagrams 21 | *** Demo of this 22 | ** Machine Processing Of Text Files 23 | *** Automated feedback to the user 24 | *** Auto creation of PlantUML source code from an image via optical recognition 25 | ** Architecture Icon Sets 26 | ** Security Modeling 27 | *** Data flows 28 | *** Threat models 29 | ** Github Actions and Workflows 30 | *** Automated creation of icon sets 31 | *** Automated build of documentation 32 | ** Guide for PlantUML Diagrams 33 | ** Interactive Notebook Guide 34 | 35 | @endmindmap -------------------------------------------------------------------------------- /docs/about/plantuml.github.io.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/about/plantuml.github.io.png -------------------------------------------------------------------------------- /docs/about/plantumllogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/about/plantumllogo.png -------------------------------------------------------------------------------- /docs/about/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/about/play.png -------------------------------------------------------------------------------- /docs/about/style.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Montserrat:400,500,600,700'); 2 | 3 | * { 4 | -webkit-box-sizing: border-box; 5 | -moz-box-sizing: border-box; 6 | box-sizing: border-box; 7 | } 8 | 9 | body { 10 | font-family: "Montserrat"; 11 | } 12 | 13 | a { 14 | text-decoration: none; 15 | color: orange; 16 | } 17 | 18 | h2 { 19 | color: #000; 20 | margin: 2rem 0 .5rem; 21 | font-size: 1.25rem; 22 | font-weight: 400; 23 | text-transform: uppercase; 24 | } 25 | 26 | img { 27 | display: block; 28 | border: 0; 29 | width: 100%; 30 | height: auto; 31 | } 32 | 33 | /*************************** Cards *******************************/ 34 | 35 | .cards { 36 | display: grid; 37 | grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); /* see notes below */ 38 | grid-auto-rows: minmax(200px, auto); 39 | grid-gap: 1rem; 40 | } 41 | 42 | .card { 43 | /*height: 200px;*/ 44 | /*background: red;*/ 45 | border: 2px solid #e7e7e7; 46 | border-radius: 4px; 47 | padding: .5rem; 48 | -webkit-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.15); 49 | box-shadow: 0 2px 2px rgba(0, 0, 0, 0.15); 50 | display: flex; 51 | /* -webkit-box-orient: vertical; */ 52 | /* -webkit-box-direction: normal; */ 53 | -ms-flex-direction: column; 54 | flex-direction: column; 55 | position: relative; 56 | color: #5d5e5e; 57 | } /* li item */ 58 | 59 | .thumbnail img { 60 | fill: #c7c4c4; 61 | height: 135px; 62 | opacity: .25; 63 | padding: 1.5rem; 64 | } 65 | 66 | .card-content { 67 | font-size: .75rem; 68 | display: flex; 69 | -webkit-box-orient: vertical; 70 | -webkit-box-direction: normal; 71 | -ms-flex-direction: column; 72 | flex-direction: column; 73 | -webkit-box-flex: 1; 74 | -ms-flex: 1; 75 | flex: 1; 76 | } 77 | 78 | .panel.card-panel .panel-header { 79 | background-color: #ffffff; 80 | font-size: .75rem; 81 | font-weight: 400; 82 | height: 25px !important; 83 | } 84 | 85 | .panel.card-panel .panel-content { 86 | -webkit-box-flex: 1; 87 | -ms-flex: 1; 88 | flex: 1; 89 | } 90 | 91 | .category { 92 | font-size: .75rem; 93 | text-transform: uppercase; 94 | } 95 | 96 | footer { 97 | border-top: 2px solid #e7e7e7; 98 | margin: .5rem 0 0; 99 | min-height: 30px; 100 | font-size: .5rem; 101 | } 102 | 103 | .category { 104 | position: absolute; 105 | top: 110px; 106 | left: 0; 107 | color: #fff; 108 | background: #e74c3c; 109 | padding: 10px 15px; 110 | font-size: 14px; 111 | font-weight: 600; 112 | text-transform: uppercase; 113 | } 114 | 115 | .category__01 { 116 | background-color: #751e41; 117 | } 118 | 119 | .category__02 { 120 | background-color: #faa141; 121 | } 122 | 123 | .category__03 { 124 | background-color: #51bb7b; 125 | } 126 | 127 | .category__04 { 128 | background-color: #220875; 129 | } 130 | 131 | .category__05 { 132 | background-color: #5d5e5e; 133 | } 134 | 135 | .post-meta { 136 | margin-top: .5rem; 137 | } 138 | 139 | .comments { 140 | margin-left: .5rem; 141 | } 142 | 143 | 144 | .hero { 145 | /* Photo by mnm.all on Unsplash */ 146 | background: url('images/banner.png') left; 147 | /* background-size: 10%; */ 148 | background-size: cover; 149 | background-repeat: no-repeat; 150 | padding: 1rem 2rem; 151 | 152 | /* Grid styles */ 153 | /*display: grid;*/ 154 | align-items: left; 155 | /*grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));*/ 156 | } 157 | -------------------------------------------------------------------------------- /docs/aws/1.1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | 7 | listsprites 8 | @enduml -------------------------------------------------------------------------------- /docs/aws/1.2.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | 7 | EC2(EC2, "Smadex Service", " ") 8 | Users(Users, "Users", " ") 9 | TraditionalServer(TraditionalServer, "Ad Exchange", " ") 10 | Mobile(Mobile, "Publisher app or web", " ") 11 | 12 | @enduml -------------------------------------------------------------------------------- /docs/aws/1.3.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | 8 | EC2(EC2, "Smadex Service", " ") 9 | Users(Users, "Users", " ") 10 | TraditionalServer(TraditionalServer, "Ad Exchange", " ") 11 | Mobile(Mobile, "Publisher app or web", " ") 12 | 13 | @enduml -------------------------------------------------------------------------------- /docs/aws/1.4.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | 8 | EC2(Smadex, "Smadex Service", " ") 9 | Users(Users, "Users", " ") 10 | TraditionalServer(AdExchange, "Ad Exchange", " ") 11 | Mobile(Mobile, "Publisher app or web", " ") 12 | 13 | Users -down-> Mobile: 1. Visits 14 | Mobile -right-> AdExchange: 2. Start auction 15 | AdExchange -right-> Smadex: 3. Bid request / response 16 | Smadex -left-> Mobile: 4. Show Ad 17 | Users -right-> Smadex: 5. Impression / click / install / event {request id} 18 | @enduml -------------------------------------------------------------------------------- /docs/aws/1.5.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | 8 | ' skinparam linetype polyline 9 | skinparam linetype ortho 10 | 11 | EC2(Smadex, "Smadex Service", " ") 12 | Users(Users, "Users", " ") 13 | TraditionalServer(AdExchange, "Ad Exchange", " ") 14 | Mobile(Mobile, "Publisher app or web", " ") 15 | 16 | Users -down-> Mobile: 1. Visits 17 | Mobile -right-> AdExchange: 2. Start auction 18 | AdExchange -right-> Smadex: 3. Bid request / response 19 | Smadex -left-> Mobile: 4. Show Ad 20 | Users -right-> Smadex: 5. Impression / click / install / event {request id} 21 | @enduml 22 | 23 | -------------------------------------------------------------------------------- /docs/aws/1.6.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | 8 | skinparam linetype polyline 9 | ' skinparam linetype ortho 10 | 11 | EC2(Smadex, "Smadex Service", " ") 12 | Users(Users, "Users", " ") 13 | TraditionalServer(AdExchange, "Ad Exchange", " ") 14 | Mobile(Mobile, "Publisher app or web", " ") 15 | 16 | Users -down-> Mobile: 1. Visits 17 | Mobile -right-> AdExchange: 2. Start auction 18 | AdExchange -right-> Smadex: 3. Bid request / response 19 | Smadex -left-> Mobile: 4. Show Ad 20 | Users -right-> Smadex: 5. Impression / click / install / event {request id} 21 | @enduml -------------------------------------------------------------------------------- /docs/aws/1.7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/aws/1.7.png -------------------------------------------------------------------------------- /docs/aws/1.7.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | !include 8 | 9 | skinparam linetype polyline 10 | ' skinparam linetype ortho 11 | 12 | package "AWS Cloud" { 13 | EC2(Smadex, "Smadex Service", " ") 14 | } 15 | 16 | Users(Users, "Users", " ") 17 | TraditionalServer(AdExchange, "Ad Exchange", " ") 18 | Mobile(Mobile, "Publisher app or web", " ") 19 | 20 | Users -down-> Mobile: 1. Visits 21 | Mobile -right-> AdExchange: 2. Start auction 22 | AdExchange -right-> Smadex: 3. Bid request / response 23 | Smadex -left-> Mobile: 4. Show Ad 24 | Users -right-> Smadex: 5. Impression / click / install / event {request id} 25 | @enduml -------------------------------------------------------------------------------- /docs/aws/1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | 7 | EC2(EC2, "label", "tech") 8 | Users(Users, "label", "tech") 9 | TraditionalServer(TraditionalServer, "label", "tech") 10 | Mobile(Mobile, "label", "tech") 11 | 12 | @enduml -------------------------------------------------------------------------------- /docs/aws/2.1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | !include 8 | !include 9 | !include 10 | !include 11 | !include 12 | !include 13 | !include 14 | !include 15 | 16 | 17 | 18 | 'Compute/General 19 | 'Storage/SimpleStorageServiceS3.png 20 | 'ApplicationIntegration/SQS.png 21 | 'Compute/Lambda.png 22 | 'Compute/EC2 23 | 'ManagementAndGovernance/CloudWatch.png 24 | 'CustomerEngagement/SESEmail.png 25 | 'MachineLearning/SageMaker.png 26 | ''Mobile/APIGateway.png 27 | 'NetworkingAndContentDelivery/APIGateway2.png 28 | 'Database/Aurora.png 29 | 'ApplicationIntegration/SQSQueue.png 30 | 31 | 32 | skinparam linetype polyline 33 | ' skinparam linetype ortho 34 | 35 | package EC2_Instance { 36 | General(IngestionApp, "Ingestion App", " ") 37 | General(ChunkingApp, "Chunking Orchestration App", " ") 38 | } 39 | 40 | SimpleStorageServiceS3(S3Staging, "Amazon S3 Staging Bucket", " ") 41 | SQS(SQSIngest, "Amazon SQS Ingest Queue", " ") 42 | 43 | Lambda(LambdaTrigger, "AWS Lambda Trigger Function", " ") 44 | 45 | LambdaTrigger -up-> IngestionApp 46 | IngestionApp -up-> SQSIngest 47 | SQSIngest -down-> ChunkingApp 48 | S3Staging -down-> EC2_Instance 49 | 50 | 'Users -down-> Mobile: 1. Visits 51 | 'Mobile -right-> AdExchange: 2. Start auction 52 | 53 | 54 | 55 | @enduml -------------------------------------------------------------------------------- /docs/aws/2.2.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | !include 8 | !include 9 | !include 10 | !include 11 | !include 12 | !include 13 | !include 14 | !include 15 | 16 | 17 | 18 | 'Compute/General 19 | 'Storage/SimpleStorageServiceS3.png 20 | 'ApplicationIntegration/SQS.png 21 | 'Compute/Lambda.png 22 | 'Compute/EC2 23 | 'ManagementAndGovernance/CloudWatch.png 24 | 'CustomerEngagement/SESEmail.png 25 | 'MachineLearning/SageMaker.png 26 | ''Mobile/APIGateway.png 27 | 'NetworkingAndContentDelivery/APIGateway2.png 28 | 'Database/Aurora.png 29 | 'ApplicationIntegration/SQSQueue.png 30 | 31 | 32 | skinparam linetype polyline 33 | ' skinparam linetype ortho 34 | 35 | 'top left section 36 | '------------------------------------------------------------- 37 | package EC2_Instance { 38 | General(IngestionApp, "Ingestion App", " ") 39 | General(ChunkingApp, "Chunking Orchestration App", " ") 40 | } 41 | 42 | SimpleStorageServiceS3(S3Staging, "Amazon S3 Staging Bucket", " ") 43 | SQS(SQSIngest, "Amazon SQS Ingest Queue", " ") 44 | 45 | Lambda(LambdaTrigger, "AWS Lambda Trigger Function", " ") 46 | 47 | LambdaTrigger -up-> IngestionApp 48 | IngestionApp -up-> SQSIngest 49 | SQSIngest -down-> ChunkingApp 50 | S3Staging -down-> EC2_Instance 51 | 52 | 'top right section 53 | '------------------------------------------------------------- 54 | SQS(SQSLargeFileQueue, "Amazon SQS Large File Queue", " ") 55 | SQS(SQSSmallFileQueue, "Amazon SQS Small File Queue", " ") 56 | SQS(SQSSingleFileQueue, "Amazon SQS Single File Queue", " ") 57 | 58 | EC2(LargeFileAppEC2, "Large File Chunking App on EC2", " ") 59 | Lambda(LambdaSmallFileChunking, "Small File Chunking Lambda", " ") 60 | Lambda(ImageConversionLambdaFunction, "Image Conversion Lambda Function", " ") 61 | 62 | SQSQueue(DLQ1, "DLQ", " ") 63 | SQSQueue(DLQ2, "DLQ", " ") 64 | SQSQueue(DLQ3, "DLQ", " ") 65 | 66 | 67 | 68 | ChunkingApp 69 | 70 | 71 | 72 | @enduml -------------------------------------------------------------------------------- /docs/aws/2.3.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | !include 8 | !include 9 | !include 10 | !include 11 | !include 12 | !include 13 | !include 14 | !include 15 | 16 | 17 | 18 | 'Compute/General 19 | 'Storage/SimpleStorageServiceS3.png 20 | 'ApplicationIntegration/SQS.png 21 | 'Compute/Lambda.png 22 | 'Compute/EC2 23 | 'ManagementAndGovernance/CloudWatch.png 24 | 'CustomerEngagement/SESEmail.png 25 | 'MachineLearning/SageMaker.png 26 | ''Mobile/APIGateway.png 27 | 'NetworkingAndContentDelivery/APIGateway2.png 28 | 'Database/Aurora.png 29 | 'ApplicationIntegration/SQSQueue.png 30 | 31 | 32 | 'skinparam linetype polyline 33 | ' skinparam linetype ortho 34 | 35 | 'top left section 36 | '------------------------------------------------------------- 37 | package EC2_Instance { 38 | General(IngestionApp, "Ingestion App", " ") 39 | General(ChunkingApp, "Chunking Orchestration App", " ") 40 | } 41 | 42 | SimpleStorageServiceS3(S3Staging, "Amazon S3 Staging Bucket", " ") 43 | SQS(SQSIngest, "Amazon SQS Ingest Queue", " ") 44 | 45 | Lambda(LambdaTrigger, "AWS Lambda Trigger Function", " ") 46 | 47 | LambdaTrigger -up-> IngestionApp 48 | IngestionApp -up-> SQSIngest 49 | SQSIngest -down-> ChunkingApp 50 | S3Staging -down-> EC2_Instance 51 | 52 | 'top right section 53 | '------------------------------------------------------------- 54 | SQS(SQSLargeFileQueue, "Amazon SQS Large File Queue", " ") 55 | SQS(SQSSmallFileQueue, "Amazon SQS Small File Queue", " ") 56 | SQS(SQSSingleFileQueue, "Amazon SQS Single File Queue", " ") 57 | 58 | EC2(LargeFileChunkingAppEC2, "Large File Chunking App on EC2", " ") 59 | Lambda(LambdaSmallFileChunking, "Small File Chunking Lambda", " ") 60 | Lambda(ImageConversionLambdaFunction, "Image Conversion Lambda Function", " ") 61 | 62 | 'todo dashed line boundary 63 | package DLQ { 64 | SQSQueue(DLQ1, "DLQ", " ") 65 | SQSQueue(DLQ2, "DLQ", " ") 66 | SQSQueue(DLQ3, "DLQ", " ") 67 | } 68 | 69 | ChunkingApp -right-> SQSLargeFileQueue 70 | ChunkingApp -right-> SQSSmallFileQueue 71 | ChunkingApp -right-> SQSSingleFileQueue 72 | 73 | SQSLargeFileQueue -right-> LargeFileChunkingAppEC2 74 | LargeFileChunkingAppEC2 -down-> SQSSmallFileQueue 75 | SQSSmallFileQueue -right-> LambdaSmallFileChunking 76 | LambdaSmallFileChunking -down-> SQSSingleFileQueue 77 | SQSSingleFileQueue -right-> ImageConversionLambdaFunction 78 | 79 | 'todo dashed line 80 | SQSLargeFileQueue -down-> DLQ1 81 | SQSSmallFileQueue -down-> DLQ2 82 | SQSSingleFileQueue -down-> DLQ3 83 | 84 | @enduml 85 | -------------------------------------------------------------------------------- /docs/aws/2.4.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | !include 8 | !include 9 | !include 10 | !include 11 | !include 12 | !include 13 | !include 14 | !include 15 | 16 | 17 | 18 | 'Compute/General 19 | 'Storage/SimpleStorageServiceS3.png 20 | 'ApplicationIntegration/SQS.png 21 | 'Compute/Lambda.png 22 | 'Compute/EC2 23 | 'ManagementAndGovernance/CloudWatch.png 24 | 'CustomerEngagement/SESEmail.png 25 | 'MachineLearning/SageMaker.png 26 | ''Mobile/APIGateway.png 27 | 'NetworkingAndContentDelivery/APIGateway2.png 28 | 'Database/Aurora.png 29 | 'ApplicationIntegration/SQSQueue.png 30 | 31 | 32 | 'skinparam linetype polyline 33 | ' skinparam linetype ortho 34 | 35 | 'top left section 36 | '------------------------------------------------------------- 37 | package EC2_Instance { 38 | General(IngestionApp, "Ingestion App", " ") 39 | General(ChunkingApp, "Chunking Orchestration App", " ") 40 | } 41 | 42 | SimpleStorageServiceS3(S3Staging, "Amazon S3 Staging Bucket", " ") 43 | SQS(SQSIngest, "Amazon SQS Ingest Queue", " ") 44 | 45 | Lambda(LambdaTrigger, "AWS Lambda Trigger Function", " ") 46 | 47 | LambdaTrigger -up-> IngestionApp 48 | IngestionApp -up-> SQSIngest 49 | SQSIngest -down-> ChunkingApp 50 | S3Staging -down-> EC2_Instance 51 | 52 | 'top right section 53 | '------------------------------------------------------------- 54 | SQS(SQSLargeFileQueue, "Amazon SQS Large File Queue", " ") 55 | SQS(SQSSmallFileQueue, "Amazon SQS Small File Queue", " ") 56 | SQS(SQSSingleFileQueue, "Amazon SQS Single File Queue", " ") 57 | 58 | EC2(LargeFileChunkingAppEC2, "Large File Chunking App on EC2", " ") 59 | Lambda(LambdaSmallFileChunking, "Small File Chunking Lambda", " ") 60 | Lambda(ImageConversionLambdaFunction, "Image Conversion Lambda Function", " ") 61 | 62 | 'todo dashed line boundary 63 | package DLQ { 64 | SQSQueue(DLQ1, "DLQ", " ") 65 | SQSQueue(DLQ2, "DLQ", " ") 66 | SQSQueue(DLQ3, "DLQ", " ") 67 | } 68 | 69 | ChunkingApp -right-> SQSLargeFileQueue 70 | ChunkingApp -right-> SQSSmallFileQueue 71 | ChunkingApp -right-> SQSSingleFileQueue 72 | 73 | SQSLargeFileQueue -right-> LargeFileChunkingAppEC2 74 | LargeFileChunkingAppEC2 -down-> SQSSmallFileQueue 75 | SQSSmallFileQueue -right-> LambdaSmallFileChunking 76 | LambdaSmallFileChunking -down-> SQSSingleFileQueue 77 | SQSSingleFileQueue -right-> ImageConversionLambdaFunction 78 | 79 | 'todo dashed line 80 | SQSLargeFileQueue -down-> DLQ1 81 | SQSSmallFileQueue -down-> DLQ2 82 | SQSSingleFileQueue -down-> DLQ3 83 | 84 | 85 | 'bottom right section 86 | '------------------------------------------------------------- 87 | 88 | SimpleStorageServiceS3(S3Images, "Amazon S3 Images Bucket", " ") 89 | EC2(EC2DLQFailsafeApp, "DLQ Failsafe App on EC2", " ") 90 | SQS(SQSConvertedImageQueue, "Amazon SQS Converted Image Queue", " ") 91 | Lambda(LambdaInferenceInvocation, "Inference Invocation Lambda Function", " ") 92 | Aurora(Aurora, "Amazon Aurora", " ") 93 | 'APIGateway(APIGateway, "Amazon API Gateway") 94 | 'SageMaker(SageMaker, "Amazon SageMaker Endpoint") 95 | 96 | DLQ1 -down-> EC2DLQFailsafeApp 97 | DLQ2 -down-> EC2DLQFailsafeApp 98 | DLQ3 -down-> EC2DLQFailsafeApp 99 | 100 | EC2DLQFailsafeApp -right-> S3Images 101 | 102 | ImageConversionLambdaFunction -down-> S3Images 103 | S3Images -down-> SQSConvertedImageQueue 104 | SQSConvertedImageQueue -left-> LambdaInferenceInvocation 105 | LambdaInferenceInvocation -down-> Aurora 106 | 'LambdaInferenceInvocation -left-> APIGateway 107 | 'APIGateway -left-> SageMaker 108 | 109 | 110 | @enduml 111 | -------------------------------------------------------------------------------- /docs/aws/2.5.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | !include 8 | !include 9 | !include 10 | !include 11 | !include 12 | !include 13 | !include 14 | !include 15 | 16 | 17 | 18 | 'Compute/General 19 | 'Storage/SimpleStorageServiceS3.png 20 | 'ApplicationIntegration/SQS.png 21 | 'Compute/Lambda.png 22 | 'Compute/EC2 23 | 'ManagementAndGovernance/CloudWatch.png 24 | 'CustomerEngagement/SESEmail.png 25 | 'MachineLearning/SageMaker.png 26 | ''Mobile/APIGateway.png 27 | 'NetworkingAndContentDelivery/APIGateway2.png 28 | 'Database/Aurora.png 29 | 'ApplicationIntegration/SQSQueue.png 30 | 31 | 32 | 'skinparam linetype polyline 33 | ' skinparam linetype ortho 34 | 35 | 'top left section 36 | '------------------------------------------------------------- 37 | package EC2_Instance { 38 | General(IngestionApp, "Ingestion App", " ") 39 | General(ChunkingApp, "Chunking Orchestration App", " ") 40 | } 41 | 42 | SimpleStorageServiceS3(S3Staging, "Amazon S3 Staging Bucket", " ") 43 | SQS(SQSIngest, "Amazon SQS Ingest Queue", " ") 44 | 45 | Lambda(LambdaTrigger, "AWS Lambda Trigger Function", " ") 46 | 47 | LambdaTrigger -up-> IngestionApp 48 | IngestionApp -up-> SQSIngest 49 | SQSIngest -down-> ChunkingApp 50 | S3Staging -down-> EC2_Instance 51 | 52 | 'top right section 53 | '------------------------------------------------------------- 54 | SQS(SQSLargeFileQueue, "Amazon SQS Large File Queue", " ") 55 | SQS(SQSSmallFileQueue, "Amazon SQS Small File Queue", " ") 56 | SQS(SQSSingleFileQueue, "Amazon SQS Single File Queue", " ") 57 | 58 | EC2(LargeFileChunkingAppEC2, "Large File Chunking App on EC2", " ") 59 | Lambda(LambdaSmallFileChunking, "Small File Chunking Lambda", " ") 60 | Lambda(ImageConversionLambdaFunction, "Image Conversion Lambda Function", " ") 61 | 62 | 'todo dashed line boundary 63 | package DLQ { 64 | SQSQueue(DLQ1, "DLQ", " ") 65 | SQSQueue(DLQ2, "DLQ", " ") 66 | SQSQueue(DLQ3, "DLQ", " ") 67 | } 68 | 69 | ChunkingApp -right-> SQSLargeFileQueue 70 | ChunkingApp -right-> SQSSmallFileQueue 71 | ChunkingApp -right-> SQSSingleFileQueue 72 | 73 | SQSLargeFileQueue -right-> LargeFileChunkingAppEC2 74 | LargeFileChunkingAppEC2 -down-> SQSSmallFileQueue 75 | SQSSmallFileQueue -right-> LambdaSmallFileChunking 76 | LambdaSmallFileChunking -down-> SQSSingleFileQueue 77 | SQSSingleFileQueue -right-> ImageConversionLambdaFunction 78 | 79 | 'todo dashed line 80 | SQSLargeFileQueue -down-> DLQ1 81 | SQSSmallFileQueue -down-> DLQ2 82 | SQSSingleFileQueue -down-> DLQ3 83 | 84 | 85 | 'bottom right section 86 | '------------------------------------------------------------- 87 | 88 | SimpleStorageServiceS3(S3Images, "Amazon S3 Images Bucket", " ") 89 | EC2(EC2DLQFailsafeApp, "DLQ Failsafe App on EC2", " ") 90 | SQS(SQSConvertedImageQueue, "Amazon SQS Converted Image Queue", " ") 91 | Lambda(LambdaInferenceInvocation, "Inference Invocation Lambda Function", " ") 92 | Aurora(Aurora, "Amazon Aurora", " ") 93 | 'APIGateway(AmazonAPIGateway, "Amazon API Gateway") 94 | 'SageMaker(AmazonSageMaker, "Amazon SageMaker Endpoint") 95 | 96 | DLQ1 -down-> EC2DLQFailsafeApp 97 | DLQ2 -down-> EC2DLQFailsafeApp 98 | DLQ3 -down-> EC2DLQFailsafeApp 99 | 100 | EC2DLQFailsafeApp -right-> S3Images 101 | 102 | ImageConversionLambdaFunction -down-> S3Images 103 | S3Images -down-> SQSConvertedImageQueue 104 | SQSConvertedImageQueue -left-> LambdaInferenceInvocation 105 | LambdaInferenceInvocation -down-> Aurora 106 | 'LambdaInferenceInvocation -left-> APIGateway 107 | 'APIGateway -left-> SageMaker 108 | 109 | 110 | 'bottom left section 111 | '------------------------------------------------------------- 112 | 113 | CloudWatch(CloudWatch, "Amazon Cloudwatch", " ") 114 | 'SNS(SNS, "Amazon SNS") 115 | 'SESEmail(SESEmail, "Email Notification") 116 | 117 | CloudWatch -right-> DLQ 118 | 'CloudWatch -down-> SNS 119 | 'SNS -down-> SESEmail 120 | 121 | @enduml 122 | -------------------------------------------------------------------------------- /docs/aws/2.7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/aws/2.7.png -------------------------------------------------------------------------------- /docs/aws/2.8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/aws/2.8.png -------------------------------------------------------------------------------- /docs/aws/3.1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | '!include 5 | '!include 6 | '!include 7 | !include 8 | !include 9 | !include 10 | !include 11 | !include 12 | 13 | listsprites 14 | 15 | 'Appstream2_0 16 | 'AutoScalingGroup 17 | 'EC2Instance 18 | 'InternetAlt1 19 | 'DirectConnect 20 | 'VPCVPNConnection 21 | 'VPCSubnetPublic 22 | 'VPCSubnetPrivate 23 | 'VPCInternetGateway 24 | 'VPCCustomerGateway 25 | 'TransitGateway 26 | 'VPCElasticNetworkInterface 27 | 'ELBNetworkLoadBalancer 28 | 29 | 'Cloudalt 30 | 31 | @enduml -------------------------------------------------------------------------------- /docs/aws/3.2.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | '!include 4 | !include 5 | !include 6 | !include 7 | !include 8 | !include 9 | !include 10 | !include 11 | !include 12 | 13 | 14 | Appstream2_0(Appstream2_0, " ", " ") 15 | AutoScalingGroup(AutoScalingGroup, " ", " ") 16 | EC2Instance(EC2Instance, " ", " ") 17 | InternetAlt1(InternetAlt1, " ", " ") 18 | DirectConnect(DirectConnect, " ", " ") 19 | VPCVPNConnection(VPCVPNConnection, " ", " ") 20 | VPCSubnetPublic(VPCSubnetPublic, " ", " ") 21 | VPCSubnetPrivate(VPCSubnetPrivate, " ", " ") 22 | VPCInternetGateway(VPCInternetGateway, " ", " ") 23 | VPCCustomerGateway(VPCCustomerGateway, " ", " ") 24 | TransitGateway(S3TransitGatewayStaging, " ", " ") 25 | VPCElasticNetworkInterface(VPCElasticNetworkInterface, " ", " ") 26 | ELBNetworkLoadBalancer(ELBNetworkLoadBalancer, " ", " ") 27 | 28 | Cloudalt(Cloudalt, " ", " ") 29 | 30 | @enduml -------------------------------------------------------------------------------- /docs/aws/3.3.1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | !include 8 | !include 9 | !include 10 | !include 11 | !include 12 | 13 | 'https://github.com/plantuml/plantuml-stdlib/blob/master/awslib/GroupIcons/VPCSubnetPrivate.puml 14 | !unquoted procedure $MyBox($MySprite, $alias, $description="", $label="", $technology="", $scale=1, $colour="blue", $shape="rectangle", $BoxSprite="", $Boxalias="", $Boxscale=0.4, $Boxcolour="white", $BoxBackgoundcolour="white", $Boxlabel="" ) 15 | 16 | skinparam rectangle { 17 | backgroundColor<<$alias>> $BoxBackgoundcolour 18 | borderColor<<$alias>> $Boxcolour 19 | shadowing<<$alias>> true 20 | } 21 | $shape $alias <<$alias>> as "<$BoxSprite*$Boxscale> $Boxlabel\n 22 | <$MySprite>\n$label" 23 | 24 | !endprocedure 25 | 26 | '$MyBox($MySprite="$ELBNetworkLoadBalancer", $alias=myalias1, $label="", $colour="D86613", $BoxSprite="$VPCSubnetPrivate", $Boxcolour="3B48CC", $BoxBackgoundcolour="e6fbff", $Boxlabel="Private Subnet") 27 | 28 | '$MyBox($MySprite="$EC2Instance", $alias=myalias2, $label="Proxy Instance", $colour="D86613", $BoxSprite="$VPCSubnetPublic", $Boxcolour="3F8624", $BoxBackgoundcolour="e6ffef", $Boxlabel="Public Subnet") 29 | 30 | 31 | 32 | skinparam rectangle { 33 | backgroundColor<> e6fbff 34 | borderColor<<$box1>> e6fbff 35 | shadowing<<$box1>> true 36 | 37 | backgroundColor<> e6ffef 38 | borderColor<<$box2>> e6ffef 39 | shadowing<<$box2>> true 40 | } 41 | 42 | 43 | 44 | rectangle box2 <> as "<$VPCSubnetPublic*.4> Public Subnet\n 45 | <$EC2Instance>\nProxy Instance" 46 | 47 | rectangle box1 <> as "<$VPCSubnetPrivate*.4> Private Subnet\n 48 | <$ELBNetworkLoadBalancer>\n" 49 | 50 | 51 | package boxAZ1 52 | { 53 | 54 | "<<$box1>>" 55 | } 56 | 57 | 58 | !unquoted procedure $remove() 59 | Appstream2_0(Appstream2_0, " ", " ") 60 | AutoScalingGroup(AutoScalingGroup, " ", " ") 61 | EC2Instance(EC2Instance, " ", " ") 62 | InternetAlt1(InternetAlt1, " ", " ") 63 | DirectConnect(DirectConnect, " ", " ") 64 | VPCVPNConnection(VPCVPNConnection, " ", " ") 65 | VPCSubnetPublic(VPCSubnetPublic, " ", " ") 66 | VPCSubnetPrivate(VPCSubnetPrivate, " ", " ") 67 | VPCInternetGateway(VPCInternetGateway, " ", " ") 68 | VPCCustomerGateway(VPCCustomerGateway, " ", " ") 69 | TransitGateway(S3TransitGatewayStaging, " ", " ") 70 | VPCElasticNetworkInterface(VPCElasticNetworkInterface, " ", " ") 71 | ELBNetworkLoadBalancer(ELBNetworkLoadBalancer, " ", " ") 72 | 73 | Cloudalt(Cloudalt, " ", " ") 74 | !endprocedure 75 | 76 | 77 | @enduml -------------------------------------------------------------------------------- /docs/aws/3.3.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | !include 8 | !include 9 | !include 10 | !include 11 | !include 12 | 13 | 14 | Appstream2_0(Appstream2_0, " ", " ") 15 | AutoScalingGroup(AutoScalingGroup, " ", " ") 16 | EC2Instance(EC2Instance, " ", " ") 17 | InternetAlt1(InternetAlt1, " ", " ") 18 | DirectConnect(DirectConnect, " ", " ") 19 | VPCVPNConnection(VPCVPNConnection, " ", " ") 20 | VPCSubnetPublic(VPCSubnetPublic, " ", " ") 21 | VPCSubnetPrivate(VPCSubnetPrivate, " ", " ") 22 | VPCInternetGateway(VPCInternetGateway, " ", " ") 23 | VPCCustomerGateway(VPCCustomerGateway, " ", " ") 24 | TransitGateway(S3TransitGatewayStaging, " ", " ") 25 | VPCElasticNetworkInterface(VPCElasticNetworkInterface, " ", " ") 26 | ELBNetworkLoadBalancer(ELBNetworkLoadBalancer, " ", " ") 27 | 28 | Cloudalt(Cloudalt, " ", " ") 29 | 30 | @enduml -------------------------------------------------------------------------------- /docs/aws/3.4.1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | !include 8 | !include 9 | !include 10 | !include 11 | !include 12 | 13 | 14 | !unquoted procedure $PublicSubnet($MySprite, $alias, $description="", $label="", $technology="", $scale=1, $colour="blue", $shape="", $textsize="18") 15 | 16 | skinparam rectangle { 17 | backgroundColor<<$alias>> e6ffef 18 | borderColor<<$alias>> e6ffef 19 | shadowing<<$alias>> true 20 | } 21 | rectangle $alias <<$alias>> as " 22 | <$VPCSubnetPublic*.4> Public Subnet\n 23 | <$MySprite>\n$label" 24 | 25 | !endprocedure 26 | 27 | !unquoted procedure $PrivateSubnet($MySprite, $alias, $description="", $label="", $technology="", $scale=1, $colour="blue", $shape="", $textsize="18") 28 | 29 | skinparam rectangle { 30 | backgroundColor<<$alias>> e6fbff 31 | borderColor<<$alias>> e6fbff 32 | shadowing<<$alias>> true 33 | } 34 | rectangle $alias <<$alias>> as " 35 | <$VPCSubnetPrivate*.4> Private Subnet\n 36 | <$MySprite>\n$label" 37 | 38 | !endprocedure 39 | 40 | 41 | 42 | skinparam rectangle { 43 | backgroundColor<> e6fbff 44 | borderColor<<$box1>> e6fbff 45 | shadowing<<$box1>> true 46 | 47 | backgroundColor<> e6ffef 48 | borderColor<<$box2>> e6ffef 49 | shadowing<<$box2>> true 50 | } 51 | 52 | package "AZ" 53 | { 54 | 55 | rectangle box2 <> as "<$VPCSubnetPublic*.4> Public Subnet\n 56 | <$EC2Instance>\nProxy Instance" 57 | 58 | rectangle box1 <> as "<$VPCSubnetPrivate*.4> Private Subnet\n 59 | <$ELBNetworkLoadBalancer>\n" 60 | } 61 | 62 | 63 | 64 | $PublicSubnet($EC2Instance, EC2Instance, "Proxy Instance", $colour="D86613") 65 | 66 | $PrivateSubnet($ELBNetworkLoadBalancer, ELBNetworkLoadBalancer, "Proxy Instance", $colour="D86613") 67 | 68 | @enduml 69 | 70 | -------------------------------------------------------------------------------- /docs/aws/3.4.2.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | !include 8 | !include 9 | !include 10 | !include 11 | !include 12 | 13 | 14 | 15 | !unquoted procedure $PublicSubnet($MySprite, $alias, $description="", $label="", $technology="", $scale=1, $colour="blue", $shape="", $textsize="18") 16 | 17 | skinparam rectangle { 18 | backgroundColor<<$alias>> e6ffef 19 | borderColor<<$alias>> e6ffef 20 | shadowing<<$alias>> true 21 | } 22 | rectangle $alias <<$alias>> as " 23 | <$VPCSubnetPublic*.4> Public Subnet\n 24 | <$MySprite>\n$label" 25 | 26 | !endprocedure 27 | 28 | !unquoted procedure $PrivateSubnet($MySprite, $alias, $description="", $label="", $technology="", $scale=1, $colour="blue", $shape="", $textsize="18") 29 | 30 | skinparam rectangle { 31 | backgroundColor<<$alias>> e6fbff 32 | borderColor<<$alias>> e6fbff 33 | shadowing<<$alias>> true 34 | } 35 | 36 | rectangle $alias <<$alias>> as " 37 | <$VPCSubnetPrivate*.4> Private Subnet\n 38 | <$MySprite>\n$label" 39 | 40 | !endprocedure 41 | 42 | 'AutoScalingGroup(AutoScalingGroup, " ", " ") 43 | 44 | 'VPCInternetGateway(VPCInternetGateway, " ", " ") 45 | 46 | 47 | 'package "BBVA VPC 2" 48 | '{ 49 | 50 | 51 | 52 | 53 | 54 | package "Availability Zone 1" 55 | { 56 | 57 | $PublicSubnet($EC2Instance, EC2Instance1, $label="Proxy Instance", $colour="D86613") 58 | 59 | $PrivateSubnet($ELBNetworkLoadBalancer, ELBNetworkLoadBalancer1, $colour="D86613") 60 | 61 | EC2Instance1 --[hidden]> ELBNetworkLoadBalancer1 62 | 63 | } 64 | 65 | 66 | package "Availability Zone 2" 67 | { 68 | 69 | $PublicSubnet($EC2Instance, EC2Instance2, $label="Proxy Instance", $colour="D86613") 70 | 71 | $PrivateSubnet($ELBNetworkLoadBalancer, ELBNetworkLoadBalancer2, $colour="D86613") 72 | 73 | EC2Instance2 --[hidden]> ELBNetworkLoadBalancer2 74 | 75 | } 76 | '} 77 | 'AutoScalingGroup(AutoScalingGroup, " ", " ") 78 | 79 | @enduml 80 | 81 | -------------------------------------------------------------------------------- /docs/aws/3.4.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | !include 8 | !include 9 | !include 10 | !include 11 | !include 12 | 13 | 14 | skinparam rectangle { 15 | backgroundColor<> e6fbff 16 | borderColor<<$box1>> e6fbff 17 | shadowing<<$box1>> true 18 | 19 | backgroundColor<> e6ffef 20 | borderColor<<$box2>> e6ffef 21 | shadowing<<$box2>> true 22 | } 23 | 24 | package "AZ" 25 | { 26 | 27 | rectangle box2 <> as "<$VPCSubnetPublic*.4> Public Subnet\n 28 | <$EC2Instance>\nProxy Instance" 29 | 30 | rectangle box1 <> as "<$VPCSubnetPrivate*.4> Private Subnet\n 31 | <$ELBNetworkLoadBalancer>\n" 32 | } 33 | @enduml -------------------------------------------------------------------------------- /docs/aws/3.5.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | !include 8 | !include 9 | !include 10 | !include 11 | !include 12 | 13 | skinparam defaultTextAlignment center 14 | 15 | 16 | '/PlantUMLStdlib2.0/docs/C4/acme_c3.puml 17 | skinparam rectangle { 18 | backgroundColor<> e6fbff 19 | borderColor<<$box1>> e6fbff 20 | shadowing<<$box1>> true 21 | 22 | backgroundColor<> e6ffef 23 | borderColor<<$box2>> e6ffef 24 | shadowing<<$box2>> true 25 | } 26 | 27 | 28 | 29 | rectangle box2 <> as "<$VPCSubnetPublic*.4> Public Subnet\n 30 | <$EC2Instance>\nProxy Instance" 31 | 32 | rectangle box1 <> as "<$VPCSubnetPrivate*.4> Private Subnet\n 33 | <$ELBNetworkLoadBalancer>\n" 34 | 35 | 36 | box2 { box1} 37 | 38 | sprite $Cloud [64x64/16z] { 39 | xPG7SiKW30KN93uo8hd_RTCxnVXFfhDJ_JmhkXx-iDbiDjLByNglVAG84DJkAN4844LYW7XSrZF4_3PtDu5qSGetoD-A1VHI0GFx-LqYUa7tW3L9NlSJgTbE 40 | WdjEQUKi7Bm95GcmT1QPr8O5K3E5SkOhHoyDzduoyMG9DUAzs3__dgqWX3fVtUDKBtE_46U7u8dv2Zr0kDNXu8Jay-CrXUWZlRLRYlGBL26jDGVjFeYZMVg8 41 | 6dh7cB2Hi7H98sNLByGs3DHLlnB-tu_ugk-z-Ulw_Xsz0pHarLToz-dcrU63TsFoaXu6ApMGuwp158NRg7A485CY11jNDmdCaLpd4_IMyitNncqscyqp 42 | } 43 | 44 | !define PUML_ENTITY(e_type,e_color,e_sprite,e_label,e_alias,e_stereo) e_type "<$e_sprite>\r e_label" as e_alias <> 45 | 46 | !define AWSCLOUD(alias) PUML_ENTITY(cloud,#F58536,Cloud,alias,Cloud) 47 | 48 | !definelong AWSCLOUD(alias,label,e_type="cloud",e_color="#F58536",e_stereo="AWScloud",e_sprite="Cloud") 49 | PUML_ENTITY(e_type,e_color,e_sprite,label,alias,e_stereo) 50 | !enddefinelong 51 | 52 | AWSCLOUD(aws) 53 | { 54 | Appstream2_0(Appstream2_0, " ", " ") 55 | 56 | 57 | } 58 | 59 | @enduml -------------------------------------------------------------------------------- /docs/aws/AppStream-2.0-can-be-managed-through-the-AWS-SDK-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/aws/AppStream-2.0-can-be-managed-through-the-AWS-SDK-1.png -------------------------------------------------------------------------------- /docs/aws/BBVA-uses-AWS-Transit-Gateway-to-build-a-hub-and-spoke-network-topology-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/aws/BBVA-uses-AWS-Transit-Gateway-to-build-a-hub-and-spoke-network-topology-2.png -------------------------------------------------------------------------------- /docs/aws/High-level-digram-1-Smadex-1024x584.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/aws/High-level-digram-1-Smadex-1024x584.png -------------------------------------------------------------------------------- /docs/aws/Pre-processing-pipeline-architecture-SM.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/aws/Pre-processing-pipeline-architecture-SM.jpg -------------------------------------------------------------------------------- /docs/aws/plantumlserver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/aws/plantumlserver.png -------------------------------------------------------------------------------- /docs/aws/pre-processing-pipeline.puml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/aws/pre-processing-pipeline.puml -------------------------------------------------------------------------------- /docs/color/0.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | colors 3 | @enduml 4 | -------------------------------------------------------------------------------- /docs/color/1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | 4 | 5 | skinparam ClassStereotypeFontSize 0 6 | skinparam CircledCharacterFontSize 0 7 | skinparam CircledCharacterRadius 0 8 | skinparam ClassBorderThickness 0 9 | skinparam Shadowing false 10 | 11 | 12 | 13 | !unquoted procedure $DrawColor($colour) 14 | 15 | rectangle $colour as "test" 16 | 17 | !endprocedure 18 | 19 | together { 20 | $DrawColor("Azure") 21 | $DrawColor("red") 22 | $DrawColor("black") 23 | } 24 | 25 | @enduml 26 | 27 | -------------------------------------------------------------------------------- /docs/color/color.rst: -------------------------------------------------------------------------------- 1 | ****************************************************** 2 | Colors 3 | ****************************************************** 4 | 5 | 6 | .. _vision: https://www.scaledagileframework.com/vision/ 7 | .. _PlantUML: https://www.plantuml.com/ 8 | .. _PlantUMLPreProcessor: https://plantuml.com/preprocessing 9 | .. _listsprites: https://plantuml.com/# 10 | .. _together: https://forum.plantuml.net/4387/please-provide-together-keyword-group-diagram-nodes-together 11 | 12 | 13 | Hex Codes and Pre-defined Colours 14 | =============================================================================== 15 | 16 | Any Color hex code can be used e.g. "123456". See https://www.google.com/search?q=color+picker 17 | 18 | Alternatively, a color name can be used e.g. "blue" 19 | 20 | Below is a procedure to show the colours/colors (depending on which part of the world you're in) 21 | This uses the colour parameter 22 | 23 | * as an alias (so we can draw different versions of the rectangle) 24 | * as a <> (so we can apply skinparams to that rectangle only) 25 | 26 | 27 | 28 | .. note :: 29 | This was inspired by https://plantuml-documentation.readthedocs.io/en/latest/formatting/color-names.html which is a whole lot prettier than the version here. 30 | The main purpose here was to show how this can be done with a procedure. 31 | 32 | If you're feeling playful, go make a pretty version with a procedure and let me know so I can update this guide and give you credit. 33 | 34 | 35 | |playbuttoncolor| Press to play around with this diagram source online. 36 | 37 | .. |playbuttoncolor| image:: ../play.png 38 | :target: http://www.plantuml.com/plantuml/uml/XPPBK-D64CVl-XGEjOViAS0-3YcAMcCUk6AmotQMujXesj94esap3pjAYkyUsva5qjEgSCA_Nyz3y_XBttm05s9hYgBuAThdI07LOEseH1KT3ZvSEjYEo93x-KD9XgBxM1I-qNOD3jg1mpA0hGmE_Yu6wUy9ogPo5Aqwj3ixImtFpmVflxTISWhT_vRv6XHjjQtU5mKNyRNYuj3HijPbOz7xztKdXwANedYRQvA3zsNW1qTd-r_krn_mx9V3x_EZtTAWLQ-BKXHhA1keS72BVuv8eTyz_Rk5EZe-NgsEZuy-_WVkKGRtQBLYyEJqq-SlNndy-kNpfzCJNdcWsK2dfuS-NzuckbVHyNaEPxF9U3HSZgVth8-XqILUc8YSsw2V8pxKEcJgEOA0Md3QPhL_HSVPnU-ByVtLOi4nwWevq_uvPj10sUJCbZMgeMd9gan65D1tJGO35uwsbhFeJFT0nFiTWS8WT3wgmGM7qUU2IZ8GCauEJCxioj0M7HyXIQzDmx7JhIVBQGSSNO9hUBS9zrJVa55evwGavw0JCQALkLJ-MmsD5lWTL6W326Pgz0RxHfcwijRIRESeqGMObgma4Fg6M1W8wUx8ZYqCSoYvPNJFaRH7mUK7DWboO2la0d4zqxOHyABff6dhDaquevXHKfLuCg-rmmkdouPpGmwC52VNvD07QOslOrbx3OpUWBR-YHnnNfCFqW3xeviX-JGBpvycbhD7D8QskU4Tt9B5xXAt6Gx2xeplPfEhkwlxfPJLOwiqs3agWLV4uOOSdufqnIQmGQlGoNY_nRxEtDPAopB1bkoergiLPKfNTOhAd0lnbqG7LkAlsvVsG2fnqCaSqVO8gK7Qf9nBWP4CGkyeuirBIaeC9b6M0T7qTTkpH2qAI9wspTZTT3d-BftGbDKPTKIMGrGwjliFXvtM5aMTFrGIKhedDOjkRUHMR6UOP6dExDffM_MtPhdDxB_9dT_SEwriVZEIic7a4DgC-z3DAH-8oXAyjWpVmmR-81wBoNGCJOsQG8aPrHkHxNu_SIwyYHBCdrxSnDdjus8y6auu1eDoQYUNTePpSL-I4tObkJLqi5kpDHS8PJsBgrN6NUGeZusPYIr7j5NYQrGynFbCv-IxzCNAU0TI8YoMy-7owkQHOr3AeDHHIZaEhHA75UvNmeiQZU5OexMGGRD1nw6OcdqNbWSfuvXnc-LZ_stlozhbrUZsVZgPPckx1Ci9Wk6erZuOv9HQ2CHXpu4MFmuVQeISwO0IMxJKS26zFHByiJh5I_4DhOgjAVu1 39 | :width: 40 px 40 | 41 | 42 | 43 | .. uml:: ./1.2.puml 44 | :align: center 45 | :caption: Using a procedure to show colours 46 | 47 | .. literalinclude:: ./1.2.puml 48 | :linenos: 49 | :emphasize-lines: 17, 27 50 | 51 | 52 | 53 | Colors keyword 54 | ------------------------------------------------------------------------------- 55 | 56 | |playbuttoncolor1| Press to play around with this diagram source online. 57 | 58 | .. |playbuttoncolor1| image:: ../play.png 59 | :target: http://www.plantuml.com/plantuml/uml/SoWkIImgAStDuKhEpyalAkPoICrB0N81 60 | :width: 40 px 61 | 62 | .. literalinclude:: ./0.puml 63 | :linenos: 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /docs/delivervalue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/delivervalue.png -------------------------------------------------------------------------------- /docs/diagramAnnotation/NetworkUsersMachines7_annot.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !define osaPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-opensecurityarchitecture2-icons/master 3 | !include osaPuml/Common.puml 4 | !include osaPuml/User/all.puml 5 | !include osaPuml/Hardware/all.puml 6 | !include osaPuml/Misc/all.puml 7 | !include osaPuml/Server/all.puml 8 | !include osaPuml/Site/all.puml 9 | 10 | /' 11 | comments 12 | . Mary is a Developer in the Product team. She has a Windows 10 PC and an Android phone. 13 | . Bob is a Manager in the Accounts team. He has Mac and an iPhone. 14 | . Ivan is an IT guy who looks after the server. 15 | . They connect to the network hub, and via a firewall to the Internet. 16 | '/ 17 | 18 | Title <$osa_site_branch*.5> \nNetwork Diagram 19 | 20 | skinparam handwritten true 21 | header 22 | Warning: 23 | This is a draft! <&box><$osa_warning*.5> 24 | 25 | 26 | endheader 27 | 28 | ' Users 29 | together { 30 | osa_user_green_developer(Mary, "Mary", "Product team", "Developer") 31 | osa_user_green_operations(Ivan, "Ivan", "IT Team", "Server Admin") 32 | osa_user_green_business_manager(Bob, "Bob", "Accounts team", "Manager") 33 | note left 34 | * Look at Bob 35 | * Here he is 36 | ** Yes he really is 37 | end note 38 | } 39 | 40 | ' Devices 41 | together { 42 | osa_desktop(pc, "192.168.1.10", "Windows 10", "PC") 43 | osa_laptop(mac, "192.168.1.12", "Mac", "Mac") 44 | osa_iPhone(iphone, "Dynamic IP", "iPhone 11", "Phone") 45 | osa_iPhone(android, "Dynamic IP", "Android 10", "Phone") 46 | osa_server(server, "192.168.1.100", "Ubuntu Server 20.04 LTS", "Server") 47 | } 48 | 49 | 50 | ' Network 51 | 52 | osa_device_wireless_router(wifiAP, "192.168.1.1", "Network") 53 | osa_hub(hub, "Office hub", "Hub") 54 | osa_firewall(firewall, "51.37.24.103", "Network") 55 | osa_cloud(cloud, "Internet", "Network") 56 | 57 | 58 | Mary --> pc: source code 59 | Mary --> android: social media 60 | 61 | Bob --> mac: financial info 62 | Bob --> iphone: phone calls 63 | 64 | 65 | Ivan --> server: configuration 66 | 67 | iphone --> wifiAP: <$osa_wireless_network> 68 | android --> wifiAP: <$osa_wireless_network> 69 | wifiAP --> hub 70 | 71 | server --> hub 72 | mac --> hub 73 | pc --> hub 74 | 75 | 76 | hub --> firewall: <$osa_lightning> 77 | 78 | 79 | firewall --> cloud: <$osa_warning*2> 80 | 81 | 82 | legend 83 | |= Color |= Type |= Description | 84 | | Mary | <$osa_user_green_developer*.4> | Mary details... This is a stdlib sprite | 85 | | Ivan | <$osa_user_green_operations*.4> | Ivan details... | 86 | | Bob | <$osa_user_green_business_manager*.4> | Bob details... | 87 | | Box | <&box> | A Box. This is an openiconic sprite | 88 | endlegend 89 | 90 | caption Acme Corp. Network Diagram as at %date("yyyy.MM.dd' at 'HH:mm") 91 | 92 | center footer %filename() rendered with PlantUML version %version()\nThe Hitchhiker’s Guide to PlantUML enduml <&box> <$osa_user_large_group*.5> 93 | @enduml -------------------------------------------------------------------------------- /docs/gcp/01_WebApp_ArchDiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/gcp/01_WebApp_ArchDiagram.png -------------------------------------------------------------------------------- /docs/gcp/Minecraft_Blog_Arch-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/gcp/Minecraft_Blog_Arch-1.png -------------------------------------------------------------------------------- /docs/gcp/MySQL_database_architecture.max-900x900.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/gcp/MySQL_database_architecture.max-900x900.jpg -------------------------------------------------------------------------------- /docs/gcp/Proposed_architecture.max-2000x2000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/gcp/Proposed_architecture.max-2000x2000.png -------------------------------------------------------------------------------- /docs/gcp/gcp1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !define GCPPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-icons-GCP/master/dist 3 | !include GCPPuml/GCPCommon.puml 4 | 5 | !include GCPPuml/AI_and_Machine_Learning/all.puml 6 | !include GCPPuml/API_Management/all.puml 7 | !include GCPPuml/Compute/all.puml 8 | !include GCPPuml/Databases/all.puml 9 | 10 | listsprites 11 | @enduml -------------------------------------------------------------------------------- /docs/gcp/gcp2.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !define GCPPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-icons-GCP/master/dist 3 | !include GCPPuml/GCPCommon.puml 4 | !include GCPPuml/Compute/Cloud_Functions.puml 5 | !include GCPPuml/Networking/Cloud_Firewall_Rules.puml 6 | !include GCPPuml/Compute/Compute_Engine.puml 7 | !include GCPPuml/Storage/Cloud_Storage.puml 8 | 9 | /' 10 | The other icons will need to come from other stdlib libraries: backup, users, clients. 11 | '/ 12 | !include 13 | !include 14 | !include 15 | !include 16 | !include 17 | 18 | 19 | Users(Users, "Friends", " ") 20 | Mobile(Mobile, "", " ") 21 | Client(Client, "Kid / Owner", " ") 22 | Client(ClientMinecraft, "", " ") 23 | 24 | Cloud_Functions(Cloud_FunctionsStart, "Start Server", "Cloud Functions") 25 | Cloud_Functions(Cloud_FunctionsStop, "Stop Server", "Cloud Functions") 26 | Cloud_Functions(Cloud_FunctionAdd, "Add a Friend", "Cloud Functions") 27 | 28 | Compute_Engine(Compute_Engine, "MineCraft Server", "Compute Engine") 29 | 30 | Cloud_Storage(Cloud_Storage, "MineCraft Backups", "Cloud Storage") 31 | 32 | Cloud_Firewall_Rules(Cloud_Firewall_Rules_Starter,"Minecraft Backups", "Cloud Firewall Rules") 33 | Cloud_Firewall_Rules(Cloud_Firewall_Rules_Friend,"Minecraft Backups", "Cloud Firewall Rules") 34 | @enduml -------------------------------------------------------------------------------- /docs/gcp/gcp3.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !define GCPPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-icons-GCP/master/dist 3 | !include GCPPuml/GCPCommon.puml 4 | !include GCPPuml/Compute/Cloud_Functions.puml 5 | !include GCPPuml/Networking/Cloud_Firewall_Rules.puml 6 | !include GCPPuml/Compute/Compute_Engine.puml 7 | !include GCPPuml/Storage/Cloud_Storage.puml 8 | 9 | /' 10 | The other icons will need to come from other stdlib libraries: backup, users, clients. 11 | '/ 12 | !include 13 | !include 14 | !include 15 | !include 16 | !include 17 | 18 | 19 | Users(Users, "Friends", " ") 20 | Mobile(Mobile, "", " ") 21 | Client(Client, "Kid / Owner", " ") 22 | Client(ClientMinecraft, "", " ") 23 | 24 | Cloud_Functions(Cloud_FunctionsStart, "Start Server", "Cloud Functions") 25 | Cloud_Functions(Cloud_FunctionsStop, "Stop Server", "Cloud Functions") 26 | Cloud_Functions(Cloud_FunctionAdd, "Add a Friend", "Cloud Functions") 27 | 28 | Compute_Engine(Compute_Engine, "MineCraft Server", "Compute Engine") 29 | 30 | Cloud_Storage(Cloud_Storage, "MineCraft Backups", "Cloud Storage") 31 | 32 | Cloud_Firewall_Rules(Cloud_Firewall_Rules_Starter,"Minecraft Backups", "Cloud Firewall Rules") 33 | Cloud_Firewall_Rules(Cloud_Firewall_Rules_Friend,"Minecraft Backups", "Cloud Firewall Rules") 34 | 35 | 36 | 37 | Client -> Cloud_FunctionsStart 38 | Client -> Cloud_FunctionsStop 39 | Users -> Cloud_FunctionAdd 40 | 41 | Cloud_FunctionsStart -> Cloud_Firewall_Rules_Starter 42 | Cloud_FunctionAdd -> Cloud_Firewall_Rules_Friend 43 | 44 | Cloud_FunctionsStart -> Compute_Engine 45 | Cloud_FunctionsStop -> Compute_Engine 46 | Compute_Engine -> Cloud_Storage 47 | 48 | 49 | 50 | @enduml -------------------------------------------------------------------------------- /docs/gcp/gcp4.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !define GCPPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-icons-GCP/master/dist 3 | !include GCPPuml/GCPCommon.puml 4 | !include GCPPuml/Compute/Cloud_Functions.puml 5 | !include GCPPuml/Networking/Cloud_Firewall_Rules.puml 6 | !include GCPPuml/Compute/Compute_Engine.puml 7 | !include GCPPuml/Storage/Cloud_Storage.puml 8 | 9 | /' 10 | The other icons will need to come from other stdlib libraries: backup, users, clients. 11 | '/ 12 | !include 13 | !include 14 | !include 15 | !include 16 | !include 17 | 18 | !include 19 | !include 20 | 21 | 'skinparam linetype polyline 22 | skinparam linetype ortho 23 | 24 | 'top to bottom direction 25 | package "Kid / Owner" { 26 | Users(Users, "Friends", " ") 27 | Client(Client, "Kid / Owner", " ") 28 | } 29 | 30 | package "MinecraftClients" { 31 | Client(ClientMinecraft, "", " ") 32 | Mobile(Mobile, "", " ") 33 | } 34 | 35 | package "Minecraft Project" { 36 | 37 | together { 38 | Cloud_Functions(Cloud_FunctionsStart, "Start Server", "Cloud Functions") 39 | Cloud_Functions(Cloud_FunctionsStop, "Stop Server", "Cloud Functions") 40 | Cloud_Functions(Cloud_FunctionAdd, "Add a Friend", "Cloud Functions") 41 | } 42 | Compute_Engine(Compute_Engine, "MineCraft Server", "Compute Engine") 43 | 44 | Cloud_Storage(Cloud_Storage, "MineCraft Backups", "Cloud Storage") 45 | 46 | together { 47 | Cloud_Firewall_Rules(Cloud_Firewall_Rules_Starter,"Starter FW Entries", "Cloud Firewall Rules") 48 | Cloud_Firewall_Rules(Cloud_Firewall_Rules_Friend,"Friend FW Entries", "Cloud Firewall Rules") 49 | } 50 | 51 | 'https://github.com/Crashedmind/PlantUML-icons-GCP/blob/master/source/GCPCommon.puml 52 | 'rectangle "==Backup\n MA_TIMER(darkgreen)\n//[Cron Task]// " as Backup 53 | 54 | EntityColoring("Backup") 55 | Entity("Backup", "Backup","Cron Task", "darkgrey", "ma_timer", "Backup") 56 | } 57 | 58 | 59 | 60 | 61 | Cloud_FunctionsStart -[hidden]d-> Cloud_FunctionsStop 62 | Cloud_FunctionsStop -[hidden]d-> Cloud_FunctionAdd 63 | 64 | Cloud_FunctionsStart -d-> Cloud_Firewall_Rules_Starter 65 | Cloud_FunctionAdd -d-> Cloud_Firewall_Rules_Friend 66 | Cloud_Firewall_Rules_Friend -[hidden]d-> Cloud_Firewall_Rules_Starter 67 | 68 | Cloud_FunctionsStart -> Compute_Engine 69 | Cloud_FunctionsStop -> Compute_Engine 70 | Compute_Engine -d-> Cloud_Storage 71 | 72 | 73 | 74 | Client -r-> Cloud_FunctionsStart 75 | Client -r-> Cloud_FunctionsStop 76 | Users -r-> Cloud_FunctionAdd 77 | 78 | 79 | ClientMinecraft -r-> Cloud_Firewall_Rules_Friend 80 | 81 | Backup -u-> Compute_Engine 82 | @enduml -------------------------------------------------------------------------------- /docs/github/filefinder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/github/filefinder.png -------------------------------------------------------------------------------- /docs/github/githubFileFinder.rst: -------------------------------------------------------------------------------- 1 | .. _githubfilefinder-label: 2 | 3 | ******************************************************************************* 4 | GitHub File Finder 5 | ******************************************************************************* 6 | 7 | .. tip :: 8 | 9 | Use GitHub File Finder to search for an icon quickly - directly from GitHub: 10 | 11 | #. Browse to the PlantUML Standard Library repo https://github.com/plantuml/plantuml-stdlib 12 | #. Press the ```t``` key to enter GitHub File Finder mode 13 | #. Type e.g. "lock", "key", "user"... or whatever you want to search for 14 | #. The list of files/icons filenames that contain that text are shown 15 | 16 | .. figure:: ./filefinder.png 17 | 18 | -------------------------------------------------------------------------------- /docs/kubernetes/aks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/kubernetes/aks.png -------------------------------------------------------------------------------- /docs/kubernetes/k1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | footer Kubernetes Plant-UML 3 | scale max 1024 width 4 | skinparam linetype polyline 5 | skinparam nodesep 10 6 | skinparam ranksep 10 7 | 8 | 9 | 10 | ' Azure 11 | !define AzurePuml https://raw.githubusercontent.com/RicardoNiepel/Azure-PlantUML/release/2-1/dist 12 | 13 | !includeurl AzurePuml/AzureCommon.puml 14 | !includeurl AzurePuml/AzureSimplified.puml 15 | 16 | !includeurl AzurePuml/Compute/AzureAppService.puml 17 | !includeurl AzurePuml/Compute/AzureBatch.puml 18 | !includeurl AzurePuml/Containers/AzureContainerRegistry.puml 19 | !includeurl AzurePuml/Containers/AzureKubernetesService.puml 20 | !includeurl AzurePuml/Databases/AzureDatabaseForPostgreSQL.puml 21 | !includeurl AzurePuml/Databases/AzureCosmosDb.puml 22 | !includeurl AzurePuml/Databases/AzureSqlDatabase.puml 23 | !includeurl AzurePuml/DevOps/AzurePipelines.puml 24 | !includeurl AzurePuml/Identity/AzureActiveDirectory.puml 25 | !includeurl AzurePuml/Networking/AzureLoadBalancer.puml 26 | !includeurl AzurePuml/Security/AzureKeyVault.puml 27 | !includeurl AzurePuml/Storage/AzureBlobStorage.puml 28 | !includeurl AzurePuml/Storage/AzureStorage.puml 29 | 30 | ' Kubernetes 31 | !define KubernetesPuml https://raw.githubusercontent.com/dcasati/kubernetes-PlantUML/master/dist 32 | 33 | !includeurl KubernetesPuml/kubernetes_Context.puml 34 | !includeurl KubernetesPuml/kubernetes_Simplified.puml 35 | 36 | !includeurl KubernetesPuml/OSS/KubernetesApi.puml 37 | !includeurl KubernetesPuml/OSS/KubernetesIng.puml 38 | !includeurl KubernetesPuml/OSS/KubernetesPod.puml 39 | 40 | actor "DevOps" as devopsAlias 41 | collections "Client Apps" as clientalias 42 | collections "Helm Charts" as helmalias 43 | 44 | left to right direction 45 | 46 | ' Azure Components 47 | AzureActiveDirectory(aad, "\nAzure\nActive Directory", "Global") 48 | AzureContainerRegistry(acr, "ACR", "Canada Central") 49 | AzureCosmosDb(cosmos, "\nCosmos DB", "Global") 50 | AzureKeyVault(keyvault, "\nAzure\nKey Vault", "Global") 51 | AzureLoadBalancer(alb, "\nLoad\nBalancer", "Canada Central") 52 | AzureSqlDatabase(sql, "\nExternal\ndata stores", "Canada Central") 53 | AzurePipelines(ado, "CI/CD\nAzure Pipelines", "Global") 54 | 55 | ' Kubernetes Components 56 | Cluster_Boundary(cluster, "Kubernetes Cluster") { 57 | KubernetesApi(KubernetesApi, "Kubernetes API", "") 58 | 59 | Namespace_Boundary(nsFrontEnd, "Front End") { 60 | KubernetesIng(ingress, "API Gateway", "") 61 | } 62 | 63 | Namespace_Boundary(nsBackEnd, "Back End") { 64 | KubernetesPod(KubernetesBE1, "", "") 65 | KubernetesPod(KubernetesBE2, "", "") 66 | KubernetesPod(KubernetesBE3, "", "") 67 | } 68 | 69 | Namespace_Boundary(nsUtil, "Utiliy Services") { 70 | KubernetesPod(KubernetesUtil1, "", "") 71 | KubernetesPod(KubernetesUtil2, "","") 72 | } 73 | } 74 | 75 | Rel(devopsAlias, aad, "AUTH") 76 | Rel(helmalias, KubernetesApi, "helm upgrade") 77 | 78 | Rel(aad, keyvault, " ") 79 | Rel(KubernetesApi, aad, "RBAC", "ASYNC") 80 | 81 | Rel(clientalias, alb, "HTTP", "ASYNC") 82 | Rel(alb, ingress, "HTTP", "ASYNC") 83 | 84 | Rel(ingress, KubernetesBE1, " ") 85 | Rel(KubernetesBE1, KubernetesBE2, " ") 86 | Rel(KubernetesBE1, KubernetesBE3, " ") 87 | 88 | Rel(KubernetesBE2, sql, " ") 89 | Rel(KubernetesBE3, keyvault, "Pod Identity") 90 | Rel(KubernetesBE3, cosmos, " ") 91 | 92 | Rel(ado, acr, "docker push") 93 | Rel_U(KubernetesApi, acr, "docker pull") 94 | @enduml -------------------------------------------------------------------------------- /docs/kubernetes/kubernetes.rst: -------------------------------------------------------------------------------- 1 | ******************************************************************************* 2 | Kubernetes and Azure 3 | ******************************************************************************* 4 | 5 | 6 | 7 | .. _vision: https://www.scaledagileframework.com/vision/ 8 | .. _PlantUML: https://www.plantuml.com/ 9 | .. _PlantUMLPreProcessor: https://plantuml.com/preprocessing 10 | .. _listsprites: https://plantuml.com/# 11 | .. _together: https://forum.plantuml.net/4387/please-provide-together-keyword-group-diagram-nodes-together 12 | .. _GithubActions: https://help.github.com/en/actions 13 | .. _GithubActionsCoreConcepts: https://help.github.com/en/actions/getting-started-with-github-actions/core-concepts-for-github-actions 14 | .. _UsageLimits: https://help.github.com/en/actions/getting-started-with-github-actions/about-github-actions#usage-limits 15 | .. _GithubCommunity: https://help.github.com/en/actions/getting-started-with-github-actions/using-community-workflows-and-actions 16 | .. _Running: https://plantuml.com/running 17 | .. _PlantUMLActions: https://github.com/marketplace?query=plantuml 18 | .. _AWSArchitectureBlog: https://aws.amazon.com/blogs/architecture 19 | .. _AWSArchitectureBlogSample1: Helping Global Remote Working with Amazon AppStream 2.0 https://aws.amazon.com/blogs/architecture/bbva-helping-global-remote-working-with-amazon-appstream-2-0/ 20 | .. _AWSArchitectureBlogSample2: https://aws.amazon.com/blogs/architecture/building-a-scalable-document-pre-processing-pipeline/ 21 | .. _AWSArchitectureBlogSample3: https://aws.amazon.com/blogs/architecture/serving-billions-of-ads-with-amazon-elasticache-for-redis/ 22 | .. _Deployment: https://plantuml.com/deployment-diagram 23 | 24 | .. note :: 25 | 26 | In this section we'll look at a Kubernetes and Azure icon sets https://github.com/dcasati/kubernetes-PlantUML. 27 | 28 | PlantUML will access icon files directly from this repository (it is not part of PlantUML Stdlib.) 29 | 30 | 31 | 32 | =============================================================================== 33 | 34 | Original 35 | ------------------------------------------------------------------------------- 36 | 37 | .. figure :: ./aks.png 38 | 39 | 40 | PlantUML Equivalent 41 | ------------------------------------------------------------------------------- 42 | 43 | 44 | 45 | Play 46 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 47 | 48 | |playbutton_kub1| Press to play around with this diagram source online. 49 | 50 | .. |playbutton_kub1| image:: ../play.png 51 | :target: http://www.plantuml.com/plantuml/uml/bPPHJ-Cu4CVVyocyVTcij903xkcUDWtiWfPZUnHEEWa9JUsXjUhOMNi2z4xttS-9qzOvQ9Nc0UAP_yypiMS6lZW2ItMfaYTZ22txNi_GQYHqRA90qz7zxzU9uw2GbV3AJduv_PMzI46Bn2sbhi12oPJqmAf2LXcrQXQHJnk13YiFHaOBUjaP_VEHvN_N5fCF0fyy75OJdnDR45Nkjoopy78ybxIePxL3ouqcr7JCJPdTIWvMc1k95Qgi9O_Ql7tQcKM5u30xFJh9X7IK91-avgeMM5kr3HEmmfIbqSULD-oJJMLPAVaaKGJf3gtVhQe90vDNrHJji-GOc07868WlzgirWTHeNG0swrkSIqTsTGYylVG1UPu3mGmSTknw-TNOYN4qjpZzu_e0lZ2kDEvyTW0o_QdMbhqKFl-eEcGYAsmgq-q3hWHgahGAICv9FkEvjCZ9x3_F6wGNOtrvpmDwRK2CGO7cQFTnK-IrtGJyZgi_eLQqbo1ZORuk4cLcdM4mqzCd7wD-N_TVP1hOX8A30vBPSWDkUx04HsZVQRz-b8XzB9gjNyCn34JUTEKUxCTqccrDUIK3CfYuqlC3YObPfmLDAR5HgCmH0yS4FflAvKg2IxXH2Zb9enqR5KgY9fPNdP2tQtWhl4HLic81be9muTT1bYXy8aQ6MJbV41FI1cWpSbapSun6JIvvh-PJ0F6PZHvqwtpGmSqs_f5tVlD526hqANb_3AN0hLVbnMqZBa2305RuY3Q6mWX8UVlIHWmsTZxknuZx95tYwhbvYLFqJjPwtt9nLwQWPYtM61_qshmpntZcfEwdQjcBLqAhGJreuLtCaR7eTcmHpw0KX6bKLrbntYNEDiuuxtw3nhTLgBhfgyUngNrmVymy63mS0y4u-iJ-IPX_UcMVzbPzC9zSDNdu31gi_N439ReAE6vZQlVL6aqNMdXj-yhyUuZMFRssIQMUMtJEgtq0zWq8Ns0L1VetsHrg37mP8ZLlUmBvRei-RNnnuf4GOu3uz13ncHSEpFwUfFBAvfTSiUwlh1lq1Gqp-1k2F7p5DY-VsIsgD9erdrbexVp-xjBB6cyxDuBl_vNHk5XTpIq8zEfMtl9H1x9kcpxRXRaTvyMe2JVzwwPOxn1DDAzh-_7oxcuIwnfPw-ag9vR4MstS_OllPnNP-rS-I7RMoOAkp_k1i6EJizuP-PjYwtyotXU72HY52hCY355X-18jgsgt2FJZ_PlZxWkLyi8lg4LTgly0_ 52 | :width: 40 px 53 | 54 | I made 1 minor change to the source 55 | 56 | #. Added ```skinparam linetype polyline``` as the "RBAC" text overlapped the "Kubernetes Cluster" and polyline generally improves layout. 57 | 58 | 59 | .. uml:: k1.puml 60 | :align: center 61 | 62 | .. literalinclude:: ./k1.puml 63 | :linenos: 64 | :emphasize-lines: 4, 11, 31 65 | 66 | -------------------------------------------------------------------------------- /docs/layout/arrows.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | rectangle Arrows 4 | rectangle Up 5 | rectangle Down 6 | rectangle Left 7 | rectangle Right 8 | 9 | Arrows -u-> Up 10 | Arrows -d-> Down 11 | Arrows -l-> Left 12 | Arrows -r-> Right 13 | 14 | @enduml -------------------------------------------------------------------------------- /docs/layout/hideunlinked.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | 4 | rectangle Arrows 5 | rectangle A 6 | rectangle B 7 | rectangle C 8 | rectangle D 9 | rectangle E 10 | rectangle F 11 | 12 | Arrows --> A 13 | Arrows --> B 14 | Arrows --> C 15 | Arrows --> D 16 | Arrows --[hidden]> E 17 | 18 | @enduml -------------------------------------------------------------------------------- /docs/layout/left2right.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | left to right direction 4 | 'top to bottom direction 5 | 6 | rectangle Arrows 7 | rectangle A 8 | rectangle B 9 | rectangle C 10 | rectangle D 11 | rectangle E 12 | rectangle F 13 | 14 | Arrows --> A 15 | Arrows --> B 16 | Arrows --> C 17 | Arrows --> D 18 | Arrows --[hidden]> E 19 | 20 | @enduml -------------------------------------------------------------------------------- /docs/layout/level.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | 'left to right direction 4 | 'top to bottom direction 5 | 6 | rectangle Arrows 7 | rectangle A 8 | rectangle B 9 | rectangle C 10 | rectangle D 11 | rectangle E 12 | rectangle F 13 | 14 | Arrows -[bold]-> A 15 | Arrows -[#pink,dashed,thickness=10]-> B 16 | Arrows -[#4567ff,dotted]-> C 17 | Arrows --> D 18 | E ---> C 19 | 20 | @enduml -------------------------------------------------------------------------------- /docs/layout/nodesepranksep.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | 'skinparam nodesep 10 4 | 'skinparam ranksep 20 5 | 6 | rectangle Arrows 7 | rectangle A 8 | rectangle B 9 | rectangle C 10 | rectangle D 11 | rectangle E 12 | rectangle F 13 | 14 | Arrows -[bold]-> A 15 | Arrows -[#pink,dashed,thickness=10]-> B 16 | Arrows -[#4567ff,dotted]-> C 17 | Arrows --> D 18 | E ---> C 19 | 20 | @enduml -------------------------------------------------------------------------------- /docs/layout/nodesepranksep1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | skinparam nodesep 5 4 | 'skinparam ranksep 20 5 | 6 | rectangle Arrows 7 | rectangle A 8 | rectangle B 9 | rectangle C 10 | rectangle D 11 | rectangle E 12 | rectangle F 13 | 14 | Arrows -[bold]-> A 15 | Arrows -[#pink,dashed,thickness=10]-> B 16 | Arrows -[#4567ff,dotted]-> C 17 | Arrows --> D 18 | E ---> C 19 | 20 | @enduml -------------------------------------------------------------------------------- /docs/layout/nodesepranksep2.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | 'left to right direction 4 | 'top to bottom direction 5 | 6 | 'skinparam nodesep 10 7 | skinparam ranksep 150 8 | 9 | rectangle Arrows 10 | rectangle A 11 | rectangle B 12 | rectangle C 13 | rectangle D 14 | rectangle E 15 | rectangle F 16 | 17 | Arrows -[bold]-> A 18 | Arrows -[#pink,dashed,thickness=10]-> B 19 | Arrows -[#4567ff,dotted]-> C 20 | Arrows --> D 21 | 22 | 'long arrow for no good reason 23 | E ---> C 24 | 25 | @enduml -------------------------------------------------------------------------------- /docs/layout/test.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !include 3 | !include 4 | !include 5 | !include 6 | !include 7 | 8 | skinparam linetype scalexy 9 | 'skinparam linetype vpsc 10 | skinparam linetype prism0 11 | 'skinparam linetype polyline 12 | 'skinparam linetype ortho 13 | 14 | EC2(Smadex, "Smadex Service", " ") 15 | Users(Users, "Users", " ") 16 | TraditionalServer(AdExchange, "Ad Exchange", " ") 17 | Mobile(Mobile, "Publisher app or web", " ") 18 | 19 | Users -down-> Mobile: 1. Visits 20 | Mobile -right-> AdExchange: 2. Start auction 21 | AdExchange -right-> Smadex: 3. Bid request / response 22 | Smadex -left-> Mobile: 4. Show Ad 23 | Users -right-> Smadex: 5. Impression / click / install / event {request id} 24 | @enduml -------------------------------------------------------------------------------- /docs/layout/together.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | rectangle Arrows 4 | rectangle A 5 | rectangle B 6 | rectangle C 7 | together { 8 | rectangle D 9 | rectangle E 10 | } 11 | rectangle F 12 | 13 | 14 | Arrows -[bold]-> A 15 | Arrows -[#4567ff,dotted]-> C 16 | Arrows -[#pink,dashed,thickness=10]-> B 17 | Arrows --> D 18 | E ---------> C 19 | 20 | @enduml -------------------------------------------------------------------------------- /docs/layout/top2bottom.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | 'left to right direction 4 | top to bottom direction 5 | 6 | rectangle Arrows 7 | rectangle A 8 | rectangle B 9 | rectangle C 10 | rectangle D 11 | rectangle E 12 | rectangle F 13 | 14 | Arrows --> A 15 | Arrows --> B 16 | Arrows --> C 17 | Arrows --> D 18 | Arrows --[hidden]> E 19 | 20 | @enduml -------------------------------------------------------------------------------- /docs/plantuml/plantuml_cfg.puml: -------------------------------------------------------------------------------- 1 | ' https://plantuml-documentation.readthedocs.io/en/latest/formatting/all-skin-params.html 2 | ' colour decoder: https://www.google.com/search?q=hex+color+picker&oq=hex+col&aqs=chrome.0.0l2j69i57j0l3.1975j0j7&sourceid=chrome&ie=UTF-8 3 | ' http://plantuml.com/skinparam 4 | 5 | skinparam backgroundColor white 6 | 7 | skinparam note { 8 | BackgroundColor #F1FFFF 9 | BorderColor #2980B9 10 | } 11 | 12 | skinparam activity { 13 | BackgroundColor #BDE3FF 14 | ArrowColor #2980B9 15 | BorderColor #2980B9 16 | StartColor #227BC6 17 | EndColor #227BC6 18 | BarColor #227BC6 19 | } 20 | 21 | skinparam sequence { 22 | ArrowColor #2980B9 23 | DividerBackgroundColor #BDE3FF 24 | GroupBackgroundColor #BDE3FF 25 | LifeLineBackgroundColor white 26 | LifeLineBorderColor #2980B9 27 | ParticipantBackgroundColor #BDE3FF 28 | ParticipantBorderColor #2980B9 29 | BoxLineColor #2980B9 30 | BoxBackgroundColor #DDDDDD 31 | } 32 | 33 | skinparam componentBackgroundColor #BDE3FF 34 | skinparam component { 35 | skinparam componentArrowColor #A80036 36 | skinparam BorderColor #A80036 37 | skinparam InterfaceBackgroundColor #BDE3FF 38 | skinparam InterfaceBorderColor #A80036 39 | } 40 | 41 | 42 | 'for some reason if we put BackgroundColor inside {} it does not work? 43 | skinparam stateBackgroundColor #BDE3FF 44 | skinparam state { 45 | skinparam BorderColor #2980B9 46 | skinparam ArrowColor #2980B9 47 | skinparam StartColor black 48 | skinparam EndColor black 49 | } 50 | 51 | 52 | skinparam stereotype { 53 | skinparam CBackgroundColor #ADD1B2 54 | skinparam ABackgroundColor #A9DCDF 55 | skinparam IBackgroundColor #B4A7E5 56 | skinparam EBackgroundColor #EB937F 57 | } 58 | 59 | 'for some reason if we put BackgroundColor inside {} it does not work? 60 | skinparam actorBackgroundColor #BDE3FF 61 | skinparam actor { 62 | skinparam BorderColor #A80036 63 | } 64 | 65 | skinparam usecase { 66 | skinparam ArrowColor #A80036 67 | skinparam BorderColor #A80036 68 | } 69 | 70 | skinparam class { 71 | skinparam ArrowColor #A80036 72 | skinparam BackgroundColor #BDE3FF 73 | skinparam BorderColor #A80036 74 | } 75 | 76 | 77 | skinparam object { 78 | skinparam ArrowColor #A80036 79 | skinparam BackgroundColor #BDE3FF 80 | skinparam BorderColor #A80036 81 | } 82 | 83 | 84 | skinparam packageBackgroundColor #white 85 | skinparam agentBackgroundColor #BDE3FF 86 | skinparam artifactBackgroundColor #BDE3FF 87 | skinparam boundaryBackgroundColor #BDE3FF 88 | skinparam cardBackgroundColor #BDE3FF 89 | skinparam cloudBackgroundColor #BDE3FF 90 | skinparam controlBackgroundColor #BDE3FF 91 | skinparam databaseBackgroundColor #BDE3FF 92 | skinparam entityBackgroundColor #BDE3FF 93 | skinparam fileBackgroundColor #BDE3FF 94 | skinparam folderBackgroundColor #BDE3FF 95 | skinparam frameBackgroundColor #BDE3FF 96 | skinparam interfaceBackgroundColor #BDE3FF 97 | skinparam nodeBackgroundColor #BDE3FF 98 | skinparam queueBackgroundColor #BDE3FF 99 | skinparam stackBackgroundColor #BDE3FF 100 | skinparam rectangleBackgroundColor #BDE3FF 101 | skinparam storageBackgroundColor #BDE3FF 102 | skinparam usecaseBackgroundColor #BDE3FF 103 | -------------------------------------------------------------------------------- /docs/plantuml/plantuml_handwritten.puml: -------------------------------------------------------------------------------- 1 | skinparam handwritten true 2 | -------------------------------------------------------------------------------- /docs/plantumllogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/plantumllogo.png -------------------------------------------------------------------------------- /docs/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs/play.png -------------------------------------------------------------------------------- /docs/procedures/defaultArgument.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !function $inc($value, $step=1) 3 | !return $value + $step 4 | !endfunction 5 | 6 | Alice -> Bob : Just one more $inc(3) 7 | Alice -> Bob : Add two to three : $inc(3, 2) 8 | @enduml 9 | -------------------------------------------------------------------------------- /docs/procedures/procedures.rst: -------------------------------------------------------------------------------- 1 | 2 | .. _procedures-label: 3 | 4 | 5 | ****************************************************** 6 | Procedures and Keyword Arguments 7 | ****************************************************** 8 | 9 | 10 | .. _vision: https://www.scaledagileframework.com/vision/ 11 | .. _PlantUML: https://www.plantuml.com/ 12 | .. _PlantUMLPreProcessor: https://plantuml.com/preprocessing 13 | .. _listsprites: https://plantuml.com/# 14 | .. _together: https://forum.plantuml.net/4387/please-provide-together-keyword-group-diagram-nodes-together 15 | .. _MigrationNotes: https://plantuml.com/preprocessing#ajlk3nchu0zkka0ybjng 16 | .. _DefaultArgumentValue: https://plantuml.com/preprocessing#ae1b47605326b65f 17 | 18 | 19 | Defines Are Deprecated 20 | =============================================================================== 21 | 22 | Existing stdlib icon libraries use !define and !definelong to create different macros. 23 | 24 | .. tip :: 25 | 26 | !function and !procedure should be used instead of !define and !definelong 27 | 28 | Per MigrationNotes_: 29 | 30 | *You should not use !define and !definelong anymore. Use !function, !procedure 31 | or variable definition instead.* 32 | 33 | *!define should be replaced by return !function* 34 | 35 | *!definelong should be replaced by !procedure.* 36 | 37 | 38 | 39 | Default Values 40 | =============================================================================== 41 | 42 | Per DefaultArgumentValue_, "In both procedure and return functions, you can define default values for arguments" 43 | 44 | .. tip :: 45 | The `default argument `__ value can help to simplify definitions 46 | 47 | 48 | .. uml:: defaultArgument.puml 49 | :align: center 50 | :caption: *Using default argument* 51 | 52 | 53 | .. literalinclude:: defaultArgument.puml 54 | :linenos: 55 | :emphasize-lines: 2,6,7 56 | 57 | 58 | 59 | Keyword Arguments 60 | =============================================================================== 61 | 62 | Current macros are polymorphic e.g. macros are defined twice with a different number of arguments. 63 | 64 | However, the ordering of the arguments is hardcoded e.g. first parameter is "alias". 65 | 66 | This has a number of issues: 67 | 68 | #. if the user wants to specify the 5th parameter only, they need to specify the first 4 also. 69 | #. if we want to add new parameters in the future, then we need to add them at the end - adding maybe more macros to do so. 70 | 71 | Keyword Arguments allow the user to specify what they care about, and the procedure uses defaults for other parameters. 72 | It also gives extensibility. 73 | 74 | 75 | See :ref:`Step-by-step Towards A Standard Macro` for the under-the-hood work that led towards the following release. 76 | 77 | https://plantuml.com/news 78 | *17 May, 2020: Use keyword arguments with the preprocessor (V1.2020.10). (Thanks to Crashedmind for the suggestion !)* 79 | 80 | -------------------------------------------------------------------------------- /docs/scale/bigsmallscale.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | sprite $C4person48 [48x48/16] { 3 | 000000000000000000002567764200000000000000000000 4 | 000000000000000000367777777763000000000000000000 5 | 000000000000000015777777777777500000000000000000 6 | 000000000000000167777777777777750000000000000000 7 | 000000000000000577777777777777774000000000000000 8 | 000000000000003777777777777777777200000000000000 9 | 000000000000006777777777777777777500000000000000 10 | 000000000000027777777777777777777710000000000000 11 | 000000000000047777777777777777777730000000000000 12 | 000000000000057777777777777777777740000000000000 13 | 000000000000057777777777777777777750000000000000 14 | 000000000000057777777777777777777750000000000000 15 | 000000000000047777777777777777777740000000000000 16 | 000000000000037777777777777777777720000000000000 17 | 000000000000017777777777777777777700000000000000 18 | 000000000000005777777777777777777400000000000000 19 | 000000000000001777777777777777776100000000000000 20 | 000000000000000377777777777777772000000000000000 21 | 000000000000000047777777777777730000000000000000 22 | 000002456666666667777777777777766666666654200000 23 | 000367777777777777777777777777777777777777762000 24 | 004777777777777777777777777777777777777777777300 25 | 037777777777777777777777777777777777777777777720 26 | 077777777777777777777777777777777777777777777760 27 | 377777777777777777777777777777777777777777777772 28 | 577777777777777777777777777777777777777777777774 29 | 677777777777777777777777777777777777777777777776 30 | 777777777777777777777777777777777777777777777777 31 | 777777777777777777777777777777777777777777777777 32 | 777777777777777777777777777777777777777777777777 33 | 777777777777777777777777777777777777777777777777 34 | 777777777777777777777777777777777777777777777777 35 | 777777777777777777777777777777777777777777777777 36 | 777777777777777777777777777777777777777777777777 37 | 777777777777777777777777777777777777777777777777 38 | 777777777777777777777777777777777777777777777777 39 | 777777777777777777777777777777777777777777777777 40 | 777777777777777777777777777777777777777777777777 41 | 777777777777777777777777777777777777777777777777 42 | 777777777777777777777777777777777777777777777777 43 | 677777777777777777777777777777777777777777777776 44 | 577777777777777777777777777777777777777777777774 45 | 377777777777777777777777777777777777777777777772 46 | 077777777777777777777777777777777777777777777760 47 | 037777777777777777777777777777777777777777777720 48 | 004777777777777777777777777777777777777777777400 49 | 000367777777777777777777777777777777777777762000 50 | 000002466777777777777777777777777777777664200000 51 | } 52 | 53 | 54 | 55 | 56 | Bob : <$C4person48*.33> Small 57 | Alice : <$C4person48*2> Big 58 | 59 | Alice -> Bob 60 | @enduml 61 | 62 | -------------------------------------------------------------------------------- /docs/scale/scale.rst: -------------------------------------------------------------------------------- 1 | .. _scale-label: 2 | 3 | 4 | ****************************************************** 5 | Scaling Sprites 6 | ****************************************************** 7 | 8 | 9 | .. _vision: https://www.scaledagileframework.com/vision/ 10 | .. _PlantUML: https://www.plantuml.com/ 11 | .. _PlantUMLPreProcessor: https://plantuml.com/preprocessing 12 | .. _listsprites: https://plantuml.com/# 13 | .. _together: https://forum.plantuml.net/4387/please-provide-together-keyword-group-diagram-nodes-together 14 | 15 | 16 | Scaling Sprite Options 17 | =============================================================================== 18 | 19 | .. uml:: ./scale1.puml 20 | :align: center 21 | :caption: Different syntax for scaling sprites 22 | 23 | .. literalinclude:: ./scale1.puml 24 | :linenos: 25 | :emphasize-lines: 17, 19 26 | 27 | The option on line 17 is the one given on https://plantuml.com/sprite. 28 | 29 | 30 | Revisiting :ref:`scalebigsmall-label` 31 | =============================================================================== 32 | 33 | In :ref:`scalebigsmall-label` we created a large sprite 100x100 sprite, and a small 16x 34 | 16 sprite. 35 | 36 | Here we create 1 48x48 sprite and scale it by x2 for large, and by 0.33 for small. 37 | We use the `*X` option, instead of `{scale*X}` option. 38 | 39 | .. uml:: ./bigsmallscale.puml 40 | :align: center 41 | :caption: Scaling one sprite bigger and smaller 42 | 43 | .. literalinclude:: ./bigsmallscale.puml 44 | :linenos: 45 | :emphasize-lines: 56,57 46 | 47 | -------------------------------------------------------------------------------- /docs/scale/scale1.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | sprite $foo1 { 3 | FFFFFFFFFFFFFFF 4 | F0123456789ABCF 5 | F0123456789ABCF 6 | F0123456789ABCF 7 | F0123456789ABCF 8 | F0123456789ABCF 9 | F0123456789ABCF 10 | F0123456789ABCF 11 | F0123456789ABCF 12 | FFFFFFFFFFFFFFF 13 | } 14 | 15 | Alice -> Bob : Scale x1 <$foo1> 16 | 17 | Alice -> Bob : Scale x3 using scale <$foo1{scale=3}> 18 | 19 | Alice -> Bob : Scale x6 using * <$foo1*6> 20 | 21 | @enduml -------------------------------------------------------------------------------- /docs/todo.rst: -------------------------------------------------------------------------------- 1 | 2 | ====================================================== 3 | To Do List 4 | ====================================================== 5 | 6 | .. _todo: https://www.sphinx-doc.org/en/master/usage/extensions/todo.html 7 | 8 | This ToDo list is autogenerated by Sphinx todo_ Extension 9 | 10 | 11 | .. todolist:: 12 | -------------------------------------------------------------------------------- /docs_cut/ContributingToStdlib.rst: -------------------------------------------------------------------------------- 1 | ******************************************************************************* 2 | ContributingToStdlib 3 | ******************************************************************************* 4 | 5 | 6 | .. todo :: 7 | 8 | ContributingToStdlib 9 | -------------------------------------------------------------------------------- /docs_cut/CreateSpriteLibrary.rst: -------------------------------------------------------------------------------- 1 | ====================================================== 2 | Create A Sprite library 3 | ====================================================== 4 | 5 | Create Sprites by converting TODO icon libraries 6 | ---------------------------------------------------- 7 | 8 | 9 | Converting the icon set to PlantUML Sprites 10 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 11 | 12 | .. todo :: 13 | add info on a standard way to create sprites 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /docs_cut/GenerateDiagrams/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:groovy 2 | # Current plantUML version at time of switch: PlantUML Version 1.2020.02 3 | # Note: GitHub Actions must be run by the default Docker user (root). Ensure your Dockerfile does not set the USER instruction, otherwise you will not be able to access GITHUB_WORKSPACE. 4 | 5 | # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 6 | RUN mkdir -p /usr/share/man/man1 7 | 8 | RUN apt-get -qy update && \ 9 | DEBIAN_FRONTEND=noninteractive apt-get -yq install plantuml graphviz git && \ 10 | rm -rf /var/lib/apt/lists/* 11 | 12 | ENV HOME_DIR /app 13 | 14 | WORKDIR $HOME_DIR 15 | 16 | ENTRYPOINT ["plantuml"] -------------------------------------------------------------------------------- /docs_cut/GenerateDiagrams/GenerateDiagramsLambda.rst: -------------------------------------------------------------------------------- 1 | ******************************************************************************* 2 | Generate diagrams from PlantUML source files using AWS Lambda 3 | ******************************************************************************* 4 | 5 | 6 | 7 | .. _vision: https://www.scaledagileframework.com/vision/ 8 | .. _PlantUML: https://www.plantuml.com/ 9 | .. _PlantUMLPreProcessor: https://plantuml.com/preprocessing 10 | .. _listsprites: https://plantuml.com/# 11 | .. _together: https://forum.plantuml.net/4387/please-provide-together-keyword-group-diagram-nodes-together 12 | .. _GithubActions: https://help.github.com/en/actions 13 | .. _GithubActionsCoreConcepts: https://help.github.com/en/actions/getting-started-with-github-actions/core-concepts-for-github-actions 14 | .. _UsageLimits: https://help.github.com/en/actions/getting-started-with-github-actions/about-github-actions#usage-limits 15 | .. _GithubCommunity: https://help.github.com/en/actions/getting-started-with-github-actions/using-community-workflows-and-actions 16 | .. _Running: https://plantuml.com/running 17 | .. _PlantUMLActions: https://github.com/marketplace?query=plantuml 18 | 19 | 20 | .. note :: 21 | 22 | In this section we're going to look at some recent new ways ways to convert PlantUML source files (puml) to an image. 23 | 24 | 25 | https://plantuml.nitorio.us/ 26 | https://github.com/sujoyu/plantuml-previewer 27 | https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:293246570391:applications~plantuml-render 28 | 29 | https://github.com/mmajis/plantuml-serverless 30 | 31 | -------------------------------------------------------------------------------- /docs_cut/GenerateDiagrams/PlantumlGenerate.yml: -------------------------------------------------------------------------------- 1 | #https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpaths 2 | 3 | name: Generate PlantUML Diagrams 4 | on: 5 | push: 6 | paths: 7 | - '**.puml' #matches zero or more of any character 8 | 9 | jobs: 10 | ci: 11 | runs-on: ubuntu-latest 12 | env: 13 | UML_FILES: ".puml" 14 | OUTPUT_DIR: "diagrams" 15 | steps: 16 | - name: Checkout Source 17 | uses: actions/checkout@v2 18 | 19 | - name: Get changed UML files 20 | id: getfile 21 | run: | 22 | echo "::set-output name=files::$(git diff-tree -r --no-commit-id --name-only ${{ github.sha }} | grep ${{ env.UML_FILES }} | xargs)" 23 | 24 | - name: UML files considered echo output 25 | run: | 26 | echo ${{ steps.getfile.outputs.files }} 27 | 28 | - name: Generate SVG Diagrams 29 | uses: cloudbees/plantuml-github-action@master 30 | with: 31 | args: -v -tsvg *${{ env.UML_FILES }} -o ${{ env.OUTPUT_DIR }} 32 | 33 | - name: Generate PNG Diagrams 34 | uses: cloudbees/plantuml-github-action@master 35 | with: 36 | args: -v -tpng *${{ env.UML_FILES }} -o ${{ env.OUTPUT_DIR }} 37 | 38 | - name: List files 39 | run: ls *${{ env.UML_FILES }}; ls -o ${{ env.OUTPUT_DIR }}/*.svg; ls -o ${{ env.OUTPUT_DIR }}/*.png 40 | 41 | - name: Commit Changed Files 42 | run: | 43 | git config --local user.email "action@github.com" 44 | git config --local user.name "GitHub Action" 45 | git add --all ${{ env.OUTPUT_DIR }}/* 46 | git commit -m "Add changes" -a 47 | 48 | - name: Push Changed Files 49 | uses: ad-m/github-push-action@master 50 | with: 51 | github_token: ${{ secrets.GITHUB_TOKEN }} -------------------------------------------------------------------------------- /docs_cut/GenerateDiagrams/action.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs_cut/GenerateDiagrams/action.png -------------------------------------------------------------------------------- /docs_cut/GenerateDiagrams/github1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs_cut/GenerateDiagrams/github1.png -------------------------------------------------------------------------------- /docs_cut/GenerateDiagrams/github2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs_cut/GenerateDiagrams/github2.png -------------------------------------------------------------------------------- /docs_cut/GenerateDiagrams/github3_upload2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs_cut/GenerateDiagrams/github3_upload2.png -------------------------------------------------------------------------------- /docs_cut/GenerateDiagrams/png.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs_cut/GenerateDiagrams/png.png -------------------------------------------------------------------------------- /docs_cut/GenerateDiagrams/sequence.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | Alice -> Bob: Authentication Request 4 | Bob --> Alice: Authentication Response 5 | 6 | Alice -> Bob: Another authentication Request 7 | Alice <-- Bob: Another authentication Response 8 | 9 | 10 | 11 | 12 | 13 | 14 | @enduml 15 | -------------------------------------------------------------------------------- /docs_cut/GenerateDiagrams/state-ptask.puml: -------------------------------------------------------------------------------- 1 | ' https://github.com/ebu/OSCIED/blob/7eebadfef2a47c55db0cdc1a2e4c653a613e27ec/docs/david/uml/state-ptask.txt 2 | @startuml 3 | 4 | skinparam state { 5 | FontColor white 6 | AttributeFontColor white 7 | FontSize 17 8 | AttributeFontSize 15 9 | AttributeFontname Droid Sans Mono 10 | BackgroundColor #527BC6 11 | BorderColor black 12 | ArrowColor #222266 13 | } 14 | 15 | 16 | 17 | [*] -right-> PENDING 18 | PENDING -right-> STARTED 19 | STARTED -down-> PROGRESS 20 | PROGRESS -right-> FAILURE 21 | PROGRESS -down-> REVOKED : Revoked\nby user 22 | PROGRESS -left-> SUCCESS 23 | FAILURE --> [*] 24 | REVOKED --> [*] 25 | SUCCESS --> [*] 26 | 27 | PENDING : statistic attribute 28 | PENDING : add_date 2013-01-06 05:01 29 | PENDING : task state metadata 30 | 31 | STARTED : statistic attribute 32 | STARTED : add_date 2013-01-06 05:01 33 | STARTED : task state metadata 34 | STARTED : pid of worker 35 | STARTED : hostname of worker 36 | 37 | PROGRESS : statistic attribute 38 | PROGRESS : add_date 2013-01-06 05:01 39 | PROGRESS : task state metadata 40 | PROGRESS : start_date 2013-01-06 05:02 41 | PROGRESS : elapsed_time 00:15:18 42 | PROGRESS : eta_time 00:03:12 43 | PROGRESS : media_size 23729373055 44 | PROGRESS : publish_size 18874368000 45 | PROGRESS : percent 80 46 | 47 | SUCCESS : statistic attribute 48 | SUCCESS : add_date 2013-01-06 05:01 49 | SUCCESS : task state metadata 50 | SUCCESS : result { 51 | SUCCESS : start_date 2013-01-06 05:02 52 | SUCCESS : elapsed_time 00:18:30 53 | SUCCESS : eta_time 00:00:00 54 | SUCCESS : media_size 23729373055 55 | SUCCESS : publish_size 23729373055 56 | SUCCESS : percent 100 57 | SUCCESS : hostname publisher-0 58 | SUCCESS : pid 18307 59 | SUCCESS : } 60 | 61 | 62 | RETRY : statistic attribute 63 | RETRY : add_date 2013-01-06 05:01 64 | RETRY : task state metadata 65 | RETRY : result exception 66 | RETRY : traceback stack trace 67 | 68 | FAILURE : statistic attribute 69 | FAILURE : add_date 2013-01-06 05:01 70 | FAILURE : error (=result) 71 | FAILURE : error_details (...) 72 | FAILURE : task state metadata 73 | FAILURE : result exception 74 | FAILURE : traceback stack trace 75 | 76 | REVOKED : statistic attribute 77 | REVOKED : add_date 2013-01-06 05:01 78 | REVOKED : task state metadata 79 | 80 | @enduml -------------------------------------------------------------------------------- /docs_cut/GenerateDiagrams/workflow.yml: -------------------------------------------------------------------------------- 1 | name: Generate PlantUML Diagrams 2 | on: 3 | push: 4 | paths: 5 | - '**.puml' 6 | branches: 7 | - master 8 | jobs: 9 | ci: 10 | runs-on: ubuntu-latest 11 | env: 12 | UML_FILES: ".puml" 13 | steps: 14 | - name: Checkout Source 15 | uses: actions/checkout@v1 16 | - name: Get changed UML files 17 | id: getfile 18 | run: | 19 | echo "::set-output name=files::$(git diff-tree -r --no-commit-id --name-only ${{ github.sha }} | grep ${{ env.UML_FILES }} | xargs)" 20 | - name: UML files considered echo output 21 | run: | 22 | echo ${{ steps.getfile.outputs.files }} 23 | 24 | - name: Generate SVG Diagrams 25 | uses: cloudbees/plantuml-github-action@master 26 | with: 27 | args: -v -tsvg ${{ steps.getfile.outputs.files }} 28 | - name: Generate PNG Diagrams 29 | uses: cloudbees/plantuml-github-action@master 30 | with: 31 | args: -v -tpng ${{ steps.getfile.outputs.files }} 32 | - name: List files 33 | run: ls *${{ env.UML_FILES }}; ls -o ${{ env.OUTPUT_DIR }}/*.svg; ls -o ${{ env.OUTPUT_DIR }}/*.png 34 | - name: Push Local Changes 35 | uses: stefanzweifel/git-auto-commit-action@v4.1.2 36 | with: 37 | commit_user_name: "my user name" 38 | commit_user_email: "me@email.org" 39 | commit_author: "My User " 40 | commit_message: "Generate SVG and PNG images for PlantUML diagrams" 41 | branch: ${{ github.head_ref }} -------------------------------------------------------------------------------- /docs_cut/MixingSyntax.rst: -------------------------------------------------------------------------------- 1 | ****************************************************** 2 | Mixing syntax 3 | ****************************************************** 4 | 5 | 6 | .. _vision: https://www.scaledagileframework.com/vision/ 7 | .. _PlantUML: https://www.plantuml.com/ 8 | .. _PlantUMLPreProcessor: https://plantuml.com/preprocessing 9 | .. _listsprites: https://plantuml.com/# 10 | .. _together: https://forum.plantuml.net/4387/please-provide-together-keyword-group-diagram-nodes-together 11 | 12 | 13 | 14 | Mixing syntax 15 | =============================================================================== 16 | As a user, I want to add classes, artifacts, databases and nodes in the same diagram. 17 | 18 | add "allow_mixing" at top of diagram 19 | 20 | 21 | .. todo :: 22 | Mixing syntax keyword 23 | 24 | .. todo :: 25 | add note about mixing syntax 26 | 27 | http://www.plantuml.com/plantuml/uml/PL5DRvqm4BppArRaPjLOKIuHGbRI0t-WkIE3zu7x38lyaQVqm6-lpICDRH6IONPtPdRyueDo8SwsMDDf1hEg9S2hDGF-XPHl4m9ZhPefUiRWE_KbA9_FejZRWSly1pLCQ2q1vs52XvmNLLN13veHjitICe96gpws3H9Uv8aqU6UeWQx5GW71uYKK06-JyP1Undgoch4J98G9Aarv8KveMSwqa5_LWBeiJmNEVN1qHStv2Uswk6XqrYoek-vKsBQRUaUzRGKk6hAb_xPyJHPkQ2rSoCqg1DH2m8pUgn7lIpWpJW7eSiJvXxpfrN2j1wKnz3QYRBpvXVNZizJ6hoaQr8t8a6n4xfH5yfa2oLHTToUhldpjKaTvlmveOkrGoopNY2XtoO4iENXuV7nEprbeBoG9newUDRhLeZmOFnkWyJlfhfxi1MUkk4V1sBzcw1tTtUQtmz2jVcZRfwUsbPyPJEH3bhz9w3-WCVC8dg8RCAKvOlLp7UKNwqlwYhFz3G00 28 | https://stackoverflow.com/questions/34364024/is-it-possible-to-use-custom-images-for-uml-items-in-plantuml 29 | 30 | I want to add classes, artifacts, databases and nodes in the same diagram -------------------------------------------------------------------------------- /docs_cut/azure/ai-at-the-edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs_cut/azure/ai-at-the-edge.png -------------------------------------------------------------------------------- /docs_cut/azure/azure.rst: -------------------------------------------------------------------------------- 1 | https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/ai/real-time-recommendation 2 | https://docs.microsoft.com/en-us/azure/architecture/solution-ideas/articles/ai-at-the-edge -------------------------------------------------------------------------------- /docs_cut/azure/chatbot-dr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs_cut/azure/chatbot-dr.png -------------------------------------------------------------------------------- /docs_cut/azure/personalized-offers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs_cut/azure/personalized-offers.png -------------------------------------------------------------------------------- /docs_cut/azure/recommenders-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/docs_cut/azure/recommenders-architecture.png -------------------------------------------------------------------------------- /docs_cut/panels.rst: -------------------------------------------------------------------------------- 1 | ******************************************************************************* 2 | panels test 3 | ******************************************************************************* 4 | 5 | .. todo :: 6 | panels not working: https://github.com/executablebooks/sphinx-panels/blob/master/sphinx_panels/css/bs-grids.css not being copied to rendered html 7 | 8 | 9 | .. panels:: 10 | :container: container pb-4 11 | :column: col-lg-6 col-md-6 col-sm-6 col-xs-12 p-2 12 | :card: shadow 13 | 14 | .. panels:: 15 | :container: container-lg pb-3 16 | :column: col-lg-4 col-md-4 col-sm-6 col-xs-12 p-2 17 | 18 | panel1 19 | --- 20 | panel2 21 | --- 22 | panel3 23 | --- 24 | :column: col-lg-12 p-2 25 | panel4 -------------------------------------------------------------------------------- /kisspng-marvin-paranoid-android-free-pixel-dungeon-compute-paranoid-android-icon-5ab061c1e39ea5.9699232415215088019323.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/kisspng-marvin-paranoid-android-free-pixel-dungeon-compute-paranoid-android-icon-5ab061c1e39ea5.9699232415215088019323.jpg -------------------------------------------------------------------------------- /marvinplay.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/marvinplay.xcf -------------------------------------------------------------------------------- /marvinplay2.1.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/marvinplay2.1.xcf -------------------------------------------------------------------------------- /marvinplay2.2.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/marvinplay2.2.xcf -------------------------------------------------------------------------------- /marvinplay2.2like.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/marvinplay2.2like.xcf -------------------------------------------------------------------------------- /marvinplay2.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/marvinplay2.xcf -------------------------------------------------------------------------------- /marvinplaylike.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/marvinplaylike.xcf -------------------------------------------------------------------------------- /marvinplaylike_.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/marvinplaylike_.xcf -------------------------------------------------------------------------------- /plantuml.1.2020.10.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/plantuml.1.2020.10.jar -------------------------------------------------------------------------------- /plantuml2pte.sh: -------------------------------------------------------------------------------- 1 | for f in *.puml; 2 | do java -jar ~/system/plantuml.jar -encodeurl "$f" > "${f/%puml/pte}"; 3 | 4 | #java -jar ~/system/plantuml.jar -encodeurl NetworkUsersMachines2.puml > NetworkUsersMachines.puml.pte 5 | 6 | done; 7 | -------------------------------------------------------------------------------- /play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Crashedmind/PlayingWithPlantUMLSource/4c55e0e12db77bdf8dcc937ea3b18e82d72faa2b/play.png -------------------------------------------------------------------------------- /sphinx_build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # By default we use png image format for plantuml diagrams because it is the most supported. 4 | # However, for diagrams with hyperlinks we use svg since it supports hyperlinks (png does not) 5 | #docker run -u `id -u $USER`:`id -g $USER` -i --rm -v $(pwd):/home/documentation -t docdac:ubuntu-1.0 java -jar /usr/share/plantuml/plantuml.jar -config /home/documentation/docs/plantuml/plantuml_cfg.puml -tsvg ./docs/plantuml/examples/links.puml 6 | 7 | docker run -u `id -u $USER`:`id -g $USER` -i --rm -v $(pwd):/home/documentation -t docdac:ubuntu-1.0 bash ./_sphinx_build.sh 8 | 9 | 10 | -------------------------------------------------------------------------------- /theme_overrides.css: -------------------------------------------------------------------------------- 1 | /* override table width restrictions */ 2 | @media screen and (min-width: 767px) { 3 | 4 | .wy-table-responsive table td { 5 | /* !important prevents the common CSS stylesheets from overriding 6 | this as on RTD they are loaded after this stylesheet */ 7 | white-space: normal !important; 8 | } 9 | 10 | .wy-table-responsive { 11 | overflow: visible !important; 12 | } 13 | } --------------------------------------------------------------------------------