Stand: 2026-03-06
Diese Seite ist der Hub für alle Architektur- und Integrations-Notizen der WvdS-Plattform.
Die WvdS-Plattform entsteht aus der Notwendigkeit, eine über Jahrzehnte gewachsene, disziplinär fragmentierte Systemlandschaft zusammenzuführen. Mechaniker, Elektriker und Prozessingenieure arbeiteten bislang mit eigenen Datenbanken, eigenen Formularen und eigenen Prüflogiken — ohne gemeinsame Datenbasis, ohne durchgängige Rückverfolgbarkeit und ohne einheitliche Schnittstelle für Reporting und Audit.
Die Plattform besteht aus drei klar getrennten Datenbankschichten, die jeweils genau eine Frage beantworten. ENIVERSSIAM beantwortet: Wer darf was? Identität, Authentifizierung und Berechtigungen sind zentral und werden von allen anderen Systemen konsumiert. ENIVERSCAFM beantwortet: Was gibt es, wo, in welchem Zustand? Alle technischen Objekte — Anlagen, Geräte, Rohrleitungen, Standorte — werden in einem einzigen, disziplin-neutralen Bestandsmodell geführt. ENIVERSPIMS beantwortet: Was muss getan werden, was wurde getan, durch wen? Prüfungen, Reparaturen, Wartungen und Sicherheitsbewertungen sind durchgängig verknüpft und lückenlos nachverfolgbar.
Diese Trennung macht die Plattform erweiterbar: Neue Gerätetypen erfordern keine Programmänderungen, neue Prüfarten lassen sich ohne Schemaänderungen einführen, und neue Benutzer oder Rollen werden an einem einzigen Ort verwaltet, ohne dass Legacy-Systeme einzeln angepasst werden müssen.
| Komponente | Technologie | Rolle | Dokument |
|---|---|---|---|
| WvdS.Shell | FPC/Lazarus (Windows/Linux) | Nativer GUI-Host, Extension-Lifecycle, Auth-Client | 2. WvdS.Shell Auth-Architektur |
| Gateway.Service | FPC/Lazarus (Windows/Linux) | HTTP-REST-Gateway, Auth-Middleware, DB-Abstraktionsschicht | 3. Gateway Auth-Erweiterungen |
| ENIVERSSIAM | SQL Server | Identity, Auth, Rollen, Deployments | 4. Datenschicht |
| ENIVERSCAFM | SQL Server | Technische Plätze, Equipment, Standorte, Anlagen | 2. CAFM-Architektur |
| ENIVERSPIMS | SQL Server | Prüfungen, Aufträge, Sicherheitsgespräche | 3. PIMS-Architektur |
| wvds-amed-cafm | pas2js (.wvdx) | VSIX-Modul: Bestandsführung (TP, Equipment, EMR) | 4.1 CAFM-Extension |
| wvds-amed-pims | pas2js (.wvdx) | VSIX-Modul: Prozessführung (Prüfung, Aufträge, Sicherheit) | 4.2 PIMS-Extension |
┌─────────────────────────────────────────────────────────────────────┐
│ Client-Rechner (Windows) │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ WvdS.Shell (FPC/Lazarus) │ │
│ │ ├─ TitleBar / ActivityBar / StatusBar (nativ) │ │
│ │ ├─ WebView-Tabs / SideBar / BottomPanel (CEF) │ │
│ │ └─ Auth: PFX-Validator + Context-Detector + JWT-Manager │ │
│ └────────────────────┬────────────────────────────────────────┘ │
│ │ HTTPS (JWT Bearer / SSPI Negotiate) │
└───────────────────────┼─────────────────────────────────────────────┘
│
┌───────────────────────┼─────────────────────────────────────────────┐
│ Server (Windows) │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ Gateway.Service (FPC/Lazarus) │ │
│ │ Middleware-Pipeline (9 Stufen): │ │
│ │ Metrics → Logging → HTTPS → Size → RateLimit │ │
│ │ → InstallId → Auth (amBearer/amWindows) → Crypto → Routes │ │
│ │ │ │
│ │ /api/v1/auth/* → Auth-Controller │ │
│ │ /api/v1/features → Feature-Flags (ENIVERSASYS) │ │
│ │ /api/v1/... → Business-Endpunkte │ │
│ └──────┬───────────────────────────┬───────────────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────────┐ │
│ │ ENIVERSSIAM │ │ ENIVERSCAFM │ │
│ │ core.person │ │ (Synonyme auf │ │
│ │ auth.* │◄────────│ ENIVERSSIAM) │ │
│ └──────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
WvdS.Shell Gateway.Service DC / ENIVERSSIAM
│ │ │
│ 1. PFX prüfen (lokal) │ │
│ ↓ Schicht 1 OK │ │
│ │ │
│ 2a. SSPI Negotiate ──────►│── Kerberos-Ticket ──────►│
│ (Corpnet / VPN) │◄─ Identität bestätigt ───│
│◄─── JWT (access+refresh) ──│ │
│ │ │
│ 2b. username+pw ─────────►│── LDAP/DB-Check ────────►│
│ (Extern / BYOD) │◄─ OK ────────────────────│
│◄─── TOTP-Challenge ────────│ │
│──── TOTP-Code ────────────►│── HMAC-SHA1 intern │
│◄─── JWT (access+refresh) ──│ │
│ │ │
│ 3. GET /api/v1/features ─►│── ENIVERSASYS-DB │
│◄─── Feature-Flags JSON ────│ │
│ │ │
│ 4. Extension-Scan, UI │ │
Details: Auth-Architektur — Gesamtübersicht
ENIVERSPIMS ENIVERSCAFM ENIVERSSIAM
│ │ │
│ FK → asset.item.id │ │
│─────────────────────────►│ │
│ (inspection.rule, │ Synonyme (13×) │
│ work.order, ...) │─────────────────────────►│
│ │ (auth.user, core.person) │
│ │ │
└── JWT-Claim ─────────────┴──────────────────────────┘
(kein DB-Direktzugriff auf ENIVERSSIAM zur Laufzeit)
| Regel | Beschreibung |
|---|---|
| 1 | ENIVERSPIMS referenziert Assets via FK auf asset.item.id (ENIVERSCAFM), nie direkt auf auth.* |
| 2 | ENIVERSCAFM greift auf ENIVERSSIAM ausschließlich via Synonyme zu (read-only, 13 Synonyme) |
| 3 | Benutzerkontext fließt als JWT-Claim — kein Service liest ENIVERSSIAM direkt aus der DB |
| Datenbank | Schema | Kerninhalt | Status |
|---|---|---|---|
| ENIVERSSIAM | core | person — Basisidentität | ✓ Produktiv |
| ENIVERSSIAM | auth | user, role, permission, device, token, MFA… | ✓ Produktiv |
| ENIVERSCAFM | auth | 13 Synonyme → ENIVERSSIAM.auth.* | ✓ Produktiv |
| ENIVERSCAFM | hr | Synonym person → ENIVERSSIAM.core.person | ✓ Produktiv |
| ENIVERSCAFM | dbo | Legacy-Anlagen, Betrieb, Gebäude (AMED-Daten) | Migration ausstehend |
| ENIVERSCAFM | audit | Ereignis-Log, PQ-Signaturen | ✓ Produktiv |
| ENIVERSCAFM | org | Standorte (org.site) | ✓ Produktiv |
| ENIVERSCAFM | settings | User-Präferenzen | ✓ Produktiv |
| ENIVERSPIMS | inspection | Prüftypen, Prüfregeln, Prüfergebnisse, Messwerte | Im Aufbau (Phase 4) |
| ENIVERSPIMS | work | Arbeitsaufträge (unified: U/R/W/…) | Im Aufbau (Phase 4) |
| ENIVERSPIMS | safety | Sicherheitsgespräche, SIL-Bewertung | Im Aufbau (Phase 4) |
| ENIVERSPIMS | fault | Schadensmeldungen, Reparaturplanung | Im Aufbau (Phase 4) |
| Phase | Inhalt | Status |
|---|---|---|
| 1 | auth.* + core.person: ENIVERSCAFM → ENIVERSSIAM | ✓ Abgeschlossen |
| 2 | LD-System (ENIVERS tblPerson/tblRolle) → ENIVERSSIAM | ✓ Abgeschlossen |
| 3 | AMED-Bestandsdaten (Branches, Devices, Facilities) → ENIVERSCAFM | Ausstehend |
| 4 | ENIVERSPIMS aufbauen; WIS/PROOF/TecDB migrieren | Ausstehend |
| 5 | ENIVERSASYS aufbauen; Feature-Flags aus ENIVERSCAFM auslagern | Ausstehend |
Details: 5. Auth-Migration — Legacy-Systeme
| System | Technologie | Migrationsziel | Status |
|---|---|---|---|
| ENIVERS (LD-System SQL) | SQL Server | ENIVERSSIAM | ✓ Phase 2 done |
| LdUsr.accdb | MS Access (UI-Only) | — | kein Datenziel |
| AMED .NET Framework | C# + ADO.NET TypedDataSet | ENIVERSCAFM | Ausstehend |
| AMED .NET 8 (SETY) | C# .NET 8 + WebAPI | ENIVERSCAFM | Ausstehend |
| WIS / PROOF (Delphi) | Delphi + TADOConnection | CAFM + PIMS | Ausstehend |
| TecDB (Rohre) | SQL Server | ENIVERSPIMS | Ausstehend |
| Rohre / TecDB (AMED Amed.Win.Rohre) | C# + ADO.NET + SQL Server EAV | ENIVERSPIMS | Ausstehend |
| Delphi SCCM/SCCM_PWD | Delphi + ADOX | abgelöst ✓ | Phase 2 done |
| Delphi SB / ISAPI | Delphi | abgelöst ✓ | → Shell/Gateway |
Details: 5. Auth-Migration — Quellsysteme
| Nr | Dokument | Inhalt |
|---|---|---|
| — | WvdS-Plattform — Gesamtübersicht | Diese Seite — Überblick, Topologie, Migration |
| 1 | Auth-Architektur — Gesamtübersicht | Konzept, Schichten, Auth-Modi, CWE-Referenzen |
| 1.2 | WvdS.Shell — GUI-Schicht | PFX, Kerberos, MFA-Flow, Startup-Phasen, JWT, TOTP |
| 1.3 | Gateway.Service — Service-Schicht | Endpoints, JWT, TOTP-Service, Middleware, Kerberos |
| 1.4 | Datenschicht — DB-Schemas | ENIVERSSIAM / ENIVERSCAFM Schemas, Synonyme, PIMS |
| 1.5 | Auth-Migration — Legacy-Systeme | Phasen 1–5, Mapping-Tabellen, SQL-Skripte |
| 2 | CAFM-Architektur — Gesamtübersicht | Bestandsführung: TP, Equipment, Standorte, Disziplinen |
| 2.2 | ENIVERSCAFM Asset-Modell | asset.item, property_schema, Bausteine, Lists, Trigger |
| 2.3 | Legacy-Analyse (CAFM) | AMED, TecDB — CAFM-Perspektive, Schwächen, Mapping |
| 2.4 | Migrationsplan (CAFM) | Phasen 3–4 CAFM, Mapping-Tabellen, Greenfield-Workflow |
| 3 | PIMS-Architektur — Gesamtübersicht | Prozesse: Prüfungen, Aufträge, Safety, Workflow |
| 3.1 | Prüfwesen (ENIVERSPIMS) | discipline_type, rule, prerequisite, schedule, result |
| 3.2 | Arbeitsaufträge (ENIVERSPIMS) | work.order (unified ARBEIT), order_type, plan, cost |
| 3.3 | Sicherheitsgespräche (ENIVERSPIMS) | Merge: EZASichGesp + tblSicherheitGespraech, SIL |
| 3.4 | Legacy-Analyse (PIMS) | WIS/TimeTrain, AMED EZA-Familie, LD ARBEIT, Rohre |
| 4 | VSIX-Module — Gesamtübersicht | Modul-Map, Dependencies, Extension Anatomy, Naming |
| 4.1 | wvds-amed-cafm Extension | CAFM-Views (TP, OBJ, EMR), Forms, Gateway-Calls |
| 4.2 | wvds-amed-pims Extension | PIMS-Views (INSP, EZA, WORK, PIPE), Forms, Gateway-Calls |
| 4.3 | Wo finde ich jetzt...? | Legacy → VSIX Zuordnung: AMED, LD, WIS, TecDB |
| 4.4 | View-Patterns — UX-Architektur | Leading Pattern, Flyout-Drawer, Tab-Sprung, Legacy-Referenz |