WebCLI Anwendungsbeispiel
Das in diesem Artikel beschriebene WebCLI Anwendungsbeispiel besteht aus einer einfachen Weboberfläche, die es ermöglicht, IBI-aws Hinweise zu erstellen und wieder abzuschliessen.
Komponenten
Beim Erstellen von Nachrichten über die Weboberfläche sind folgende Komponenten beteiligt:
Website
Die Website ist eine einfache HTML-Seite, welche mittels JavaScript (bzw. Ajax Requests) mit der IBI-aws WebCLI kommuniziert. Die Beispielwebsite ermöglicht es, Hinweise zu erstellen und wieder abzuschliessen.
IBI-aws WebCLI
Das IBI-aws WebCLI ist die Schnittstelle zwischen einer externen Anwendung (z.B. einer Webanwendung) und dem IBI-aws. Im WebCLI können Aktionen hinterlegt werden, welche auf Anfrage der externen Anwendung CLI-Aufrufe tätigt. Bei so einer Aktion kann es sich beispielsweise um den Aufruf eines PowerShell-Scripts handeln.
PowerShell-Scripts
In diesem IBI-aws WebCLI Anwendungsbeispiel werden gewisse Aktion durch die Ausführung von PowerShell-Scripts umgesetzt. Folgende PowerShell-Scripts kommen dabei zum Einsatz:
create_aws_message.ps1 - Erstellt einen IBI-aws Hinweis anhand der an das PowerShell-Script übergebenen Daten. Das Script mach dabei Gebrauch der IBI-aws Befehlszeilenschnittstelle.
resolve_aws_message.ps1 - Schliesst einen IBI-aws Hinweis ab. Das Script mach dabei Gebrauch der IBI-aws Befehlszeilenschnittstelle.
IBI-aws Admin CLI
Mit der Befehlszeilenschnittstelle können einige Funktionen des IBI-aws Admins genutzt werden, ohne die graphische Oberfläche zu verwenden.
Weitere Details zur IBI-aws Befehlszeilenschnittstelle finden sie hier.
Ablauf
Erstellen einer Nachricht
Der Ablauf von der Benutzereingabe über eine Weboberfläche bis zur erstellten IBI-aws Nachricht sieht wie folgt aus:
Der Benutzer tätigt Eingaben über die Weboberfläche und sendet das Formular zur Erstellung einer IBI-aws Nachricht ab.
Aus Sicht des Benutzers sind keine weiteren Aktionen erforderlich.Die Website ruft nun das IBI-aws WebCLI via AJAX auf.
Dabei werden die im WebCLI auszulösende Aktion sowie die Benutzereingaben im AJAX-Request-Body übergeben.Das IBI-aws WebCLI ermittelt die aus der eingehenden Anfrage angegebene Aktion und führt diese mit den zusätzlich angegebenen Argumenten der Anfrage aus.
In diesem Beispiel besteht die Aktion aus einem Aufruf eines PowerShell-Scripts.Das PowerShell-Script bereitet die übergebenen Daten für das CLI des IBI-aws Admin auf.
Das CLI des IBI-aws Admin nimmt die Daten entgegen und erstellt den Hinweis.
Das IBI-aws WebCLI hat seine Aufgabe beendet und gibt das Ergebnis der Verarbeitung als Antwort an den Aufrufer (in diesem Fall die Weboberfläche) zurück.
Die Weboberfläche stellt das Ergebnis der Aktion grafisch dar.
Im Erfolgsfall wird in der Beispielwebsite die neue Nachricht der Auflistung hinzugefügt.
Im Fehlerfall wird der Fehler über einen Dialog ausgegeben.
Abschliessen einer Nachricht
Der Ablauf zum Abschliessen einer Nachricht ähnelt dem zum Erstellen einer Nachricht. Folgende Unterschiede sind hervorzuheben:
Beim Aufruf des IBI-aws WebCLI werden eine andere Aktion sowie andere Zusatzinformationen angegeben (wie z.B. die ID der abzuschliessenden Nachricht).
Die IBI-aws WebCLI Aktion zum Abschliessen einer Nachricht verwendet ein anderes PowerShell-Script.
Benutzeroberfläche
Die Benutzeroberfläche der Beispielwebsite stellt folgende Eingabemöglichkeiten zur Verfügung:
Wechseln der Sprache zwischen Englisch und Deutsch (rechts oben).
Dies betrifft lediglich die Sprache der Weboberfläche und hat keine Auswirkung auf die zu erstellende Nachricht.Grund und Nachricht.
Auswahl der betroffenen Anwendungen (optional).
Über das Auswahlfeld können Anwendungen markiert werden, auf die sich die Nachricht beziehen soll. Über die STRG-Taste kann eine Mehrfachauswahl bzw. das Aufheben der Auswahl vorgenommen werden.Kontrollkästchen
Jetzt veröffentlichen
.
Gibt an, ob die Nachricht direkt nach dem Erstellen veröffentlicht werden soll.Schaltfläche
Hinweis erstellen
.Auswahlfeld
Sprache
.
Über dieses Auswahlfeld können verschiedene Übersetzungen für die Nachricht definiert werden.Auflistung
Hinweise
.
Wurden bereits Hinweise erstellt, werden diese unten aufgelistet. Achtung: In dieser simplen Beispielwebsite verschwindet die Auflistung der erstellten Hinweise, sollte man die Website aktualisieren oder schliessen.Schaltfläche
Abschliessen
.
Ermöglicht das Abschliessen eines bereits erstellten Hinweises.
Installation
IBI-aws WebCLI
Stellen Sie das IBI-aws WebCLI auf einem Webserver bereit. Die Verzeichnisstruktur könnte dabei wie folgt aussehen: ./WebCLI/Server/Application
In diesem Verzeichnis befindet sich die IBI-aws WebCLI Webanwendung sowie die dazugehörige Actions.xml
, in welcher die ausführbaren Aktionen definiert sind.
Details zur Installation des IBI-aws WebCLI finden Sie hier.
Beispielwebsite
Die Webressourcen (wie HTML, CSS und JavaScript) können beispielsweise unter ./WebCLI/SampleWebsites
abgelegt werden.
JavaScript Variablen anpassen
Passen Sie in den JavaScript Dateien sample1.js
und sample2.js
die Variablen webCliBaseUrl
und apiKey
an.
webCliBaseUrl
: Basis-URL der IBI-aws WebCLI.apiKey
: Der in der appsettings.json Datei hinterlegte API Key.
Beachten Sie, dass aus Gründen der Einfachheit in diesem Anwendungsbeispiel auf besondere Sicherheitsmaßnahmen verzichtet wurde. Der in den JavaScript Dateien angegebene API Key kann von allen Besuchern der Beispielwebsite ausgelesen und verwendet werden.
Implementieren Sie in einer produktiven Umgebung Authentifizierung und Autorisierung.
PowerShell-Scripts
In diesem Anwendungsbeispiel existieren zwei PowerShell-Scripts, welche in folgendem Verzeichnis abgelegt wurden: ./WebCLI/Server/Scripts
create_aws_message.ps1
Dieses Script dient zur Erstellung von IBI-aws Hinweisen. Es verarbeitet die übergebenen Daten und bereitet diese für die Befehlszeilenschnittstelle des IBI-aws Admin auf. Das Script ermöglicht es unter anderem, Hinweise zu erstellen, die sich auf eine Anwendungen oder Anwendungsgruppen beziehen. Dazu wurden die ID's dieser Anwendungen aus dem IBI-aws Admin entnommen und im Script hinterlegt.
Stellen Sie für dieses Anwendungsbeispiel sicher, dass die im UI angegebenen Anwendungen im IBI-aws Admin hinterlegt sind, und dessen ID's im PowerShell-Script aktualisiert werden.
Die ID einer Anwendung oder Anwendungsgruppe erhalten Sie über das Aktionspanel oder über das Kontextmenü des selektierten Eintrages.
Auszug aus dem PowerShell-Script:
POWERSHELL... $awsApplications = @{ "browsers" = @{ Type = "group" Reference = "2672b6cc-1efd-444e-877e-1b03d3141516" } ...
Achten Sie auch darauf, dass der im Script angegebene Pfad zur
IBI.aws.Admin.exe
korrekt ist. Wenn Sie das Projekt so wie es zur Verfügung gestellt wurde (bzw. wie unten beschrieben) übernehmen, sollten keine Änderungen notwendig sein.POWERSHELL... $exePath = Join-Path $scriptDirectory ".\Admin\IBI.aws.Admin.exe" ...
resolve_aws_message.ps1
Dieses Script dient zum Abschliessen von IBI-aws Hinweisen. Stellen Sie auch hier sicher, dass der Pfad zur IBI.aws.Admin.exe
korrekt ist.
general_message.iaatemplate
Im Scripts
Verzeichnis existiert eine weitere Datei general_message.iaatemplate
. Diese dient als Vorlage für die Erstellung von IBI-aws Hinweisen.
IBI-aws Admin
Die IBI-aws Admin Anwendung, welche die IBI-aws Befehlszeilenschnittstelle zur Verfügung stellt, wurde in folgendem Verzeichnis abgelegt: ./WebCLI/Server/Scripts/Admin
Für dieses Beispiel wurde eine vorkonfigurierte Data.xml zur Verfügung gestellt, welche sich im selben Verzeichnis wie die IBI.aws.Admin.exe
befindet.
Übersicht Verzeichnisstruktur
Zusammenfassend könnte die Verzeichnisstruktur dieses Anwendungsbeispiels wie folgt aussehen:
WebCLI
Server
Application
IBI.aws.WebCLI.exe
Actions.xml
...
Scripts
create_aws_message.ps1
resolve_aws_message.ps1
general_message.iaatemplate
Admin
IBI.aws.Admin.exe
Data.xml
...
SampleWebsites
index.html
sample1.html
sample2.html
css
js