Documentação

Painéis de BI: comandos da CLI

Conecte Grafana, Tableau, Power BI ou um painel web e depois navegue, crie, teste e mostre as visualizações dele nas telas.

Cada comando funciona como descrito na referência da CLI: flags globais, saída JSON, códigos de saída, revisões e tentativas.

Conexões de BI

Uma conexão de BI é o acesso do projeto a um sistema que ele possui e que mostra dashboards: para o Grafana, o endereço dele e um token de conta de serviço; para o Power BI, um aplicativo do Microsoft Entra (service principal) e seu segredo de cliente; para o Tableau, um aplicativo conectado e um usuário; e, para uma página web, a conta de serviço de um site que mostra um dashboard atrás de um login, ou os cookies de um navegador logado. Um ID de conexão começa com bic_. Os segredos são selados no servidor e nunca são mostrados de novo: uma leitura mostra secret {set, hint}, em que hint são os últimos quatro caracteres de um segredo de 12 ou mais caracteres. As conexões pertencem a um projeto. bi connection list, show e browse exigem acesso Read, e todos os outros comandos exigem acesso Manage. Um plano sem dashboards de BI responde feature_not_in_plan (exit 8) ao criar uma conexão ou uma visualização e ao alterar uma delas, exceto na substituição de uma credencial; preços lista os planos.

Informe um segredo em um arquivo: --token-file para o Grafana, --secret-file para o Power BI e o Tableau, --password-file, --totp-file e --cookies-file para uma página web. Cada um aceita - para stdin, nunca como argumento, e o script --steps de uma conexão web também; no máximo uma opção de um comando lê stdin.

Uma visualização reproduz um dashboard, relatório ou página de uma conexão por meio de uma primitiva iframe que mostra seu embed_url; bi view create --connection-id ID cria uma. Mostrar um dashboard atrás de um login percorre uma conexão web, e a Referência da API cobre todos os tipos.

bi connection create grafana#

Adiciona uma conexão do Grafana: o endereço dele e um token de conta de serviço.

bi connection create grafana --url URL --token-file FILE [--name NAME] [--org-id N]
ParâmetroTipoObrigatórioPadrãoNotas
--url URLstringsimnenhumO endereço do Grafana em um host público, com qualquer prefixo de caminho: https://grafana.example.com ou https://example.com/grafana. Um endereço privado, de loopback ou reservado é invalid_request (código de saída 8), e o Grafana deve responder sem redirecionar.
--token-file FILEstringsimnenhumLê o token da conta de serviço deste arquivo, ou - para stdin (nunca como argumento); o arquivo contém apenas o token.
--name NAMEstringnãoo nome do host1 a 80 caracteres.
--org-id Nintegernão1A organização do Grafana a que o token pertence: um número inteiro a partir de 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 2

No Grafana, instale o plugin Grafana Image Renderer ou o serviço de renderização remota (ele desenha dashboards como imagens; sem ele, nada é renderizado) e depois crie uma conta de serviço com a função Viewer e adicione um token. Execute bi connection test em seguida.

bi connection create tableau#

Adiciona uma conexão do Tableau: um aplicativo conectado (direct trust), o usuário com o qual as visualizações das telas são exibidas e o valor do segredo do aplicativo.

bi connection create tableau --url URL --client-id ID --secret-id ID --username USER
    --secret-file FILE [--site SITE] [--name NAME]
ParâmetroTipoObrigatórioPadrãoNotas
--url URLstringsimnenhumO endereço https do Tableau Server, ou do seu pod do Tableau Cloud, como https://10ay.online.tableau.com (o pod, não online.tableau.com).
--site SITEstringnãoo site padrão do Tableau ServerA URL de conteúdo do site, a parte depois de /site/ ou /t/ no endereço de uma visualização.
--client-id IDstringsimnenhumO ID de cliente do aplicativo conectado.
--secret-id IDstringsimnenhumO ID do segredo de um segredo gerado para o aplicativo conectado.
--username USERstringsimnenhumO usuário do Tableau com o qual as visualizações das telas são exibidas (um endereço de e-mail no Tableau Cloud).
--secret-file FILEstringsimnenhumLê o valor do segredo deste arquivo, ou - para stdin (nunca como argumento); o arquivo contém apenas o valor do segredo, não o ID do segredo.
--name NAMEstringnãoo nome do host1 a 80 caracteres.
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.txt

Configure uma vez no Tableau: em Settings, Connected Apps, crie um aplicativo conectado Direct trust, copie o ID de cliente dele, gere um segredo e copie o ID do segredo e o valor do segredo, e ative o aplicativo e o segredo. Escolha ou crie o usuário do Tableau com o qual as telas exibem as visualizações e dê a ele acesso apenas às visualizações que as telas exibem: quem tiver o ticket de uma tela pode incorporar qualquer visualização que esse usuário possa ver. Depois execute bi connection show ID e informe o host de embed_origin na lista de domínios permitidos do aplicativo conectado. Exige o Tableau Cloud ou o Tableau Server 2023.3 ou posterior; as telas devem alcançar o host do Tableau, e o navegador delas deve aceitar cookies de terceiros dele. Execute bi connection test em seguida e depois bi connection browse para encontrar uma visualização.

bi connection create powerbi#

Adiciona uma conexão do Power BI: um aplicativo do Microsoft Entra (service principal) e seu segredo de cliente, ou uma conexão da Microsoft deste projeto.

bi connection create powerbi
    (--tenant-id ID --client-id ID --secret-file FILE | --connection-id ID) [--name NAME]
ParâmetroTipoObrigatórioPadrãoNotas
--tenant-id IDstringsem --connection-idnenhumO ID do diretório (tenant) do seu Microsoft Entra, ou o domínio dele, como contoso.onmicrosoft.com; não common, organizations ou consumers. Junto com --client-id e --secret-file.
--client-id IDstringsem --connection-idnenhumO ID do aplicativo (cliente) do registro de aplicativo.
--secret-file FILEstringsem --connection-idnenhumLê o Valor do segredo de cliente deste arquivo, ou - para stdin (nunca como argumento); o arquivo contém apenas o valor do segredo, não o ID do segredo.
--connection-id IDstringsem --tenant-idnenhumFaz login por meio de uma conexão da Microsoft (pcn_…) deste projeto no modo own_app, em vez de --tenant-id, --client-id e --secret-file. Uma conexão screenrig_app é recusada. Não com eles.
--name NAMEstringnãoPower BI1 a 80 caracteres.
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"

Configure uma vez. No Microsoft Entra, crie um registro de aplicativo (locatário único, sem redirect URI, sem permissões de API) e um segredo de cliente. Um administrador do Power BI ativa, no portal de administração, em Tenant settings, Developer settings, Embed content in apps e Service principals can call Fabric public APIs, para toda a organização ou para um grupo de segurança que contenha o aplicativo. Adicione o aplicativo a cada workspace que você exibe com a função de Membro ou Administrador; Membro é o menor acesso. Para incorporação em produção, o workspace deve estar em uma capacidade Fabric (F), Power BI Embedded (A) ou Premium (P/EM). Somente nuvem comercial. Execute bi connection test em seguida e depois bi connection browse para encontrar um workspace e um relatório.

bi connection create web#

Adiciona uma conexão web: uma conta de serviço de um site que mostra um dashboard atrás de um login, ou os cookies de um navegador logado.

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]
ParâmetroTipoObrigatórioPadrãoNotas
--login-mode MODEstringsimnenhumauto preenche o formulário em --login-url com --username e a senha. steps executa o script de --steps. none não faz login em nada, então as páginas aparecem com o conjunto de cookies de --cookies-file e não aceita nenhum entre --login-url, --username, --password-file, --totp-file ou --steps.
--login-url URLstringcom auto ou stepsnenhumO endereço https da página de login do site, em um host público. A senha é digitada apenas ali e nos passos goto do script, nunca no endereço de uma visualização.
--username USERstringcom autonenhumO nome de usuário da conta de serviço, que um script steps lê como {{username}}.
--password-file FILEstringcom autonenhumLê a senha da conta de serviço deste arquivo, ou - para stdin (nunca como argumento): espaços são permitidos, e as quebras de linha finais são descartadas.
--totp-file FILEstringnãonenhumLê a chave base32 que o site mostra para o aplicativo autenticador da conta (de 16 a 128 caracteres), ou o endereço otpauth://totp dela, deste arquivo ou de -: o servidor calcula os códigos.
--steps FILEstringcom stepsnenhumO script de login, um array JSON de no máximo 30 passos, de um arquivo ou de -. Ações: goto (url), fill (selector, value), click e wait_for (selector), press (value como Enter, selector opcional) e wait_ms (ms, de 1 a 10000). Um valor pode conter {{username}}, {{password}} e {{otp}}, nunca o próprio segredo. Não com auto.
--cookies-file FILEstringnãonenhumUm conjunto de cookies exportado de um navegador logado: um array JSON de cookies (a exportação de uma extensão de cookies) ou um objeto com um array cookies (o storage state do Playwright), de um arquivo ou de -; no máximo 100. Apenas name, value, domain, path, expires, httpOnly, secure e sameSite são enviados.
--name NAMEstringnãoo host de login, ou Web page com --login-mode none1 a 80 caracteres.
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"

A senha, a chave e os cookies são selados e nunca são mostrados de novo: data.secret e data.totp_secret dizem se estão definidos, e data.session diz em que pé está o login (idle, active, login_needed, paused, stopped ou expired). Use uma conta de serviço somente leitura. Um login recusado espera 5 minutos, depois 15, 60 e 120, e o quinto seguido interrompe a conexão até que suas credenciais ou configurações de login mudem. Um site que aprova logins no celular, verifica dispositivos ou mostra um CAPTCHA não pode ser automatizado: use um conjunto de cookies. Um servidor sem o renderizador de páginas responde bi_web_unavailable (código de saída 5). Execute bi connection test em seguida.

bi connection list#

Lista as conexões de BI deste projeto com o tipo, o segredo mascarado e o último teste de cada uma.

bi connection list

Sem parâmetros.

screenrig bi connection list

data.items contém todas as conexões do projeto; nenhum segredo é devolvido.

bi connection show#

Inspeciona uma conexão e o último teste dela.

bi connection show <id>
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA conexão (bic_…).
screenrig bi connection show bic_01EXAMPLECONNECTION0000

A resposta traz kind, config (url e org_id para o Grafana; tenant_id e client_id para o Power BI, ou connection_id quando uma conexão Microsoft faz login; url, site, client_id, secret_id e username para o Tableau; login_mode, login_url, username e steps para uma conexão web), secret {set, hint}, embed_origin (o host de incorporação do projeto, que a lista de domínios permitidos de um aplicativo conectado cita) e last_test. Uma conexão web também traz totp_secret {set} e session: o state dela, a contagem de cookies e cookies_updated_at, last_login_at, login_failures e retry_at.

bi connection update#

Altera o nome, o endereço, a organização, o tenant, o aplicativo, o site, o usuário ou o segredo de uma conexão ou, em uma conexão web, o login e os cookies dela.

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]
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA conexão (bic_…).
--name NAMEstringnãoinalteradoRenomeia a conexão.
--url URLstringnãoinalteradoO novo endereço do Grafana, ou do servidor ou pod do Tableau.
--org-id NintegernãoinalteradoA organização do Grafana a que o token pertence.
--tenant-id IDstringnãoinalteradoO tenant do Microsoft Entra da conexão do Power BI.
--client-id IDstringnãoinalteradoO ID do aplicativo (cliente) da conexão do Power BI, ou o ID de cliente do aplicativo conectado do Tableau.
--site SITEstringnãoinalteradoA URL de conteúdo do site da conexão do Tableau. Não com --default-site.
--default-sitebooleannãodesligadoTableau Server: faz login no site padrão. Não com --site.
--secret-id IDstringnãoinalteradoO ID do segredo do aplicativo conectado do Tableau.
--username USERstringnãoinalteradoO usuário do Tableau com o qual as visualizações das telas são exibidas, ou a conta de serviço da conexão web.
--token-file FILEstringnãoinalteradoGrafana: lê o token da conta de serviço deste arquivo, ou - para stdin; ele substitui o token armazenado. No máximo um entre --token-file, --secret-file, --password-file e --clear-password.
--secret-file FILEstringnãoinalteradoPower BI ou Tableau: lê o valor do segredo deste arquivo, ou - para stdin; ele substitui o segredo armazenado.
--login-mode MODEstringnãoinalteradoWeb: como faz login, auto, steps ou none.
--login-url URLstringnãoinalteradoWeb: o endereço https da página de login do site. Uma nova origem exige --password-file no mesmo comando, para que a senha armazenada nunca seja enviada a uma página que você não indicou.
--password-file FILEstringnãoinalteradoWeb: lê a senha da conta de serviço deste arquivo, ou - para stdin; ela substitui a senha armazenada.
--clear-passwordbooleannãodesligadoWeb: remove a senha armazenada.
--totp-file FILEstringnãoinalteradoWeb: lê a chave do autenticador deste arquivo, ou - para stdin; ela substitui a chave armazenada. Não com --clear-totp.
--clear-totpbooleannãodesligadoWeb: remove a chave do autenticador armazenada. Não com --totp-file.
--steps FILEstringnãoinalteradoWeb: substitui o script de login, um array JSON de no máximo 30 passos, de um arquivo ou de -.
--cookies-file FILEstringnãoinalteradoWeb: substitui o conjunto de cookies por um exportado de um navegador logado, de um arquivo ou de - (os formatos que bi connection create web aceita). Não com --clear-cookies.
--clear-cookiesbooleannãodesligadoWeb: remove o conjunto de cookies armazenado. Não com --cookies-file.
--expect-rev REVISIONintegernãonenhumRecusa a alteração a menos que a conexão esteja nesta revisão (revision_conflict, código de saída 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

Pelo menos uma alteração é obrigatória, e um segredo omitido é mantido. Um novo endereço em outro host, esquema ou porta exige --token-file (Grafana) ou --secret-file (Tableau) no mesmo comando: o segredo armazenado só é enviado ao endereço para o qual foi salvo. Um novo endereço, organização, tenant, aplicativo, site, usuário ou segredo limpa last_test e invalida toda renderização em cache das visualizações da conexão: teste-a de novo. Uma alteração de credenciais ou das configurações de login retoma uma sessão web interrompida.

bi connection test#

Verifica as credenciais: o token e o Image Renderer do Grafana, o aplicativo do Power BI e seus workspaces, o login do Tableau ou o login de uma conexão web.

bi connection test <id>
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA conexão (bic_…).
screenrig bi connection test bic_01EXAMPLECONNECTION0000

Grafana: token (o Grafana o aceita) e image_renderer (o plugin está listado; o Grafana sem ele só avisa, porque um serviço de renderização remota não aparece como plugin). Power BI: token (o Microsoft Entra emitiu um para o aplicativo) e workspaces (os workspaces que o aplicativo pode ver; sem nenhum, a verificação falha, e uma recusa nomeia as configurações de desenvolvedor do tenant e a função de Membro ou Administrador do aplicativo no workspace). Tableau: signin como o usuário da conexão com um token de leitura de conteúdo, seguido do encerramento da sessão. Web: login faz login como a conta de serviço e desenha a página de login dela; uma conexão web que não faz login em lugar nenhum não tem login para testar, então responde com um aviso, e bi view test verifica os cookies dela. Uma recusa é uma verificação que falhou e traz a resposta do próprio fornecedor, e o resultado é armazenado como last_test. O teste não avalia a lista de domínios permitidos do Tableau, a capacidade, a segurança em nível de linha nem as permissões de um dashboard: bi view test verifica uma visualização de verdade.

bi connection browse#

Lista o que uma conexão pode mostrar: dashboards e painéis do Grafana, workspaces e relatórios do Power BI, ou visualizações do Tableau.

bi connection browse <id> [--query TEXT] [--dashboard UID] [--workspace ID]
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA conexão (bic_…).
--query TEXTstringnãonenhumApenas dashboards, workspaces, relatórios ou visualizações cujo nome corresponde, com no máximo 200 caracteres.
--dashboard UIDstringnãonenhumGrafana: lista os painéis deste dashboard no lugar dos dashboards. Não com --workspace.
--workspace IDstringnãonenhumPower BI: lista os relatórios deste workspace, pelo GUID dele, no lugar dos workspaces. Não com --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 sales

data.items lista, para o Grafana, uid, title, folder e tags de cada dashboard que o token pode mostrar, ou, com --dashboard, id, title e type de seus painéis (as linhas são achatadas, então um painel dentro de uma linha recolhida é listado); para o Power BI, id e name de cada workspace que o aplicativo pode ver, ou, com --workspace, id, name e embed_url de seus relatórios; para o Tableau, path, como Workbook/View, e name de cada visualização que o usuário da conexão pode ver. Use esses valores com bi view create. Uma conexão web não lista nada: cada visualização web recebe o endereço da própria página.

bi connection delete#

Exclui uma conexão que nenhuma visualização usa.

bi connection delete <id> [--expect-rev REVISION]
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA conexão (bic_…).
--expect-rev REVISIONintegernãonenhumRecusa a exclusão a menos que a conexão esteja nesta revisão (revision_conflict, código de saída 6).
screenrig bi connection delete bic_01EXAMPLECONNECTION0000

Enquanto visualizações a usam, a resposta é resource_conflict (exit 5), nomeando-as: exclua essas visualizações primeiro. A resposta é data.id e data.deleted true.

Visualizações de BI

Uma visualização é um dashboard ou painel de uma conexão do Grafana, um relatório de um workspace do Power BI, uma visualização de um site do Tableau, uma página de uma conexão web, ou um link público que não precisa de conexão: um dashboard público do Grafana, um link Publish to web do Power BI ou uma visualização do Tableau Public. Um ID de visualização começa com biv_, e uma visualização só é reproduzida nas telas do próprio projeto.

Coloque o embed_url da visualização em uma primitiva iframe com content_fit fill e publique como de costume: a playlist não guarda nenhuma credencial. As visualizações do Grafana e web são desenhadas no servidor como uma imagem a cada --refresh e compartilhadas por todas as telas do mesmo tamanho, então dez telas de um saguão geram uma única renderização e a tela nunca fala com o sistema; a última imagem boa permanece na tela enquanto uma captura falha. Um relatório do Power BI e uma visualização do Tableau são incorporados com um token somente de visualização que o servidor gera e renova, e a tela nunca guarda o segredo. Uma imagem só é desenhada enquanto o manifesto de uma tela nomeia a visualização.

A leitura exige acesso Read, e toda alteração exige acesso Manage. Cada opção de destino pertence a um tipo de conexão, e bi connection browse ID lista os valores a usar.

bi view create#

Adiciona uma visualização de um dashboard, painel, relatório ou visualização do Tableau de uma conexão, ou de um link público.

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]
ParâmetroTipoObrigatórioPadrãoNotas
--connection-id IDstringsem --public-urlnenhumA conexão (bic_…) da qual mostrar algo.
--url URLstringum destinonenhumUm endereço de dashboard no host do Grafana da conexão, um endereço de relatório do Power BI, um endereço de visualização do Tableau ou, para uma conexão web, o endereço https da página em um host público. O restante do destino é lido a partir dele, então ele não aceita nenhum de --panel, --from, --to, --var, --theme, --timezone, --page ou --all-pages.
--dashboard UIDstringum destinonenhumGrafana: o uid do dashboard, a parte depois de /d/ no endereço dele.
--workspace IDstringum destinonenhumPower BI: o ID do workspace, com --report.
--report IDstringcom --workspacenenhumPower BI: o ID do relatório, com --workspace.
--view WORKBOOK/VIEWstringum destinonenhumTableau: a visualização, os nomes depois de /views/ no endereço dela (bi connection browse os lista).
--public-url URLstringum destinonenhumUm link de dashboard público do Grafana, um link Publish to web do Power BI ou um endereço de visualização do Tableau Public. Não precisa de conexão e é reproduzido ao vivo a partir do host dele. Informe-o sozinho, com --name, --refresh, --fit, --rotate-sheets e --rotate.
--name NAMEstringnãodo destino1 a 80 caracteres.
--refresh DURATIONstringnão5mGrafana: com que frequência a imagem é desenhada de novo, de 30s a 24h. Web: com que frequência a página é desenhada de novo, de 60s a 24h. Power BI e Tableau: com que frequência o relatório ou a visualização atualiza seus dados, de 60s a 24h, ou 0 para nenhuma. Informe uma duração como 30s, 5m ou 1h, ou um número de segundos.
--fit FITstringnãocontainGrafana e web: como a imagem preenche a tela, contain, cover ou fill.
--rotate DURATIONstringnãonenhumPower BI: por quanto tempo cada página aparece, de 10s a 1h; necessário com duas ou mais opções --page ou com --all-pages. Tableau: por quanto tempo cada planilha aparece; necessário com --rotate-sheets.
--page NAMEstringnãonenhumPower BI: uma página a mostrar, pelo nome ou pelo nome de exibição. De 1 a 200 caracteres. Repetível; as páginas aparecem nesta ordem.
--all-pagesbooleannãodesligadoPower BI: alterna entre todas as páginas visíveis, com --rotate.
--rotate-sheetsbooleannãodesligadoTableau: alterna as planilhas publicadas da pasta de trabalho, com --rotate.
--panel IDstringnãoo dashboard inteiroGrafana: mostra somente este painel em vez do dashboard inteiro. Um número inteiro, como no viewPanel do endereço.
--from TIMEstringnãonenhumGrafana: início do intervalo de tempo, como now-6h, now/d ou um epoch em milissegundos.
--to TIMEstringnãonenhumGrafana: fim do intervalo de tempo, como now, now/d ou um epoch em milissegundos.
--var NAME=VALUEstringnãonenhumGrafana: uma variável do dashboard. NAME pode levar o prefixo var-, e um valor tem no máximo 200 caracteres. Repetível.
--theme THEMEstringnãodarkTema do Grafana, dark ou light.
--timezone ZONEstringnãonenhumGrafana: fuso horário do dashboard, como Europe/Paris, utc ou browser.
--wait-for CSSstringnãonenhumWeb: um seletor CSS de um elemento que aparece quando a página está pronta, e só quando está logada. A captura espera por ele e falha com bi_web_timeout quando ele nunca aparece.
--wait-ms MSintegernãonenhumWeb: milissegundos a esperar depois que a página está pronta, para gráficos tardios, de 0 a 10000.
--clip CSSstringnãoa página inteiraWeb: um seletor CSS da parte da página a desenhar.
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'

Informe exatamente um destino: --url, --dashboard, --workspace com --report, --view ou --public-url. A resposta traz data.embed_url. Execute bi view test em seguida.

Grafana: --url lê orgId, viewPanel ou panelId, from, to, var-*, theme e timezone do endereço. A imagem é desenhada pelo serviço de renderização do Grafana e compartilhada por todas as telas do mesmo tamanho, e uma tela mantém a última imagem, com o horário da renderização em um canto, enquanto o Grafana está fora do ar. Um link de dashboard público é reproduzido ao vivo a partir do Grafana, que deve permitir a incorporação (allow_embedding = true nas configurações dele): bi view test verifica isso.

Power BI: --url aceita um endereço de relatório copiado do Power BI, https://app.powerbi.com/groups/WORKSPACE/reports/REPORT, com uma página /ReportSection opcional; ou informe --workspace e --report. Duas ou mais páginas exigem --rotate, e --rotate exige duas ou mais páginas ou --all-pages. --refresh 0 serve para um relatório DirectQuery ou com atualização automática de página, que se atualiza sozinho. --fit não se aplica. Um link Publish to web mostra o relatório a qualquer pessoa com o link e é reproduzido como o Power BI o serve, recarregado a cada --refresh, sem alternância de páginas.

Tableau: --url aceita um endereço de visualização copiado do Tableau, https://HOST/t/SITE/views/WORKBOOK/VIEW, o https://HOST/#/site/SITE/views/WORKBOOK/VIEW do Tableau Cloud, ou apenas WORKBOOK/VIEW; o endereço deve estar no host e no site da conexão. --rotate-sheets e --rotate precisam um do outro. --fit não se aplica. As telas devem alcançar o host do Tableau e aceitar os cookies de terceiros dele, e o embed_origin da visualização deve estar na lista de domínios permitidos do aplicativo conectado. Uma visualização do Tableau Public (--public-url https://public.tableau.com/app/profile/USER/viz/WORKBOOK/VIEW, ou seu endereço /views/) não precisa de conexão nem de token, e --rotate-sheets também funciona nela.

Web: --url é o endereço da página, e --wait-for, --wait-ms e --clip valem apenas para uma visualização web. A última imagem boa permanece na tela quando uma captura falha, e status.last_error diz o motivo: bi_web_login_failed, bi_web_otp_required, bi_web_session_expired, bi_web_login_paused, bi_web_timeout, bi_web_navigation_failed ou bi_web_blocked.

bi view list#

Lista as visualizações de BI deste projeto com o destino, a cadência e o status de cada uma.

bi view list

Sem parâmetros.

screenrig bi view list

data.items contém todas as visualizações do projeto, cada uma com seu embed_url.

bi view show#

Inspeciona uma visualização, seu embed_url e como ela se saiu na tela da última vez.

bi view show <id>
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA visualização (biv_…).
screenrig bi view show biv_01EXAMPLEVIEW0000000000

A resposta traz kind, name, connection_id (ausente em um link público), target (view e rotate_sheets para o Tableau), refresh_s, rotate_s, fit, status, embed_url e revision; uma visualização web também traz wait_for, wait_ms e clip. status contém last_ok_at e last_error com um code e um detail: bi_upstream_refused quando o Grafana recusou o token, bi_upstream_unavailable quando não conseguiu renderizar, ou um dos códigos bi_web_* de uma visualização web.

bi view update#

Altera o nome, o destino, a cadência ou o ajuste de uma visualização.

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]
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA visualização (biv_…).
--name NAMEstringnãoinalteradoRenomeia a visualização.
--url URLstringnãoinalteradoUm endereço de dashboard, relatório ou visualização do Tableau, ou o endereço da página de uma visualização web; substitui todo o destino. Não com as outras opções de destino.
--dashboard UIDstringnãoinalteradoGrafana: mostra este dashboard; substitui todo o destino.
--workspace IDstringnãoinalteradoPower BI: mostra um relatório deste workspace, com --report; substitui todo o destino.
--report IDstringnãoinalteradoPower BI: mostra este relatório, em --workspace ou no workspace atual.
--view WORKBOOK/VIEWstringnãoinalteradoTableau: mostra esta visualização; substitui todo o destino.
--public-url URLstringnãoinalteradoUm link público; substitui todo o destino.
--rotate-sheetsbooleannãodesligadoTableau: alterna as planilhas publicadas da pasta de trabalho, com --rotate.
--page NAMEstringnãoinalteradoPower BI: as páginas a mostrar, pelo nome ou pelo nome de exibição. Repetível; substitui as páginas atuais.
--all-pagesbooleannãodesligadoPower BI: alterna entre todas as páginas visíveis.
--rotate DURATIONstringnãoinalteradoPower BI: por quanto tempo cada página aparece, de 10s a 1h, ou 0 para uma página. Tableau: por quanto tempo cada planilha aparece, ou 0 para parar de alterná-las.
--panel IDstringnãoinalteradoGrafana: mostra somente este painel.
--from TIMEstringnãoinalteradoGrafana: início do intervalo de tempo.
--to TIMEstringnãoinalteradoGrafana: fim do intervalo de tempo.
--var NAME=VALUEstringnãoinalteradoGrafana: define uma variável do dashboard. Repetível; define uma variável e mantém as outras.
--theme THEMEstringnãoinalteradoTema do Grafana, dark ou light.
--timezone ZONEstringnãoinalteradoGrafana: fuso horário do dashboard.
--refresh DURATIONstringnãoinalteradoCom que frequência a imagem é desenhada de novo ou o relatório é atualizado: Grafana de 30s a 24h; web de 60s a 24h; Power BI e Tableau de 60s a 24h, ou 0 para nenhuma.
--fit FITstringnãoinalteradoGrafana e web: como a imagem preenche a tela, contain, cover ou fill.
--wait-for CSSstringnãoinalteradoWeb: o elemento que aparece quando a página está pronta e logada. Não com --clear-wait-for.
--clear-wait-forbooleannãodesligadoWeb: deixa de esperar por um elemento. Não com --wait-for.
--wait-ms MSintegernãoinalteradoWeb: milissegundos a esperar depois que a página está pronta, de 0 a 10000; 0 remove a espera.
--clip CSSstringnãoinalteradoWeb: a parte da página a desenhar. Não com --clear-clip.
--clear-clipbooleannãodesligadoWeb: desenha a página inteira de novo. Não com --clip.
--expect-rev REVISIONintegernãonenhumRecusa a alteração a menos que a visualização esteja nesta revisão (revision_conflict, código de saída 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

Pelo menos uma alteração é obrigatória. --url, --dashboard, --workspace e --public-url substituem todo o destino, enquanto --panel, --from, --to, --var, --theme e --timezone alteram o destino atual do Grafana da visualização, --report, --page e --all-pages o do Power BI, e --view e --rotate-sheets o do Tableau. --page substitui a lista de páginas; para limpá-la, informe --workspace e --report de novo com --rotate 0. --rotate 0 sozinho impede que uma visualização do Tableau alterne suas planilhas. --url e --public-url não aceitam outra flag de destino além de --rotate-sheets, e uma visualização de link público só altera seu destino com --public-url. Um novo destino limpa o status e invalida suas renderizações em cache, e as telas assumem a alteração na próxima atualização, sem republicação. Uma visualização mantém sua conexão e seu tipo.

bi view test#

Verifica uma visualização de verdade: uma renderização do Grafana ou web, um token de incorporação do Power BI, uma consulta do Tableau ou um link público.

bi view test <id> [--output FILE [--width PIXELS] [--height PIXELS]]
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA visualização (biv_…).
--output FILEstringnãonenhumGrafana ou web: salva aqui o PNG renderizado em vez de executar as verificações. Uma visualização do Power BI ou do Tableau e um link público não têm PNG (not_found).
--width PIXELSintegernão1920Largura da imagem salva, de 1 a 10000. Precisa de --output.
--height PIXELSintegernão1080Altura da imagem salva, de 1 a 10000. Precisa de --output.
screenrig bi view test biv_01EXAMPLEVIEW0000000000
screenrig bi view test biv_01EXAMPLEVIEW0000000000 --output lobby.png --width 1920 --height 1080

Grafana: uma visualização de conexão é renderizada de verdade, fora do cache compartilhado e sem alterar o status da visualização. data.ok é false com o motivo do Grafana quando ele recusa o token, não tem renderizador ou não conhece o dashboard; um teste que falha é dado, código de saída 0. Web: uma visualização de conexão é desenhada uma vez no navegador do servidor (render), fora do cache compartilhado, e um desenho que falha informa o motivo. Abra o PNG salvo e confira antes de publicar. Para um link público, o teste busca a página e verifica se o Grafana permite que a página de incorporação da visualização a exiba em um frame.

Tableau: uma visualização de conexão faz login como o usuário da conexão e procura a visualização (signin, view); uma visualização que o usuário não pode ver, ou um nome com maiúsculas e minúsculas erradas, é uma verificação view que falhou e nomeia o caminho. Uma visualização do Tableau Public pergunta ao Tableau Public se a pasta de trabalho existe. Power BI: uma visualização de conexão lê o relatório (report) e gera para ele um token de incorporação real somente de visualização (embed_token); o motivo do próprio Power BI é mostrado quando ele recusa, como um conjunto de dados com segurança em nível de linha, um 401 ou 403 (configuração do tenant ou função no workspace) ou um relatório que o aplicativo não pode ver. Um link Publish to web é buscado e seus cabeçalhos de enquadramento são lidos.

O teste não avalia o que a imagem mostra, as páginas que a visualização nomeia, a capacidade nem a lista de domínios permitidos do Tableau. data contém at, ok e checks, cada verificação com name, ok, um warn opcional e um detail; uma renderização do Grafana ou web acrescenta width, height e bytes. Com --output, data contém id, file, bytes, width e height no lugar.

bi view delete#

Exclui uma visualização.

bi view delete <id> [--expect-rev REVISION]
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA visualização (biv_…).
--expect-rev REVISIONintegernãonenhumRecusa a exclusão a menos que a visualização esteja nesta revisão (revision_conflict, código de saída 6).
screenrig bi view delete biv_01EXAMPLEVIEW0000000000
screenrig bi view delete biv_01EXAMPLEVIEW0000000000 --expect-rev 3

Uma tela que ainda exibe o embed_url da visualização responde not_found até a playlist mudar. A resposta é data.id e data.deleted true.

Outros grupos de comandos