====== WvdS-Plattform — Gesamtübersicht ======
//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.
===== Plattform-Komponenten =====
^ Komponente ^ Technologie ^ Rolle ^ Dokument ^
| **WvdS.Shell** | FPC/Lazarus (Windows/Linux) | Nativer GUI-Host, Extension-Lifecycle, Auth-Client | [[de:int:wvdsshell:notes:01-siam:auth-shell|2. WvdS.Shell Auth-Architektur]] |
| **Gateway.Service** | FPC/Lazarus (Windows/Linux) | HTTP-REST-Gateway, Auth-Middleware, DB-Abstraktionsschicht | [[de:int:wvdsshell:notes:01-siam:auth-gateway|3. Gateway Auth-Erweiterungen]] |
| **ENIVERSSIAM** | SQL Server | Identity, Auth, Rollen, Deployments | [[de:int:wvdsshell:notes:01-siam:auth-database|4. Datenschicht]] |
| **ENIVERSCAFM** | SQL Server | Technische Plätze, Equipment, Standorte, Anlagen | [[de:int:wvdsshell:notes:02-cafm:start|2. CAFM-Architektur]] |
| **ENIVERSPIMS** | SQL Server | Prüfungen, Aufträge, Sicherheitsgespräche | [[de:int:wvdsshell:notes:03-pims:start|3. PIMS-Architektur]] |
| **wvds-amed-cafm** | pas2js (.wvdx) | VSIX-Modul: Bestandsführung (TP, Equipment, EMR) | [[de:int:wvdsshell:notes:04-vsix:amed-cafm|4.1 CAFM-Extension]] |
| **wvds-amed-pims** | pas2js (.wvdx) | VSIX-Modul: Prozessführung (Prüfung, Aufträge, Sicherheit)| [[de:int:wvdsshell:notes:04-vsix:amed-pims|4.2 PIMS-Extension]] |
===== Deployment-Topologie =====
┌─────────────────────────────────────────────────────────────────────┐
│ 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) │ │
│ └──────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
===== Auth-Flow (Überblick) =====
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: [[de:int:wvdsshell:notes:01-siam:start|Auth-Architektur — Gesamtübersicht]]
===== Datenbankgrenzen =====
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 |
===== Datenbankschicht =====
==== Schemaübersicht ====
^ 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) |
==== Migrations-Stand ====
^ 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: [[de:int:wvdsshell:notes:01-siam:auth-migration|5. Auth-Migration — Legacy-Systeme]]
===== Quellsysteme (Altdaten) =====
^ 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: [[de:int:wvdsshell:notes:01-siam:auth-migration#quellsysteme_und_migrationspfade|5. Auth-Migration — Quellsysteme]]
===== Notizen-Index =====
^ Nr ^ Dokument ^ Inhalt ^
| — | [[de:int:wvdsshell:notes:start|WvdS-Plattform — Gesamtübersicht]] | Diese Seite — Überblick, Topologie, Migration |
| 1 | [[de:int:wvdsshell:notes:01-siam:start|Auth-Architektur — Gesamtübersicht]] | Konzept, Schichten, Auth-Modi, CWE-Referenzen |
| 1.2 | [[de:int:wvdsshell:notes:01-siam:auth-shell|WvdS.Shell — GUI-Schicht]] | PFX, Kerberos, MFA-Flow, Startup-Phasen, JWT, TOTP |
| 1.3 | [[de:int:wvdsshell:notes:01-siam:auth-gateway|Gateway.Service — Service-Schicht]] | Endpoints, JWT, TOTP-Service, Middleware, Kerberos |
| 1.4 | [[de:int:wvdsshell:notes:01-siam:auth-database|Datenschicht — DB-Schemas]] | ENIVERSSIAM / ENIVERSCAFM Schemas, Synonyme, PIMS |
| 1.5 | [[de:int:wvdsshell:notes:01-siam:auth-migration|Auth-Migration — Legacy-Systeme]] | Phasen 1–5, Mapping-Tabellen, SQL-Skripte |
| 2 | [[de:int:wvdsshell:notes:02-cafm:start|CAFM-Architektur — Gesamtübersicht]] | Bestandsführung: TP, Equipment, Standorte, Disziplinen |
| 2.2 | [[de:int:wvdsshell:notes:02-cafm:asset-model|ENIVERSCAFM Asset-Modell]] | asset.item, property_schema, Bausteine, Lists, Trigger |
| 2.3 | [[de:int:wvdsshell:notes:02-cafm:legacy-analysis|Legacy-Analyse (CAFM)]] | AMED, TecDB — CAFM-Perspektive, Schwächen, Mapping |
| 2.4 | [[de:int:wvdsshell:notes:02-cafm:migration|Migrationsplan (CAFM)]] | Phasen 3–4 CAFM, Mapping-Tabellen, Greenfield-Workflow |
| 3 | [[de:int:wvdsshell:notes:03-pims:start|PIMS-Architektur — Gesamtübersicht]] | Prozesse: Prüfungen, Aufträge, Safety, Workflow |
| 3.1 | [[de:int:wvdsshell:notes:03-pims:inspection|Prüfwesen (ENIVERSPIMS)]] | discipline_type, rule, prerequisite, schedule, result |
| 3.2 | [[de:int:wvdsshell:notes:03-pims:work-orders|Arbeitsaufträge (ENIVERSPIMS)]] | work.order (unified ARBEIT), order_type, plan, cost |
| 3.3 | [[de:int:wvdsshell:notes:03-pims:safety|Sicherheitsgespräche (ENIVERSPIMS)]] | Merge: EZASichGesp + tblSicherheitGespraech, SIL |
| 3.4 | [[de:int:wvdsshell:notes:03-pims:legacy-analysis|Legacy-Analyse (PIMS)]] | WIS/TimeTrain, AMED EZA-Familie, LD ARBEIT, Rohre |
| 4 | [[de:int:wvdsshell:notes:04-vsix:start|VSIX-Module — Gesamtübersicht]] | Modul-Map, Dependencies, Extension Anatomy, Naming |
| 4.1 | [[de:int:wvdsshell:notes:04-vsix:amed-cafm|wvds-amed-cafm Extension]] | CAFM-Views (TP, OBJ, EMR), Forms, Gateway-Calls |
| 4.2 | [[de:int:wvdsshell:notes:04-vsix:amed-pims|wvds-amed-pims Extension]] | PIMS-Views (INSP, EZA, WORK, PIPE), Forms, Gateway-Calls |
| 4.3 | [[de:int:wvdsshell:notes:04-vsix:screen-map|Wo finde ich jetzt...?]] | Legacy → VSIX Zuordnung: AMED, LD, WIS, TecDB |
| 4.4 | [[de:int:wvdsshell:notes:04-vsix:view-patterns|View-Patterns — UX-Architektur]] | Leading Pattern, Flyout-Drawer, Tab-Sprung, Legacy-Referenz |