Copyright ©
Mindbreeze GmbH, A-4020 Linz, 2024.
All rights reserved. All hardware and software names used are brand names and/or trademarks of their respective manufacturers.
These documents are strictly confidential. The submission and presentation of these documents does not confer any rights to our software, our services and service outcomes, or any other protected rights. The dissemination, publication, or reproduction hereof is prohibited.
For ease of readability, gender differentiation has been waived. Corresponding terms and definitions apply within the meaning and intent of the equal treatment principle for both sexes.
Mithilfe von Mindbreeze InSpire Snapshots können Sie Änderungen an Ihrer Appliance vornehmen, ohne diese Änderungen direkt am Produktivsystem durchführen zu müssen:
Sie haben dabei folgende Vorteile:
In dieser Dokumentation finden Sie Informationen zu den Snapshots im Allgemeinen und darüber, welche Voraussetzungen für die Nutzung der API erfüllt sein müssen. Danach wird unser Java SDK-Beispiel kurz vorgestellt. Anschließend lernen Sie den Unterschied zwischen "Migration-Snapshots" und "Development-Snapshots" kennen und erfahren, wie Sie diese korrekt verwenden.
SAML-Authentifizierung wird derzeit unterstützt. Für weitere Einzelheiten siehe: Einstellungen für Client Service und SAML-Authentifizierung
Importierte Snapshots auf der Master-Appliance werden gemäß dem Synchronisierungszeitplan mit der Standby-Appliance synchronisiert. Die External URL des Client-Service muss auf die Standby-Appliance zeigen. Für weitere Details siehe: Einstellungen für Client Service und SAML-Authentifizierung und Ändern der Einstellungen für Client Service und SAML-Authentifizierung.
Hinzugefügte oder aktualisierte Custom Connector Plugins auf der Development Appliance sind in exportierten Migration-Snapshots und Development-Snapshots enthalten und können auf der Development Appliance importiert werden. Für weitere Details siehe: Plugin via „Upload“ hinzufügen
Hinzugefügte oder aktualisierte Insight Apps auf der Development Appliance sind in exportierten Migration-Snapshots und Development-Snapshots enthalten und können auf der Development Appliance importiert werden. Für weitere Details siehe: Hinzufügen einer benutzerdefinierten Insight App
Credentials und Endpoints auf der Development Appliance sind nur in exportierten Migration-Snapshots enthalten und können auf der Development Appliance importiert werden. Development-Snapshots enthalten keine Credentials oder Endpoints.
Der Zugriff auf die Mindbreeze InSpire Admin API auf /api/v3/admin und den Mindbreeze InSpire-Blob-Store zum Herunterladen exportierter Snapshot-Archive (/blobs/v3/snapshotarchives) erfordert eine OAuth Bearer Token Authentifizierung unter Verwendung eines Service-Benutzers mit der Rolle InSpire-Administrator.
Das OAuth-Token kann über den Token-Endpoint /auth/realms/master/protocol/openid-connect/token unter Verwendung der angegebenen OAuth-Client-ID und Secret zusammen mit den Anmeldedaten des Service-Benutzers bezogen werden.
Wir empfehlen, einen eigenen OAuth Client für dieses Service zu schaffen. Dieser kann über das Mindbreeze InSpire Management Center konfiguriert werden. Hinweis: Die vorhandenen Mindbreeze Inspire Clients sollten nicht verwendet werden, da sie bei jedem Update überschrieben werden.
Navigieren Sie zu Setup/Credentials und wählen Sie den Abschnitt „Clients“. Fügen Sie einen neuen OAuth Client mit den folgenden Parametern hinzu:
Fügen Sie nach dem Speichern des Clients die folgende Mapper-Konfiguration für die Bereitstellung der Benutzerrollen im Authentifizierungstoken hinzu:
Der Service-Benutzer für Snapshot-Operationen benötigt die Rolle des InSpire-Administrators. Sie können einen dedizierten Service-Benutzer im Abschnitt „Users“ der Credentials-Konfiguration im Mindbreeze InSpire Management Center erstellen:
Stellen Sie im Abschnitt „Role Mappings“ der Benutzerkonfiguration sicher, dass die Rolle „InSpire Administrator“ dem erstellten Service-Benutzer zugeordnet ist.
Das Java SDK-Beispielprojekt „SnapshotClient“ bietet ein einfaches Werkzeug für den folgenden Anwendungsfall:
Die aktuellste SDK kann auf www.mindbreeze.com/developer#quick-start herunterladen werden. Diese enthält unter anderem auch das Java SDK-Beispielprojekt „SnapshotClient“.
Das SDK-Beispielprojekt hat die folgende Struktur:
Ordner mit dem Java-Quellcode eines Command-Line-Tools zur Ausführung der erforderlichen API-Aufrufe:
Ordner für die referenzierten Bibliotheken:
Das Bauen des Projekts erfordert Java JDK 8+ und Apache ANT 1.9.7+.
Das Beispielprojekt kann mit Apache Ant mit dem mitgelieferten build.xml gebaut werden. Führen Sie im Projektordner (in dem sich die build.xml befindet) den folgenden Befehl aus:
ant install
Dadurch wird das Projekt aufgebaut. Zusätzlich wird das JAR und die referenzierten JARs, die sich im Installationsordner befinden, in ein ZIP-Archiv verpackt.
Dieses ZIP-Archiv kann extrahiert werden. Anschließend kann das Tool ausgeführt werden und zeigt standardmäßig die Nutzungsinformationen an:
java -jar snapshot-client.jar
Für den Aufbau der Infrastruktur (z.B. für Webserver-Zertifikate, Credentials, Frontend-Authentifizierung) ist ein auf der Development-Appliance erstellter Migration-Snapshot erforderlich. Mit dieser Dokumentation stellen wir Beispiele für die Verwendung des Confluence Connectors (Crawler und Principal Cache) und eines Client Service mit SAML zur Verfügung.
Stellen Sie auf der Production-Appliance sicher, dass die Mindbreeze InSpire-Lizenz installiert ist.
Überprüfen Sie, ob die folgenden Eigenschaften entsprechend der Entwicklungsumgebung korrekt konfiguriert sind:
Denken Sie daran, dass dies die Konnektoreigenschaften sind, die entsprechend der Produktivumgebung geändert werden sollten, bevor ein erster Snapshot für die Produktivumgebung erstellt wird. (Siehe Anpassung der Version der Development-Appliance für Production).
Stellen Sie sicher, dass die „Confluence Server URL“ auf den Confluence-Server der Entwicklungsumgebung zeigt und im Tab „Network“ als „Endpoint“ konfiguriert ist. Das ausgewählte Credential sollte aus der Entwicklungsumgebung stammen. Wir werden diese Cache-Eigenschaften ändern, bevor wir einen Snapshot für die Produktivumgebung erstellen. (Siehe Anpassung der Version der Development-Appliance für Production).
Laden Sie die SAML-IdP-Metadatendatei im Tab „Authentication“ aus der Entwicklungsumgebung zusammen mit dem bereits hochgeladenen SSL-Zertifikat in der Registerkarte „Certificates“ hoch.
Nach dem Hochladen wählen Sie „Use SAML Authentication“ für den konfigurierten Client Service.
Wie im Abschnitt Anpassung der Version der Development-Appliance für Production beschrieben, werden wir diesen Authentifikator und das SSL-Zertifikat entfernen und die IdP-Metadatendatei und das SSL-Zertifikat später aus der Produktivumgebung hochladen.
Konfigurieren Sie im Tab „Client Services“ die „External URL“ der Entwicklungsumgebung, die später auch geändert wird.
Jetzt kann ein SAML-Entitätsdeskriptor von https://inspire-dev.mycompany.com:8443/saml20/sp/entitiesdescriptor heruntergeladen und für die Konfiguration der vertrauenden Partei auf dem SAML-IdP-Server verwendet werden (weitere Einzelheiten zur SAML-Authentifizierung finden Sie in der folgenden Dokumentation: https://help.mindbreeze.com/de/index.php?topic=doc/SAML-Authentifizierung/index.htm).
Der obige Schritt wird nach Änderung des SSL-Zertifikats, der IdP-Metadaten und der external URL wiederholt, um den SAML-Entitätsdeskriptor für den IdP-Server der Produktionsumgebung zu erstellen.
Nachdem Sie die Entwicklungsumgebung konfiguriert haben, stellen Sie bitte sicher, dass die Daten vom Confluence-Server der Entwicklungsumgebung indiziert sind und durchsucht werden können.
Bevor wir die Konfiguration ändern, um einen Migration-Snapshot für die Production-Appliance zu erstellen, sollten wir einen Migration-Snapshot der Arbeitskonfiguration für die Development-Appliance als Backup mit dem mitgelieferten Snapshot-Tool erstellen. Die Development-Appliance sollte später mit diesem Snapshot wiederhergestellt werden.
java -jar snapshot-client.jar \
--inspire-url="https://inspire-dev.mycompany.com:8443" \
--client-id="" \
--client-secret="" \
--service-username="" \
--service-user-password="" \
--request-type=EXPORT \
--json-request-file=create.json \
--output-file=inspire-dev-appliance.snapshot
Die Datei create.json sollte ein vollständiges Migrationsprofil haben (APPLIANCE_MIGRATION):
{
"name": "Dev Appliance Snapshot",
"description": "Description",
"options": {
"profile": "APPLIANCE_MIGRATION"
}
}
Die folgenden Eigenschaften sollten je nach Produktivumgebung geändert werden:
Das Feld „Confluence Server URL“ zeigt nun auf den Confluence-Server der Produktivumgebung und dieser wird im Tab „Network“ als „Endpoint“ konfiguriert. Der Endpoint und die Credentials aus der Entwicklungsumgebung sollten durch den Endpoint und den Credentials aus der Produktivumgebung ersetzt werden.
Deaktivieren Sie unter „Authentication“ das Kontrollkästchen „Use SAML Authentication“ und entfernen Sie den SAML Authenticator. Entfernen Sie anschließend im Tab „Certificates“ das SSL-Zertifikat.
Laden Sie im Tab „Certificates“ das SSL-Zertifikat der Produktivumgebung hoch; laden Sie dann im Tab „Authentication“ die SAML-IdP-Metadatendatei der Produktivumgebung zusammen mit diesem SSL-Zertifikat hoch.
Wählen Sie nach dem Hochladen „Use SAML Authentication“ mit dem neuen Authenticator für den Client Service aus.
Konfigurieren Sie am Tab „Client Services“ die „External URL“ der Produktivumgebung (in einer Cluster-Umgebung sollte es die Standby-Appliance-URL sein).
Der SAML-Entity-Descriptor für die Produktivumgebung kann unter https://inspire-dev.mycompany.com:8443/saml20/sp/entitiesdescriptor heruntergeladen und zur Konfiguration der vertrauenden Partei des SAML-IdP-Servers der Produktivumgebung verwendet werden (weitere Einzelheiten zur SAML-Authentifizierung finden Sie unter: https://help.mindbreeze.com/de/index.php?topic=doc/SAML-Authentifizierung/index.htm).
Mit dem mitgelieferten Snapshot-Tool erstellen wir einen Snapshot der Development-Appliance für die Production-Appliance:
java -jar snapshot-client.jar \
--inspire-url="https://inspire-dev.mycompany.com:8443" \
--client-id="" \
--client-secret="" \
--service-username="" \
--service-user-password="" \
--request-type=EXPORT \
--json-request-file=create.json \
--output-file=inspire-prod-appliance.snapshot
Die Datei create.json sollte das vollständige Migrationsprofil haben (APPLIANCE_MIGRATION)
{
"name": "Prod Appliance Snapshot",
"description": "Description",
"options": {
"profile": "APPLIANCE_MIGRATION"
}
}
Nachdem wir den Migrations-Snapshot für die Production-Appliance erstellt haben, stellen wir die Development-Appliance wieder her, indem wir den Migrations-Snapshot importieren, der vor der Durchführung der Änderungen erstellt wurde.
java -jar snapshot-client.jar \
--inspire-url="https://inspire-dev.mycompany.com:8443" \
--client-id="" \
--client-secret="" \
--service-username="" \
--service-user-password="" \
--request-type=IMPORT \
--input-file=inspire-dev-appliance.snapshot
Die Anwendung des Migrations-Snapshots auf die Production-Appliance sollte durch Aufruf des Snapshot-Tools wie folgt durchgeführt werden:
java -jar snapshot-client.jar \
--inspire-url="https://inspire-prod.mycompany.com:8443" \
--client-id="" \
--client-secret="" \
--service-username="" \
--service-user-password="" \
--request-type=IMPORT \
--input-file=inspire-prod-appliance.snapshot
Optional kann man mit dem Parameter disable-sync-tasks am Zielsystem, auf dem der Snapshot importiert wird, die Index- und Konfiguration-Synchronisation-Tasks deaktivieren. Nach erfolgreichen Tests können die Tasks manuell reaktiviert werden.
--disable-sync-tasks
Bevor wir die Development-Snapshots auf die Production-Appliance anwenden, ist es notwendig sicherzustellen, dass die Konfigurationseinstellungen, die sich auf die Produktivumgebung beziehen, nicht durch die Development-Snapshots überschrieben werden. Das bedeutet, dass beide Appliances den gleichen Satz von Environment Parameters mit unterschiedlichen Werten haben sollten. Neu eingeführte Environment Parameter in der Development-Appliance sollten beim Import von Development-Snapshots auf der Production-Appliance explizit definiert werden.
Beispielsweise sollten die folgenden Optionen als Environment Parameter konfiguriert werden:
Um die Environment Parameter verwenden zu können, muss das Feature zuerst aktiviert werden. Die Dokumentation dazu finden Sie hier: Konfiguration Mindbreeze InSpire – Parametrisierung Aktivieren/Deaktivieren.
Die Parametrisierung der Crawling Root kann wie folgt vorgenommen werden:
Die Login URL, die Form Elements (Confluence Datasource), der Credential Endpoint (Network Tab) und die External URL (Client Service) sollten mithilfe des obigen Parametrisierungsdialogs parametrisiert werden. Nach der Konfiguration der Environment Parameter sollte ein Migrations-Snapshot aus der Development-Appliance wie folgt exportiert werden.
java -jar snapshot-client.jar \
--inspire-url="https://inspire-dev.mycompany.com:8443" \
--client-id="" \
--client-secret="" \
--service-username="" \
--service-user-password="" \
--request-type=EXPORT \
--json-request-file=create.json \
--output-file=inspire-prod-appliance.snapshot
Die Datei create.json sollte das Migrationsprofil haben (APPLIANCE_MIGRATION):
{
"name": "Prod Appliance Snapshot",
"description": "Description",
"options": {
"profile": "APPLIANCE_MIGRATION"
}
}
Der erstellte Migrations-Snapshot sollte auf die Production-Appliance importiert werden. Beim Importieren sollten die Snapshot-Parameter dem Snapshot-Tool in einer separaten import.json-Datei zur Verfügung gestellt werden:
java -jar snapshot-client.jar \
--inspire-url="https://inspire-prod.mycompany.com:8443" \
--client-id="" \
--client-secret="" \
--service-username="" \
--service-user-password="" \
--request-type=IMPORT \
--json-request-file=import.json \
--output-file=inspire-prod-appliance.snapshot
Die Datei import.json sollte entsprechend der Produktivumgebung für jeden Parameter einen Wert enthalten (z.B.: confluence_crawling_root):
{
"importOptions": {
"configurationParameters": {
"confluence_crawling_root": "<prod_url>",
"<other param name>": "<other param value>"
}
}
}
Nach dem initialen Deployment können neu hinzugefügte Parameter nur über die import.json zur Production-Appliance hinzugefügt werden. Siehe: Hinzufügen von Funktionen zu Production (Development-Snapshot)
Das Hinzufügen von Crendentials, Endpoint und Zertifikaten auf der Production-Appliance nach dem initialen Deployment sollte in folgenden Schritten erfolgen:
Konfigurieren Sie in der Development-Appliance folgendes:
Erstellen Sie einen neuen Snapshot (Profile: DEVELOPMENT).
Importieren Sie den Development-Snapshot in die Production-Appliance, und starten Sie eine Re-Indizierung.
Öffnen Sie dann den Search-Client und Sie sollten den gleichen Filter (Breadcrumb2) sehen, wenn Sie nach ALL suchen.
Fügen Sie in der Development-Appliance eine neue Insight App hinzu:
Konfigurieren Sie diese dann als „Additional Context“ im Client-Service:
Erstellen Sie einen neuen Snapshot (Profile: DEVELOPMENT) und wenden Sie ihn auf Production an. Die neue Insight App wird auch auf Production angewendet.
Fügen Sie zunächst eine Datei zu einer vorhandenen Insight App auf der Development-Appliance hinzu:
Fügen Sie außerdem eine weitere Datei zu einer vorhandenen Insight App auf der Production-Appliance hinzu:
Erstellen Sie einen neuen Snapshot (mit Profile: DEVELOPMENT) auf der Development-Appliance.
Importieren Sie den Development-Snapshot. Wenn die Option -reset im Befehl NICHT angegeben ist, sollten sowohl die in der Development als auch die in Production erstellte Dateien in der Insight App bei Produktion vorhanden sein:
Wenn jedoch die Option -reset im Befehl angegeben ist, wird nur die in der Development-Appliance erstellte Datei auf die Produktion angewendet.
Laden Sie auf der Development-Appliance ein benutzerdefiniertes oder ein Built-In Plugin hoch, z.B. MyCustomPlugin-20.4.1.243.zip):
Erstellen Sie einen neuen Snapshot (mit Profil: DEVELOPMENT) der Development Appliance.
Importieren Sie den Development-Snapshot in die Production-Appliance und Sie sollten dasselbe Plugin in der Auflistung sehen:
Beim Anwenden eines Development-Snapshots, der Änderungen der Anmeldeinformationen (z. B. Benutzername oder Kennwort) enthält, werden die Anmeldeinformationen auf Production nicht geändert.
Das Anwenden eines Development-Snapshots, der Zertifikatsänderungen in der Produktivumgebung enthält, ändert die Zertifikate in Production nicht.
Änderungen von Ressourcen in Development Snapshots (z.B. Hinzufügen oder Löschen von Dateien unter /data/resources) werden nicht auf die Production-Ressourcen angewendet.
Auf die Produktivumgebung werden jedoch nur Änderungen von Query Relevance Boosting und Search Relevance Optionen angewendet (data/resources/relevance).