BI-Verbindungen
Eine BI-Verbindung ist der Zugriff des Projekts auf ein eigenes System, das Dashboards zeigt: für Grafana seine Adresse und ein Dienstkonto-Token, für Power BI eine Microsoft-Entra-App (Dienstprinzipal) und ihr Client-Secret, für Tableau eine verbundene App und ein Benutzer und für eine Webseite das Dienstkonto einer Website, die ein Dashboard hinter einer Anmeldung zeigt, oder die Cookies eines angemeldeten Browsers. Eine Verbindungs-ID beginnt mit bic_. Secrets werden auf dem Server versiegelt und nie wieder angezeigt: Ein Lesezugriff zeigt secret {set, hint}, wobei hint die letzten vier Zeichen eines Secrets mit 12 oder mehr Zeichen sind. Verbindungen gehören zu einem Projekt. bi connection list, show und browse brauchen Lesezugriff, und jeder andere Befehl braucht Manage-Zugriff. Ein Plan ohne BI-Dashboards antwortet mit feature_not_in_plan (Exit 8) auf das Erstellen und Ändern einer Verbindung oder einer Ansicht, außer beim Ersetzen von Zugangsdaten; Preise listet die Pläne auf.
Geben Sie ein Secret in einer Datei an: --token-file für Grafana, --secret-file für Power BI und Tableau, --password-file, --totp-file und --cookies-file für eine Webseite. Jede dieser Optionen nimmt - für stdin entgegen, nie ein Argument, und das --steps-Skript einer Web-Verbindung ebenso; höchstens eine Option eines Befehls liest stdin.
Eine Ansicht spielt ein Dashboard, einen Bericht oder eine Seite einer Verbindung über ein iframe-Primitiv ab, das ihre embed_url zeigt; bi view create --connection-id ID legt eine an. Ein Dashboard hinter einer Anmeldung anzeigen führt durch eine Web-Verbindung, und die API-Referenz deckt jede Art ab.
bi connection create grafana#
Fügt eine Grafana-Verbindung hinzu: ihre Adresse und ein Dienstkonto-Token.
bi connection create grafana --url URL --token-file FILE [--name NAME] [--org-id N]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
--url URL | string | ja | keine | Die Adresse von Grafana auf einem öffentlichen Host, mit beliebigem Pfadpräfix: https://grafana.example.com oder https://example.com/grafana. Eine private, Loopback- oder reservierte Adresse ist invalid_request (Exit 8), und Grafana muss ohne Weiterleitung antworten. |
--token-file FILE | string | ja | keine | Liest das Dienstkonto-Token aus dieser Datei oder - für stdin (nie als Argument); die Datei enthält nur das Token. |
--name NAME | string | nein | der Hostname | 1 bis 80 Zeichen. |
--org-id N | integer | nein | 1 | Die Grafana-Organisation, zu der das Token gehört: eine ganze Zahl ab 1. |
screenrig bi connection create grafana --url https://grafana.example.com --token-file token.txt
screenrig bi connection create grafana --url https://example.com/grafana --token-file - --name "Ops Grafana" --org-id 2Installieren Sie in Grafana das Plugin Grafana Image Renderer oder den Remote-Rendering-Dienst (er zeichnet Dashboards als Bilder; ohne ihn wird nichts gerendert), erstellen Sie dann ein Dienstkonto mit der Rolle Viewer und fügen Sie ein Token hinzu. Führen Sie als Nächstes bi connection test aus.
bi connection create tableau#
Fügt eine Tableau-Verbindung hinzu: eine verbundene App (Direct Trust), den Benutzer, als der die Ansichten der Bildschirme angezeigt werden, und den Secret-Wert der App.
bi connection create tableau --url URL --client-id ID --secret-id ID --username USER
--secret-file FILE [--site SITE] [--name NAME]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
--url URL | string | ja | keine | Die https-Adresse von Tableau Server oder Ihres Tableau-Cloud-Pods, etwa https://10ay.online.tableau.com (der Pod, nicht online.tableau.com). |
--site SITE | string | nein | die Standard-Site von Tableau Server | Die Content-URL der Site, der Teil nach /site/ oder /t/ in der Adresse einer Ansicht. |
--client-id ID | string | ja | keine | Die Client ID der verbundenen App. |
--secret-id ID | string | ja | keine | Die Secret ID eines für die verbundene App erzeugten Secrets. |
--username USER | string | ja | keine | Der Tableau-Benutzer, als der die Ansichten der Bildschirme angezeigt werden (eine E-Mail-Adresse in Tableau Cloud). |
--secret-file FILE | string | ja | keine | Liest den Wert des Secrets aus dieser Datei oder - für stdin (nie als Argument); die Datei enthält nur den Secret-Wert, nicht die Secret-ID. |
--name NAME | string | nein | der Hostname | 1 bis 80 Zeichen. |
screenrig bi connection create tableau --url https://10ay.online.tableau.com --site lobby --client-id 11111111-2222-3333-4444-555555555555 --secret-id 66666666-7777-8888-9999-000000000000 --username screens@example.com --secret-file secret.txtEinmalig in Tableau einrichten: Erstellen Sie unter Settings, Connected Apps eine verbundene App vom Typ Direct trust, kopieren Sie ihre Client ID, erzeugen Sie ein Secret, kopieren Sie die Secret ID und den Secret-Wert und aktivieren Sie die App und das Secret. Wählen Sie den Tableau-Benutzer, den die Bildschirme zeigen, oder legen Sie ihn an, und geben Sie ihm nur Zugriff auf die Ansichten, die Bildschirme zeigen: Wer das Ticket eines Bildschirms hält, kann jede Ansicht einbetten, die dieser Benutzer sehen kann. Führen Sie dann bi connection show ID aus und tragen Sie den Host von embed_origin in die Domain-Allowlist der verbundenen App ein. Erforderlich ist Tableau Cloud oder Tableau Server 2023.3 oder neuer; die Bildschirme müssen den Tableau-Host erreichen, und ihr Browser muss Cookies von Drittanbietern von ihm akzeptieren. Führen Sie als Nächstes bi connection test aus und dann bi connection browse, um eine Ansicht zu finden.
bi connection create powerbi#
Fügt eine Power-BI-Verbindung hinzu: eine Microsoft-Entra-App (Dienstprinzipal) und ihr Client-Secret oder eine Microsoft-Verbindung dieses Projekts.
bi connection create powerbi
(--tenant-id ID --client-id ID --secret-file FILE | --connection-id ID) [--name NAME]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
--tenant-id ID | string | ohne --connection-id | keine | Ihre Directory (tenant) ID in Microsoft Entra oder deren Domain, etwa contoso.onmicrosoft.com; nicht common, organizations oder consumers. Zusammen mit --client-id und --secret-file. |
--client-id ID | string | ohne --connection-id | keine | Die Application (client) ID der App-Registrierung. |
--secret-file FILE | string | ohne --connection-id | keine | Liest den Wert des Client-Secrets aus dieser Datei oder - für stdin (nie als Argument); die Datei enthält nur den Secret-Wert, nicht die Secret-ID. |
--connection-id ID | string | ohne --tenant-id | keine | Meldet sich über eine Microsoft-Verbindung (pcn_…) dieses Projekts im Modus own_app an, anstelle von --tenant-id, --client-id und --secret-file. Eine screenrig_app-Verbindung wird abgelehnt. Nicht mit ihnen. |
--name NAME | string | nein | Power BI | 1 bis 80 Zeichen. |
screenrig bi connection create powerbi --tenant-id 11111111-2222-3333-4444-555555555555 --client-id aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee --secret-file secret.txt
screenrig bi connection create powerbi --connection-id pcn_01EXAMPLECONNECTION0000 --name "Contoso Power BI"Einmalig einrichten. Erstellen Sie in Microsoft Entra eine App-Registrierung (nur ein Mandant, keine Weiterleitungs-URI, keine API-Berechtigungen) und ein Client-Secret. Ein Power-BI-Administrator aktiviert im Admin-Portal unter Mandanteneinstellungen, Entwicklereinstellungen die Einstellungen Embed content in apps und Service principals can call Fabric public APIs, für die gesamte Organisation oder für eine Sicherheitsgruppe, die die App enthält. Fügen Sie die App jedem Arbeitsbereich, den Sie zeigen, mit der Rolle Mitglied oder Administrator hinzu; Mitglied ist der geringste Zugriff. Für das Einbetten in der Produktion muss der Arbeitsbereich auf einer Kapazität vom Typ Fabric (F), Power BI Embedded (A) oder Premium (P/EM) liegen. Nur kommerzielle Cloud. Führen Sie als Nächstes bi connection test aus, dann bi connection browse, um einen Arbeitsbereich und einen Bericht zu finden.
bi connection create web#
Fügt eine Web-Verbindung hinzu: ein Dienstkonto einer Website, die ein Dashboard hinter einer Anmeldung zeigt, oder die Cookies eines angemeldeten Browsers.
bi connection create web --login-mode auto|steps|none [--login-url URL] [--username USER]
[--password-file FILE] [--totp-file FILE] [--steps FILE] [--cookies-file FILE] [--name NAME]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
--login-mode MODE | string | ja | keine | auto füllt das Formular unter --login-url mit --username und dem Passwort aus. steps führt das Skript --steps aus. none meldet sich nirgends an, sodass Seiten mit dem Cookie-Satz von --cookies-file angezeigt werden, und nimmt weder --login-url, --username, --password-file, --totp-file noch --steps entgegen. |
--login-url URL | string | mit auto oder steps | keine | Die https-Adresse der Anmeldeseite der Website, auf einem öffentlichen Host. Das Passwort wird nur dort und in den goto-Schritten des Skripts eingegeben, nie in die Adresse einer Ansicht. |
--username USER | string | mit auto | keine | Der Benutzername des Dienstkontos, den ein steps-Skript als {{username}} liest. |
--password-file FILE | string | mit auto | keine | Liest das Passwort des Dienstkontos aus dieser Datei oder - für stdin (nie als Argument): Leerzeichen sind erlaubt, und abschließende Zeilenenden werden entfernt. |
--totp-file FILE | string | nein | keine | Liest den Base32-Schlüssel, den die Website für die Authenticator-App des Kontos anzeigt (16 bis 128 Zeichen), oder seine otpauth://totp-Adresse aus dieser Datei oder -: Der Server berechnet die Codes. |
--steps FILE | string | mit steps | keine | Das Anmeldeskript, ein JSON-Array mit höchstens 30 Schritten, aus einer Datei oder -. Aktionen: goto (url), fill (selector, value), click und wait_for (selector), press (value wie Enter, optional selector) und wait_ms (ms, 1 bis 10000). Ein Wert darf {{username}}, {{password}} und {{otp}} enthalten, nie das Secret selbst. Nicht mit auto. |
--cookies-file FILE | string | nein | keine | Ein aus einem angemeldeten Browser exportierter Cookie-Satz: ein JSON-Array von Cookies (der Export einer Cookie-Erweiterung) oder ein Objekt mit einem Array cookies (der Storage-State von Playwright), aus einer Datei oder -; höchstens 100. Gesendet werden nur name, value, domain, path, expires, httpOnly, secure und sameSite. |
--name NAME | string | nein | der Anmelde-Host oder Web page mit --login-mode none | 1 bis 80 Zeichen. |
screenrig bi connection create web --login-mode auto --login-url https://login.example.com/signin --username screens@example.com --password-file password.txt --name "Ops dashboard"
screenrig bi connection create web --login-mode steps --login-url https://login.example.com/signin --username screens@example.com --password-file password.txt --steps steps.json
screenrig bi connection create web --login-mode none --cookies-file cookies.json --name "Signed-in jar"Das Passwort, der Schlüssel und die Cookies werden versiegelt und nie wieder angezeigt: data.secret und data.totp_secret sagen, ob sie gesetzt sind, und data.session sagt, wie es um die Anmeldung steht (idle, active, login_needed, paused, stopped oder expired). Verwenden Sie ein Dienstkonto mit reinem Lesezugriff. Eine abgelehnte Anmeldung wartet 5 Minuten, dann 15, 60 und 120, und die fünfte in Folge stoppt die Verbindung, bis sich ihre Zugangsdaten oder Anmeldeeinstellungen ändern. Eine Website, die Anmeldungen auf einem Telefon genehmigt, Geräte prüft oder ein CAPTCHA zeigt, lässt sich nicht skripten: Verwenden Sie einen Cookie-Satz. Ein Server ohne den Seiten-Renderer antwortet mit bi_web_unavailable (Exit 5). Führen Sie als Nächstes bi connection test aus.
bi connection list#
Listet die BI-Verbindungen dieses Projekts mit ihrer Art, dem maskierten Secret und dem letzten Test auf.
bi connection listKeine Parameter.
screenrig bi connection listdata.items enthält jede Verbindung des Projekts; es wird kein Secret zurückgegeben.
bi connection show#
Zeigt eine Verbindung und ihren letzten Test.
bi connection show <id>| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<id> | string | ja | keine | Die Verbindung (bic_…). |
screenrig bi connection show bic_01EXAMPLECONNECTION0000Die Antwort enthält kind, config (url und org_id für Grafana; tenant_id und client_id für Power BI oder connection_id, wenn sich eine Microsoft-Verbindung anmeldet; url, site, client_id, secret_id und username für Tableau; login_mode, login_url, username und steps für eine Web-Verbindung), secret {set, hint}, embed_origin (der Einbettungs-Host des Projekts, den die Domain-Allowlist einer verbundenen App nennt) und last_test. Eine Web-Verbindung enthält außerdem totp_secret {set} und session: state, die cookies-Anzahl sowie cookies_updated_at, last_login_at, login_failures und retry_at.
bi connection update#
Ändert Name, Adresse, Organisation, Mandant, App, Site, Benutzer oder Secret einer Verbindung oder, bei einer Web-Verbindung, ihre Anmeldung und ihre Cookies.
bi connection update <id> [--name NAME] [--url URL] [--org-id N] [--tenant-id ID] [--client-id ID]
[--site SITE | --default-site] [--secret-id ID] [--username USER]
[--token-file FILE | --secret-file FILE | --password-file FILE | --clear-password]
[--login-mode auto|steps|none] [--login-url URL] [--totp-file FILE | --clear-totp]
[--steps FILE] [--cookies-file FILE | --clear-cookies] [--expect-rev REVISION]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<id> | string | ja | keine | Die Verbindung (bic_…). |
--name NAME | string | nein | Unverändert | Benennt die Verbindung um. |
--url URL | string | nein | Unverändert | Die neue Adresse von Grafana oder des Tableau-Servers oder -Pods. |
--org-id N | integer | nein | Unverändert | Die Grafana-Organisation, zu der das Token gehört. |
--tenant-id ID | string | nein | Unverändert | Der Microsoft-Entra-Mandant der Power-BI-Verbindung. |
--client-id ID | string | nein | Unverändert | Die Application (client) ID der Power-BI-Verbindung oder die Client ID der verbundenen Tableau-App. |
--site SITE | string | nein | Unverändert | Die Site-Content-URL der Tableau-Verbindung. Nicht mit --default-site. |
--default-site | boolean | nein | aus | Tableau Server: meldet sich bei der Standard-Site an. Nicht mit --site. |
--secret-id ID | string | nein | Unverändert | Die Secret ID der verbundenen Tableau-App. |
--username USER | string | nein | Unverändert | Der Tableau-Benutzer, als der die Ansichten der Bildschirme angezeigt werden, oder das Dienstkonto der Web-Verbindung. |
--token-file FILE | string | nein | Unverändert | Grafana: liest das Dienstkonto-Token aus dieser Datei oder - für stdin; es ersetzt das gespeicherte Token. Höchstens eines von --token-file, --secret-file, --password-file und --clear-password. |
--secret-file FILE | string | nein | Unverändert | Power BI oder Tableau: liest den Secret-Wert aus dieser Datei oder - für stdin; er ersetzt das gespeicherte Secret. |
--login-mode MODE | string | nein | Unverändert | Web: wie sie sich anmeldet, auto, steps oder none. |
--login-url URL | string | nein | Unverändert | Web: die https-Adresse der Anmeldeseite der Website. Ein neuer Ursprung braucht im selben Befehl --password-file, damit das gespeicherte Passwort nie an eine Seite gesendet wird, der Sie es nicht gegeben haben. |
--password-file FILE | string | nein | Unverändert | Web: liest das Passwort des Dienstkontos aus dieser Datei oder - für stdin; es ersetzt das gespeicherte Passwort. |
--clear-password | boolean | nein | aus | Web: entfernt das gespeicherte Passwort. |
--totp-file FILE | string | nein | Unverändert | Web: liest den Authenticator-Schlüssel aus dieser Datei oder - für stdin; er ersetzt den gespeicherten Schlüssel. Nicht mit --clear-totp. |
--clear-totp | boolean | nein | aus | Web: entfernt den gespeicherten Authenticator-Schlüssel. Nicht mit --totp-file. |
--steps FILE | string | nein | Unverändert | Web: ersetzt das Anmeldeskript, ein JSON-Array mit höchstens 30 Schritten, aus einer Datei oder -. |
--cookies-file FILE | string | nein | Unverändert | Web: ersetzt den Cookie-Satz durch einen aus einem angemeldeten Browser exportierten, aus einer Datei oder - (die Formate, die bi connection create web akzeptiert). Nicht mit --clear-cookies. |
--clear-cookies | boolean | nein | aus | Web: entfernt den gespeicherten Cookie-Satz. Nicht mit --cookies-file. |
--expect-rev REVISION | integer | nein | keine | Lehnt die Änderung ab, wenn die Verbindung nicht in dieser Revision ist (revision_conflict, Exit 6). |
screenrig bi connection update bic_01EXAMPLECONNECTION0000 --token-file new-token.txt
screenrig bi connection update bic_01EXAMPLECONNECTION0000 --password-file new-password.txt
screenrig bi connection update bic_01EXAMPLECONNECTION0000 --clear-totp --clear-cookies
screenrig bi connection update bic_01EXAMPLECONNECTION0000 --url https://grafana.example.com --token-file new-token.txt --name "Ops Grafana" --expect-rev 2Mindestens eine Änderung ist erforderlich, und ein ausgelassenes Secret bleibt erhalten. Eine neue Adresse mit anderem Host, Schema oder Port braucht im selben Befehl --token-file (Grafana) oder --secret-file (Tableau): Das gespeicherte Secret wird nur an die Adresse gesendet, für die es gespeichert wurde. Eine Änderung von Adresse, Organisation, Mandant, App, Site, Benutzer oder Secret löscht last_test und verwirft jedes für die Ansichten der Verbindung zwischengespeicherte Rendering: Testen Sie die Verbindung erneut. Eine Änderung der Zugangsdaten oder Anmeldeeinstellungen hebt eine gestoppte Web-Sitzung auf.
bi connection test#
Prüft die Zugangsdaten: Token und Image Renderer von Grafana, App und Arbeitsbereiche von Power BI, die Anmeldung bei Tableau oder die Anmeldung einer Web-Verbindung.
bi connection test <id>| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<id> | string | ja | keine | Die Verbindung (bic_…). |
screenrig bi connection test bic_01EXAMPLECONNECTION0000Grafana: token (Grafana akzeptiert es) und image_renderer (das Plugin ist aufgeführt; Grafana ohne es warnt nur, weil ein Remote-Rendering-Dienst nicht als Plugin erscheint). Power BI: token (Microsoft Entra hat eines für die App ausgestellt) und workspaces (die Arbeitsbereiche, die die App sehen kann; ist keiner sichtbar, schlägt die Prüfung fehl, und eine Ablehnung nennt die Entwicklereinstellungen des Mandanten und die Rolle Mitglied oder Administrator der App im Arbeitsbereich). Tableau: signin als Benutzer der Verbindung mit einem Token zum Lesen von Inhalten, gefolgt von einer Abmeldung. Web: login meldet sich als Dienstkonto an und zeichnet seine Anmeldeseite; eine Web-Verbindung, die sich nirgends anmeldet, hat keine Anmeldung zu testen und antwortet daher mit einer Warnung, und bi view test prüft ihre Cookies. Eine Ablehnung ist eine fehlgeschlagene Prüfung, die die eigene Antwort des Anbieters trägt, und das Ergebnis wird als last_test gespeichert. Der Test beurteilt weder eine Domain-Allowlist von Tableau noch Kapazität, Zeilensicherheit oder die Berechtigungen eines Dashboards: bi view test prüft eine Ansicht wirklich.
bi connection browse#
Listet auf, was eine Verbindung anzeigen kann: Grafana-Dashboards und -Panels, Power-BI-Arbeitsbereiche und -Berichte oder Tableau-Ansichten.
bi connection browse <id> [--query TEXT] [--dashboard UID] [--workspace ID]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<id> | string | ja | keine | Die Verbindung (bic_…). |
--query TEXT | string | nein | keine | Nur Dashboards, Arbeitsbereiche, Berichte oder Ansichten, deren Name passt, höchstens 200 Zeichen. |
--dashboard UID | string | nein | keine | Grafana: listet stattdessen die Panels dieses Dashboards auf. Nicht mit --workspace. |
--workspace ID | string | nein | keine | Power BI: listet stattdessen die Berichte dieses Arbeitsbereichs auf, nach seiner GUID. Nicht mit --dashboard. |
screenrig bi connection browse bic_01EXAMPLECONNECTION0000 --query lobby
screenrig bi connection browse bic_01EXAMPLECONNECTION0000 --dashboard abc123
screenrig bi connection browse bic_01EXAMPLECONNECTION0000 --workspace f089354e-8366-4e18-aea3-4cb4a3a50b48 --query salesdata.items listet für Grafana je Dashboard, das das Token anzeigen kann, uid, title, folder und tags auf, oder mit --dashboard je Panel des Dashboards id, title und type (Zeilen werden abgeflacht, sodass auch ein Panel in einer eingeklappten Zeile aufgeführt wird); für Power BI je Arbeitsbereich, den die App sehen kann, id und name, oder mit --workspace je Bericht des Arbeitsbereichs id, name und embed_url; für Tableau je Ansicht, die der Benutzer der Verbindung sehen kann, path (als Workbook/View) und name. Verwenden Sie diese Werte mit bi view create. Eine Web-Verbindung listet nichts auf: Jede Web-Ansicht nimmt die Adresse ihrer Seite.
bi connection delete#
Löscht eine Verbindung, die keine Ansicht nutzt.
bi connection delete <id> [--expect-rev REVISION]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<id> | string | ja | keine | Die Verbindung (bic_…). |
--expect-rev REVISION | integer | nein | keine | Lehnt das Löschen ab, wenn die Verbindung nicht in dieser Revision ist (revision_conflict, Exit 6). |
screenrig bi connection delete bic_01EXAMPLECONNECTION0000Solange Ansichten sie nutzen, lautet die Antwort resource_conflict (Exit 5) und nennt sie: Löschen Sie diese Ansichten zuerst. Die Antwort ist data.id und data.deleted true.
BI-Ansichten
Eine Ansicht ist ein Dashboard oder Panel einer Grafana-Verbindung, ein Bericht eines Power-BI-Arbeitsbereichs, eine Ansicht einer Tableau-Site, eine Seite einer Web-Verbindung oder ein öffentlicher Link, der keine Verbindung braucht: ein öffentliches Grafana-Dashboard, ein Publish-to-web-Link von Power BI oder eine Tableau-Public-Visualisierung. Eine Ansichts-ID beginnt mit biv_, und eine Ansicht wird nur auf Bildschirmen ihres eigenen Projekts abgespielt.
Setzen Sie die embed_url der Ansicht in ein iframe-Primitiv mit content_fit fill und veröffentlichen Sie wie gewohnt: Die Playlist enthält keine Zugangsdaten. Grafana- und Web-Ansichten werden auf dem Server alle --refresh als Bild gezeichnet und von jedem Bildschirm derselben Größe geteilt, sodass zehn Lobby-Bildschirme ein Rendering erzeugen und der Bildschirm nie mit dem System spricht; das letzte gute Bild bleibt auf dem Bildschirm, solange eine Aufnahme fehlschlägt. Ein Power-BI-Bericht und eine Tableau-Ansicht werden mit einem Token nur zur Ansicht eingebettet, das der Server erzeugt und erneuert, und der Bildschirm hält nie das Secret. Ein Bild wird nur gezeichnet, solange das Manifest eines Bildschirms die Ansicht nennt.
Das Lesen braucht Lesezugriff, und jede Änderung braucht Manage-Zugriff. Jede Zieloption gehört zu einer Art von Verbindung, und bi connection browse ID listet die zu verwendenden Werte auf.
bi view create#
Fügt eine Ansicht für ein Dashboard, ein Panel, einen Bericht oder eine Tableau-Ansicht einer Verbindung oder für einen öffentlichen Link hinzu.
bi view create (--connection-id ID (--url URL | --dashboard UID | --workspace ID --report ID | --view WORKBOOK/VIEW)
| --public-url URL) [--name NAME] [--refresh DURATION] [--fit contain|cover|fill] [--rotate DURATION]
[--panel ID] [--from TIME] [--to TIME] [--var NAME=VALUE]... [--theme dark|light] [--timezone ZONE]
[--page NAME]... [--all-pages] [--rotate-sheets] [--wait-for CSS] [--wait-ms MS] [--clip CSS]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
--connection-id ID | string | ohne --public-url | keine | Die Verbindung (bic_…), von der etwas angezeigt werden soll. |
--url URL | string | ein Ziel | keine | Eine Dashboard-Adresse auf dem Grafana-Host der Verbindung, die Adresse eines Power-BI-Berichts, die Adresse einer Tableau-Ansicht oder, bei einer Web-Verbindung, die https-Adresse der Seite auf einem öffentlichen Host. Der Rest des Ziels wird daraus gelesen, daher nimmt es keines von --panel, --from, --to, --var, --theme, --timezone, --page oder --all-pages entgegen. |
--dashboard UID | string | ein Ziel | keine | Grafana: die uid des Dashboards, der Teil nach /d/ in seiner Adresse. |
--workspace ID | string | ein Ziel | keine | Power BI: die Arbeitsbereichs-ID, mit --report. |
--report ID | string | mit --workspace | keine | Power BI: die Berichts-ID, mit --workspace. |
--view WORKBOOK/VIEW | string | ein Ziel | keine | Tableau: die Ansicht, die Namen nach /views/ in ihrer Adresse (bi connection browse listet sie auf). |
--public-url URL | string | ein Ziel | keine | Ein öffentlicher Grafana-Dashboard-Link, ein Publish-to-web-Link von Power BI oder die Adresse einer Tableau-Public-Visualisierung. Das Ziel braucht keine Verbindung und wird live von seinem Host abgespielt. Geben Sie es allein an, zusammen mit --name, --refresh, --fit, --rotate-sheets und --rotate. |
--name NAME | string | nein | aus dem Ziel | 1 bis 80 Zeichen. |
--refresh DURATION | string | nein | 5m | Grafana: wie oft das Bild neu gezeichnet wird, von 30s bis 24h. Web: wie oft die Seite neu gezeichnet wird, von 60s bis 24h. Power BI und Tableau: wie oft Bericht oder Ansicht die Daten aktualisieren, von 60s bis 24h, oder 0 für keine. Geben Sie eine Dauer wie 30s, 5m oder 1h oder eine Anzahl von Sekunden an. |
--fit FIT | string | nein | contain | Grafana und Web: wie das Bild den Bildschirm füllt, contain, cover oder fill. |
--rotate DURATION | string | nein | keine | Power BI: wie lange jede Seite angezeigt wird, von 10s bis 1h; erforderlich bei zwei oder mehr --page oder bei --all-pages. Tableau: wie lange jedes Blatt angezeigt wird; erforderlich bei --rotate-sheets. |
--page NAME | string | nein | keine | Power BI: eine anzuzeigende Seite, nach Name oder Anzeigename. 1 bis 200 Zeichen. Wiederholbar; die Seiten werden in dieser Reihenfolge angezeigt. |
--all-pages | boolean | nein | aus | Power BI: rotiert durch jede sichtbare Seite, mit --rotate. |
--rotate-sheets | boolean | nein | aus | Tableau: rotiert die veröffentlichten Blätter der Arbeitsmappe, mit --rotate. |
--panel ID | string | nein | das gesamte Dashboard | Grafana: zeigt nur dieses Panel statt des gesamten Dashboards. Eine ganze Zahl, wie in viewPanel der Adresse. |
--from TIME | string | nein | keine | Grafana: Beginn des Zeitraums, etwa now-6h, now/d oder ein Epochenwert in Millisekunden. |
--to TIME | string | nein | keine | Grafana: Ende des Zeitraums, etwa now, now/d oder ein Epochenwert in Millisekunden. |
--var NAME=VALUE | string | nein | keine | Grafana: eine Dashboard-Variable. NAME darf ein Präfix var- tragen, und ein Wert hat höchstens 200 Zeichen. Wiederholbar. |
--theme THEME | string | nein | dark | Grafana-Theme, dark oder light. |
--timezone ZONE | string | nein | keine | Grafana: Zeitzone für das Dashboard, etwa Europe/Paris, utc oder browser. |
--wait-for CSS | string | nein | keine | Web: ein CSS-Selektor eines Elements, das erscheint, wenn die Seite bereit ist, und nur, wenn sie angemeldet ist. Die Aufnahme wartet darauf und schlägt mit bi_web_timeout fehl, wenn es nie erscheint. |
--wait-ms MS | integer | nein | keine | Web: Millisekunden Wartezeit, nachdem die Seite bereit ist, für spät ladende Diagramme, 0 bis 10000. |
--clip CSS | string | nein | die gesamte Seite | Web: ein CSS-Selektor des Teils der Seite, der gezeichnet werden soll. |
screenrig bi view create --connection-id bic_01EXAMPLECONNECTION0000 --url 'https://grafana.example.com/d/abc123/lobby?orgId=1&viewPanel=4' --refresh 5m
screenrig bi view create --connection-id bic_01EXAMPLECONNECTION0000 --dashboard abc123 --panel 4 --from now-6h --to now --var host=web1 --theme light --name "Web CPU"
screenrig bi view create --public-url https://grafana.example.com/public-dashboards/TOKEN --name "Public status"
screenrig bi view create --connection-id bic_01EXAMPLECONNECTION0000 --workspace f089354e-8366-4e18-aea3-4cb4a3a50b48 --report 5b218778-e7a5-4d73-8187-f10824047715 --page Overview --page Detail --rotate 30s --name "Sales rotation"
screenrig bi view create --connection-id bic_01EXAMPLECONNECTION0000 --view Sales/Overview --rotate-sheets --rotate 30s --refresh 0 --name "Sales sheets"
screenrig bi view create --connection-id bic_01EXAMPLECONNECTION0000 --url https://app.example.com/dashboards/42 --refresh 5m --wait-for '#dashboard.loaded' --wait-ms 1500 --clip '#chart-grid'Geben Sie genau ein Ziel an: --url, --dashboard, --workspace mit --report, --view oder --public-url. Die Antwort enthält data.embed_url. Führen Sie als Nächstes bi view test aus.
Grafana: --url liest orgId, viewPanel oder panelId, from, to, var-*, theme und timezone aus der Adresse. Das Bild wird über den Rendering-Dienst von Grafana gezeichnet und von jedem Bildschirm derselben Größe geteilt, und ein Bildschirm behält das letzte Bild, mit der Zeit des Renderings in einer Ecke, solange Grafana ausgefallen ist. Ein öffentlicher Dashboard-Link wird live von Grafana abgespielt, das Einbettung erlauben muss (allow_embedding = true in seinen Einstellungen): bi view test prüft das.
Power BI: --url nimmt eine aus Power BI kopierte Berichtsadresse entgegen, https://app.powerbi.com/groups/WORKSPACE/reports/REPORT, mit optionaler Seite /ReportSection; oder geben Sie --workspace und --report an. Zwei oder mehr Seiten brauchen --rotate, und --rotate braucht zwei oder mehr Seiten oder --all-pages. --refresh 0 eignet sich für einen DirectQuery-Bericht oder einen Bericht mit automatischer Seitenaktualisierung, der sich selbst aktualisiert. --fit gilt nicht. Ein Publish-to-web-Link zeigt den Bericht jedem, der den Link hat, und wird so abgespielt, wie Power BI ihn ausliefert, alle --refresh neu geladen, ohne Seitenrotation.
Tableau: --url nimmt eine aus Tableau kopierte Ansichtsadresse entgegen, https://HOST/t/SITE/views/WORKBOOK/VIEW, https://HOST/#/site/SITE/views/WORKBOOK/VIEW von Tableau Cloud oder nur WORKBOOK/VIEW; die Adresse muss auf dem Host und der Site der Verbindung liegen. --rotate-sheets und --rotate setzen einander voraus. --fit gilt nicht. Die Bildschirme müssen den Tableau-Host erreichen und seine Cookies von Drittanbietern akzeptieren, und die embed_origin der Ansicht muss in der Domain-Allowlist der verbundenen App stehen. Eine Tableau-Public-Visualisierung (--public-url https://public.tableau.com/app/profile/USER/viz/WORKBOOK/VIEW oder ihre /views/-Adresse) braucht weder Verbindung noch Token, und --rotate-sheets funktioniert dort ebenfalls.
Web: --url ist die Adresse der Seite, und --wait-for, --wait-ms und --clip gelten nur für eine Web-Ansicht. Das letzte gute Bild bleibt auf dem Bildschirm, wenn eine Aufnahme fehlschlägt, und status.last_error sagt, warum: bi_web_login_failed, bi_web_otp_required, bi_web_session_expired, bi_web_login_paused, bi_web_timeout, bi_web_navigation_failed oder bi_web_blocked.
bi view list#
Listet die BI-Ansichten dieses Projekts mit Ziel, Rhythmus und Status auf.
bi view listKeine Parameter.
screenrig bi view listdata.items enthält jede Ansicht des Projekts, jeweils mit ihrer embed_url.
bi view show#
Zeigt eine Ansicht, ihre embed_url und wie es ihr zuletzt auf dem Bildschirm erging.
bi view show <id>| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<id> | string | ja | keine | Die Ansicht (biv_…). |
screenrig bi view show biv_01EXAMPLEVIEW0000000000Die Antwort enthält kind, name, connection_id (bei einem öffentlichen Link nicht vorhanden), target (view und rotate_sheets bei Tableau), refresh_s, rotate_s, fit, status, embed_url und revision; eine Web-Ansicht enthält außerdem wait_for, wait_ms und clip. status enthält last_ok_at und last_error mit code und detail: bi_upstream_refused, wenn Grafana das Token abgelehnt hat, bi_upstream_unavailable, wenn es nicht rendern konnte, oder einen der bi_web_*-Codes einer Web-Ansicht.
bi view update#
Ändert Name, Ziel, Rhythmus oder Anpassung einer Ansicht.
bi view update <id> [--name NAME] [--refresh DURATION] [--fit contain|cover|fill] [--rotate DURATION]
[--url URL | --dashboard UID | --workspace ID | --view WORKBOOK/VIEW | --public-url URL] [--report ID]
[--page NAME]... [--all-pages] [--rotate-sheets] [--panel ID] [--from TIME] [--to TIME]
[--var NAME=VALUE]... [--theme dark|light] [--timezone ZONE] [--wait-for CSS | --clear-wait-for]
[--wait-ms MS] [--clip CSS | --clear-clip] [--expect-rev REVISION]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<id> | string | ja | keine | Die Ansicht (biv_…). |
--name NAME | string | nein | Unverändert | Benennt die Ansicht um. |
--url URL | string | nein | Unverändert | Die Adresse eines Dashboards, eines Berichts oder einer Tableau-Ansicht oder die Seitenadresse einer Web-Ansicht; ersetzt das gesamte Ziel. Nicht mit den anderen Zieloptionen. |
--dashboard UID | string | nein | Unverändert | Grafana: zeigt dieses Dashboard; ersetzt das gesamte Ziel. |
--workspace ID | string | nein | Unverändert | Power BI: zeigt einen Bericht dieses Arbeitsbereichs, mit --report; ersetzt das gesamte Ziel. |
--report ID | string | nein | Unverändert | Power BI: zeigt diesen Bericht, in --workspace oder im aktuellen. |
--view WORKBOOK/VIEW | string | nein | Unverändert | Tableau: zeigt diese Ansicht; ersetzt das gesamte Ziel. |
--public-url URL | string | nein | Unverändert | Ein öffentlicher Link; ersetzt das gesamte Ziel. |
--rotate-sheets | boolean | nein | aus | Tableau: rotiert die veröffentlichten Blätter der Arbeitsmappe, mit --rotate. |
--page NAME | string | nein | Unverändert | Power BI: die anzuzeigenden Seiten, nach Name oder Anzeigename. Wiederholbar; ersetzt die aktuellen Seiten. |
--all-pages | boolean | nein | aus | Power BI: rotiert durch jede sichtbare Seite. |
--rotate DURATION | string | nein | Unverändert | Power BI: wie lange jede Seite angezeigt wird, von 10s bis 1h, oder 0 für eine Seite. Tableau: wie lange jedes Blatt angezeigt wird, oder 0, um die Rotation zu beenden. |
--panel ID | string | nein | Unverändert | Grafana: zeigt nur dieses Panel. |
--from TIME | string | nein | Unverändert | Grafana: Beginn des Zeitraums. |
--to TIME | string | nein | Unverändert | Grafana: Ende des Zeitraums. |
--var NAME=VALUE | string | nein | Unverändert | Grafana: setzt eine Dashboard-Variable. Wiederholbar; sie setzt eine Variable und behält die übrigen. |
--theme THEME | string | nein | Unverändert | Grafana-Theme, dark oder light. |
--timezone ZONE | string | nein | Unverändert | Grafana: Zeitzone für das Dashboard. |
--refresh DURATION | string | nein | Unverändert | Wie oft das Bild neu gezeichnet oder der Bericht aktualisiert wird: Grafana 30s bis 24h; Web 60s bis 24h; Power BI und Tableau 60s bis 24h oder 0 für keine. |
--fit FIT | string | nein | Unverändert | Grafana und Web: wie das Bild den Bildschirm füllt, contain, cover oder fill. |
--wait-for CSS | string | nein | Unverändert | Web: das Element, das erscheint, wenn die Seite bereit und angemeldet ist. Nicht mit --clear-wait-for. |
--clear-wait-for | boolean | nein | aus | Web: wartet nicht mehr auf ein Element. Nicht mit --wait-for. |
--wait-ms MS | integer | nein | Unverändert | Web: Millisekunden Wartezeit, nachdem die Seite bereit ist, 0 bis 10000; 0 entfernt die Wartezeit. |
--clip CSS | string | nein | Unverändert | Web: der Teil der Seite, der gezeichnet werden soll. Nicht mit --clear-clip. |
--clear-clip | boolean | nein | aus | Web: zeichnet wieder die gesamte Seite. Nicht mit --clip. |
--expect-rev REVISION | integer | nein | keine | Lehnt die Änderung ab, wenn die Ansicht nicht in dieser Revision ist (revision_conflict, Exit 6). |
screenrig bi view update biv_01EXAMPLEVIEW0000000000 --wait-for '#dashboard.loaded' --wait-ms 2000
screenrig bi view update biv_01EXAMPLEVIEW0000000000 --clear-wait-for --clear-clip
screenrig bi view update biv_01EXAMPLEVIEW0000000000 --theme light --var host=web2
screenrig bi view update biv_01EXAMPLEVIEW0000000000 --dashboard def456 --panel 2 --expect-rev 3
screenrig bi view update biv_01EXAMPLEVIEW0000000000 --page Overview --page Detail --rotate 45s
screenrig bi view update biv_01EXAMPLEVIEW0000000000 --view Sales/DetailMindestens eine Änderung ist erforderlich. --url, --dashboard, --workspace und --public-url ersetzen das gesamte Ziel, während --panel, --from, --to, --var, --theme und --timezone das aktuelle Grafana-Ziel der Ansicht ändern, --report, --page und --all-pages das Power-BI-Ziel und --view und --rotate-sheets das Tableau-Ziel. --page ersetzt die Seitenliste; um sie zu leeren, geben Sie --workspace und --report erneut mit --rotate 0 an. --rotate 0 allein hindert eine Tableau-Ansicht daran, ihre Blätter zu rotieren. --url und --public-url nehmen keine andere Zieloption außer --rotate-sheets entgegen, und die Ansicht eines öffentlichen Links ändert ihr Ziel nur mit --public-url. Ein neues Ziel löscht den Status und verwirft die zwischengespeicherten Renderings, und Bildschirme übernehmen die Änderung bei ihrer nächsten Aktualisierung ohne erneutes Veröffentlichen. Eine Ansicht behält ihre Verbindung und Art.
bi view test#
Prüft eine Ansicht wirklich: über ein Grafana- oder Web-Rendering, ein Power-BI-Einbettungs-Token, eine Tableau-Abfrage oder einen öffentlichen Link.
bi view test <id> [--output FILE [--width PIXELS] [--height PIXELS]]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<id> | string | ja | keine | Die Ansicht (biv_…). |
--output FILE | string | nein | keine | Grafana oder Web: speichert das gerenderte PNG hier, statt die Prüfungen auszuführen. Eine Power-BI- oder Tableau-Ansicht und ein öffentlicher Link haben keines (not_found). |
--width PIXELS | integer | nein | 1920 | Breite des gespeicherten Bildes, 1 bis 10000. Braucht --output. |
--height PIXELS | integer | nein | 1080 | Höhe des gespeicherten Bildes, 1 bis 10000. Braucht --output. |
screenrig bi view test biv_01EXAMPLEVIEW0000000000
screenrig bi view test biv_01EXAMPLEVIEW0000000000 --output lobby.png --width 1920 --height 1080Grafana: Eine Verbindungsansicht wird wirklich gerendert, außerhalb des gemeinsamen Caches und ohne den Status der Ansicht zu berühren. data.ok ist false mit dem Grund von Grafana, wenn es das Token ablehnt, keinen Renderer hat oder das Dashboard nicht kennt; ein fehlgeschlagener Test liefert Daten, Exit 0. Web: Eine Verbindungsansicht wird einmal im Browser des Servers gezeichnet (render), außerhalb des gemeinsamen Caches, und ein fehlgeschlagenes Zeichnen nennt den Grund. Öffnen Sie das gespeicherte PNG und sehen Sie es sich an, bevor Sie veröffentlichen. Bei einem öffentlichen Link ruft der Test die Seite ab und prüft, ob Grafana der Einbettungsseite der Ansicht erlaubt, sie einzubetten.
Tableau: Eine Verbindungsansicht meldet sich als Benutzer der Verbindung an und sucht die Ansicht (signin, view); eine Ansicht, die der Benutzer nicht sehen kann, oder ein Name mit falscher Groß-/Kleinschreibung ist eine fehlgeschlagene view-Prüfung, die den Pfad nennt. Eine Tableau-Public-Ansicht fragt Tableau Public, ob die Arbeitsmappe existiert. Power BI: Eine Verbindungsansicht liest den Bericht (report) und erzeugt dafür ein echtes Einbettungs-Token nur zur Ansicht (embed_token); der eigene Grund von Power BI wird angezeigt, wenn es ablehnt, etwa bei einem Dataset mit Zeilensicherheit, einem 401 oder 403 (Mandanteneinstellung oder Arbeitsbereichsrolle) oder einem Bericht, den die App nicht sehen kann. Ein Publish-to-web-Link wird abgerufen und seine Framing-Header werden gelesen.
Der Test beurteilt weder das, was das Bild zeigt, noch die Seiten, die die Ansicht nennt, noch die Kapazität noch eine Domain-Allowlist von Tableau. data enthält at, ok und checks, jede Prüfung mit name, ok, optional warn und detail; ein Grafana- oder Web-Rendering ergänzt width, height und bytes. Mit --output enthält data stattdessen id, file, bytes, width und height.
bi view delete#
Löscht eine Ansicht.
bi view delete <id> [--expect-rev REVISION]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<id> | string | ja | keine | Die Ansicht (biv_…). |
--expect-rev REVISION | integer | nein | keine | Lehnt das Löschen ab, wenn die Ansicht nicht in dieser Revision ist (revision_conflict, Exit 6). |
screenrig bi view delete biv_01EXAMPLEVIEW0000000000
screenrig bi view delete biv_01EXAMPLEVIEW0000000000 --expect-rev 3Ein Bildschirm, der die embed_url der Ansicht noch zeigt, antwortet mit not_found, bis sich seine Playlist ändert. Die Antwort ist data.id und data.deleted true.