Pinned Dashboard
In der Konfiguration des Cockpit-Dogus kann ein "Pinned Dashboard" erstellt werden ( siehe Konfiguration-Dokumentation). Dieses Dashboard kann ausschließlich über die Dogu-Config verändert werden und ist nicht über die Web-Oberfläsche bearbeitbar.
Für größere Anpassungen an diesem Dashboard ist es jedoch sehr komplex die JSON-Daten des Dashboards zu bearbeiten. Um dies zu vereinfachen, kann das "Pinned Dashboard" kopiert werden und anschließend über die Web-Oberfläsche bearbeitet werden. Dazu müssen die folgenden Schritte ausgeführt werden.
Pinned Dashboard kopieren
Um eine Kopie des "Pinned Dashboard" zu erstellen, müssen zunächst die JSON-Daten des Dashboards bezogen werden. Dies kann z.B. im Chrome-Browser mit den enthaltenen "Developer-Tools" erfolgen:
- Das "Pinned Dashboard" des Cockpit im Browser öffnen
- Die Developer-Tools öffnen (F12)
- Zum Netzwerk-Tab wechseln
- Filter auf Fetch/XHR einstellen
- Den Request zu der URL
.../cockpit/api/v1/userDashboardRelations/0
auswählen - Den Vorschau-Tab auswählen und in der JSON-Struktur zu
dashborad.content
navigieren - Mit der rechten Maus-Taste auf
content
klicken undCopy string contents
auswählen - Die JSON-Daten aus der Zwischenablage für die weitere Bearbeitung zwischenspeichern
Als Nächstes muss die Kopie des Dashboards in der Datenbank abgelegt werden. Dazu wird der Benutzername des Cockpit-Dogus in der PostgreSQL-Datenbank benötigt.
# Postgres Nutzernamen erhalten
docker exec -it cockpit doguctl config -e sa-postgresql/username
Anschließend muss in den PostgreSQL-Container gewechselt werden, um mit der Datenbank zu interagieren.
# In den PostgreSQL-Container wechseln
docker exec -it postgresql bash
# PSQL starten (Den db-username von oben verwenden)
# Zum Beispielbr
# psql -U cockpit_vhgppz -d cockpit_vhgppz
psql -U <db-username> -d <db-username>
Jetzt muss ein neues Dashboard mit den zuvor kopierten JSON-Daten in der Datenbank erstellt werden
INSERT INTO dashboards (content) VALUES ('<JSON-DATA>');
-- Zum Beispiel
-- INSERT INTO dashboards (content) VALUES ('{"title":"Willkommen","structure":"4-8","rows":[...]}');
Als letzter Schritt muss das neu erstellte Dashboard in der userDashboardRelations
-Tabelle eingetragen werden.
Dazu wird die USER-ID
des verwendeten Benutzers und die DASHBOARD-ID
des gerade erstellten Dashboards benötigt.
-- USER-ID abfragen
select * from users;
-- DASHBOARD-ID abfragen (Normalerweise handelt es sich um den letzten Eintrag in der Datenbank.)
select _id from dashboards;
Der Eintrag in der userDashboardRelations
-Tabelle wird wie folgt erstellt:
INSERT INTO "userDashboardRelations" ("type", "order", "userId", "dashboardId") VALUES ('creator', 1, <USER-ID>, <DASHBOARD-ID>)
-- Zum Beispiel
-- INSERT INTO "userDashboardRelations" ("type", "order", "userId", "dashboardId") VALUES ('creator', 1, 1, 3);
Wenn das Cockpit in der Web-Oberfläche neu geladen wird, sollte das kopierte Dashboard jetzt angezeigt werden und kann nach Bedarf bearbeitet werden.