Operazioni
I caricamenti e le pubblicazioni vengono eseguiti come operazioni. media upload, media replace e app upload attendono la propria per impostazione predefinita; questi comandi servono a concludere un’operazione lasciata in esecuzione con --no-wait.
operations show#
Leggi lo stato corrente di un’operazione.
operations show <id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L’id operazione dalla busta che l’ha avviata. |
screenrig operations show op_01EXAMPLEOPERATION00000state è receiving, queued, running, succeeded, failed o cancelled; gli ultimi tre concludono l’operazione. Un’operazione riuscita riporta il suo result, e una fallita riporta error con code e detail del problema.
operations wait#
Interroga un’operazione finché non termina.
operations wait <id> [--timeout MS] [--poll-ms MS]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L’id operazione. |
--timeout MS | integer | no | 120000 | Scadenza per l’attesa. Limita anche ogni richiesta sottostante. |
--poll-ms MS | integer | no | 1000 | Intervallo tra i poll di operazione in attesa. |
screenrig operations wait op_01EXAMPLEOPERATION00000L’attesa termina quando l’operazione è succeeded, failed o cancelled. Un’operazione fallita o annullata termina con 13 e il proprio errore. Un’attesa che esaurisce il tempo termina con 11 e l’operazione continua a girare; il next dell’errore è operations wait ID, che riprende l’attesa senza riavviare l’operazione.
operations cancel#
Chiedi al piano di controllo di annullare un’operazione.
operations cancel <id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L’id operazione. |
screenrig operations cancel op_01EXAMPLEOPERATION00000Annullare richiede l’accesso Gestisci. La risposta è l’operazione annullata.
Eventi
Il registro eventi del progetto registra cosa ha fatto il progetto e cosa ha fatto la flotta. Un rilascio pubblicato aggiunge application.published; un’app che chiama screenrig.emit(code) aggiunge il proprio evento, che è la prova più diretta che è stata eseguita su uno schermo.
La presenza è anche nel log. screen.offline è scritto una volta che uno schermo è offline da 60 secondi, e screen.online quando torna online; una riconnessione entro quei 60 secondi non scrive nulla. screen.offline contiene details.offline_since e, quando lo schermo è stato online prima, details.last_online_at. screen.online contiene details.last_online_at, più details.offline_at quando lo schermo era offline prima di tornare. Come ogni evento screen.*, sono gratuiti sul flusso di ascolto, così un agente può mantenere events follow aperto per osservare una flotta.
Gli aggiornamenti dei contenuti di un Player arrivano come screen.manifest_changed, screen.manifest_activated e screen.manifest_upgrade, i cui details riportano manifest_revision, state e, se presenti, code e attempt. Un aggiornamento failed ha gravità di errore, e retrying, blocked e partial sono avvisi.
events list#
Leggi una pagina finita di eventi progetto.
events list [--after CURSOR] [--limit N] [--type TYPE] [--source project|log] [--screen-id ID] [--playlist-id ID] [--app-id ID]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--after CURSOR | string | no | la prima pagina | Riprendi dopo il next_cursor della pagina precedente. |
--limit N | integer | no | 50 | Dimensione pagina, da 1 a 200. |
--type TYPE | string | no | ogni tipo | Un tipo di evento, o una famiglia identificata da un prefisso che termina con un punto, come note.. |
--source SOURCE | string | no | project | project elenca gli eventi del progetto. log elenca i record del log del Player, che appartengono a uno schermo: usalo con --screen-id. |
--screen-id ID | string | no | ogni schermo | Eventi la cui risorsa è questo schermo, inclusi quelli emessi dall’SDK. Con --source log, i record del log del Player di quello schermo. |
--playlist-id ID | string | no | ogni playlist | Eventi la cui risorsa è questa playlist ed eventi che la nominano in details.playlist_id, ad esempio uno schermo che la adotta. Non con --source log. |
--app-id ID | string | no | ogni applicazione | Eventi della risorsa applicazione, delle release e delle voci K/V; esclude gli eventi emessi dall’SDK. Non con --source log. |
screenrig events list --limit 25
screenrig events list --type application.event --screen-id scr_SCREEN
screenrig events list --playlist-id pl_PLAYLIST
screenrig events list --source log --screen-id scr_SCREENI metodi SDK emit() ed emitConfirmed() aggiungono record application.event la cui risorsa è lo schermo. Leggili con --type application.event, aggiungendo facoltativamente --screen-id. I campi restituiti details.primitive_id e details.code identificano la primitiva emittente e l’azione denominata. --app-id seleziona gli eventi della risorsa applicazione, delle release e delle voci K/V, quindi esclude questi eventi dello schermo.
--source log legge il log del Player: le condizioni che un Player segnala, conservate per il periodo di conservazione degli eventi del progetto. Non ha una sequenza, quindi non è in events follow e non viene consegnato ai webhook, e --playlist-id e --app-id vengono rifiutati con esso (usage_error, exit 2). Un id del tipo sbagliato viene rifiutato prima di qualsiasi richiesta. data.next_cursor è null alla fine della cronologia.
L’output predefinito è una busta JSON per pagina. Con --human, l’output è una linea logfmt per evento: at=, type=, severity= e dettagli scalari.
events follow#
Rimani sul flusso eventi e stampa gli eventi man mano che arrivano.
events follow [--after CURSOR] [--timeout MS] [--type TYPE]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--after CURSOR | string | no | la coda live | Riprendi da questo cursore. |
--timeout MS | integer | no | nessuna scadenza | Termina tutto il follow, incluso il backoff di riconnessione. |
--type TYPE | string | no | ogni tipo | Un tipo di evento, o una famiglia identificata da un prefisso che termina con un punto, come note.. |
screenrig events followUna disconnessione o un errore transitorio si riconnettono con backoff e riprendono dall’ultimo id evento. La riproduzione dopo una riconnessione è gratuita. Problemi di autorizzazione e not-found fermano il comando invece di ritentarlo.
Con --type, lo stream continua a portare ogni evento e la CLI stampa solo quelli corrispondenti, e i frame stream.* che descrivono lo stream stesso vengono sempre stampati: screenrig events follow --type note. osserva le note del progetto.
L’output predefinito è NDJSON: una busta per evento su riga propria, anziché una singola busta. Usare --human per linee logfmt.
Notifiche
Una notifica avvisa una persona, o un altro sistema, quando uno schermo cambia stato. Una notifica e-mail invia un’e-mail a ogni destinatario, una notifica webhook invia un POST HTTPS firmato e una notifica Slack, Teams, PagerDuty o Telegram pubblica un messaggio in una chat o in un sistema di reperibilità. Un’organizzazione ne ha al massimo 50, tutti i canali e tutti i suoi progetti insieme, e ogni progetto parte con un’e-mail al proprietario quando uno schermo è offline da 10 minuti.
Una notifica monitora le condizioni che indichi:
| Condizione | Inizia quando | Termina quando |
|---|---|---|
screen_offline | Il Player è offline da 60 secondi. | Lo schermo è di nuovo online. |
display_disconnected | Il Player segnala il display disconnesso. | Il display si riconnette. |
running_hot | Il dispositivo segnala una temperatura pari o superiore alla soglia di surriscaldamento. | La temperatura torna normale. |
on_battery | Un dispositivo con batteria segnala che funziona a batteria, scollegato. | Il dispositivo segnala un’altra fonte di alimentazione. |
storage_full | Lo spazio di archiviazione del Player non basta per i suoi contenuti. | La carenza si risolve. |
content_stuck | L’aggiornamento dei contenuti dello schermo sta riprovando, è fallito, bloccato o parziale. | L’aggiornamento raggiunge qualsiasi altro stato. |
not_playing | Il Player mostra un errore al posto dei suoi contenuti. Lo spazio di archiviazione pieno è storage_full. | Lo stato del Player non è più un errore. |
loop_stalled | Uno schermo online, in orario e con contenuti aggiornati non ha avviato alcuna immagine o video per più tempo di quanto consenta il suo ciclo. | Un’immagine o un video riparte, oppure screenRIG smette di giudicare lo schermo. |
glass_blank | Gli screenshot che screenRIG ha preso lungo una serie che copre l’intero ciclo erano tutti di un’unica tinta uniforme. | Due screenshot di fila mostrano un’immagine, oppure screenRIG smette di giudicare lo schermo. |
glass_frozen | Gli screenshot che screenRIG ha preso lungo una serie che copre l’intero ciclo mostravano tutti la stessa immagine. | Due screenshot di fila mostrano un’immagine in movimento, oppure screenRIG smette di giudicare lo schermo. |
crashing | Il Player è andato in crash o ha riavviato il proprio renderer ripetutamente. | Mai: ogni picco è un avviso a sé. |
source_failed | L'aggiornamento di una fonte di dati è fallito. | Un aggiornamento riesce. |
source_stale | Una fonte di dati ha continuato a fallire finché i suoi dati non sono scaduti. | Un aggiornamento riesce. |
card_data_stale | I dati di una scheda, scritti con una scadenza, l’hanno raggiunta mentre uno schermo mostra la scheda e nulla li ha rinnovati. | Una scrittura nei dati della scheda va a buon fine. |
reach_dropped | Una campagna raggiunge meno schermi di quando è stata pubblicata l'ultima volta, perché gli schermi hanno lasciato i suoi tag o le sue cartelle, oppure sono stati archiviati o eliminati. | La campagna raggiunge di nuovo altrettanti schermi, oppure viene pubblicata di nuovo. |
group_empty | Un tag o una cartella nel pubblico di una campagna non corrisponde ad alcuno schermo. | Il tag o la cartella corrisponde di nuovo a uno schermo, oppure una pubblicazione lo rimuove dal pubblico. |
Una condizione invia un avviso quando dura da --hold minuti (predefinito 10), così una riconnessione rapida resta silenziosa. Se termina prima, non viene inviato nulla; se termina dopo l’invio di un avviso, segue un avviso di risoluzione. Per crashing l’avviso viene inviato subito. Un avviso viene saltato anche quando qualcuno riconosce o posticipa l’alert dello schermo durante il tempo di attesa, o quando un silenziamento copre lo schermo. --tag limita una notifica agli schermi con quel tag; senza, vengono considerati tutti gli schermi.
Ogni avviso ha una gravità. Un avviso aperto è error per screen_offline e warning per ogni altra condizione, e un avviso risolto o un test è info. --min-severity LEVEL (info, warning o error) non crea alcun avviso aperto sotto quel livello, e un avviso risolto segue quello aperto. --severity CONDITION=LEVEL, ripetibile, imposta il livello di una condizione per questa notifica, ad esempio --severity not_playing=error; conta per --min-severity. Teams e PagerDuty mostrano sempre il livello, il testo di e-mail, Slack e Telegram lo indica quando la notifica imposta --min-severity o --severity, e il corpo di un webhook porta severity.
--active-hours SPEC invia gli avvisi aperti solo all'interno di finestre settimanali, lette in --timezone ZONE, che è obbligatorio. SPEC è DAYS HH:MM-HH:MM, ad esempio "Mon-Fri 08:00-22:00"; ripetilo fino a 16 volte. Con --outside-hours hold, il valore predefinito, un avviso in scadenza fuori orario attende la finestra successiva e parte allora se la sua condizione persiste, quindi una condizione che rientra prima non invia nulla. Con drop l'avviso viene saltato come outside_hours, che notifications deliveries elenca. Un avviso di risoluzione per un avviso aperto che è stato inviato parte sempre, crashing segue gli orari come qualsiasi altra condizione, un posticipo viene controllato per primo, e notifications test ignora orari, gravità e pubblico.
--audience FILE (JSON inline, un file o - per stdin) sceglie gli schermi con le regole di un pubblico di campagna, ad esempio {"all":[{"tag":"level2"},{"tag":"overhead"}]} per gli schermi con entrambi i tag; --all-tags TAG e --any-tag TAG sono le scorciatoie per una regola all e una any di tag, e --tag indica uno qualsiasi dei tag. --tag, --any-tag, --all-tags e --audience si escludono a vicenda.
loop_stalled, glass_blank e glass_frozen sono verdetti che screenRIG trae dai report di riproduzione e dagli screenshot che riceve, e lasciano fuori ciò che non possono giudicare: uno schermo offline, con il display spento, sotto takeover o sospeso, che mostra una sola immagine fissa o un video wall, o il cui Player non invia numeri di riproduzione. Quando screenRIG smette di giudicare uno schermo che aveva trovato in uno di questi stati, l’alert si chiude, ma e-mail, Slack, Teams e Telegram non inviano alcun avviso di risoluzione, perché nulla ha mostrato lo schermo ripristinarsi; PagerDuty risolve comunque il suo incidente.
source_failed e source_stale controllano le fonti di dati del progetto, non i suoi schermi: un avviso nomina la fonte e collega la sua pagina, e --tag non corrisponde mai a una fonte.
card_data_stale osserva una scheda, non uno schermo. Scrivi i dati di una scheda con una scadenza commisurata alla pianificazione di chi li scrive (card data put --ttl 30m): quando il job o l’agente che li rinnova si ferma, i dati scadono, la scheda è vuota su ogni schermo che la mostra, e questa condizione te lo segnala. L’avviso nomina la scheda e quando i suoi dati sono scaduti, e collega l’editor di pagine su una pagina che la colloca. I documenti di un’origine dati non vengono mai annunciati qui (source_stale li copre), né una scheda che nessuno schermo mostra, dati scritti senza scadenza o dati eliminati. --tag non corrisponde mai a una scheda.
reach_dropped e group_empty controllano una campagna, non uno schermo. L'avviso nomina la campagna e gli schermi che raggiungeva prima e che raggiunge ora, oppure il tag o la cartella vuoti, e rimanda al calendario della campagna. Una campagna appartiene al progetto, quindi --tag, --any-tag, --all-tags e --audience non le limitano mai; --min-severity, --severity, --active-hours e --hold valgono come per qualsiasi condizione, ed entrambe sono warning per impostazione predefinita. --reach-drop-screens N e --reach-drop-percent P inviano un avviso reach_dropped solo per un calo di almeno N schermi e di almeno P percento degli schermi che la campagna raggiungeva quando è stata pubblicata; un calo deve soddisfare entrambi, e senza di essi qualsiasi calo notifica. Richiedono reach_dropped in --conditions. Ogni tag o cartella vuoti di una campagna sono un avviso a sé, e notifications deliveries lo mostra come audience_group (tag:Lobby o folder:sfd_…). Una pubblicazione che rimuove un gruppo vuoto dal pubblico chiude un incidente PagerDuty e un alert del webhook, ma non invia alcuna email o messaggio di chat di ripristino.
L’email arriva all’indirizzo verificato di ogni destinatario, un’email per destinatario per tutto ciò che va inviato entro circa due minuti, con un link a ogni schermo e alla notifica nella dashboard. I destinatari sono owner, chiunque possieda il progetto quando l’avviso viene inviato, e gli ID utente dei membri del progetto. Un destinatario senza indirizzo verificato, o che ha lasciato il progetto, viene saltato. Le email di notifica e gli avvisi di schermo sono gratuiti.
Ogni email contiene un link di annullamento dell’iscrizione per il suo destinatario: il pulsante di annullamento iscrizione delle app di posta e un link nel piè di pagina. Seguirlo interrompe le email di quella notifica per quella sola persona, senza accedere, e la pagina che si apre ha un pulsante Resubscribe. Gli altri destinatari non sono interessati e la persona resta tra i destinatari. notifications show elenca chi ha annullato l’iscrizione con unsubscribed, e notifications resubscribe le invia di nuovo le email. Un avviso senza nessuno a cui scrivere viene saltato come no_recipients.
Una notifica webhook invia ogni avviso come JSON via POST; lo verifichi come descritto in Verifica una consegna. Con --events invia anche gli eventi grezzi del progetto, via POST, man mano che accadono; quelle consegne sono conteggiate come descritto in Webhook.
Una notifica Slack, Teams, PagerDuty o Telegram pubblica un messaggio per interruzione e per schermo, o per gruppo di schermi: lo schermo, cosa è cambiato, da quando, il progetto, un link allo schermo e, quando uno schermo offline torna, la causa probabile se è già nota. Un messaggio di ripristino segue una volta inviato il primo e, in PagerDuty, risolve l'incidente aperto dal primo. La credenziale si indica una sola volta (--slack accetta l'URL di un webhook in entrata, --teams l'URL di un webhook di Workflows, --pagerduty una chiave di instradamento dell'API Events v2, --telegram un token di bot con --telegram-chat); viene sigillata, non viene mai più mostrata e destination_hint ne mostra solo la fine mascherata. Un - la legge da una riga di stdin così non finisce nella cronologia della tua shell. Una pubblicazione fallita viene ritentata per 24 ore, e una notifica che fallisce per 72 ore viene disattivata.
Quando tre o più schermi entrano nella stessa condizione a meno di cinque minuti l’uno dall’altro e condividono rete, posizione, modello, versione del Player o tag, una notifica e-mail, Slack, Teams, PagerDuty o Telegram invia un solo avviso per loro invece di uno per schermo, e un solo avviso dice il gruppo quando si ripristina il suo ultimo schermo; l’avviso di ogni altro schermo viene saltato come grouped. Un webhook invia comunque un avviso per schermo.
Leggere le notifiche e le loro consegne richiede l’accesso Solo lettura; creare, modificare, testare ed eliminare una notifica, ruotarne il segreto e reiscrivere una persona richiedono l’accesso Gestire.
| Codice problema | Esci | Significato |
|---|---|---|
webhook_url_rejected | 8 | L’URL non è https sulla porta 443 o 8443, o il suo host non risolve solo indirizzi pubblici Internet. error.detail riporta la ragione del server. Non è stato creato o modificato nulla. |
notification_destination_rejected | 8 | La destinazione non è adatta al suo canale, oppure è l'URL di un connettore Office 365 ritirato. error.detail indica la forma adatta. Non è stato creato né modificato nulla. |
notification_limit_reached | 5 | L’organizzazione ha già 50 notifiche. Eliminane prima una. |
revision_conflict | 6 | La revisione --expect-rev era obsoleta. Esegui notifications show, poi riprova. |
rate_limited | 7 | Più di 20 chiamate notifications test in un minuto per questa organizzazione. |
invalid_request | 8 | Un destinatario di --email che non è membro del progetto, o un’opzione che appartiene a un altro canale, come --url su una notifica e-mail. Non è stato creato o modificato nulla. |
notifications create#
Crea una notifica e-mail, webhook, Slack, Teams, PagerDuty o Telegram.
notifications create (--email RECIPIENTS | --webhook URL | --slack URL | --teams URL | --pagerduty KEY
| --telegram TOKEN --telegram-chat CHAT_ID) [--conditions LIST] [--events TYPES]
[--tag TAG... | --any-tag TAG... | --all-tags TAG... | --audience FILE] [--hold MINUTES]
[--min-severity LEVEL] [--severity CONDITION=LEVEL]... [--active-hours SPEC]...
[--timezone ZONE] [--outside-hours hold|drop] [--reach-drop-screens N] [--reach-drop-percent P]
[--description TEXT] [--disabled]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--email RECIPIENTS | string | un flag di canale | nessuno | Invia email a questi destinatari separati da virgola: owner, o l’ID utente di un membro del progetto, al massimo 20. |
--webhook URL | string | un flag di canale | nessuno | Un URL https sulla porta 443 (predefinita) o 8443 il cui host risolve solo in indirizzi Internet pubblici. Il server lo verifica ad ogni scrittura e di nuovo prima di ogni consegna. Un URL che trasporta credenziali (user:pass@ o token@) o un frammento # è rifiutato localmente con uscita 2. |
--conditions LIST | string | sì, tranne per un webhook | nessuno | Condizioni separate da virgola, dalla tabella qui sopra. Un webhook richiede questo, --events o entrambi. |
--slack URL | string | un flag di canale | nessuno | Pubblica in Slack con l'URL di un webhook in entrata su hooks.slack.com, oppure - per leggerlo da una riga di stdin. |
--teams URL | string | un flag di canale | nessuno | Pubblica in Teams con l'URL di un webhook di Workflows (il trigger «Alla ricezione di una richiesta webhook di Teams»), oppure - per stdin. Gli URL dei connettori Office 365 sono ritirati e rifiutati. |
--pagerduty KEY | string | un flag di canale | nessuno | Attiva e risolve gli incidenti PagerDuty con una chiave di instradamento dell'API Events v2 di 32 caratteri, oppure - per stdin. |
--telegram TOKEN | string | un flag di canale | nessuno | Pubblica in Telegram con un token di bot, oppure - per stdin. Richiede --telegram-chat. |
--telegram-chat CHAT_ID | string | con --telegram | nessuno | La chat in cui pubblicare: il suo id numerico, come -1001234567890, oppure @channelname. |
--events TYPES | string | no | nessuno | Solo webhook. Invia con POST anche questi eventi grezzi del progetto: da 1 a 32 tipi esatti separati da virgola, come screen.online, o prefissi che terminano con .*, come screen.*. |
--tag TAG | string | no | ogni schermo | Solo gli schermi con almeno uno di questi tag. Ripeti il flag o separa con virgole, fino a 16 tag. |
--hold MINUTES | integer | no | 10 | Quanto deve durare una condizione prima di inviare un avviso, da 0 a 1440. crashing non ha mai un tempo di attesa. |
--all-tags TAG | string | no | nessuno | Solo gli schermi con tutti i tag elencati. Ripeti il flag o separa con virgole. |
--any-tag TAG | string | no | nessuno | Solo gli schermi con almeno uno dei tag elencati, come --tag. Ripeti il flag o separa con virgole. |
--audience FILE | string | no | ogni schermo | Gli schermi come regola di pubblico di campagna in JSON: inline, un file o - per stdin. Non insieme alle opzioni dei tag. |
--min-severity LEVEL | string | no | nessuno | info, warning o error: gli avvisi aperti sotto questo livello non vengono inviati. |
--severity CONDITION=LEVEL | string | no | i valori predefiniti | Imposta la gravità di una condizione per questa notifica. Ripeti il flag. |
--active-hours SPEC | string | no | sempre | Invia gli avvisi aperti solo in questa finestra settimanale, DAYS HH:MM-HH:MM ad esempio "Mon-Fri 08:00-22:00". Ripeti fino a 16 volte. Richiede --timezone. |
--timezone ZONE | string | con --active-hours | nessuno | Il fuso IANA in cui vengono letti gli orari, ad esempio America/Los_Angeles. |
--outside-hours MODE | string | no | hold | hold attende la finestra successiva; drop salta l'avviso. |
--reach-drop-screens N | integer | no | qualsiasi calo | Solo con reach_dropped: invia un avviso solo quando la campagna ha perso almeno N schermi (1 o più). |
--reach-drop-percent P | integer | no | qualsiasi calo | Solo con reach_dropped: richiede inoltre un calo di almeno P percento (da 1 a 100) degli schermi che la campagna raggiungeva quando è stata pubblicata. |
--description TEXT | string | no | nessuno | Al massimo 200 caratteri. |
--disabled | boolean | no | spento | Creala disabilitata. Non viene inviato nulla fino a notifications update --enable. |
screenrig notifications create --email owner --conditions screen_offline,display_disconnected --tag Lobbyscreenrig notifications create --webhook https://hooks.example.com/screenrig --conditions screen_offline,crashingscreenrig notifications create --slack - --conditions screen_offline,crashing < slack-url.txtLa busta è la notifica. Quella di un webhook contiene il suo segreto di firma in data.secret (whsec_…) con l’avvertenza webhook_secret_shown_once. Conserva subito il segreto nel deposito segreto del ricevitore. Solo notifications rotate-secret lo restituisce di nuovo, e la CLI non lo scrive mai nella configurazione, nel registro operativo o nello stato di recupero scrittura. Dopo una creazione interrotta o ambigua, riesegui lo stesso comando entro 24 ore: riutilizza la chiave di idempotenza salvata e il server restituisce la stessa risposta, segreto incluso. Gli avvisi partono dal primo evento successivo alla creazione della notifica.
notifications list#
Elenca le notifiche di questo progetto, mai i loro segreti.
notifications listscreenrig notifications listOgni riga è una notifica di qualsiasi canale, dalla più vecchia alla più recente, con il suo status. Una notifica Slack, Teams, PagerDuty o Telegram mostra destination_hint, la sua credenziale mascherata fino all’host e agli ultimi caratteri, nella colonna TO di --human. Sotto l’accesso Gestire, l’url di un webhook è vuoto e url_redacted è true, e TO mostra (withheld).
notifications show#
Ispeziona una notifica e la sua salute di consegna.
notifications show <id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L'id di notifica ntf_ (qualsiasi canale tranne webhook) o whk_ (webhook). |
screenrig notifications show ntf_01EXAMPLENOTICE00000status è active, failing mentre nessuna consegna è riuscita da failing_since, o disabled. Dopo 72 ore di fallimenti continui la notifica viene disabilitata con disabled_reason: delivery_failures, e il registro eventi riporta notification.disabled. snoozed_until è presente mentre è impostato uno snooze. last_success_at e last_failure_at riportano gli ultimi risultati. revision è il valore che --expect-rev controlla. min_severity, severity, active_hours con outside, audience e reach_drop compaiono finché sono impostati, e una notifica e-mail elenca unsubscribed.
notifications update#
Modifica i destinatari, l'URL, la destinazione, le condizioni, gli schermi, l'attesa, la sospensione o lo stato di attivazione di una notifica.
notifications update <id> [--email RECIPIENTS | --url URL | --destination VALUE] [--telegram-chat CHAT_ID]
[--conditions LIST | --clear-conditions]
[--events TYPES | --clear-events] [--tag TAG... | --any-tag TAG... | --all-tags TAG... | --audience FILE | --all-screens]
[--hold MINUTES] [--min-severity LEVEL | --clear-min-severity]
[--severity CONDITION=LEVEL]... [--clear-severity]
[--active-hours SPEC]... [--timezone ZONE] [--outside-hours hold|drop] [--clear-active-hours]
[--reach-drop-screens N] [--reach-drop-percent P] [--clear-reach-drop]
[--description TEXT | --clear-description] [--enable | --disable]
[--snooze WHEN] [--expect-rev REVISION]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L'id di notifica ntf_ (qualsiasi canale tranne webhook) o whk_ (webhook). |
--email RECIPIENTS | string | almeno una modifica | invariato | Notifiche email: sostituisce i destinatari. |
--url URL | string | almeno una modifica | invariato | Notifiche webhook: sostituisce l’URL, controllato come create. |
--destination VALUE | string | almeno una modifica | invariato | Notifiche Slack, Teams, PagerDuty e Telegram: sostituisce la credenziale, verificata come in create. - la legge da una riga di stdin. |
--telegram-chat CHAT_ID | string | almeno una modifica | invariato | Notifiche Telegram: sostituisce la chat. |
--conditions LIST | string | almeno una modifica | invariato | Sostituisce le condizioni. |
--clear-conditions | boolean | almeno una modifica | spento | Rimuovi ogni condizione. Un webhook richiede quindi --events. |
--events TYPES | string | almeno una modifica | invariato | Notifiche webhook: sostituisce gli eventi grezzi del progetto. |
--clear-events | boolean | almeno una modifica | spento | Notifiche webhook: interrompe l’invio POST degli eventi grezzi del progetto. Richiede quindi delle condizioni. |
--tag TAG | string | almeno una modifica | invariato | Sostituisce i tag degli schermi, e il pubblico se la notifica ne ha uno. |
--all-screens | boolean | almeno una modifica | spento | Rimuove i tag degli schermi e il pubblico; la notifica copre ogni schermo. |
--hold MINUTES | integer | almeno una modifica | invariato | Da 0 a 1440. |
--all-tags TAG | string | almeno una modifica | invariato | Sostituisce gli schermi con quelli che hanno tutti i tag elencati. |
--any-tag TAG | string | almeno una modifica | invariato | Sostituisce gli schermi con quelli che hanno almeno uno dei tag elencati, come --tag. |
--audience FILE | string | almeno una modifica | invariato | Sostituisce gli schermi con una regola di pubblico di campagna in JSON: inline, un file o - per stdin. |
--min-severity LEVEL | string | almeno una modifica | invariato | info, warning o error. |
--clear-min-severity | boolean | almeno una modifica | spento | Rimuove il filtro di gravità. |
--severity CONDITION=LEVEL | string | almeno una modifica | invariato | Sostituisce gli override di gravità con questi. Ripeti il flag. |
--clear-severity | boolean | almeno una modifica | spento | Rimuove ogni override di gravità. |
--active-hours SPEC | string | almeno una modifica | invariato | Sostituisce le finestre con queste. Ripeti fino a 16 volte. --timezone usa per impostazione predefinita il fuso che la notifica ha già. |
--timezone ZONE | string | almeno una modifica | invariato | Il fuso IANA in cui vengono letti gli orari. Da solo, mantiene le finestre attuali. |
--outside-hours MODE | string | almeno una modifica | invariato | hold o drop. Da solo, mantiene le finestre attuali. |
--clear-active-hours | boolean | almeno una modifica | spento | Rimuove gli orari attivi. Gli avvisi trattenuti per essi vengono rigiudicati subito. |
--reach-drop-screens N | integer | almeno una modifica | invariato | Sostituisce il numero minimo di schermi che la campagna deve aver perso perché un avviso reach_dropped venga inviato. |
--reach-drop-percent P | integer | almeno una modifica | invariato | Sostituisce la percentuale minima della copertura pubblicata che la campagna deve aver perso. |
--clear-reach-drop | boolean | almeno una modifica | spento | Rimuove la soglia, così qualsiasi calo notifica. Togli reach_dropped da --conditions solo insieme alla soglia. |
--description TEXT | string | almeno una modifica | invariato | Al massimo 200 caratteri. |
--clear-description | boolean | almeno una modifica | spento | Rimuovi la descrizione. |
--enable | boolean | almeno una modifica | spento | Cancella lo stato di errore e riparte dall’evento che registra la modifica; non viene inviato nulla di ciò che è accaduto mentre era disabilitata. |
--disable | boolean | almeno una modifica | spento | Interrompe gli avvisi; gli avvisi in sospeso falliscono con webhook_disabled. |
--snooze WHEN | string | almeno una modifica | invariato | Non inviare nulla fino ad allora: una durata come 30m, 1h o 2d (meno di 30 giorni), un istante RFC 3339 con secondi e offset, oppure off per terminare lo snooze. Gli avvisi da inviare nel frattempo vengono saltati, non inviati più tardi. |
--expect-rev REVISION | string | no | nessuno | Precondizione opzionale di revisione. |
screenrig notifications update ntf_01EXAMPLENOTICE00000 --snooze 2hupdate modifica solo i campi passati. Il canale non cambia mai: --email vale per una notifica e-mail, --url e --events per un webhook, e --destination e --telegram-chat per una notifica di chat o pager, e un’opzione di un altro canale è invalid_request (uscita 8). Indica al massimo una tra --email, --url e --destination. I tag degli schermi e un pubblico si escludono a vicenda: impostarne uno cancella l’altro. Una notifica e-mail mantiene almeno una condizione, e un webhook mantiene condizioni o eventi. Il segreto di firma resta invariato; usa notifications rotate-secret.
notifications delete#
Elimina una notifica. I suoi avvisi in sospeso falliscono con webhook_deleted.
notifications delete <id> [--expect-rev REVISION]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L'id di notifica ntf_ (qualsiasi canale tranne webhook) o whk_ (webhook). |
--expect-rev REVISION | string | no | nessuno | Precondizione opzionale di revisione. |
screenrig notifications delete ntf_01EXAMPLENOTICE00000Il suo registro delle consegne non può essere letto in seguito; le sue righe scadono con la conservazione degli eventi.
notifications rotate-secret#
Sostituisce il segreto di firma di una notifica webhook e restituisce il nuovo una sola volta. Qualsiasi altro canale non ha un segreto e risponde invalid_request (uscita 8).
notifications rotate-secret <id> [--expect-rev REVISION]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L'id di notifica ntf_ (qualsiasi canale tranne webhook) o whk_ (webhook). |
--expect-rev REVISION | string | no | nessuno | Precondizione opzionale di revisione. |
screenrig notifications rotate-secret whk_01EXAMPLEWEBHOOK00000La busta contiene il nuovo segreto in data.secret con l’avviso webhook_secret_shown_once; conservalo subito. Il segreto precedente smette di firmare, ma al massimo un tentativo già in corso può ancora arrivare firmato con esso, quindi accetta entrambi per un breve periodo. Dopo una rotazione interrotta o ambigua, riesegui lo stesso comando entro 24 ore per recuperare lo stesso segreto.
notifications test#
Invia un'e-mail di prova, un POST di prova firmato o un messaggio di chat solo a questa notifica.
notifications test <id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L'id di notifica ntf_ (qualsiasi canale tranne webhook) o whk_ (webhook). |
screenrig notifications test ntf_01EXAMPLENOTICE00000La busta è la consegna in coda. Viene tentata una volta senza ritentativi, funziona su una notifica disabilitata o in snooze e non cambia mai lo stato di errore della notifica. Al massimo 20 consegne di test al minuto per organizzazione; di più è rate_limited (uscita 7). Leggi l’esito con notifications deliveries.
Un test PagerDuty attiva un evento informativo con chiave screenrig:test:DELIVERY_ID e lo risolve subito, così nessun incidente resta aperto.
notifications resubscribe#
Invia di nuovo le email di una notifica a una persona che ha annullato l’iscrizione.
notifications resubscribe <id> --user USER_ID| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L’ID ntf_ di una notifica via email. |
--user USER_ID | string | sì | nessuno | L’ID utente della persona, come lo elenca notifications show sotto unsubscribed. |
screenrig notifications resubscribe ntf_01EXAMPLENOTICE00000 --user usr_01EXAMPLEPERSON0000La busta è la notifica. Una persona che non ha annullato l’iscrizione non cambia nulla. Reiscrivere una persona aumenta la revisione e aggiunge notification.updated. Una notifica di un altro canale o progetto è not_found (uscita 4).
notifications deliveries#
Leggi il registro di consegna di una notifica, dalla più recente.
notifications deliveries <id> [--before CURSOR] [--limit N]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L'id di notifica ntf_ (qualsiasi canale tranne webhook) o whk_ (webhook). |
--before CURSOR | string | no | l’evento più recente | Il next_cursor (whc1_… o whc2_…) della pagina precedente. |
--limit N | integer | no | 50 | Righe per pagina, da 1 a 200. |
screenrig notifications deliveries ntf_01EXAMPLENOTICE00000 --limit 20Ogni riga è un evento, o un avviso di una condizione su uno schermo: event_type, state (pending, succeeded, failed o skipped), attempts, last_status e una classe last_error fissa come http_status, timeout, connection_failed, tls_failed, dns_failed, url_rejected, email_failed, email_rejected o secret_unavailable. Un avviso di schermo aggiunge condition, phase (opened o resolved), screen_id, screen_name (per un’origine dati, una campagna o una scheda, il suo id e nome) e since, e un avviso e-mail aggiunge emailed, il numero di persone raggiunte. Un avviso che non serviva inviare è skipped, con il motivo in last_error: condition_cleared (lo schermo è uscito dallo stato prima della fine dell’attesa), not_opened (nessun avviso è partito da risolvere), snoozed (la notifica è in snooze), acknowledged (qualcuno ha riconosciuto o posticipato l’alert dello schermo durante l’attesa), muted (un silenziamento copre lo schermo), outside_hours (gli orari attivi della notifica erano chiusi e scarta gli avvisi fuori da essi), below_severity (l’avviso è sotto min_severity, alzato dopo che era stato messo in coda), planned_reboot (lo schermo è andato offline, ha scollegato il display o è andato in crash durante un riavvio inviato da screenRIG, finché non termina o fino a dieci minuti dopo il suo invio), no_recipients (nessun destinatario è membro del progetto con un indirizzo verificato e senza disiscrizione), grouped (lo schermo è entrato nella condizione insieme ad altri, e un avviso su un’altra riga li dice tutti), oppure no_longer_judged (una condizione loop_stalled, glass_blank o glass_frozen è terminata perché screenRIG ha smesso di valutare lo schermo, una reach_dropped perché la campagna è stata ripubblicata o eliminata, una group_empty perché una pubblicazione ha rimosso il tag o la cartella dal suo pubblico, o una card_data_stale perché i dati della scheda sono stati eliminati, quindi non è stato comunicato alcun ripristino). L’avviso che ha detto un gruppo di schermi porta group (id, attribute, value e count), e ogni altro schermo del gruppo porta group_id; --human mostra entrambi in una colonna GROUP. Le righe non includono mai la risposta del ricevente. next_cursor è null alla fine del registro. Un tentativo fallito viene ritentato con backoff, 30 secondi raddoppiando fino a un’ora, per 24 ore, poi la riga è failed.
Verifica una consegna
Il corpo di un avviso di schermo è JSON: type (alert.opened o alert.resolved), id (l’ID della consegna), notification_id, project_id, condition, screen (id e name), since (quando la condizione è iniziata), at (quando è durata abbastanza a lungo, o si è risolta), event_id e severity (info, warning o error: il livello della condizione su alert.opened, info su alert.resolved). alert.resolved per screen_offline porta anche likely_cause (device_restart, app_crash, app_restart, network o platform), null finché la causa è sconosciuta. Per un’origine dati, una campagna o una scheda, screen la nomina, e un avviso di campagna aggiunge reach (published e current schermi) per reach_dropped o audience_group (kind tag o folder e value) per group_empty. Un evento grezzo da --events è lo stesso oggetto JSON che events list restituisce. Gli header sono ScreenRig-Webhook-Id (l’ID della notifica), ScreenRig-Event-Id (stabile tra i retry: l’ID della consegna per un avviso, il cursore dell’evento per un evento) e ScreenRig-Signature: t=<unix seconds>,v1=<hex>, dove v1 è HMAC-SHA256 su "<t>.<raw body>" con chiave la stringa segreta. Calcolalo sui byte grezzi prima di analizzare JSON, confronta in tempo costante, rifiuta un vecchio t e deduplica su ScreenRig-Event-Id, perché la consegna avviene almeno una volta e non in ordine. Rispondi 2xx entro 10 secondi; i redirect non vengono seguiti.
import { createHmac, timingSafeEqual } from "node:crypto";
// rawBody: the request body bytes (Buffer) exactly as received.
function verify(rawBody, signatureHeader, secret, toleranceSeconds = 300) {
if (typeof signatureHeader !== "string" || !signatureHeader) return false;
const parts = Object.fromEntries(signatureHeader.split(",").map((part) => part.split("=", 2)));
const t = Number(parts.t);
if (!Number.isInteger(t) || Math.abs(Date.now() / 1000 - t) > toleranceSeconds) return false;
const expected = createHmac("sha256", secret).update(`${t}.`).update(rawBody).digest();
const given = Buffer.from(parts.v1 ?? "", "hex");
return given.length === expected.length && timingSafeEqual(given, expected);
}Alert
Un alert è un problema su uno schermo finché dura. Si apre quando uno schermo entra in una delle condizioni di notifica dello schermo (screen_offline, display_disconnected, running_hot, on_battery, storage_full, content_stuck, not_playing, loop_stalled, glass_blank o glass_frozen), che una notifica la controlli o no, e si risolve quando la condizione termina. Uno schermo ha al massimo un alert aperto per condizione. Un picco di crash, un’origine dati, una scheda e una campagna sono avvisi, mai alert. Uno schermo che si riavvia per un riavvio inviato da screenRIG (screen reboot o una pianificazione di riavvio) non apre alert screen_offline o display_disconnected finché il riavvio non è completato o fino a dieci minuti dopo il suo invio; una condizione che persiste ancora allora apre il suo alert. alerts list mostra ciò che è aperto adesso.
Un alert aperto richiede attenzione finché qualcuno non lo riconosce o lo posticipa, o finché un silenziamento non copre il suo schermo. Riconoscere significa che qualcuno se ne sta occupando: l’alert resta aperto, registra chi lo ha riconosciuto e quando, e non richiede attenzione fino alla risoluzione. Posticipare riconosce fino a un momento al massimo 30 giorni più avanti, e l’alert richiede di nuovo attenzione allora se è ancora aperto. Un riconoscimento o un posticipo successivo sostituisce il precedente. Finché un alert è riconosciuto o posticipato, l’avviso di una notifica che lo riguarda e che è ancora nel tempo di attesa viene saltato.
Un silenziamento serve per la manutenzione: indica schermi, tag o entrambi e termina in un momento al massimo 30 giorni più avanti. Copre uno schermo finché il suo ID è nell’elenco o ha un tag dell’elenco, quindi uno schermo taggato in seguito è coperto e uno che perde il tag non lo è più. Gli alert di uno schermo silenziato si aprono e si risolvono comunque, contrassegnati muted, ma non richiedono mai attenzione, e ogni notifica salta i loro avvisi. Un’organizzazione ha al massimo 50 silenziamenti attivi in tutti i suoi progetti.
counts.attention in alerts list è il numero che la dashboard mostra accanto ad Alert. Aprire, risolvere e riconoscere un alert aggiunge screen.alert_opened, screen.alert_resolved e screen.alert_acknowledged al registro eventi del progetto, e creare e terminare un silenziamento aggiunge alert_mute.created e alert_mute.deleted. Sono gratuiti sul flusso di ascolto e sui webhook, come ogni evento screen.*. Gli alert risolti restano elencati per la durata di conservazione eventi del piano. Leggere alert e silenziamenti richiede l’accesso Solo lettura; riconoscere, posticipare, silenziare e rimuovere un silenziamento richiedono l’accesso Gestire.
| Codice problema | Esci | Significato |
|---|---|---|
alert_not_open | 5 | L’alert è già risolto, quindi non c’è nulla da riconoscere o posticipare. Esegui alerts list e usa uno aperto. |
alert_mute_limit_reached | 5 | L’organizzazione ha già 50 silenziamenti attivi. Terminane uno con alerts unmute, oppure copri più schermi con un solo silenziamento per tag. |
invalid_request | 8 | L’istante --until è a più di 30 giorni nel futuro. Non è stato modificato nulla. |
not_found | 4 | Nessun alert né silenziamento del progetto ha questo ID. Un alert risolto scompare dopo la durata di conservazione eventi del piano, un silenziamento una volta terminato. |
alerts list#
Elenca gli alert di questo progetto, prima quelli aperti.
alerts list [--state open|resolved|all] [--screen-id ID] [--before CURSOR] [--limit N]
[--format json|csv|xlsx|pdf] [--output FILE]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--state STATE | string | no | open | open, resolved o all. |
--screen-id ID | string | no | ogni schermo | Solo gli alert di questo schermo. |
--before CURSOR | string | no | la prima pagina | Il next_cursor della pagina precedente. |
--limit N | integer | no | 100 | Righe per pagina, da 1 a 200. |
--format FORMAT | string | no | json | json, oppure csv, xlsx o pdf per scrivere gli alert in un file invece di stamparli. |
--output FILE | path | no | ./alerts.FORMAT | Il file da scrivere con --format csv, xlsx o pdf. Non insieme a json. |
screenrig alerts listscreenrig alerts list --state all --screen-id scr_01EXAMPLESCREEN00000000screenrig alerts list --state all --format csv --output alerts.csvOgni riga è un alert: id (alr_…), screen_id, screen_name, condition, state (open o resolved), since (quando è iniziata la condizione), resolved_at una volta risolto, acknowledged_at e acknowledged_by (kind, id e name della persona o dell’agente) una volta riconosciuto, snoozed_until mentre è posticipato, muted e attention. Gli alert aperti vengono per primi, dal più recente. counts contiene open e attention per l’intero progetto, qualunque siano la pagina e i filtri, e next_cursor è null alla fine.
Con --format csv, xlsx o pdf il file contiene tutti gli alert che i filtri selezionano, fino a 50.000 righe, e la busta riporta il suo path, i suoi bytes e il suo sha256. Report ed esportazioni descrive i file.
alerts show#
Mostra un alert.
alerts show <id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L’ID alert alr_. |
screenrig alerts show alr_01EXAMPLEALERT000000La busta è l’alert, nella forma di una riga di alerts list.
alerts ack#
Riconosci un alert aperto: qualcuno se ne sta occupando.
alerts ack <id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L’ID alert alr_. |
screenrig alerts ack alr_01EXAMPLEALERT000000L’alert resta aperto e non richiede attenzione fino alla risoluzione; acknowledged_by indica la persona o l’agente e acknowledged_at l’ora. L’avviso di una notifica ancora nel tempo di attesa viene saltato. Riconoscere di nuovo sostituisce il riconoscimento o il posticipo precedente. Un alert risolto restituisce alert_not_open (uscita 5). La busta è l’alert, e il registro eventi riporta screen.alert_acknowledged.
alerts snooze#
Riconosci un alert aperto fino a un momento, così richiede di nuovo attenzione allora.
alerts snooze <id> (--for DURATION | --until TIME)| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L’ID alert alr_. |
--for DURATION | durata | uno tra --for, --until | nessuno | Per quanto posticipare da adesso: una durata come 30m, 4h o 2d, al massimo 29d23h59m. |
--until TIME | string | uno tra --for, --until | nessuno | Quando termina il posticipo: un istante RFC 3339 con secondi e offset, come 2026-11-01T09:00:00-07:00, al massimo 30 giorni più avanti. |
screenrig alerts snooze alr_01EXAMPLEALERT000000 --for 4hsnoozed_until è l’ora in cui termina il posticipo. Fino ad allora l’alert non richiede attenzione e l’avviso di una notifica ancora nel tempo di attesa viene saltato, come per alerts ack; se a quel momento l’alert è ancora aperto, richiede di nuovo attenzione. Un alert risolto restituisce alert_not_open (uscita 5).
alerts mute#
Silenzia gli schermi per la manutenzione.
alerts mute [--screen-id ID]... [--tag TAG]... (--for DURATION | --until TIME) [--note TEXT]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--screen-id ID | string | almeno uno tra --screen-id, --tag | nessuno | Un scr_ ID schermo. Ripetilo, o elenca gli ID separati da virgola; massimo 100. |
--tag TAG | string | almeno uno tra --screen-id, --tag | nessuno | Ogni schermo con questo tag. Ripetilo, o elenca i tag separati da virgola; massimo 16. |
--for DURATION | durata | uno tra --for, --until | nessuno | Quanto dura il silenziamento da adesso: una durata come 30m, 4h o 2d, al massimo 29d23h59m. |
--until TIME | string | uno tra --for, --until | nessuno | Quando termina il silenziamento: un istante RFC 3339 con secondi e offset, come 2026-11-01T09:00:00-07:00, al massimo 30 giorni più avanti. |
--note TEXT | string | no | nessuno | Perché gli schermi sono silenziati, per le persone che vedono il silenziamento; al massimo 200 caratteri. |
screenrig alerts mute --tag Lobby --for 2h --note "Rewiring the lobby displays"La busta è il silenziamento: id (amt_…), screen_ids, tags, until, note, created_by e created_at. Gli alert di ogni schermo coperto indicano muted subito, compresi quelli già aperti. Un’organizzazione ha al massimo 50 silenziamenti attivi in tutti i suoi progetti; uno in più è alert_mute_limit_reached (uscita 5), e un silenziamento terminato non conta più. Dopo un silenziamento interrotto o ambiguo, leggi prima alerts mutes: ripetere lo stesso comando con --until entro 24 ore restituisce lo stesso silenziamento, mentre una ripetizione con --for conta da un nuovo momento e ne crea un altro.
alerts mutes#
Elenca i silenziamenti non ancora terminati, prima quello che termina prima.
alerts mutesscreenrig alerts mutesOgni riga è un silenziamento come lo stampa alerts mute.
alerts unmute#
Termina un silenziamento adesso.
alerts unmute <mute-id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<mute-id> | string | sì | nessuno | L’ID silenziamento amt_. |
screenrig alerts unmute amt_01EXAMPLEMUTE0000000Gli alert aperti di quegli schermi richiedono di nuovo attenzione, e gli avvisi successivi non vengono più saltati perché silenziati. Un silenziamento terminato restituisce not_found (uscita 4). Il registro eventi riporta alert_mute.deleted.
Webhook
Un webhook invia gli eventi di questo progetto a un endpoint HTTPS che gestisci come POST firmati, così un evento corrispondente può svegliare un agente, un bot o il tuo servizio. Ogni evento corrispondente arriva come lo stesso oggetto JSON che events list restituisce. Un webhook è una notifica nella sua forma originale: rientra nelle 50 notifiche dell’organizzazione e notifications list lo mostra. Per il nuovo lavoro usa notifications, che invia anche email e avvisi di schermo.
Ogni tentativo di consegna è gratuito e non conta nel limite orario di richieste agente dell’organizzazione.
webhooks create --url URL --event-types TYPES [--description TEXT] [--disabled]
webhooks list
webhooks show <id>
webhooks update <id> [--url URL] [--event-types TYPES] [--description TEXT | --clear-description]
[--enable | --disable] [--expect-rev REVISION]
webhooks delete <id> [--expect-rev REVISION]
webhooks rotate-secret <id> [--expect-rev REVISION]
webhooks test <id>
webhooks deliveries <id> [--before CURSOR] [--limit N]webhooks create risponde con webhook_limit_reached (uscita 5) quando l’organizzazione ha già 50 notifiche, mentre notifications create risponde con notification_limit_reached. Un URL rifiutato è webhook_url_rejected (uscita 8) in entrambi i casi.
--url accetta un URL https sulla porta 443 o 8443 il cui host risolve solo indirizzi pubblici Internet, verificato come per notifications create; un URL che contiene credenziali o un frammento # viene rifiutato localmente con uscita 2. --event-types accetta da 1 a 32 tipi esatti separati da virgole, come screen.online, o prefissi che terminano con .*, come screen.*. --description è lungo al massimo 200 caratteri. --disabled crea il webhook disabilitato. webhooks update --enable cancella lo stato di errore e riparte dall’evento corrente, quindi non viene inviato nulla di ciò che è successo mentre era disabilitato, e --disable fa fallire le consegne in sospeso con webhook_disabled. --expect-rev protegge la revisione (revision_conflict, uscita 6).
webhooks create e webhooks rotate-secret stampano il segreto di firma una sola volta in data.secret con l’avviso webhook_secret_shown_once; dopo una chiamata interrotta o ambigua, riesegui lo stesso comando entro 24 ore per ottenere di nuovo la stessa risposta. La consegna inizia con il primo evento successivo alla creazione del webhook. webhooks test mette in coda una consegna webhook.test solo per questo webhook; funziona su un webhook disabilitato, viene tentata una volta senza ritentativi, è misurata come qualsiasi consegna ed è limitata a 20 al minuto per organizzazione (rate_limited, uscita 7). webhooks list mostra le notifiche webhook di questo progetto, dalla più vecchia alla più recente, e una credenziale di sola lettura riceve ogni url vuoto con url_redacted true. webhooks deliveries legge il registro partendo dall’evento più recente, da 1 a 200 righe per pagina (predefinito 50), con next_cursor (whc1_…) come --before; il state di una riga è pending, succeeded o failed, con last_status e una classe last_error fissa. Verifica una consegna come descritto in Verifica una consegna.