Documentação

Fontes de dados: comandos da CLI

Leia feeds de terceiros, mantenha um cartão atualizado a partir de um endereço externo em horários definidos e salve conexões Microsoft e Google.

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

Feeds

Um feed é dado de terceiros que o screenRIG busca e armazena em cache, como clima, alertas, taxas e manchetes. feeds get lê um documento do feed, o mesmo documento que um cartão embutido com os mesmos parâmetros lê. O comando nunca chama um provedor terceiro.

feeds get#

Leia um feed uma vez. Um feed sem documento ainda responde pending e seu tempo de nova tentativa.

feeds get <family> [--lat DEGREES --lon DEGREES] [--radius-km KM] [--min-magnitude N] [--hours N]
                   [--basins LIST] [--base CODE] [--symbols IDS] [--currency CODE] [--url URL]...
                   [--station ID] [--country CODE] [--category drug|food] [--region NAME] [--date YYYY-MM-DD]
                   [--provider tfl|entur|digitransit] [--stops IDS] [--system ID]
                   [--public] [--geocode NAME:VALUE]... [--min-severity LEVEL] [--max-severity LEVEL]
                   [--min-urgency LEVEL] [--min-certainty LEVEL] [--event NAME]... [--exclude-event NAME]...
                   [--sender NAME]... [--status STATUS]... [--scope SCOPE]... [--language TAG]...
                   [--area-unknown hide|show]
ParâmetroTipoObrigatórioPadrãoNotas
<family>stringsimnenhumweather, airquality, alerts, rates, crypto, earthquakes, cyclones, headlines, cap, tides, launches, drugalerts, respiratory, almanac, outdoorsafety, departures ou bikeshare.
--lat DEGREESnumberpor famílianenhumLatitude, de -90 a 90, com --lon. Obrigatória para weather, airquality, alerts, earthquakes, outdoorsafety e bikeshare; opcional para cyclones, cap, tides e almanac.
--lon DEGREESnumberpor famílianenhumLongitude, de -180 a 180, com --lat.
--radius-km KMnumbernão500 para earthquakesRaio earthquakes, ou a área cyclones, de 10 a 20000 km. Requer --lat e --lon.
--min-magnitude MAGNITUDEnumbernão2.5earthquakes: magnitude mínima, de 0 a 9.
--hours HOURSnumbernão24earthquakes: janela em horas, de 1 a 168.
--basins LISTstringnãotodas as baciascyclones: bacias separadas por vírgula at, ep, cp, wp.
--base CODEstringnãoEURrates: moeda base.
--symbols IDSstringsim, para cryptonenhumIDs ou símbolos de criptomoedas separados por vírgula, no máximo 20.
--currency CODEstringnãousdcrypto: moeda de cotação.
--station IDstringnãonenhumtides: um id de estação de previsão de marés da NOAA, de sete letras ou dígitos, como 9414290. Sem ele, --lat e --lon escolhem a estação mais próxima em um raio de 100 km.
--country CODEstringpor famílianenhumdrugalerts: us, ca ou gb (obrigatório). respiratory: us ou gb (obrigatório). almanac: o país ISO 3166-1 cujos feriados ele lista.
--category CATEGORYstringnãodrugdrugalerts: drug ou food.
--region NAMEstringnãoo país inteirorespiratory: um estado, território ou DC dos EUA por nome ou código postal, ou a Inglaterra ou uma região da UKHSA, com no máximo 48 caracteres.
--date YYYY-MM-DDstringnãoos dias em torno de hojealmanac: um dia fixo.
--provider PROVIDERstringsim, para departuresnenhumdepartures: o provedor de transporte das paradas, tfl, entur ou digitransit.
--stops IDSstringsim, para departuresnenhumdepartures: de um a quatro ids de parada do provedor, separados por vírgulas, como o id StopPoint da TfL 940GZZLUOXC, os ids da Entur NSR:StopPlace:337 e NSR:Quay:568 ou o gtfsId da Digitransit HSL:1040129.
--system IDstringnãoo sistema mais próximobikeshare: um id de sistema de bicicletas compartilhadas, como Mobibikes_CA_Vancouver. Sem ele, atende o sistema listado mais próximo que cobre --lat e --lon.
--url URLstringsim, para headlinesnenhumheadlines: URL de feed RSS ou Atom. cap: URL de alerta CAP ou índice ATOM/RSS; repita até 5 vezes.
--publicbooleannãoligado sem --urlcap: também lê os feeds públicos de alerta que cobrem --lat e --lon. Requer --lat e --lon.
--geocode NAME:VALUEstringnãonenhumcap: um código de área da localização, como UGC:WAC033. Repetível. Requer --lat e --lon.
--min-severity LEVELstringnãonenhumcap: apenas alertas no nível ou acima de minor, moderate, severe ou extreme.
--max-severity LEVELstringnãonenhumcap: apenas alertas no nível ou abaixo de minor, moderate, severe ou extreme.
--min-urgency LEVELstringnãonenhumcap: apenas alertas com pelo menos esta urgência: past, future, expected ou immediate.
--min-certainty LEVELstringnãonenhumcap: apenas alertas com pelo menos esta certeza: unlikely, possible, likely ou observed.
--event NAMEstringnãoqualquer eventocap: apenas este evento; * corresponde a qualquer sequência de caracteres. Repetível.
--exclude-event NAMEstringnãonenhumcap: excluir este evento. Repetível.
--sender NAMEstringnãoqualquer remetentecap: apenas alertas deste remetente. Repetível.
--status STATUSstringnãoActualcap: status de alerta para ler: Actual, Exercise, Test ou System. Repetível.
--scope SCOPEstringnãoPubliccap: escopo de alerta para ler: Public, Restricted ou Private. Repetível.
--language TAGstringnãoen para almanaccap: preferência de idioma; vale o primeiro presente. Repetível. almanac: a edição de “On This Day”, uma entre ar, bs, cs, de, en, es, fr, it, pt, ru, sv, tr, uk ou zh.
--area-unknown MODEstringnãohidecap: um alerta informado apenas por códigos de área que a localização não possui: hide ou show.
screenrig feeds get weather --lat 49.25 --lon -123
screenrig feeds get rates --base EUR
screenrig feeds get crypto --symbols btc,eth --currency usd
screenrig feeds get earthquakes --lat 49.25 --lon -123 --radius-km 500 --min-magnitude 4 --hours 72
screenrig feeds get cyclones --basins at,ep
screenrig feeds get headlines --url https://example.com/news.xml
screenrig feeds get cap --lat 49.25 --lon -123 --geocode UGC:WAC033 --min-severity moderate --event '*warning'
screenrig feeds get cap --url https://example.com/alerts.atom --url https://example.com/other.xml
screenrig feeds get tides --station 9414290
screenrig feeds get drugalerts --country us --category food
screenrig feeds get respiratory --country us --region California
screenrig feeds get almanac --country CA --date 2026-12-25
screenrig feeds get departures --provider tfl --stops 940GZZLUOXC
screenrig feeds get bikeshare --lat 49.25 --lon -123
screenrig feeds get launches

weather, airquality, alerts, earthquakes, outdoorsafety e bikeshare exigem --lat e --lon, que sempre andam juntos; earthquakes também aceita --radius-km, --min-magnitude e --hours, e bikeshare aceita --system. cyclones aceita --basins, e com --lat, --lon e --radius-km juntos, apenas as tempestades perto desse lugar. rates aceita --base, crypto exige --symbols e aceita --currency, e headlines exige --url. tides exige --station, ou --lat e --lon para a estação de previsão mais próxima. drugalerts exige --country e aceita --category, respiratory exige --country e aceita --region, e almanac aceita --country, --language, --lat, --lon e --date. departures exige --provider e --stops, e launches não aceita flags. Uma flag que a família não aceita é recusada. Cartões embutidos descreve os dados de cada família.

cap lê os alertas CAP que correspondem a um local. Precisa de --url (repetível, até 5 URLs de índice de alerta CAP ou ATOM/RSS) ou --lat e --lon, que leem os feeds públicos cobrindo a localização; --public adiciona esses feeds públicos às fontes --url. As flags do filtro refletem os membros de um objeto triggers create --pull.

Um documento em cache responde 200 com fetchedAt e attribution: mostre a atribuição onde os dados aparecerem. Sem documento ainda, o envelope reporta estado pending, retry_after_seconds e retry_at com saída 0; o CLI não entra em loop, então execute o comando novamente após retry_at. Uma organização registra no máximo 50 novas chaves de feed por dia, e rate_limited segue além disso. Cartões derivam chaves de feed de parâmetros estáticos; não escreva chaves feed ou feed: você mesmo.

Fontes de dados

Uma fonte de dados lê um endereço externo em um horário e grava o resultado nos dados de um cartão, de modo que o cartão se mantém atualizado sem que ninguém republique e as telas busquem o documento de novo quando ele muda. Os tipos são ics, sheets, csv, json, microsoft365, google_calendar, square, shopify, toast e momentus. Uma fonte grava um cartão, e uma organização tem até 200 em todos os seus projetos. Uma sincronização que falha nunca grava: o cartão mantém o último bom documento e o status da fonte mostra o erro. As configurações de cada tipo, os códigos de status e as regras de privacidade estão em Fontes de dados.

Uma predefinição é uma fonte json pronta e testada para um serviço, como um canal do Slack, um quadro de vagas ou um quadro de builds: source presets as lista, source presets NAME mostra os campos e os segredos de uma predefinição, e source create --preset NAME cria a fonte.

Informe cada credencial como --secret NAME=@FILE, ou NAME=- para a entrada padrão, para que fique fora do histórico do shell e da lista de processos. Os segredos são armazenados selados e mostrados de volta apenas como uma dica mascarada. Os nomes dos segredos são calendar_url.KEY para ics (um por agenda), token para um endereço csv ou json que precisa de um (password, client_secret, header.NAME e query.NAME servem às outras formas de fazer login, descritas em Solicitações, login e páginas), client_secret para microsoft365 e toast, service_account_key para google_calendar, access_token para square e shopify, api_key e api_secret para momentus, e client_secret com a configuração client_id para um aplicativo shopify instalado na loja.

--settings recebe todo o objeto de configurações da fonte como JSON, @FILE ou -. --set KEY=VALUE define um membro de nível superior e pode ser repetido; o valor é JSON quando pode ser interpretado (days=14, calendars='[{"key":"lobby"}]') e texto caso contrário (time_zone=America/Vancouver). Com os dois, os membros de --set substituem os mesmos membros de --settings; source update com apenas --set altera esses membros das configurações salvas. A opção --config da CLI nomeia o arquivo de credenciais dela e não tem relação com as fontes.

source list#

Lista as fontes de dados do projeto, as mais recentes primeiro, com o status delas.

source list [--after CURSOR]
ParâmetroTipoObrigatórioPadrãoNotas
--after CURSORstringnãoprimeira páginaO data.next_cursor da página anterior.
screenrig source list

source show#

Inspeciona uma fonte: suas configurações, segredos mascarados, a última execução e o último erro.

source show <source_id>
ParâmetroTipoObrigatórioPadrãoNotas
<source_id>stringsimnenhumA fonte (src_…).
screenrig source show src_01EXAMPLESOURCE000000

source presets#

Lista as predefinições de fonte prontas ou mostra uma com seus campos, seus segredos e como obtê-los.

source presets [<name>]
ParâmetroTipoObrigatórioPadrãoNotas
<name>stringnãotodas as predefiniçõesO nome de uma predefinição: palavras em minúsculas unidas por hífens, como slack-channel.
screenrig source presets
screenrig source presets slack-channel

A lista mostra o título de cada predefinição, os tipos de cartão que ela preenche (o primeiro é aquele para o qual foi feita) e a categoria dela. Com um nome, mostra os campos a definir (--set NAME=VALUE: texto com seu padrão e um exemplo, uma escolha ou uma lista que aceita um array JSON), os segredos a informar (--secret NAME=@FILE) com onde o fornecedor emite cada um, com que frequência ela é atualizada, por quanto tempo um cartão mantém seus últimos dados e os dados de quem ela lê, sob quais termos. Nada é criado.

source create#

Cria uma fonte. Ela é executada em segundos e depois conforme o horário. Crie o cartão primeiro e faça uma prévia com source test.

source create (--kind KIND | --preset NAME) --card CARD_ID --name NAME [--settings JSON|@FILE|-] [--set KEY=VALUE]...
               [--connection-id ID] [--secret NAME=VALUE]... [--refresh DURATION] [--stale-after DURATION|none] [--disabled]
ParâmetroTipoObrigatórioPadrãoNotas
--kind KINDstringsem --presetnenhumics, sheets, csv, json, microsoft365, google_calendar, square, shopify, momentus ou toast.
--preset NAMEstringsem --kindnenhumCria a fonte a partir de uma predefinição pronta e testada (source presets as lista): --set e --settings passam então os campos da predefinição e --secret as credenciais dela. Não com --kind.
--card CARD_IDstringsimnenhumO cartão (crd_…) que a fonte grava. Um cartão tem uma fonte; source_target_taken responde a uma segunda.
--name NAMEstringsimnenhum1 a 80 caracteres.
--settings SETTINGSstringnão{}O objeto de configurações completo da fonte, em JSON, @FILE ou - para stdin. Com --preset, os campos da predefinição.
--connection-id IDstringnãonenhummicrosoft365 e google_calendar: leem por meio de uma conexão do projeto (pcn_…, connection list) em vez de um tenant, client_id e um segredo próprios da fonte. Define a configuração connection_id. Não se combina com --preset.
--set KEY=VALUEstringnãonenhumUma configuração de nível superior: JSON quando o valor é interpretável (days=14, calendars='[{"key":"lobby"}]'), texto caso contrário (time_zone=America/Vancouver). Repetível. Com --preset, um campo da predefinição: o texto como escrito, a menos que seja um array ou objeto JSON (os itens de um campo de lista).
--secret NAME=VALUEstringnãonenhumUma credencial por nome: NAME=@FILE, NAME=- (no máximo uma opção lê stdin) ou NAME=VALUE. Repetível. Com --preset, as credenciais da predefinição.
--refresh DURATIONstringnãoconforme o tipoCom que frequência sincronizar, de 30s a 24h, como 90s, 5m ou 1h30m. O tipo define o padrão e o menor intervalo: 5 minutos e 1 minuto para ics, sheets, csv e json; 2 minutos e 1 minuto para microsoft365 e google_calendar; 5 minutos e 2 minutos para square, shopify e toast; 1 minuto e 30 segundos para momentus. Uma predefinição define o seu próprio.
--stale-after DURATIONstringnãoconforme o tipoPor quanto tempo o cartão mantém os últimos dados bons quando a fonte não consegue atualizar, de 1m a 7d, pelo menos o dobro de --refresh; none os mantém até a próxima atualização. Depois, os dados expiram em todas as telas. momentus é 30m por padrão, e uma predefinição define a sua própria.
--disabledbooleannãodesligadoCria a fonte parada; nada é buscado até source update --enable.
screenrig source create --kind ics --card crd_01EXAMPLECARD000000000 --name "Lobby calendar" --set calendars='[{"key":"lobby"}]' --set time_zone=America/Vancouver --secret calendar_url.lobby=@lobby.url
screenrig source create --kind sheets --card crd_01EXAMPLEMENU0000000000 --name "Cafe menu" --settings @menu-sheet.json
screenrig source create --kind json --card crd_01EXAMPLEKPI00000000000 --name "Daily numbers" --settings @kpi-api.json --secret token=@api.token
screenrig source create --kind square --card crd_01EXAMPLEMENU0000000000 --name "Counter menu" --secret access_token=@square.token
screenrig source create --kind microsoft365 --card crd_01EXAMPLEROOMS0000000000 --name "Meeting rooms" --settings @rooms.json --connection-id pcn_01EXAMPLECONNECTION0000
screenrig source create --preset slack-channel --card crd_01EXAMPLEWALL00000000000 --name "Team wall" --set channel=C0123456789 --secret token=@slack.token

source update#

Altera uma fonte. Uma alteração que não seja renomear zera o contador de falhas e a executa de novo.

source update <source_id> [--name NAME] [--card CARD_ID] [--settings JSON|@FILE|-] [--set KEY=VALUE]...
                          [--connection-id ID] [--secret NAME=VALUE]... [--unset-secret NAME]... [--refresh DURATION]
                          [--stale-after DURATION|none] [--enable | --disable] [--expect-rev REVISION]
ParâmetroTipoObrigatórioPadrãoNotas
<source_id>stringsimnenhumA fonte (src_…).
--name NAMEstringnãoinalteradoRenomeia a fonte.
--card CARD_IDstringnãoinalteradoGravar outro cartão.
--settings SETTINGSstringnãoinalteradoSubstitui todo o objeto de configurações: JSON, @FILE ou - para stdin. Para uma fonte criada a partir de uma predefinição, mescla esses campos nas suas configurações.
--connection-id IDstringnãoinalteradoComo em source create. Tirar uma fonte de suas credenciais próprias exige --settings sem tenant e client_id, e --unset-secret client_secret.
--set KEY=VALUEstringnãonenhumAltera uma configuração de nível superior entre as salvas, como em source create. Repetível. Para uma fonte criada a partir de uma predefinição, um campo da predefinição; o valor null remove um campo opcional.
--secret NAME=VALUEstringnãonenhumDefine ou substitui um segredo. Repetível. Um segredo que você não envia mantém o valor, a menos que a alteração aponte a fonte para algo que esse segredo não cobre (outra origem, loja, ambiente ou locatário): então source_secret_required o pede de novo.
--unset-secret NAMEstringnãonenhumRemove um segredo. Repetível.
--refresh DURATIONstringnãoinalteradoDe 30s a 24h; vale o mínimo do tipo.
--stale-after DURATIONstringnãoinalteradoComo em source create; none remove o período.
--enable, --disablebooleannãoinalteradoRetoma o horário ou o interrompe; o cartão mantém o último documento. No máximo um dos dois.
--expect-rev REVISIONintegernãoa revisão lidaRecusa a alteração a menos que a fonte esteja nesta revisão. --set protege a revisão que leu, a menos que você nomeie outra.

Pelo menos uma alteração é obrigatória.

screenrig source update src_01EXAMPLESOURCE000000 --set days=14
screenrig source update src_01EXAMPLESOURCE000000 --secret calendar_url.lobby=@new.url --refresh 10m
screenrig source update src_01EXAMPLESOURCE000000 --disable
screenrig source update src_01EXAMPLEPRESET0000000 --set channel=C0123456789 --secret token=@new.token

source test#

Pré-visualiza uma fonte sem salvar nem gravar nada: busca o endereço, ajusta a resposta para o cartão e a confere com o cartão. O envelope traz o documento, valid, o caminho e o motivo quando o cartão o recusa, avisos e contagens. Passe um <source_id> salvo para testá-la com as outras opções como substituições, ou --kind (ou --preset) e --card para testar uma que não está salva. Uma falha de busca ou de ajuste é source_test_failed com o motivo. Uma fonte csv ou json também informa a requisição enviada como data.request: seu endereço com os marcadores preenchidos e os parâmetros de consulta secretos mascarados, os nomes dos cabeçalhos enviados, o início do corpo e as páginas lidas. No máximo 30 pré-visualizações por minuto por organização.

source test [<source_id>] [--kind KIND | --preset NAME] [--card CARD_ID] [--settings JSON|@FILE|-] [--set KEY=VALUE]...
            [--connection-id ID] [--secret NAME=VALUE]...
ParâmetroTipoObrigatórioPadrãoNotas
<source_id>stringnãonenhumUma fonte salva para testar.
--kind KINDstringsem <source_id> ou --presetnenhumComo em source create.
--preset NAMEstringnãonenhumPré-visualiza uma fonte criada a partir desta predefinição, com --set e --settings como campos e --secret como credenciais, em vez de --kind. Não se combina com <source_id>.
--card CARD_IDstringsem <source_id>nenhumO cartão a preencher.
--settings SETTINGSstringnãoas configurações salvasAs configurações do tipo: JSON, @FILE ou - para a entrada padrão.
--connection-id IDstringnãonenhumComo em source create.
--set KEY=VALUEstringnãonenhumUma configuração de nível superior, como em source create; com um <source_id>, substitui essa configuração entre as salvas. Repetível.
--secret NAME=VALUEstringnãoos segredos salvosUma credencial para testar. Repetível.
screenrig source test --kind ics --card crd_01EXAMPLECARD000000000 --set calendars='[{"key":"lobby"}]' --secret calendar_url.lobby=@lobby.url
screenrig source test src_01EXAMPLESOURCE000000
screenrig source test --preset slack-channel --card crd_01EXAMPLEWALL00000000000 --set channel=C0123456789 --secret token=@slack.token

source refresh#

Sincroniza uma fonte agora e mostra o resultado. Ela é executada em linha por até 60 segundos, zera o contador de falhas e lê o endereço por inteiro. Uma sincronização que falha nunca altera o cartão. source_busy (código de saída 5) responde enquanto uma sincronização agendada está em andamento. No máximo 6 por minuto por fonte.

source refresh <source_id>
ParâmetroTipoObrigatórioPadrãoNotas
<source_id>stringsimnenhumA fonte (src_…).
screenrig source refresh src_01EXAMPLESOURCE000000

source rooms#

Verifica como as telas são mapeadas para as salas de uma fonte de sistema de reservas (momentus). Lê as salas da última atualização boa da fonte e as telas do projeto, e não busca nada. Lista as salas e áreas que nenhuma tela mostra e cada tela que tem um valor de sala ou de área ou cuja playlist lê a chave de sala ou de área da fonte, cada uma mapped, missing (a playlist lê o campo e a tela não tem nenhum) ou unknown (o valor não nomeia nenhuma sala nem área, com a que provavelmente se quis dizer). Corrija uma tela com screen update scr_ID --field room=ROOM_KEY.

source rooms <source_id>
ParâmetroTipoObrigatórioPadrãoNotas
<source_id>stringsimnenhumUma fonte (src_…) que lê as salas de um sistema de reservas.
screenrig source rooms src_01EXAMPLESOURCE000000

source delete#

Exclui uma fonte. O cartão mantém o último documento que a fonte gravou.

source delete <source_id> [--expect-rev REVISION]
ParâmetroTipoObrigatórioPadrãoNotas
<source_id>stringsimnenhumA fonte (src_…).
--expect-rev REVISIONintegernãonenhumRecusa a exclusão a menos que a fonte esteja nesta revisão.
screenrig source delete src_01EXAMPLESOURCE000000

Conexões

Uma conexão é o acesso salvo do projeto à Microsoft ou ao Google para trabalho que roda sem ninguém logado. Uma fonte de dados microsoft365 ou google_calendar (source create --connection-id), uma conexão do Power BI (bi connection create powerbi --connection-id) e uma conta de sincronização de mídia do SharePoint (media sync account add microsoft365 --connection-id) leem por meio de uma conexão, em vez de cada uma levar um tenant, um ID de cliente e um segredo. Um ID de conexão começa com pcn_, e uma organização tem até 50 conexões em todos os seus projetos. Os modos, os status e as etapas de aprovação estão em Conecte a Microsoft e o Google.

O modo own_app guarda seu próprio aplicativo: para a Microsoft, um registro de aplicativo do Microsoft Entra (--tenant-id, --client-id e o Valor de um segredo de cliente); para o Google, a chave JSON de uma conta de serviço. O modo screenrig_app usa o aplicativo próprio do screenRIG e não precisa de segredo: create imprime um link de consentimento de uso único (data.consent_url, com expiração em data.consent_expires_at) para a pessoa que o conclui, um administrador do Microsoft 365 que consente pelo tenant, ou o titular de uma conta do Google que concede acesso somente leitura à agenda. Envie o link somente a essa pessoa e depois leia status e last_error com connection show. Uma conexão do Power BI aceita apenas uma conexão own_app.

Informe um segredo de cliente com --secret-file FILE e uma chave do Google com --service-account-key-file FILE, ou - para stdin, nunca como argumento. A leitura exige acesso Read, e toda alteração exige acesso Manage.

connection list#

Lista as conexões deste projeto com o status delas.

connection list

Sem parâmetros.

screenrig connection list

connection show#

Inspeciona uma conexão: seu status, o último erro e o último teste.

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

connection create microsoft#

Adiciona uma conexão do Microsoft 365: seu próprio aplicativo do Entra ou o aplicativo do screenRIG com um link de consentimento.

connection create microsoft --mode own_app|screenrig_app [--name NAME]
    [--tenant-id ID --client-id ID --secret-file FILE]
ParâmetroTipoObrigatórioPadrãoNotas
--mode MODEstringsimnenhumown_app: seu próprio registro de aplicativo do Microsoft Entra com um segredo de cliente. screenrig_app: o aplicativo do screenRIG, ao qual um administrador do Microsoft 365 dá consentimento pelo link de uso único que este comando imprime.
--name NAMEstringnãoMicrosoft 3651 a 80 caracteres.
--tenant-id IDstringcom own_appnenhumO ID do diretório (tenant) do seu Microsoft Entra, ou o domínio primário dele, como contoso.onmicrosoft.com. Junto com --client-id e --secret-file.
--client-id IDstringcom own_appnenhumO ID do aplicativo (cliente) do registro de aplicativo.
--secret-file FILEstringcom own_appnenhumLê o Valor do segredo de cliente deste arquivo, ou - para stdin (nunca como argumento); o arquivo contém apenas o Valor.
screenrig connection create microsoft --mode own_app --tenant-id contoso.onmicrosoft.com --client-id 0b1d2f3a-4c5e-4f60-8a7b-9c0d1e2f3a4b --secret-file secret.txt
screenrig connection create microsoft --mode screenrig_app --name "Contoso rooms"

O modo screenrig_app não aceita nenhum entre --tenant-id, --client-id e --secret-file: imprime o link de consentimento (data.consent_url) para o administrador do Microsoft 365, que dá consentimento ao aplicativo do screenRIG para o tenant. O registro do aplicativo lista Calendars.Read para agendas de salas de reunião, Sites.Selected ou Files.Read.All para a sincronização de mídia do SharePoint e, para o Power BI, configurações do tenant e associação ao workspace em vez de permissões do Graph; connection test informa quais permissões o token carrega. Um servidor sem o aplicativo do screenRIG responde connection_app_not_configured: o modo own_app continua funcionando.

connection create google#

Adiciona uma conexão do Google: a chave da sua própria conta de serviço ou o aplicativo do screenRIG com um link de login.

connection create google --mode own_app|screenrig_app [--name NAME]
    [--service-account-key-file FILE]
ParâmetroTipoObrigatórioPadrãoNotas
--mode MODEstringsimnenhumown_app: a chave da sua própria conta de serviço. screenrig_app: o aplicativo do screenRIG, no qual o titular de uma conta do Google faz login e concede acesso somente leitura à agenda pelo link de uso único que este comando imprime.
--name NAMEstringnãoGoogle Calendar1 a 80 caracteres.
--service-account-key-file FILEstringcom own_appnenhumLê o arquivo de chave JSON da conta de serviço deste arquivo, ou - para stdin (nunca como argumento).
screenrig connection create google --mode own_app --service-account-key-file key.json
screenrig connection create google --mode screenrig_app --name "Venue calendars"

No modo own_app, compartilhe cada agenda de sala com o endereço da conta de serviço, ou dê à fonte um subject (delegação em todo o domínio). O modo screenrig_app não aceita chave e imprime o link de login (data.consent_url) para o titular da conta do Google: a conta deve ver todas as agendas de sala que uma fonte lista, e essa fonte não pode nomear um subject. Um servidor sem o aplicativo do screenRIG responde connection_app_not_configured: o modo own_app continua funcionando.

connection update#

Renomeia uma conexão ou, no modo own_app, altera o tenant, o aplicativo ou o segredo dela.

connection update <id> [--name NAME] [--tenant-id ID] [--client-id ID]
    [--secret-file FILE] [--service-account-key-file FILE] [--expect-rev REVISION]
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA conexão (pcn_…).
--name NAMEstringnãoinalteradoRenomeia a conexão.
--tenant-id IDstringnãoinalteradoMicrosoft own_app: o ID do diretório (tenant) ou o domínio primário.
--client-id IDstringnãoinalteradoMicrosoft own_app: o ID do aplicativo (cliente).
--secret-file FILEstringnãoinalteradoMicrosoft own_app: lê o Valor do segredo de cliente deste arquivo, ou - para stdin; ele substitui o segredo armazenado.
--service-account-key-file FILEstringnãoinalteradoGoogle own_app: lê a chave JSON da conta de serviço deste arquivo, ou - para stdin; ela substitui a chave armazenada.
--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 connection update pcn_01EXAMPLECONNECTION0000 --secret-file new-secret.txt
screenrig connection update pcn_01EXAMPLECONNECTION0000 --name "Contoso rooms" --expect-rev 2

Pelo menos uma alteração é obrigatória. Uma alteração nas credenciais leva a conexão de volta a ready, limpa o último erro e o último teste e invalida todo token emitido para as credenciais antigas: teste-a de novo. Uma conexão screenrig_app só pode ser renomeada: connection connect cria um novo link de consentimento para mudar quem deu o consentimento. Um segredo omitido é mantido.

connection test#

Faz login com uma conexão e verifica o que as credenciais dela permitem.

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

Para a Microsoft, informa credentials (um token de aplicativo para o tenant) e permissions (quais entre Calendars.Read, Sites.Selected, Files.Read.All, Sites.Read.All e Place.Read.All o token carrega; sem nenhuma, a verificação falha, e Sites.Selected sozinha é um aviso, porque cada site precisa de sua própria concessão). Para o Google, informa credentials, nomeando a conta para a qual as agendas devem estar visíveis. Uma recusa move a conexão para error com last_error; um sucesso a devolve a ready. O teste não avalia o compartilhamento de uma agenda, uma política de acesso a caixas de correio nem a concessão de um site. No máximo 30 por minuto por organização.

connection connect#

Cria um novo link de consentimento de uso único para uma conexão screenrig_app.

connection connect <id>
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA conexão (pcn_…).
screenrig connection connect pcn_01EXAMPLECONNECTION0000

data.consent_url é o link para a pessoa que conclui o consentimento: o administrador do Microsoft 365 ou o titular da conta do Google. Ele substitui qualquer link anterior. Uma conexão que funciona permanece como está até que o novo consentimento seja concluído, então isto também renova uma que passou a error (consentimento removido, acesso revogado) ou a move para outro tenant ou conta. Uma conexão no modo own_app não tem etapa de consentimento. No máximo 20 por minuto por organização.

connection delete#

Exclui uma conexão pela qual nada lê.

connection delete <id> [--expect-rev REVISION]
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA conexão (pcn_…).
--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 connection delete pcn_01EXAMPLECONNECTION0000
screenrig connection delete pcn_01EXAMPLECONNECTION0000 --expect-rev 2

Enquanto uma fonte de dados, uma conexão do Power BI ou uma conta de sincronização de mídia lê por meio da conexão, a resposta é resource_conflict (código de saída 5), nomeando-as. Excluir não encerra o lado do fornecedor: um tenant do Microsoft 365 mantém o aplicativo do screenRIG até que seu administrador o remova, e uma conta do Google mantém sua concessão até que seu titular a revogue.

Outros grupos de comandos