Voraussetzungen
Wenn Sie unser empfohlenes Standard-Setup basierend auf Docker Compose (https://github.com/simplifier-ag/docker-compose) verwenden, wird das Content Repository-Plugin standardmäßig gestartet und konfiguriert.
Wenn Sie eine andere Methode zum Ausführen von Simplifier verwenden, befolgen Sie bitte Schritt 1.
Schritt 1: Einrichten des Content Repository-Plugins
Wenn Sie das empfohlene Docker Compose-Setup verwenden, müssen Sie nichts tun.
Verwenden Sie einfach das Standard-Setup, und alles wird automatisch vorbereitet und Sie können Schritt 1 überspringen und mit Schritt 2 fortfahren. Simplifer verwendet eine Namenskonvention.
Um mit dieser Anleitung fortzufahren, müssen Sie den Namen der Hauptdatenbank von Simplifier und den Benutzernamen kennen, der für diese Verbindung verwendet wird.
Bitte ersetzen Sie $ {simplifierDatabaseName} mit dem tatsächlichen Namen der Simplifier-Hauptdatenbank und ${simplifierDatabaseUser} durch den tatsächlichen Namen des Datenbankbenutzers, der bereits für die Hauptdatenbank von Simplifier verwendet wird.
1.1 Erstellen der Datenbank
Erstellen Sie eine Datenbank mit dem Namen
${simplifierDatabaseName}_content
Bitte halten Sie sich an die Namenskonvention, um eine manuellere Einrichtung zu vermeiden.
1.2 Zugriffsrechte an DB-Benutzer vergeben
Erteilen Sie dem Benutzer, den Sie für die Simplifier-Hauptdatenbank konfiguriert haben, volle Rechte für diese neue Datenbank.
GRANT ALL PRIVILEGES ON ${simplifierDatabaseName}_content TO ${simplifierDatabaseUser}@'%'
1.3 Content-Repository-Plugin aktivieren
Wenn Sie diese Variable nicht verwenden, muss sie wie folgt gesetzt werden:
PLUGINLIST=contentRepoPlugin
Das Setup für den Start aller Standard-Plugins möchte:
PLUGINLIST=keyValueStorePlugin,pdfPlugin,captcha,contentRepoPlugin,jsonStore
Schritt 2: Dateisystem oder Dateisystem löschen?
Es gibt
Es stehen zwei Arten von Content Repositories zur Verfügung:
- Das Dateisystem speichert die empfangenen Content-Repository-Daten in einer Datenbank.
- Das übersichtliche Dateisystem speichert diese Daten in einem tatsächlichen Dateisystem (vgl. Windows Explorer).
Im Falle des Dateisystem-basierten Repositorys werden die Dateien und Ordner durch IDs identifiziert, während für das Löschen des Dateisystems Ordner- und Dateipfade verwendet werden.
Darüber hinaus verfügt jedes dateisystembasierte Repository über einen expliziten Zugriffskontrollmechanismus, da beim Erstellen von Ordnern und Dateien auch Berechtigungsobjekte definiert werden müssen.
Schritt 3: Verwenden Sie vorkonfigurierte Business Objects-Funktionen
Für die Out-of-the-Box-Nutzung der Plugin-Funktionen können Sie einfach die Business Objects ‘SF_ContentRepository_FileSystem’ oder ‘SF_ContentRepository_ClearFileSystem’ aus unserem Marketplace verwenden.
1. Zugriffskontrolle festlegen: Setzen Sie Ihr Sicherheitskonzept um, indem Sie die Berechtigungen “Plugin: Content Repository” in die Definitionen der entsprechenden Benutzerrollen einfügen.
Sie können die “zugewiesenen Berechtigungen” verfeinern, indem Sie einzelne Berechtigungen aktivieren oder abwählen.
Darüber hinaus können Sie den Zugriff auf Repositorys steuern, indem Sie den PermissionType ‘App’ und eine geeignete PermissionID verwenden.
Schritt 3a: Verwenden des Dateisystems
2. Zugriffskontrolle für Ordner und Dateien festlegen: Im Falle von Dateisystem müssen Sie die Zugriffskontrolle (mit PermissionType ‘Session’ und PermissionID) für Ordner und Dateien separat angeben.
3. Content-Repository initialisieren: Prüfen Sie, ob das benötigte Content-Repository bereits existiert oder ob es erst erstellt werden muss.
Hierfür können Sie z.B. die Funktion ‘contentRepositoryFind’ des Business Objekts (BO) ‘SF_ContentRepository_FileSystem’ verwenden.
Für den Fall, dass das Content-Repository nicht existiert, ist die BO-Ausführung nicht erfolgreich, d.h. die Verbindung des roten Ausgangsports kann genutzt werden, um die Funktion ‘contentRepositoryAdd’ auszuführen, um ein Content-Repository mit dem Namen ‘newContentRepo’ zu erstellen:
4. Erstellen Sie einen Ordner: Fügen Sie nach dem Erstellen des Repositorys einen Ordner mit ‘contentFolderAdd’ des BO ‘SF_ContentRepository_FileSystem’ hinzu.
Für die Eingabezuordnungg sehen Sie bitte folgendes Beispiel:
5. Hochladen einer Datei: Im Allgemeinen können Sie eine Datei hinzufügen, indem Sie entweder den Inhalt direkt als Base64 übergeben (Eingabeparameter ‘data’ verwenden), einen Upload-Sitzungsschlüssel referenzieren (Eingabeparameter ‘uploadSession’ verwenden) oder indem Sie eine andere vorhandene Inhaltsdatei anhand ihrer ID kopieren (Eingabeparameter ‘copyFrom’ verwenden).
Beispielhaft werden wir einen Anwendungsfall umsetzen, bei dem ein Benutzer eine Datei hochladen kann.
Zu diesem Zweck verwenden wir das Widget “ui_unified_FileUploader” :
Um die ausgewählte Datei zu erhalten, verwenden Sie einen Skriptblock mit den folgenden Codezeilen, um das Dateiobjekt in der globalen Variablen ‘uploaderFile’ zu speichern:
var uploaderInput = this.getView().byId("FileUploader"); if (uploaderInput.getValue() !== "") { var files = uploaderInput.oFileUpload.files; if (files.length === 1) { this.getGlobals().setVar("uploaderFile", files[0]); } }
Verwenden Sie diese Variable als Eingabe für die Hilfsfunktion ‘uploadFile’ des clientseitigen BO ‘ITIZ_Utilities’.
Mit dem zurückgegebenen Upload-Session-Schlüssel können Sie das Eingabe-Mapping der Funktion ‘contentFileAdd’ des BO ‘SF_ContentRepository_FileSystem’ für das Anlegen einer neuen Datei im Content Repository definieren:
6. Laden Sie eine Datei herunter: Um eine Datei aus dem Inhalts-Repository herunterzuladen, können Sie entweder die Download-URL oder den base64-codierten Inhalt der Datei anfordern.
Im Falle der base64-kodierten Daten verwenden Sie die ‘contentFileGet’ -Funktion des BO ‘SF_ContentRepository_FileSystem’.
Im Falle der Download-URL empfiehlt es sich, die Funktion ‘contentFileGetMetadata’ zu verwenden, da so ein performancefressender Volldaten-Download innerhalb der App vermieden wird.
Beispielhaft wird hier der Workflow (und das Ausgabemapping für die BO-Funktion) für diesen ‘externen’ Datendownload dargestellt:
Um den Download-Prozess des Browsers zu nutzen, können Sie die Hilfsfunktion ‘saveAs’ des clientseitigen BO ‘SIMP_FileSaver’ (StandardContent, Utilities BOs) verwenden und das Eingabe-Mapping wie folgt konfigurieren:
Schritt 3b: Verwenden des Clear File Systems
2. Content-Repository initialisieren: Prüfen Sie, ob das benötigte Content-Repository bereits existiert oder ob es erst erstellt werden muss.
Hierfür können Sie z.B. die Funktion ‘contentRepositoryFind’ des Business Objekts (BO) ‘SF_ContentRepository_ClearFileSystem’ verwenden.
Für den Fall, dass das Content-Repository nicht existiert, ist die BO-Ausführung nicht erfolgreich, d.h. die Verbindung des roten Ausgangsports kann genutzt werden, um die Funktion ‘contentRepositoryAdd’ auszuführen, um ein Content-Repository mit dem Namen ‘newContentRepo’ zu erstellen:
3. Erstellen eines Ordners: Nachdem Sie das Repository erstellt haben, fügen Sie einen Ordner mit ‘contentFolderAdd’ des BO ‘SF_ContentRepository_ClearFileSystem’ hinzu.
Für die Eingabezuordnungg sehen Sie bitte folgendes Beispiel:
4. Hochladen einer Datei: Im Allgemeinen können Sie eine Datei hinzufügen, indem Sie entweder den Inhalt direkt als Base64 übergeben (Eingabeparameter ‘data’ verwenden), einen Upload-Sitzungsschlüssel referenzieren (Eingabeparameter ‘uploadSession’ verwenden) oder indem Sie eine andere vorhandene Inhaltsdatei anhand ihres Dateipfads kopieren (Eingabeparameter ‘copyFrom’ verwenden).
Beispielhaft werden wir einen Anwendungsfall umsetzen, bei dem ein Benutzer eine Datei hochladen kann.
Zu diesem Zweck verwenden wir das Widget “ui_unified_FileUploader” :
Um die ausgewählte Datei zu erhalten, verwenden Sie einen Skriptblock mit den folgenden Codezeilen, um das Dateiobjekt in der globalen Variablen ‘uploaderFile’ zu speichern:
var uploaderInput = this.getView().byId("FileUploader"); if (uploaderInput.getValue() !== "") { var files = uploaderInput.oFileUpload.files; if (files.length === 1) { this.getGlobals().setVar("uploaderFile", files[0]); } }
Verwenden Sie diese Variable als Eingabe für die Hilfsfunktion ‘uploadFile’ des clientseitigen BO ‘ITIZ_Utilities’.
Mit dem zurückgegebenen Upload-Session-Schlüssel können Sie das Input Mapping der Funktion ‘contentFileAdd’ des BO ‘SF_ContentRepository_ClearFileSystem’ für das Anlegen einer neuen Datei im Content Repository definieren:
Hinweis: Dateien, die über https://simplifier.example.com/client/1.0/html5Uploader hochgeladen werden , werden in “/opt/simplifier/data/storage/uploads” gespeichert und nicht automatisch gelöscht.
Dies muss innerhalb des Docker-Containers erfolgen.
5. Laden Sie eine Datei herunter: Um eine Datei aus dem Inhaltsrepository herunterzuladen, können Sie entweder die Download-URL oder den base64-codierten Inhalt der Datei anfordern.
Im Falle der base64-kodierten Daten verwenden Sie die ‘contentFileGet’ -Funktion des BO ‘SF_ContentRepository_ClearFileSystem‘.
Im Falle der Download-URL empfiehlt es sich, die Funktion ‘contentFileGetMetadata’ zu verwenden, da so ein performancefressender Volldaten-Download innerhalb der App vermieden wird.
Beispielhaft wird hier der Workflow (und das Ausgabemapping für die BO-Funktion) für diesen ‘externen’ Datendownload dargestellt:
Um den Download-Prozess des Browsers zu nutzen, können Sie die Hilfsfunktion ‘saveAs’ des clientseitigen BO ‘SIMP_FileSaver’ (StandardContent, Utilities BOs) verwenden und das Eingabe-Mapping wie folgt konfigurieren:
Anhang
Datase-Verbindung manuell einrichten
WARNUNG: Bitte verwenden Sie diese Methode nur, wenn Sie vom Simplifier-Support dazu aufgefordert wurden. Gehen Sie in das Verzeichnis
‘plugins/contentRepoPlugin/src/main/resources’ und kopieren Sie die Datei ‘settings.conf.dist’ als ‘settings.conf’. Passen Sie die Konfiguration der Einstellungen an Ihre Datenbankumgebung an:
database {
dbms: "mysql"
user: "simplifier"
pass: "simplifier"
host: "localhost"
port: 3306
database: "contentrepo"
}
Wenn für ein ‘FileSystem’-Repository ein relativer Pfad angegeben wird (der nicht mit einem ‘/’ beginnt), wird er relativ zu einem zuvor konfigurierten Verzeichnis zum Speichern von Dateien ausgewertet.
Um dies zu setzen, muss die Eigenschaft ‘fileSystemRepository.baseDirectory’ auch in der Datei ‘settings.config’ konfiguriert werden:
fileSystemRepository {
baseDirectory: "/opt/simplifier/data/plugins/contentRepoPlugin"
}