├── .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 | 
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 "</$alias//>>\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 "</$alias//>>\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 "