docs: Voeg Keycloak aan architectuur-overzicht toe

This commit is contained in:
Tibo De Peuter 2025-03-06 16:26:00 +01:00
parent a6359539dc
commit 9814c38886
Signed by: tdpeuter
GPG key ID: 38297DE43F75FFE2
4 changed files with 37 additions and 17 deletions

View file

@ -50,6 +50,7 @@ De tech-stack bestaat uit:
- **Frontend**: TypeScript + Vue.js + Vuetify
- **Backend**: TypeScript + Node.js + Express.js + TypeORM + PostgreSQL
- **Identity provider**: Keycloak
Voor meer informatie over de keuze van deze tech-stack, zie [designkeuzes](https://github.com/SELab-2/Dwengo-1/wiki/Developer:-Design-keuzes).

BIN
assets/img/keycloak.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Before After
Before After

View file

@ -1,30 +1,49 @@
from diagrams import Cluster, Diagram
from diagrams import Cluster, Diagram, Edge
from diagrams.custom import Custom
from diagrams.onprem.certificates import LetsEncrypt
from diagrams.onprem.container import Docker
from diagrams.onprem.database import PostgreSQL
from diagrams.onprem.logging import Loki
from diagrams.onprem.monitoring import Grafana
from diagrams.onprem.network import Nginx
from diagrams.programming.flowchart import InputOutput
from diagrams.programming.framework import Vue
from diagrams.programming.language import Nodejs
from diagrams.programming.flowchart import InputOutput
with Diagram("Dwengo-1 architectuur", filename="docs/architecture/schema", show=False):
reverse_proxy = Nginx("reverse proxy")
reverse_proxy >> LetsEncrypt("SSL")
ingress = Nginx("Reverse Proxy")
certificates = LetsEncrypt("SSL")
with Cluster("Docker"):
Docker()
frontend = Vue("/")
backend = Nodejs("/api")
reverse_proxy >> frontend
frontend >> backend >> InputOutput("MikroORM") >> PostgreSQL()
backend >> Loki("logging") >> Grafana("monitoring")
with Cluster("Dwengo"):
with Cluster("Dwengo VZW"):
dwengo = Custom("Dwengo", "../../assets/img/dwengo-groen-zwart.png")
backend >> dwengo
with Cluster("Dwengo-1"):
frontend = Vue("/")
backend = Nodejs("/api")
identity_provider = Custom("IDP", "../../assets/img/keycloak.png")
database = PostgreSQL("Database")
orm = InputOutput("MikroORM")
orm >> Edge(label="map") << database
with Cluster("Observability"):
logging = Loki("Logging")
logging << Edge(color="firebrick", style="dashed") << Grafana("Monitoring")
dependencies = [
dwengo,
logging,
orm
]
backend >> dependencies
service = [
frontend,
backend,
identity_provider,
certificates
]
ingress \
>> Edge(color="darkgreen") \
<< service