Connessioni BI
Una connessione BI è l’accesso del progetto a un sistema di sua proprietà che mostra dashboard: per Grafana il suo indirizzo e un token di account di servizio, per Power BI un’app Microsoft Entra (service principal) e il suo segreto client, per Tableau un’app collegata e un utente, e per una pagina web l’account di servizio di un sito che mostra una dashboard dietro un accesso, oppure i cookie di un browser connesso. Un ID connessione inizia con bic_. I segreti sono sigillati sul server e non vengono mai più mostrati: una lettura mostra secret {set, hint}, dove hint sono gli ultimi quattro caratteri di un segreto di 12 o più caratteri. Le connessioni appartengono a un solo progetto. bi connection list, show e browse richiedono l’accesso Read, e ogni altro comando richiede l’accesso Manage. Un piano senza dashboard BI risponde con feature_not_in_plan (exit 8) alla creazione di una connessione o di una vista e alla modifica di una di esse, tranne la sostituzione di una credenziale; i prezzi elencano i piani.
Fornisci un segreto in un file: --token-file per Grafana, --secret-file per Power BI e Tableau, --password-file, --totp-file e --cookies-file per una pagina web. Ognuno accetta - per stdin, mai un argomento, e lo stesso vale per lo script --steps di una connessione web; al massimo un’opzione di un comando legge stdin.
Una vista riproduce una dashboard, un report o una pagina di una connessione tramite una primitiva iframe che mostra il suo embed_url; bi view create --connection-id ID ne crea una. Mostrare una dashboard dietro un accesso illustra una connessione web, e il Riferimento API copre ogni tipo.
bi connection create grafana#
Aggiungi una connessione Grafana: il suo indirizzo e un token di account di servizio.
bi connection create grafana --url URL --token-file FILE [--name NAME] [--org-id N]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--url URL | string | sì | nessuno | L’indirizzo di Grafana su un host pubblico, con un eventuale prefisso di percorso: https://grafana.example.com o https://example.com/grafana. Un indirizzo privato, di loopback o riservato è invalid_request (uscita 8), e Grafana deve rispondere senza reindirizzare. |
--token-file FILE | string | sì | nessuno | Leggi il token dell’account di servizio da questo file, oppure - per stdin (mai un argomento); il file contiene solo il token. |
--name NAME | string | no | il nome host | Da 1 a 80 caratteri. |
--org-id N | integer | no | 1 | L’organizzazione Grafana a cui appartiene il token: un numero intero a partire da 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 2In Grafana installa il plugin Grafana Image Renderer o il servizio di rendering remoto (disegna le dashboard come immagini; senza di esso non viene disegnato nulla), poi crea un account di servizio con il ruolo Viewer e aggiungi un token. Poi esegui bi connection test.
bi connection create tableau#
Aggiungi una connessione Tableau: un’app collegata (direct trust), l’utente con cui vengono mostrate le viste degli schermi e il valore del segreto dell’app.
bi connection create tableau --url URL --client-id ID --secret-id ID --username USER
--secret-file FILE [--site SITE] [--name NAME]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--url URL | string | sì | nessuno | L’indirizzo https di Tableau Server, o del tuo pod Tableau Cloud come https://10ay.online.tableau.com (il pod, non online.tableau.com). |
--site SITE | string | no | il sito predefinito di Tableau Server | L’URL del contenuto del sito, la parte dopo /site/ o /t/ nell’indirizzo di una vista. |
--client-id ID | string | sì | nessuno | L’ID client dell’app collegata. |
--secret-id ID | string | sì | nessuno | L’ID del segreto di un segreto generato per l’app collegata. |
--username USER | string | sì | nessuno | L’utente Tableau con cui vengono mostrate le viste degli schermi (un indirizzo email su Tableau Cloud). |
--secret-file FILE | string | sì | nessuno | Leggi il valore del segreto da questo file, oppure - per stdin (mai un argomento); il file contiene solo il valore del segreto, non l’ID del segreto. |
--name NAME | string | no | il nome host | Da 1 a 80 caratteri. |
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.txtDa configurare una sola volta in Tableau: in Impostazioni, App collegate, crea un’app collegata con direct trust, copia il suo ID client, genera un segreto e copia l’ID del segreto e il valore del segreto, poi abilita l’app e il segreto. Scegli o crea l’utente Tableau con cui gli schermi mostrano le viste e dagli accesso solo alle viste che gli schermi mostrano: chiunque abbia il ticket di uno schermo può incorporare qualsiasi vista che quell’utente possa vedere. Poi esegui bi connection show ID e inserisci l’host del suo embed_origin nell’elenco dei domini consentiti dell’app collegata. Richiede Tableau Cloud o Tableau Server 2023.3 o successivo; gli schermi devono raggiungere l’host Tableau, e il loro browser deve accettare i cookie di terze parti da esso. Poi esegui bi connection test, quindi bi connection browse per trovare una vista.
bi connection create powerbi#
Aggiungi una connessione Power BI: un’app Microsoft Entra (service principal) e il suo segreto client, oppure una connessione Microsoft di questo progetto.
bi connection create powerbi
(--tenant-id ID --client-id ID --secret-file FILE | --connection-id ID) [--name NAME]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--tenant-id ID | string | senza --connection-id | nessuno | Il tuo ID directory (tenant) Microsoft Entra, o il suo dominio come contoso.onmicrosoft.com; non common, organizations o consumers. Insieme a --client-id e --secret-file. |
--client-id ID | string | senza --connection-id | nessuno | L’ID applicazione (client) della registrazione dell’app. |
--secret-file FILE | string | senza --connection-id | nessuno | Leggi il valore del segreto client da questo file, oppure - per stdin (mai un argomento); il file contiene solo il valore del segreto, non l’ID del segreto. |
--connection-id ID | string | senza --tenant-id | nessuno | Accedi tramite una connessione Microsoft (pcn_…) di questo progetto in modalità own_app, al posto di --tenant-id, --client-id e --secret-file. Una connessione screenrig_app viene rifiutata. Non insieme a essi. |
--name NAME | string | no | Power BI | Da 1 a 80 caratteri. |
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"Da configurare una sola volta. In Microsoft Entra crea una registrazione di app (tenant singolo, nessun URI di reindirizzamento, nessuna autorizzazione API) e un segreto client. Un amministratore di Power BI attiva, nel portale di amministrazione in Impostazioni del tenant, Impostazioni sviluppatore, Embed content in apps e Service principals can call Fabric public APIs, per l’intera organizzazione o per un gruppo di sicurezza che contiene l’app. Aggiungi l’app a ogni area di lavoro che mostri con il ruolo Membro o Amministratore; Membro è l’accesso minimo. Per l’incorporamento in produzione l’area di lavoro deve trovarsi su una capacità Fabric (F), Power BI Embedded (A) o Premium (P/EM). Solo cloud commerciale. Poi esegui bi connection test, quindi bi connection browse per trovare un’area di lavoro e un report.
bi connection create web#
Aggiungi una connessione web: un account di servizio di un sito che mostra una dashboard dietro un accesso, oppure i cookie di un browser connesso.
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]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--login-mode MODE | string | sì | nessuno | auto compila il modulo su --login-url con --username e la password. steps esegue lo script --steps. none non effettua alcun accesso, quindi le pagine vengono mostrate con il set di cookie --cookies-file e non accetta nessuno tra --login-url, --username, --password-file, --totp-file o --steps. |
--login-url URL | string | con auto o steps | nessuno | L’indirizzo https della pagina di accesso del sito, su un host pubblico. La password viene digitata solo lì e nei passaggi goto dello script, mai nell’indirizzo di una vista. |
--username USER | string | con auto | nessuno | Il nome utente dell’account di servizio, che uno script steps legge come {{username}}. |
--password-file FILE | string | con auto | nessuno | Leggi la password dell’account di servizio da questo file, oppure - per stdin (mai un argomento): gli spazi sono consentiti, e i fine riga finali vengono scartati. |
--totp-file FILE | string | no | nessuno | Leggi la chiave base32 che il sito mostra per l’app di autenticazione dell’account (da 16 a 128 caratteri), o il suo indirizzo otpauth://totp, da questo file o da -: il server calcola i codici. |
--steps FILE | string | con steps | nessuno | Lo script di accesso, un array JSON di al massimo 30 passaggi, da un file o da -. Azioni: goto (url), fill (selector, value), click e wait_for (selector), press (value come Enter, selector facoltativo) e wait_ms (ms, da 1 a 10000). Un valore può contenere {{username}}, {{password}} e {{otp}}, mai il segreto stesso. Non con auto. |
--cookies-file FILE | string | no | nessuno | Un set di cookie esportato da un browser connesso: un array JSON di cookie (l’esportazione di un’estensione per cookie) o un oggetto con un array cookies (lo storage state di Playwright), da un file o da -; al massimo 100. Vengono inviati solo name, value, domain, path, expires, httpOnly, secure e sameSite. |
--name NAME | string | no | l’host di accesso, oppure Web page con --login-mode none | Da 1 a 80 caratteri. |
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"La password, la chiave e i cookie sono sigillati e non vengono mai più mostrati: data.secret e data.totp_secret indicano se sono impostati, e data.session dice a che punto è l’accesso (idle, active, login_needed, paused, stopped o expired). Usa un account di servizio di sola lettura. Un accesso rifiutato attende 5 minuti, poi 15, 60 e 120, e il quinto di fila ferma la connessione finché non cambiano le sue credenziali o le sue impostazioni di accesso. Un sito che approva gli accessi su un telefono, controlla i dispositivi o mostra un CAPTCHA non si può automatizzare: usa un set di cookie. Un server senza il renderer di pagine risponde bi_web_unavailable (uscita 5). Poi esegui bi connection test.
bi connection list#
Elenca le connessioni BI di questo progetto con il loro tipo, il segreto mascherato e l’ultimo test.
bi connection listNessun parametro.
screenrig bi connection listdata.items contiene ogni connessione del progetto; non viene restituito alcun segreto.
bi connection show#
Ispeziona una connessione e il suo ultimo test.
bi connection show <id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | La connessione (bic_…). |
screenrig bi connection show bic_01EXAMPLECONNECTION0000La risposta contiene kind, config (url e org_id per Grafana; tenant_id e client_id per Power BI, oppure connection_id quando una connessione Microsoft esegue l’accesso; url, site, client_id, secret_id e username per Tableau; login_mode, login_url, username e steps per una connessione web), secret {set, hint}, embed_origin (l’host di incorporamento del progetto, da indicare nell’elenco dei domini consentiti di un’app collegata) e last_test. Una connessione web contiene inoltre totp_secret {set} e session: il suo state, il conteggio cookies e cookies_updated_at, last_login_at, login_failures e retry_at.
bi connection update#
Modifica il nome, l’indirizzo, l’organizzazione, il tenant, l’app, il sito, l’utente o il segreto di una connessione oppure, per una connessione web, il suo accesso e i suoi cookie.
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]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | La connessione (bic_…). |
--name NAME | string | no | invariato | Rinomina la connessione. |
--url URL | string | no | invariato | Il nuovo indirizzo di Grafana, oppure del server o pod Tableau. |
--org-id N | integer | no | invariato | L’organizzazione Grafana a cui appartiene il token. |
--tenant-id ID | string | no | invariato | Il tenant Microsoft Entra della connessione Power BI. |
--client-id ID | string | no | invariato | L’ID applicazione (client) della connessione Power BI, oppure l’ID client dell’app collegata di Tableau. |
--site SITE | string | no | invariato | L’URL del contenuto del sito della connessione Tableau. Non con --default-site. |
--default-site | boolean | no | spento | Tableau Server: accedi al sito predefinito. Non con --site. |
--secret-id ID | string | no | invariato | L’ID del segreto dell’app collegata di Tableau. |
--username USER | string | no | invariato | L’utente Tableau con cui vengono mostrate le viste degli schermi, oppure l’account di servizio della connessione web. |
--token-file FILE | string | no | invariato | Grafana: leggi il token dell’account di servizio da questo file, oppure - per stdin; sostituisce il token memorizzato. Al massimo uno tra --token-file, --secret-file, --password-file e --clear-password. |
--secret-file FILE | string | no | invariato | Power BI o Tableau: leggi il valore del segreto da questo file, oppure - per stdin; sostituisce il segreto memorizzato. |
--login-mode MODE | string | no | invariato | Web: come accede, auto, steps o none. |
--login-url URL | string | no | invariato | Web: l’indirizzo https della pagina di accesso del sito. Una nuova origine richiede --password-file nello stesso comando, così la password memorizzata non viene mai inviata a una pagina diversa da quella che hai indicato. |
--password-file FILE | string | no | invariato | Web: leggi la password dell’account di servizio da questo file, oppure - per stdin; sostituisce la password memorizzata. |
--clear-password | boolean | no | spento | Web: rimuovi la password memorizzata. |
--totp-file FILE | string | no | invariato | Web: leggi la chiave dell’autenticatore da questo file, oppure - per stdin; sostituisce la chiave memorizzata. Non con --clear-totp. |
--clear-totp | boolean | no | spento | Web: rimuovi la chiave dell’autenticatore memorizzata. Non con --totp-file. |
--steps FILE | string | no | invariato | Web: sostituisci lo script di accesso, un array JSON di al massimo 30 passaggi, da un file o da -. |
--cookies-file FILE | string | no | invariato | Web: sostituisci il set di cookie con uno esportato da un browser connesso, da un file o da - (le forme accettate da bi connection create web). Non con --clear-cookies. |
--clear-cookies | boolean | no | spento | Web: rimuovi il set di cookie memorizzato. Non con --cookies-file. |
--expect-rev REVISION | integer | no | nessuno | Rifiuta la modifica se la connessione non è a questa revisione (revision_conflict, uscita 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 2È richiesta almeno una modifica, e un segreto omesso viene conservato. Un nuovo indirizzo su un altro host, schema o porta richiede --token-file (Grafana) o --secret-file (Tableau) nello stesso comando: il segreto memorizzato viene inviato solo all’indirizzo per cui è stato salvato. Un nuovo indirizzo, organizzazione, tenant, app, sito, utente o segreto cancella last_test e ritira ogni render in cache per le viste della connessione: testala di nuovo. Una modifica delle credenziali o delle impostazioni di accesso riattiva una sessione web fermata.
bi connection test#
Controlla le credenziali: il token e l’Image Renderer di Grafana, l’app di Power BI e le sue aree di lavoro, l’accesso a Tableau oppure l’accesso di una connessione web.
bi connection test <id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | La connessione (bic_…). |
screenrig bi connection test bic_01EXAMPLECONNECTION0000Grafana: token (Grafana lo accetta) e image_renderer (il plugin è elencato; senza di esso Grafana dà solo un avviso, perché un servizio di rendering remoto non compare come plugin). Power BI: token (Microsoft Entra ne ha emesso uno per l’app) e workspaces (le aree di lavoro che l’app può vedere; se non ce n’è nessuna, il controllo fallisce, e un rifiuto indica le impostazioni sviluppatore del tenant e il ruolo Membro o Amministratore dell’app nell’area di lavoro). Tableau: signin come utente della connessione con un token di lettura dei contenuti, seguito da una disconnessione. Web: login accede come account di servizio e disegna la sua pagina di accesso; una connessione web che non effettua alcun accesso non ha un accesso da verificare, quindi risponde con un avviso, e bi view test ne controlla i cookie. Un rifiuto è un controllo non riuscito che riporta la risposta del fornitore stesso, e il risultato viene memorizzato come last_test. Il test non valuta l’elenco dei domini consentiti di Tableau, la capacità, la sicurezza a livello di riga né i permessi di una dashboard: bi view test controlla davvero una vista.
bi connection browse#
Elenca ciò che una connessione può mostrare: dashboard e pannelli Grafana, aree di lavoro e report Power BI, oppure viste Tableau.
bi connection browse <id> [--query TEXT] [--dashboard UID] [--workspace ID]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | La connessione (bic_…). |
--query TEXT | string | no | nessuno | Solo dashboard, aree di lavoro, report o viste il cui nome corrisponde, al massimo 200 caratteri. |
--dashboard UID | string | no | nessuno | Grafana: elenca invece i pannelli di questa dashboard. Non con --workspace. |
--workspace ID | string | no | nessuno | Power BI: elenca invece i report di quest’area di lavoro, tramite il suo GUID. Non con --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 elenca, per Grafana, uid, title, folder e tags di ogni dashboard che il token può mostrare, oppure con --dashboard id, title e type dei suoi pannelli (le righe vengono appiattite, quindi viene elencato anche un pannello dentro una riga compressa); per Power BI id e name di ogni area di lavoro che l’app può vedere, oppure con --workspace id, name e embed_url dei suoi report; per Tableau il path, nella forma Workbook/View, e name di ogni vista che l’utente della connessione può vedere. Usa questi valori con bi view create. Una connessione web non elenca nulla: ogni vista web prende l’indirizzo della sua pagina.
bi connection delete#
Elimina una connessione che nessuna vista usa.
bi connection delete <id> [--expect-rev REVISION]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | La connessione (bic_…). |
--expect-rev REVISION | integer | no | nessuno | Rifiuta l’eliminazione se la connessione non è a questa revisione (revision_conflict, uscita 6). |
screenrig bi connection delete bic_01EXAMPLECONNECTION0000Finché delle viste la usano, la risposta è resource_conflict (exit 5), che le nomina: elimina prima quelle viste. La risposta è data.id e data.deleted true.
Viste BI
Una vista è una dashboard o un pannello di una connessione Grafana, un report di un’area di lavoro Power BI, una vista di un sito Tableau, una pagina di una connessione web, oppure un link pubblico che non richiede alcuna connessione: una dashboard pubblica Grafana, un link Publish to web di Power BI o una visualizzazione Tableau Public. Un ID vista inizia con biv_, e una vista viene riprodotta solo sugli schermi del proprio progetto.
Inserisci il embed_url della vista in una primitiva iframe con content_fit fill e pubblica come al solito: la playlist non contiene alcuna credenziale. Le viste Grafana e web vengono disegnate sul server come immagine ogni --refresh e condivise da tutti gli schermi della stessa dimensione, quindi dieci schermi in una hall producono un solo render e lo schermo non comunica mai con il sistema; l’ultima immagine valida resta sullo schermo mentre un’acquisizione fallisce. Un report Power BI e una vista Tableau si incorporano con un token di sola visualizzazione che il server genera e rinnova, e lo schermo non possiede mai il segreto. Un’immagine viene disegnata solo mentre il manifest di uno schermo nomina la vista.
La lettura richiede l’accesso Read, e ogni modifica richiede l’accesso Manage. Ogni opzione di destinazione appartiene a un solo tipo di connessione, e bi connection browse ID elenca i valori da usare.
bi view create#
Aggiungi una vista di una dashboard, un pannello, un report o una vista Tableau di una connessione, oppure di un link pubblico.
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]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--connection-id ID | string | senza --public-url | nessuno | La connessione (bic_…) di cui mostrare qualcosa. |
--url URL | string | una destinazione | nessuno | Un indirizzo di dashboard sull’host Grafana della connessione, un indirizzo di report Power BI, un indirizzo di vista Tableau oppure, per una connessione web, l’indirizzo https della pagina su un host pubblico. Il resto della destinazione viene letto da esso, quindi non accetta nessuno tra --panel, --from, --to, --var, --theme, --timezone, --page o --all-pages. |
--dashboard UID | string | una destinazione | nessuno | Grafana: l’uid della dashboard, la parte dopo /d/ nel suo indirizzo. |
--workspace ID | string | una destinazione | nessuno | Power BI: l’ID dell’area di lavoro, con --report. |
--report ID | string | con --workspace | nessuno | Power BI: l’ID del report, con --workspace. |
--view WORKBOOK/VIEW | string | una destinazione | nessuno | Tableau: la vista, i nomi dopo /views/ nel suo indirizzo (bi connection browse li elenca). |
--public-url URL | string | una destinazione | nessuno | Un link di dashboard pubblica Grafana, un link Publish to web di Power BI o un indirizzo di visualizzazione Tableau Public. Non richiede alcuna connessione e viene riprodotto dal vivo dal suo host. Indicalo da solo, con --name, --refresh, --fit, --rotate-sheets e --rotate. |
--name NAME | string | no | dalla destinazione | Da 1 a 80 caratteri. |
--refresh DURATION | string | no | 5m | Grafana: ogni quanto l’immagine viene ridisegnata, da 30s a 24h. Web: ogni quanto la pagina viene ridisegnata, da 60s a 24h. Power BI e Tableau: ogni quanto il report o la vista aggiorna i propri dati, da 60s a 24h, oppure 0 per nessuno. Indica una durata come 30s, 5m o 1h, oppure un numero di secondi. |
--fit FIT | string | no | contain | Grafana e web: come l’immagine riempie lo schermo, contain, cover o fill. |
--rotate DURATION | string | no | nessuno | Power BI: per quanto tempo viene mostrata ogni pagina, da 10s a 1h; necessario con due o più --page o con --all-pages. Tableau: per quanto tempo viene mostrato ogni foglio; necessario con --rotate-sheets. |
--page NAME | string | no | nessuno | Power BI: una pagina da mostrare, per nome o nome visualizzato. Da 1 a 200 caratteri. Ripetibile; le pagine vengono mostrate in quest’ordine. |
--all-pages | boolean | no | spento | Power BI: ruota tra tutte le pagine visibili, con --rotate. |
--rotate-sheets | boolean | no | spento | Tableau: fai ruotare i fogli pubblicati della cartella di lavoro, con --rotate. |
--panel ID | string | no | l’intera dashboard | Grafana: mostra solo questo pannello invece dell’intera dashboard. Un numero intero, come in viewPanel dell’indirizzo. |
--from TIME | string | no | nessuno | Grafana: inizio dell’intervallo di tempo, come now-6h, now/d o un epoch in millisecondi. |
--to TIME | string | no | nessuno | Grafana: fine dell’intervallo di tempo, come now, now/d o un epoch in millisecondi. |
--var NAME=VALUE | string | no | nessuno | Grafana: una variabile della dashboard. NAME può avere un prefisso var- e un valore ha al massimo 200 caratteri. Ripetibile. |
--theme THEME | string | no | dark | Tema di Grafana, dark o light. |
--timezone ZONE | string | no | nessuno | Grafana: fuso orario della dashboard, come Europe/Paris, utc o browser. |
--wait-for CSS | string | no | nessuno | Web: un selettore CSS di un elemento che compare quando la pagina è pronta, e solo quando è connessa. L’acquisizione lo attende e fallisce con bi_web_timeout se non compare mai. |
--wait-ms MS | integer | no | nessuno | Web: millisecondi di attesa dopo che la pagina è pronta, per i grafici tardivi, da 0 a 10000. |
--clip CSS | string | no | l’intera pagina | Web: un selettore CSS della parte della pagina da disegnare. |
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'Indica esattamente una destinazione: --url, --dashboard, --workspace con --report, --view o --public-url. La risposta contiene data.embed_url. Poi esegui bi view test.
Grafana: --url legge orgId, viewPanel o panelId, from, to, var-*, theme e timezone dall’indirizzo. L’immagine viene disegnata tramite il servizio di rendering di Grafana e condivisa da tutti gli schermi della stessa dimensione, e uno schermo conserva l’ultima immagine, con l’ora del render in un angolo, mentre Grafana non è disponibile. Un link di dashboard pubblica viene riprodotto dal vivo da Grafana, che deve consentire l’incorporamento (allow_embedding = true nelle sue impostazioni): bi view test lo verifica.
Power BI: --url accetta l’indirizzo di un report copiato da Power BI, https://app.powerbi.com/groups/WORKSPACE/reports/REPORT, con una pagina facoltativa /ReportSection; oppure indica --workspace e --report. Due o più pagine richiedono --rotate, e --rotate richiede due o più pagine oppure --all-pages. --refresh 0 è adatto a un report DirectQuery o con aggiornamento automatico della pagina, che si aggiorna da solo. --fit non si applica. Un link Publish to web mostra il report a chiunque abbia il link e viene riprodotto come lo serve Power BI, ricaricato ogni --refresh, senza rotazione delle pagine.
Tableau: --url accetta l’indirizzo di una vista copiato da Tableau, https://HOST/t/SITE/views/WORKBOOK/VIEW, quello di Tableau Cloud, https://HOST/#/site/SITE/views/WORKBOOK/VIEW, oppure semplicemente WORKBOOK/VIEW; l’indirizzo deve trovarsi sull’host e sul sito della connessione. --rotate-sheets e --rotate richiedono l’uno l’altro. --fit non si applica. Gli schermi devono raggiungere l’host Tableau e accettarne i cookie di terze parti, e il embed_origin della vista deve essere nell’elenco dei domini consentiti dell’app collegata. Una visualizzazione Tableau Public (--public-url https://public.tableau.com/app/profile/USER/viz/WORKBOOK/VIEW, o il suo indirizzo /views/) non richiede né connessione né token, e anche lì funziona --rotate-sheets.
Web: --url è l’indirizzo della pagina, e --wait-for, --wait-ms e --clip si applicano solo a una vista web. L’ultima immagine valida resta sullo schermo quando un’acquisizione fallisce, e status.last_error ne indica il motivo: bi_web_login_failed, bi_web_otp_required, bi_web_session_expired, bi_web_login_paused, bi_web_timeout, bi_web_navigation_failed o bi_web_blocked.
bi view list#
Elenca le viste BI di questo progetto con la loro destinazione, cadenza e stato.
bi view listNessun parametro.
screenrig bi view listdata.items contiene ogni vista del progetto, ciascuna con il proprio embed_url.
bi view show#
Ispeziona una vista, il suo embed_url e come è andata l’ultima volta sullo schermo.
bi view show <id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | La vista (biv_…). |
screenrig bi view show biv_01EXAMPLEVIEW0000000000La risposta contiene kind, name, connection_id (assente per un link pubblico), target (view e rotate_sheets per Tableau), refresh_s, rotate_s, fit, status, embed_url e revision; una vista web contiene inoltre wait_for, wait_ms e clip. status contiene last_ok_at e last_error con un code e un detail: bi_upstream_refused quando Grafana ha rifiutato il token, bi_upstream_unavailable quando non ha potuto eseguire il render, oppure uno dei codici bi_web_* di una vista web.
bi view update#
Modifica il nome, la destinazione, la cadenza o l’adattamento di una vista.
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]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | La vista (biv_…). |
--name NAME | string | no | invariato | Rinomina la vista. |
--url URL | string | no | invariato | Un indirizzo di dashboard, di report o di vista Tableau, oppure l’indirizzo della pagina di una vista web; sostituisce l’intera destinazione. Non con le altre opzioni di destinazione. |
--dashboard UID | string | no | invariato | Grafana: mostra questa dashboard; sostituisce l’intera destinazione. |
--workspace ID | string | no | invariato | Power BI: mostra un report di quest’area di lavoro, con --report; sostituisce l’intera destinazione. |
--report ID | string | no | invariato | Power BI: mostra questo report, in --workspace o nell’area di lavoro attuale. |
--view WORKBOOK/VIEW | string | no | invariato | Tableau: mostra questa vista; sostituisce l’intera destinazione. |
--public-url URL | string | no | invariato | Un link pubblico; sostituisce l’intera destinazione. |
--rotate-sheets | boolean | no | spento | Tableau: fai ruotare i fogli pubblicati della cartella di lavoro, con --rotate. |
--page NAME | string | no | invariato | Power BI: le pagine da mostrare, per nome o nome visualizzato. Ripetibile; sostituisce le pagine attuali. |
--all-pages | boolean | no | spento | Power BI: ruota tra tutte le pagine visibili. |
--rotate DURATION | string | no | invariato | Power BI: per quanto tempo viene mostrata ogni pagina, da 10s a 1h, oppure 0 per una sola pagina. Tableau: per quanto tempo viene mostrato ogni foglio, oppure 0 per smettere di farli ruotare. |
--panel ID | string | no | invariato | Grafana: mostra solo questo pannello. |
--from TIME | string | no | invariato | Grafana: inizio dell’intervallo di tempo. |
--to TIME | string | no | invariato | Grafana: fine dell’intervallo di tempo. |
--var NAME=VALUE | string | no | invariato | Grafana: imposta una variabile della dashboard. Ripetibile; ne imposta una e conserva le altre. |
--theme THEME | string | no | invariato | Tema di Grafana, dark o light. |
--timezone ZONE | string | no | invariato | Grafana: fuso orario della dashboard. |
--refresh DURATION | string | no | invariato | Ogni quanto l’immagine viene ridisegnata o il report si aggiorna: Grafana da 30s a 24h; web da 60s a 24h; Power BI e Tableau da 60s a 24h, oppure 0 per nessuno. |
--fit FIT | string | no | invariato | Grafana e web: come l’immagine riempie lo schermo, contain, cover o fill. |
--wait-for CSS | string | no | invariato | Web: l’elemento che compare quando la pagina è pronta e connessa. Non con --clear-wait-for. |
--clear-wait-for | boolean | no | spento | Web: smetti di attendere un elemento. Non con --wait-for. |
--wait-ms MS | integer | no | invariato | Web: millisecondi di attesa dopo che la pagina è pronta, da 0 a 10000; 0 elimina l’attesa. |
--clip CSS | string | no | invariato | Web: la parte della pagina da disegnare. Non con --clear-clip. |
--clear-clip | boolean | no | spento | Web: ridisegna l’intera pagina. Non con --clip. |
--expect-rev REVISION | integer | no | nessuno | Rifiuta la modifica se la vista non è a questa revisione (revision_conflict, uscita 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/DetailÈ richiesta almeno una modifica. --url, --dashboard, --workspace e --public-url sostituiscono l’intera destinazione, mentre --panel, --from, --to, --var, --theme e --timezone modificano la destinazione Grafana attuale della vista, --report, --page e --all-pages quella Power BI, e --view e --rotate-sheets quella Tableau. --page sostituisce l’elenco delle pagine; per svuotarlo indica di nuovo --workspace e --report con --rotate 0. --rotate 0 da solo impedisce a una vista Tableau di far ruotare i suoi fogli. --url e --public-url non accettano altre opzioni di destinazione oltre a --rotate-sheets, e una vista di un link pubblico cambia la propria destinazione solo con --public-url. Una nuova destinazione cancella lo stato e ritira i render in cache, e gli schermi recepiscono la modifica al successivo aggiornamento senza ripubblicare. Una vista conserva la propria connessione e il proprio tipo.
bi view test#
Controlla davvero una vista: un render Grafana o web, un token di incorporamento Power BI, una ricerca Tableau, oppure un link pubblico.
bi view test <id> [--output FILE [--width PIXELS] [--height PIXELS]]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | La vista (biv_…). |
--output FILE | string | no | nessuno | Grafana o web: salva qui il PNG generato invece di eseguire i controlli. Una vista Power BI o Tableau e un link pubblico non ne hanno (not_found). |
--width PIXELS | integer | no | 1920 | Larghezza dell’immagine salvata, da 1 a 10000. Richiede --output. |
--height PIXELS | integer | no | 1080 | Altezza dell’immagine salvata, da 1 a 10000. Richiede --output. |
screenrig bi view test biv_01EXAMPLEVIEW0000000000
screenrig bi view test biv_01EXAMPLEVIEW0000000000 --output lobby.png --width 1920 --height 1080Grafana: una vista di connessione viene disegnata davvero, fuori dalla cache condivisa e senza toccare lo stato della vista. data.ok è false con il motivo di Grafana quando rifiuta il token, non ha un renderer o non conosce la dashboard; un test non riuscito è un dato, exit 0. Web: una vista di connessione viene disegnata una volta nel browser del server (render), fuori dalla cache condivisa, e un disegno non riuscito ne indica il motivo. Apri il PNG salvato e controllalo prima di pubblicare. Per un link pubblico il test scarica la pagina e verifica che Grafana consenta alla pagina di incorporamento della vista di inquadrarla.
Tableau: una vista di connessione accede come utente della connessione e cerca la vista (signin, view); una vista che l’utente non può vedere, o un nome con maiuscole e minuscole errate, è un controllo view non riuscito che indica il percorso. Una vista Tableau Public chiede a Tableau Public se la cartella di lavoro esiste. Power BI: una vista di connessione legge il report (report) e genera un vero token di incorporamento di sola visualizzazione per esso (embed_token); quando lo rifiuta, viene mostrato il motivo di Power BI stesso, come un dataset con sicurezza a livello di riga, un 401 o 403 (impostazione del tenant o ruolo nell’area di lavoro) o un report che l’app non può vedere. Un link Publish to web viene scaricato e ne vengono letti gli header di framing.
Il test non valuta ciò che l’immagine mostra, le pagine che la vista nomina, la capacità né l’elenco dei domini consentiti di Tableau. data contiene at, ok e checks, ciascun controllo con name, ok, un warn facoltativo e un detail; un render Grafana o web aggiunge width, height e bytes. Con --output, data contiene invece id, file, bytes, width e height.
bi view delete#
Elimina una vista.
bi view delete <id> [--expect-rev REVISION]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | La vista (biv_…). |
--expect-rev REVISION | integer | no | nessuno | Rifiuta l’eliminazione se la vista non è a questa revisione (revision_conflict, uscita 6). |
screenrig bi view delete biv_01EXAMPLEVIEW0000000000
screenrig bi view delete biv_01EXAMPLEVIEW0000000000 --expect-rev 3Uno schermo che mostra ancora il embed_url della vista risponde not_found finché la sua playlist non cambia. La risposta è data.id e data.deleted true.