Architektur-Überblick
Diese Übersicht beschreibt den Stand der D-DOK-Komponenten (Release 0.0.7, in Entwicklung 0.0.8). Quelle: git.agrarforschung.at/ddok/ddok.
Architektur-Diagramm
flowchart LR
subgraph Client["Browser-Client"]
NG["Angular 21 SPA
(client/)"]
end
subgraph Server["D-DOK Server (Node.js)"]
API["Express + Inversify
(server/)"]
PDF["PDF-Parse Worker
(modules/pdfparse)"]
end
subgraph DBs["Datenbanken (lokal)"]
MY[("MySQL
Projekte / Publikationen
Metadaten")]
MO[("MongoDB 7.0
PDF-Dateien + Volltext")]
end
subgraph DESS["D-ESS"]
DESSDB[("MySQL
Kostentraeger / Benutzer:innen")]
end
subgraph Auth["Authentifizierung"]
AD["Active Directory
(LDAPS)"]
KC["Keycloak OIDC
sso.agrarforschung.at"]
end
subgraph Web["BAB Website (0.0.8)"]
WEBMY[("MySQL
WEB_DATABASE")]
WEBMO[("MongoDB
WEB_MONGO")]
SITE["bab.gv.at Public-Frontend"]
end
NG -- HTTPS --> API
API --> MY
API --> MO
API -- Lookup --> DESSDB
API -. optional .-> AD
API -. optional .-> KC
API -- "Sync (0.0.8)" --> WEBMY
API -- "Sync (0.0.8)" --> WEBMO
WEBMY --> SITE
WEBMO --> SITE
PDF --> MO
classDef new fill:#e8f5e9,stroke:#388e3c
class WEBMY,WEBMO,SITE,Web new
Komponenten im Überblick
| Komponente | Stack | Quelle |
|---|---|---|
| Frontend (SPA) | Angular 21 (seit 0.0.8, vorher Angular 17) · Wijmo · Quill-Editor | client/ |
| Backend-API | Node.js · Express · Inversify (DI) · TypeScript | server/ |
| PDF-Parser | Worker für Volltext-Extraktion aus PDF-Dateien | modules/pdfparse/ |
| Relationale DB | MySQL 3306 — Projekte, Publikationen, Stammdaten | D-DOK eigene DB |
| Dokumenten-DB | MongoDB 7.0 (Port 27017) — PDF-Binaries + Volltext-Index | D-DOK eigene DB |
| D-ESS-Anbindung | Read-only Zugriff auf D-ESS-Datenbank für Kostentraeger/KS/KT und Benutzer:innen-Stammdaten | DESS_LINK_ENABLED=true |
| Authentifizierung | Lokal · Active Directory (LDAPS) · Keycloak OIDC (Realm ddok auf sso.agrarforschung.at) | Konfiguration in server/config/config.js |
| Website-Sync (NEU 0.0.8) | Zusaetzliche MySQL- und MongoDB-Verbindung zur oeffentlichen BAB-Website — Export ausgewählter Publikationen | WEB_DATABASE_* + WEB_MONGO_DATABASE_* |
Deployment
- Server: Dedizierter Anwendungsserver (Debian) mit Node.js, lokaler MySQL- und MongoDB-Instanz.
- SSO-Integration: Keycloak-Realm
ddok(vgl. Eintrag in der SSO-Anwendungsliste aufsso.agrarforschung.at). - Build:
npm run build— baut Client, Server (via esbuild) und PDF-Parser-Modul; Docker-Image viaDockerfileim Repo-Root. - CI/CD:
.gitlab-ci.ymlim D-DOK-Repository.
Datenfluesse
- Projekt-/Publikationsanlage: Benutzer:innen erstellen Projekte und Publikationen im Angular-Frontend; Daten werden in der MySQL-DB persistiert.
- PDF-Upload: Hochgeladene Dateien werden in MongoDB gespeichert; ein PDF-Parser-Worker extrahiert den Volltext für die Suche.
- D-ESS-Lookup: Kostenstellen, Kostentraeger und Benutzer:innen-Stammdaten werden zur Laufzeit aus der D-ESS-Datenbank gelesen.
- Website-Export (0.0.8): Freigegebene Publikationen werden in die separate Website-Datenbank synchronisiert und auf der oeffentlichen BAB-Website angezeigt.
Letzte Aktualisierung: 2026-05-23 · Pflege: Roland Neissl · Quelle: git.agrarforschung.at/ddok/ddok
Keine Kommentare vorhanden
Keine Kommentare vorhanden