====== 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 |