Merge remote-tracking branch 'upstream/master' into master

pull/348/head
Guy Zylberberg 5 years ago
commit 8274599e02

@ -1,5 +1,23 @@
# Changelogs # Changelogs
## 0.17.0
### Added
- Support GCP Endpoints: [#259](https://github.com/mingrammer/diagrams/pull/259)
- Support DroneCI and Atlantis (Terraform): [#255](https://github.com/mingrammer/diagrams/pull/255)
- Support Okta: [#254](https://github.com/mingrammer/diagrams/pull/254)
- Support OutScale provider: [#251](https://github.com/mingrammer/diagrams/pull/251)
- Support Prometheus Operator: [#253](https://github.com/mingrammer/diagrams/pull/253)
- Support Snowflake: [#245](https://github.com/mingrammer/diagrams/pull/245)
- Support for CJK fonts + Replace ms-fonts with opensans: [#242](https://github.com/mingrammer/diagrams/pull/242)
- Support Pushover: [#241](https://github.com/mingrammer/diagrams/pull/241)
### Fixed
- Update bm, vm cases for OCI
- Set a dummy filename to prevent raise error when both name and filename are not provided: [#240](https://github.com/mingrammer/diagrams/pull/240)
## 0.16.0 ## 0.16.0
### Breaking Changes ### Breaking Changes

@ -3,6 +3,10 @@
You shouldn't edit the node class files (all files under `diagrams/` directory) by You shouldn't edit the node class files (all files under `diagrams/` directory) by
yourself. yourself.
## Set up your environment
* See [DEVELOPMENT][DEVELOPMENT.md]
## Resources ## Resources
### Update nodes ### Update nodes
@ -24,14 +28,17 @@ convert -resize 256 my_big_image.jpg my_image.jpg
ffmpeg -i my_big_image.jpg -vf scale=w=256:h=256:force_original_aspect_ratio=decrease my_image.png ffmpeg -i my_big_image.jpg -vf scale=w=256:h=256:force_original_aspect_ratio=decrease my_image.png
``` ```
Then just run the `./autogen.sh` to generate the added or updated node classes. Then just run the `./autogen.sh` to generate the added or updated node classes. (cf. [DEVELOPMENT][DEVELOPMENT.md])
> IMPORTANT NOTE: To run `autogen.sh`, you need [round][round] and > IMPORTANT NOTE: To run `autogen.sh`, you need [round][round] and
> [inkscape][inkscape] command lines that are used for cleaning the image > [inkscape][inkscape] command lines that are used for cleaning the image
> resource filenames. > resource filenames.
> >
> macOS users can download the inkscape via Homebrew. > macOS users can download the inkscape via Homebrew.
>
> Or you should use the docker image.
[DEVELOPMENT.md]: ./DEVELOPMENT.md
[round]: https://github.com/mingrammer/round [round]: https://github.com/mingrammer/round
[inkscape]: https://inkscape.org/ko/release [inkscape]: https://inkscape.org/ko/release
@ -44,11 +51,13 @@ from `ALIASES` map in [config.py](config.py).
So, if you want to add new aliases or update existing aliases, you can just add So, if you want to add new aliases or update existing aliases, you can just add
or update the `ALIASES` map in [config.py](config.py). or update the `ALIASES` map in [config.py](config.py).
Then just run the `./autogen.sh` to generate the added or updated aliases. Then just run the `./autogen.sh` to generate the added or updated aliases. (cf. [DEVELOPMENT][DEVELOPMENT.md])
> IMPORTANT NOTE: To run `autogen.sh`, you need [round][round] and > IMPORTANT NOTE: To run `autogen.sh`, you need [round][round] and
> [inkscape][inkscape] command lines that are used for clearning the image > [inkscape][inkscape] command lines that are used for clearning the image
> resource filenames. > resource filenames.
>
> Or you should use the docker image.
## Run Tests ## Run Tests

@ -15,11 +15,13 @@
![kubernetes provider](https://img.shields.io/badge/provider-Kubernetes-orange?logo=kubernetes&color=326ce5) ![kubernetes provider](https://img.shields.io/badge/provider-Kubernetes-orange?logo=kubernetes&color=326ce5)
![alibaba cloud provider](https://img.shields.io/badge/provider-AlibabaCloud-orange) ![alibaba cloud provider](https://img.shields.io/badge/provider-AlibabaCloud-orange)
![oracle cloud provider](https://img.shields.io/badge/provider-OracleCloud-orange?logo=oracle&color=f80000) ![oracle cloud provider](https://img.shields.io/badge/provider-OracleCloud-orange?logo=oracle&color=f80000)
![programming provider](https://img.shields.io/badge/provider-Programming-orange?color=5f87bf) ![openstack provider](https://img.shields.io/badge/provider-OpenStack-orange?logo=openstack&color=da1a32)
![firebase provider](https://img.shields.io/badge/provider-Firebase-orange?logo=firebase&color=FFCA28) ![firebase provider](https://img.shields.io/badge/provider-Firebase-orange?logo=firebase&color=FFCA28)
![outscale provider](https://img.shields.io/badge/provider-OutScale-orange?color=5f87bf)
![elastic provider](https://img.shields.io/badge/provider-Elastic-orange?logo=elastic&color=005571) ![elastic provider](https://img.shields.io/badge/provider-Elastic-orange?logo=elastic&color=005571)
![generic provider](https://img.shields.io/badge/provider-Generic-orange?color=5f87bf)
![programming provider](https://img.shields.io/badge/provider-Programming-orange?color=5f87bf)
![saas provider](https://img.shields.io/badge/provider-SaaS-orange?color=5f87bf) ![saas provider](https://img.shields.io/badge/provider-SaaS-orange?color=5f87bf)
![openstack provider](https://img.shields.io/badge/provider-OpenStack-orange?logo=openstack&color=da1a32)
<a href="https://www.buymeacoffee.com/mingrammer" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a> <a href="https://www.buymeacoffee.com/mingrammer" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>
@ -70,12 +72,16 @@ To contribute to diagram, check out [contribution guidelines](CONTRIBUTING.md).
[![GitPitch](https://gitpitch.com/gpimg/logo.png)](https://gitpitch.com/) [![GitPitch](https://gitpitch.com/gpimg/logo.png)](https://gitpitch.com/)
[GitPitch](https://gitpitch.com/) is a markdown presentation service for developers. Diagrams is now integrated as [Cloud Diagram Widget](https://gitpitch.com/docs/diagram-features/cloud-diagrams/) of GitPitch, so you can use the Diagrams when to create slide decks for Tech Conferences, Meetups, and Training with GitPitch. [GitPitch](https://gitpitch.com/) is the perfect slide deck solution for Tech Conferences, Training, Developer Advocates, and Educators. Diagrams is now available as a dedicated [Cloud Diagram Markdown Widget](https://docs.gitpitch.com/#/diagrams/cloud-architecture) so you can use Diagrams directly on any slide for conferences, meetups, and training.
[Cloudiscovery](https://github.com/Cloud-Architects/cloudiscovery) helps you to analyze resources in your cloud (AWS/GCP/Azure/Alibaba/IBM) account. It allows you to create a diagram of analyzed cloud resource map based on this Diagrams library, so you can draw the your existing cloud infratructure with Cloudicovery. [Cloudiscovery](https://github.com/Cloud-Architects/cloudiscovery) helps you to analyze resources in your cloud (AWS/GCP/Azure/Alibaba/IBM) account. It allows you to create a diagram of analyzed cloud resource map based on this Diagrams library, so you can draw the your existing cloud infrastructure with Cloudicovery.
[Airflow Diagrams](https://github.com/feluelle/airflow-diagrams) is an Airflow plugin that aims to easily visualise your Airflow DAGs on service level from providers like AWS, GCP, Azure, etc. via diagrams. [Airflow Diagrams](https://github.com/feluelle/airflow-diagrams) is an Airflow plugin that aims to easily visualise your Airflow DAGs on service level from providers like AWS, GCP, Azure, etc. via diagrams.
## Other languages
- If you are familiar to Go, you can use [go-diagrams](https://github.com/blushft/go-diagrams) as well.
## License ## License
[MIT](LICENSE) [MIT](LICENSE)

@ -66,9 +66,10 @@ UPPER_WORDS = {
), ),
"oci": ("oci", "ocid", "oke", "ocir", "ddos", "waf", "bm", "vm", "cdn", "vpn", "dns", "nat", "dms", "api", "id"), "oci": ("oci", "ocid", "oke", "ocir", "ddos", "waf", "bm", "vm", "cdn", "vpn", "dns", "nat", "dms", "api", "id"),
"elastic": ("apm", "siem", "ece", "eck"), "elastic": ("apm", "siem", "ece", "eck"),
"generic": ("vpn", "ios", "xen", "sql"), "generic": ("vpn", "ios", "xen", "sql", "lxc"),
"outscale": ("osc",), "outscale": ("osc",),
"openstack": ("rpm", "loci", "nfv", "ec2api"), "openstack": ("rpm", "loci", "nfv", "ec2api"),
"pve": ("pve"),
} }
TITLE_WORDS = { TITLE_WORDS = {
@ -99,6 +100,7 @@ ALIASES = {
"Zuulci": "ZuulCI", "Zuulci": "ZuulCI",
}, },
"container": { "container": {
"Lxc": "LXC",
"Rkt": "RKT", "Rkt": "RKT",
}, },
"database": { "database": {
@ -124,14 +126,23 @@ ALIASES = {
"network": { "network": {
"Etcd": "ETCD", "Etcd": "ETCD",
"Haproxy": "HAProxy", "Haproxy": "HAProxy",
"OpenServiceMesh": "OSM",
"Opnsense": "OPNSense",
"Pfsense": "PFSense", "Pfsense": "PFSense",
"Vyos": "VyOS" "Vyos": "VyOS"
}, },
"proxmox": {
"Pve": "ProxmoxVE",
},
"queue": { "queue": {
"Activemq": "ActiveMQ", "Activemq": "ActiveMQ",
"Rabbitmq": "RabbitMQ", "Rabbitmq": "RabbitMQ",
"Zeromq": "ZeroMQ", "Zeromq": "ZeroMQ",
}, },
"storage": {
"Ceph": "CEPH",
"CephOsd": "CEPH_OSD",
},
"workflow": { "workflow": {
"Kubeflow": "KubeFlow", "Kubeflow": "KubeFlow",
"Nifi": "NiFi", "Nifi": "NiFi",

@ -60,6 +60,8 @@ class Diagram:
"height": "1.4", "height": "1.4",
"labelloc": "b", "labelloc": "b",
# imagepos attribute is not backward compatible # imagepos attribute is not backward compatible
# TODO: check graphviz version to see if "imagepos" is available >= 2.40
# https://github.com/xflr6/graphviz/blob/master/graphviz/backend.py#L248
# "imagepos": "tc", # "imagepos": "tc",
"imagescale": "true", "imagescale": "true",
"fontname": "Sans-Serif", "fontname": "Sans-Serif",

@ -16,6 +16,10 @@ class Router(_Network):
_icon = "router.png" _icon = "router.png"
class Subnet(_Network):
_icon = "subnet.png"
class Switch(_Network): class Switch(_Network):
_icon = "switch.png" _icon = "switch.png"

@ -0,0 +1,19 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _K8S
class _Chaos(_K8S):
_type = "chaos"
_icon_dir = "resources/k8s/chaos"
class ChaosMesh(_Chaos):
_icon = "chaos-mesh.png"
class LitmusChaos(_Chaos):
_icon = "litmus-chaos.png"
# Aliases

@ -8,6 +8,10 @@ class _Ecosystem(_K8S):
_icon_dir = "resources/k8s/ecosystem" _icon_dir = "resources/k8s/ecosystem"
class ExternalDns(_Ecosystem):
_icon = "external-dns.png"
class Helm(_Ecosystem): class Helm(_Ecosystem):
_icon = "helm.png" _icon = "helm.png"

@ -0,0 +1,19 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Aggregator(_OnPrem):
_type = "aggregator"
_icon_dir = "resources/onprem/aggregator"
class Fluentd(_Aggregator):
_icon = "fluentd.png"
class Vector(_Aggregator):
_icon = "vector.png"
# Aliases

@ -0,0 +1,19 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Auth(_OnPrem):
_type = "auth"
_icon_dir = "resources/onprem/auth"
class BuzzfeedSso(_Auth):
_icon = "buzzfeed-sso.png"
class Oauth2Proxy(_Auth):
_icon = "oauth2-proxy.png"
# Aliases

@ -0,0 +1,19 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Certificates(_OnPrem):
_type = "certificates"
_icon_dir = "resources/onprem/certificates"
class CertManager(_Certificates):
_icon = "cert-manager.png"
class LetsEncrypt(_Certificates):
_icon = "lets-encrypt.png"
# Aliases

@ -12,10 +12,15 @@ class Docker(_Container):
_icon = "docker.png" _icon = "docker.png"
class Lxc(_Container):
_icon = "lxc.png"
class Rkt(_Container): class Rkt(_Container):
_icon = "rkt.png" _icon = "rkt.png"
# Aliases # Aliases
LXC = Lxc
RKT = Rkt RKT = Rkt

@ -0,0 +1,15 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Identity(_OnPrem):
_type = "identity"
_icon_dir = "resources/onprem/identity"
class Dex(_Identity):
_icon = "dex.png"
# Aliases

@ -12,10 +12,6 @@ class Fluentbit(_Logging):
_icon = "fluentbit.png" _icon = "fluentbit.png"
class Fluentd(_Logging):
_icon = "fluentd.png"
class Graylog(_Logging): class Graylog(_Logging):
_icon = "graylog.png" _icon = "graylog.png"

@ -36,4 +36,8 @@ class Thanos(_Monitoring):
_icon = "thanos.png" _icon = "thanos.png"
class Zabbix(_Monitoring):
_icon = "zabbix.png"
# Aliases # Aliases

@ -12,6 +12,10 @@ class Apache(_Network):
_icon = "apache.png" _icon = "apache.png"
class Bind9(_Network):
_icon = "bind-9.png"
class Caddy(_Network): class Caddy(_Network):
_icon = "caddy.png" _icon = "caddy.png"
@ -28,6 +32,14 @@ class Etcd(_Network):
_icon = "etcd.png" _icon = "etcd.png"
class Glassfish(_Network):
_icon = "glassfish.png"
class Gunicorn(_Network):
_icon = "gunicorn.png"
class Haproxy(_Network): class Haproxy(_Network):
_icon = "haproxy.png" _icon = "haproxy.png"
@ -40,6 +52,14 @@ class Istio(_Network):
_icon = "istio.png" _icon = "istio.png"
class Jbossas(_Network):
_icon = "jbossas.png"
class Jetty(_Network):
_icon = "jetty.png"
class Kong(_Network): class Kong(_Network):
_icon = "kong.png" _icon = "kong.png"
@ -52,6 +72,18 @@ class Nginx(_Network):
_icon = "nginx.png" _icon = "nginx.png"
class Ocelot(_Network):
_icon = "ocelot.png"
class OpenServiceMesh(_Network):
_icon = "open-service-mesh.png"
class Opnsense(_Network):
_icon = "opnsense.png"
class Pfsense(_Network): class Pfsense(_Network):
_icon = "pfsense.png" _icon = "pfsense.png"
@ -60,6 +92,10 @@ class Pomerium(_Network):
_icon = "pomerium.png" _icon = "pomerium.png"
class Powerdns(_Network):
_icon = "powerdns.png"
class Tomcat(_Network): class Tomcat(_Network):
_icon = "tomcat.png" _icon = "tomcat.png"
@ -72,6 +108,10 @@ class Vyos(_Network):
_icon = "vyos.png" _icon = "vyos.png"
class Wildfly(_Network):
_icon = "wildfly.png"
class Zookeeper(_Network): class Zookeeper(_Network):
_icon = "zookeeper.png" _icon = "zookeeper.png"
@ -80,5 +120,7 @@ class Zookeeper(_Network):
ETCD = Etcd ETCD = Etcd
HAProxy = Haproxy HAProxy = Haproxy
OSM = OpenServiceMesh
OPNSense = Opnsense
PFSense = Pfsense PFSense = Pfsense
VyOS = Vyos VyOS = Vyos

@ -0,0 +1,17 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Proxmox(_OnPrem):
_type = "proxmox"
_icon_dir = "resources/onprem/proxmox"
class Pve(_Proxmox):
_icon = "pve.png"
# Aliases
ProxmoxVE = Pve

@ -0,0 +1,26 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Storage(_OnPrem):
_type = "storage"
_icon_dir = "resources/onprem/storage"
class CephOsd(_Storage):
_icon = "ceph-osd.png"
class Ceph(_Storage):
_icon = "ceph.png"
class Glusterfs(_Storage):
_icon = "glusterfs.png"
# Aliases
CEPH = Ceph
CEPH_OSD = CephOsd

@ -28,6 +28,14 @@ class Dart(_Language):
_icon = "dart.png" _icon = "dart.png"
class Elixir(_Language):
_icon = "elixir.png"
class Erlang(_Language):
_icon = "erlang.png"
class Go(_Language): class Go(_Language):
_icon = "go.png" _icon = "go.png"

@ -8,6 +8,10 @@ class _Cdn(_Saas):
_icon_dir = "resources/saas/cdn" _icon_dir = "resources/saas/cdn"
class Akamai(_Cdn):
_icon = "akamai.png"
class Cloudflare(_Cdn): class Cloudflare(_Cdn):
_icon = "cloudflare.png" _icon = "cloudflare.png"

@ -8,10 +8,22 @@ class _Chat(_Saas):
_icon_dir = "resources/saas/chat" _icon_dir = "resources/saas/chat"
class Mattermost(_Chat):
_icon = "mattermost.png"
class RocketChat(_Chat):
_icon = "rocket-chat.png"
class Slack(_Chat): class Slack(_Chat):
_icon = "slack.png" _icon = "slack.png"
class Teams(_Chat):
_icon = "teams.png"
class Telegram(_Chat): class Telegram(_Chat):
_icon = "telegram.png" _icon = "telegram.png"

@ -26,6 +26,7 @@ Node classes list of generic provider.
- **diagrams.generic.network.Firewall** - **diagrams.generic.network.Firewall**
- **diagrams.generic.network.Router** - **diagrams.generic.network.Router**
- **diagrams.generic.network.Subnet**
- **diagrams.generic.network.Switch** - **diagrams.generic.network.Switch**
- **diagrams.generic.network.VPN** - **diagrams.generic.network.VPN**

@ -5,6 +5,11 @@ title: K8S
Node classes list of k8s provider. Node classes list of k8s provider.
## k8s.chaos
- **diagrams.k8s.chaos.ChaosMesh**
- **diagrams.k8s.chaos.LitmusChaos**
## k8s.clusterconfig ## k8s.clusterconfig
- **diagrams.k8s.clusterconfig.HPA**, **HorizontalPodAutoscaler** (alias) - **diagrams.k8s.clusterconfig.HPA**, **HorizontalPodAutoscaler** (alias)
@ -32,6 +37,7 @@ Node classes list of k8s provider.
## k8s.ecosystem ## k8s.ecosystem
- **diagrams.k8s.ecosystem.ExternalDns**
- **diagrams.k8s.ecosystem.Helm** - **diagrams.k8s.ecosystem.Helm**
- **diagrams.k8s.ecosystem.Krew** - **diagrams.k8s.ecosystem.Krew**
- **diagrams.k8s.ecosystem.Kustomize** - **diagrams.k8s.ecosystem.Kustomize**

@ -5,6 +5,11 @@ title: OnPrem
Node classes list of onprem provider. Node classes list of onprem provider.
## onprem.aggregator
- **diagrams.onprem.aggregator.Fluentd**
- **diagrams.onprem.aggregator.Vector**
## onprem.analytics ## onprem.analytics
- **diagrams.onprem.analytics.Beam** - **diagrams.onprem.analytics.Beam**
@ -20,12 +25,22 @@ Node classes list of onprem provider.
- **diagrams.onprem.analytics.Storm** - **diagrams.onprem.analytics.Storm**
- **diagrams.onprem.analytics.Tableau** - **diagrams.onprem.analytics.Tableau**
## onprem.auth
- **diagrams.onprem.auth.BuzzfeedSso**
- **diagrams.onprem.auth.Oauth2Proxy**
## onprem.cd ## onprem.cd
- **diagrams.onprem.cd.Spinnaker** - **diagrams.onprem.cd.Spinnaker**
- **diagrams.onprem.cd.TektonCli** - **diagrams.onprem.cd.TektonCli**
- **diagrams.onprem.cd.Tekton** - **diagrams.onprem.cd.Tekton**
## onprem.certificates
- **diagrams.onprem.certificates.CertManager**
- **diagrams.onprem.certificates.LetsEncrypt**
## onprem.ci ## onprem.ci
- **diagrams.onprem.ci.Circleci**, **CircleCI** (alias) - **diagrams.onprem.ci.Circleci**, **CircleCI** (alias)
@ -51,6 +66,7 @@ Node classes list of onprem provider.
## onprem.container ## onprem.container
- **diagrams.onprem.container.Docker** - **diagrams.onprem.container.Docker**
- **diagrams.onprem.container.Lxc**, **LXC** (alias)
- **diagrams.onprem.container.Rkt**, **RKT** (alias) - **diagrams.onprem.container.Rkt**, **RKT** (alias)
## onprem.database ## onprem.database
@ -91,6 +107,10 @@ Node classes list of onprem provider.
- **diagrams.onprem.iac.Awx** - **diagrams.onprem.iac.Awx**
- **diagrams.onprem.iac.Terraform** - **diagrams.onprem.iac.Terraform**
## onprem.identity
- **diagrams.onprem.identity.Dex**
## onprem.inmemory ## onprem.inmemory
- **diagrams.onprem.inmemory.Aerospike** - **diagrams.onprem.inmemory.Aerospike**
@ -101,7 +121,6 @@ Node classes list of onprem provider.
## onprem.logging ## onprem.logging
- **diagrams.onprem.logging.Fluentbit**, **FluentBit** (alias) - **diagrams.onprem.logging.Fluentbit**, **FluentBit** (alias)
- **diagrams.onprem.logging.Fluentd**
- **diagrams.onprem.logging.Graylog** - **diagrams.onprem.logging.Graylog**
- **diagrams.onprem.logging.Loki** - **diagrams.onprem.logging.Loki**
- **diagrams.onprem.logging.Rsyslog**, **RSyslog** (alias) - **diagrams.onprem.logging.Rsyslog**, **RSyslog** (alias)
@ -120,27 +139,42 @@ Node classes list of onprem provider.
- **diagrams.onprem.monitoring.Sentry** - **diagrams.onprem.monitoring.Sentry**
- **diagrams.onprem.monitoring.Splunk** - **diagrams.onprem.monitoring.Splunk**
- **diagrams.onprem.monitoring.Thanos** - **diagrams.onprem.monitoring.Thanos**
- **diagrams.onprem.monitoring.Zabbix**
## onprem.network ## onprem.network
- **diagrams.onprem.network.Apache** - **diagrams.onprem.network.Apache**
- **diagrams.onprem.network.Bind9**
- **diagrams.onprem.network.Caddy** - **diagrams.onprem.network.Caddy**
- **diagrams.onprem.network.Consul** - **diagrams.onprem.network.Consul**
- **diagrams.onprem.network.Envoy** - **diagrams.onprem.network.Envoy**
- **diagrams.onprem.network.Etcd**, **ETCD** (alias) - **diagrams.onprem.network.Etcd**, **ETCD** (alias)
- **diagrams.onprem.network.Glassfish**
- **diagrams.onprem.network.Gunicorn**
- **diagrams.onprem.network.Haproxy**, **HAProxy** (alias) - **diagrams.onprem.network.Haproxy**, **HAProxy** (alias)
- **diagrams.onprem.network.Internet** - **diagrams.onprem.network.Internet**
- **diagrams.onprem.network.Istio** - **diagrams.onprem.network.Istio**
- **diagrams.onprem.network.Jbossas**
- **diagrams.onprem.network.Jetty**
- **diagrams.onprem.network.Kong** - **diagrams.onprem.network.Kong**
- **diagrams.onprem.network.Linkerd** - **diagrams.onprem.network.Linkerd**
- **diagrams.onprem.network.Nginx** - **diagrams.onprem.network.Nginx**
- **diagrams.onprem.network.Ocelot**
- **diagrams.onprem.network.OpenServiceMesh**, **OSM** (alias)
- **diagrams.onprem.network.Opnsense**, **OPNSense** (alias)
- **diagrams.onprem.network.Pfsense**, **PFSense** (alias) - **diagrams.onprem.network.Pfsense**, **PFSense** (alias)
- **diagrams.onprem.network.Pomerium** - **diagrams.onprem.network.Pomerium**
- **diagrams.onprem.network.Powerdns**
- **diagrams.onprem.network.Tomcat** - **diagrams.onprem.network.Tomcat**
- **diagrams.onprem.network.Traefik** - **diagrams.onprem.network.Traefik**
- **diagrams.onprem.network.Vyos**, **VyOS** (alias) - **diagrams.onprem.network.Vyos**, **VyOS** (alias)
- **diagrams.onprem.network.Wildfly**
- **diagrams.onprem.network.Zookeeper** - **diagrams.onprem.network.Zookeeper**
## onprem.proxmox
- **diagrams.onprem.proxmox.Pve**, **ProxmoxVE** (alias)
## onprem.queue ## onprem.queue
- **diagrams.onprem.queue.Activemq**, **ActiveMQ** (alias) - **diagrams.onprem.queue.Activemq**, **ActiveMQ** (alias)
@ -158,6 +192,12 @@ Node classes list of onprem provider.
- **diagrams.onprem.security.Trivy** - **diagrams.onprem.security.Trivy**
- **diagrams.onprem.security.Vault** - **diagrams.onprem.security.Vault**
## onprem.storage
- **diagrams.onprem.storage.CephOsd**, **CEPH_OSD** (alias)
- **diagrams.onprem.storage.Ceph**, **CEPH** (alias)
- **diagrams.onprem.storage.Glusterfs**
## onprem.vcs ## onprem.vcs
- **diagrams.onprem.vcs.Git** - **diagrams.onprem.vcs.Git**

@ -26,6 +26,8 @@ Node classes list of programming provider.
- **diagrams.programming.language.Cpp** - **diagrams.programming.language.Cpp**
- **diagrams.programming.language.Csharp** - **diagrams.programming.language.Csharp**
- **diagrams.programming.language.Dart** - **diagrams.programming.language.Dart**
- **diagrams.programming.language.Elixir**
- **diagrams.programming.language.Erlang**
- **diagrams.programming.language.Go** - **diagrams.programming.language.Go**
- **diagrams.programming.language.Java** - **diagrams.programming.language.Java**
- **diagrams.programming.language.Javascript**, **JavaScript** (alias) - **diagrams.programming.language.Javascript**, **JavaScript** (alias)

@ -17,11 +17,15 @@ Node classes list of saas provider.
## saas.cdn ## saas.cdn
- **diagrams.saas.cdn.Akamai**
- **diagrams.saas.cdn.Cloudflare** - **diagrams.saas.cdn.Cloudflare**
## saas.chat ## saas.chat
- **diagrams.saas.chat.Mattermost**
- **diagrams.saas.chat.RocketChat**
- **diagrams.saas.chat.Slack** - **diagrams.saas.chat.Slack**
- **diagrams.saas.chat.Teams**
- **diagrams.saas.chat.Telegram** - **diagrams.saas.chat.Telegram**
## saas.identity ## saas.identity

@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "diagrams" name = "diagrams"
version = "0.16.0" version = "0.17.0"
description = "Diagram as Code" description = "Diagram as Code"
license = "MIT" license = "MIT"
authors = ["mingrammer <mingrammer@gmail.com>"] authors = ["mingrammer <mingrammer@gmail.com>"]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

@ -13,7 +13,7 @@ import sys
import config as cfg import config as cfg
from . import resource_dir from . import resource_dir
_usage = "Usage: resources.py <cmd> <pvd>" _usage = "Usage: resource.py <cmd> <pvd>"
def cleaner_onprem(f): def cleaner_onprem(f):

@ -111,20 +111,6 @@ class Index extends React.Component {
</div> </div>
); );
const Sponsorship = () => (
<div
className="productShowcaseSection paddingBottom"
style={{textAlign: 'center'}}>
<h2>Sponsorship</h2>
<MarkdownBlock>
Sponsoring always helps a lot to maintain Diagrams. Thank you :)
</MarkdownBlock>
<a href="https://www.buymeacoffee.com/mingrammer" target="_blank">
<img id="buymeacoffee" src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee"/>
</a>
</div>
);
const Example = () => ( const Example = () => (
<Block> <Block>
{[ {[
@ -162,7 +148,6 @@ class Index extends React.Component {
<About /> <About />
<Example /> <Example />
<Example2 /> <Example2 />
<Sponsorship />
</div> </div>
</div> </div>
); );

@ -18,11 +18,13 @@
"nodes/k8s", "nodes/k8s",
"nodes/alibabacloud", "nodes/alibabacloud",
"nodes/oci", "nodes/oci",
"nodes/programming", "nodes/openstack",
"nodes/firebase", "nodes/firebase",
"nodes/saas", "nodes/outscale",
"nodes/elastic", "nodes/elastic",
"nodes/outscale" "nodes/generic",
"nodes/programming",
"nodes/saas"
] ]
} }
} }

@ -1253,9 +1253,9 @@ bindings@^1.5.0:
file-uri-to-path "1.0.0" file-uri-to-path "1.0.0"
bl@^1.0.0: bl@^1.0.0:
version "1.2.2" version "1.2.3"
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7"
integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==
dependencies: dependencies:
readable-stream "^2.3.5" readable-stream "^2.3.5"
safe-buffer "^5.1.1" safe-buffer "^5.1.1"
@ -1363,9 +1363,9 @@ buffer-from@^1.0.0:
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
buffer@^5.2.1: buffer@^5.2.1:
version "5.5.0" version "5.6.0"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.5.0.tgz#9c3caa3d623c33dd1c7ef584b89b88bf9c9bc1ce" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786"
integrity sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww== integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==
dependencies: dependencies:
base64-js "^1.0.2" base64-js "^1.0.2"
ieee754 "^1.1.4" ieee754 "^1.1.4"
@ -1661,7 +1661,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
dependencies: dependencies:
delayed-stream "~1.0.0" delayed-stream "~1.0.0"
commander@^2.15.1: commander@^2.15.1, commander@^2.8.1:
version "2.20.3" version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
@ -1671,13 +1671,6 @@ commander@^4.0.1:
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
commander@~2.8.1:
version "2.8.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
integrity sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=
dependencies:
graceful-readlink ">= 1.0.0"
commondir@^1.0.1: commondir@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@ -2062,9 +2055,9 @@ decompress-unzip@^4.0.1:
yauzl "^2.4.2" yauzl "^2.4.2"
decompress@^4.0.0, decompress@^4.2.0: decompress@^4.0.0, decompress@^4.2.0:
version "4.2.0" version "4.2.1"
resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d" resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118"
integrity sha1-eu3YVCflqS2s/lVnSnxQXpbQH50= integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==
dependencies: dependencies:
decompress-tar "^4.0.0" decompress-tar "^4.0.0"
decompress-tarbz2 "^4.0.0" decompress-tarbz2 "^4.0.0"
@ -3071,14 +3064,9 @@ got@^8.3.1:
url-to-options "^1.0.1" url-to-options "^1.0.1"
graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
version "4.2.3" version "4.2.4"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
"graceful-readlink@>= 1.0.0":
version "1.0.1"
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
gray-matter@^2.1.0: gray-matter@^2.1.0:
version "2.1.1" version "2.1.1"
@ -5597,11 +5585,16 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
version "5.2.0" version "5.2.0"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
safe-buffer@^5.1.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safe-json-parse@~1.0.1: safe-json-parse@~1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57"
@ -5633,11 +5626,11 @@ scheduler@^0.19.1:
object-assign "^4.1.1" object-assign "^4.1.1"
seek-bzip@^1.0.5: seek-bzip@^1.0.5:
version "1.0.5" version "1.0.6"
resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4"
integrity sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w= integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==
dependencies: dependencies:
commander "~2.8.1" commander "^2.8.1"
select@^1.1.2: select@^1.1.2:
version "1.1.2" version "1.1.2"
@ -6327,9 +6320,9 @@ typedarray@^0.0.6:
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
unbzip2-stream@^1.0.9: unbzip2-stream@^1.0.9:
version "1.3.3" version "1.4.3"
resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a" resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7"
integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg== integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==
dependencies: dependencies:
buffer "^5.2.1" buffer "^5.2.1"
through "^2.3.8" through "^2.3.8"

Loading…
Cancel
Save