Anwendungen
Eine Anwendung ist ein bereits erstelltes statisches Verzeichnis mit einer Wurzel index.html. Der Packer injiziert das Browser-SDK bei _screenrig/runtime.js und fügt sein Skript-Tag hinzu, sodass die App window.screenrig ohne Build-Schritt und ohne Abhängigkeiten erreicht. Nichts im Verzeichnis wird während des Packens gebaut oder ausgeführt.
app pack#
Packen Sie ein statisches Verzeichnis in ein deterministisches Archiv, ohne es hochzuladen.
app pack <directory> [--output FILE]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<directory> | Pfad | ja | keine | Das erstellte statische Verzeichnis. Es benötigt ein Root-index.html. |
--output FILE | Pfad | nein | nichts geschrieben | Schreiben Sie das Archiv auch an diesen Pfad. Ohne diesen meldet der Befehl das Archiv und behält es im Speicher. |
screenrig app pack ./lobby-board --output ./lobby-board.tgzDer Umschlag meldet sha256, compressed_bytes, expanded_bytes, file_count, die Eintragsliste und ob die SDK-Laufzeit injiziert wurde. app upload packt das Verzeichnis selbst, greifen Sie also nur zu diesem Befehl, wenn Sie das Archiv zuerst inspizieren wollen. Er läuft lokal und benötigt keine Anmeldung.
Ein Paket enthält höchstens 5000 Dateien, 250 MiB entpackt und 100 MiB komprimiert, jede Datei höchstens 32 MiB, mit Pfaden von höchstens 16 Ebenen und 255 Bytes. Das Packen lässt Namen aus, die mit . beginnen, node_modules/, bower_components/, jspm_packages/, vendor/, venv/, __pycache__/, CVS/, Source Maps *.map, Schlüssel- und Zugangsdatendateien (*.pem, *.key, *.p12, *.pfx, *.crt, *.cer, id_rsa, id_dsa, id_ecdsa, id_ed25519, credentials.json, secrets.json), Swap- und Backup-Dateien von Editoren, Thumbs.db und desktop.ini. Eine Datei .screenrigignore im Stammverzeichnis ergänzt Muster im gitignore-Stil, eines pro Zeile, und kann eine eingebaute Ausnahme nicht aufheben. Symlinks, Hardlinks, Sparse-Dateien, Geräte, doppelte Pfade (auch ohne Beachtung der Groß-/Kleinschreibung verglichen), Dateien, die sich während des Packens ändern, und ein Verzeichnis ohne index.html im Stamm werden unter Nennung des Pfads abgelehnt: Der Befehl beendet sich mit Code 2 und sendet nichts.
Anwendungen laufen unter einer Content-Security-Policy, die Inline-Code blockiert. Packing verschiebt Inline-Style- und Script-Blöcke in _screenrig-inline-*-Dateien neben jedem HTML-Dokument und verlinkt sie. Inline-Event-Handler wie onclick= und javascript: URLs können nicht verschoben werden; Packing lehnt sie ab und nennt Datei und Zeile.
app types#
Schreiben Sie die TypeScript-Typen für window.screenrig in ein Verzeichnis.
app types [directory]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
[directory] | Pfad | nein | das aktuelle Verzeichnis | Das Verzeichnis, in das screenrig.d.ts geschrieben wird. Es muss existieren. |
screenrig app types ./srcDer Umschlag meldet path, bytes, sha256 und written, das false ist, wenn die Datei bereits die aktuellen Typen enthielt. Die Datei passt zur Laufzeit, die app pack und app upload injizieren; führen Sie den Befehl daher nach einem Update der CLI erneut aus. Eine vorhandene screenrig.d.ts wird vollständig ersetzt; ein Verzeichnis oder ein Symlink an diesem Pfad wird abgelehnt, und der Befehl endet mit 2. Er läuft lokal und benötigt keine Anmeldung. TypeScript beschreibt, was die Typen deklarieren.
app dev#
Stellen Sie ein Verzeichnis in einem lokalen Player-Harness bereit, um eine Anwendung vor dem Hochladen auszuprobieren.
app dev <directory> [--port PORT] [--open] [--no-reload] [--kv FILE | --kv-from APP_ID]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<directory> | Pfad | ja | keine | Das erstellte statische Verzeichnis. Es benötigt ein Root-index.html. |
--port PORT | integer | nein | 18890 | Der Port, auf dem die Testumgebung lauscht. Die Laufzeit vertraut der Testumgebung nur auf 18890, daher wird jeder andere Port abgelehnt. |
--open | boolean | nein | aus | Öffnen Sie den Harness in Ihrem Browser. |
--no-reload | boolean | nein | aus | Lassen Sie die Seite unverändert, wenn sich eine Datei ändert. Ohne dies wird die Seite bei jeder Änderung neu geladen. |
--kv FILE | Pfad | nein | .screenrig-dev/kv.json | Die JSON-Datei, die den Schlüssel/Wert-Speicher des Laufs enthält. |
--kv-from APP_ID | string | nein | keine | Lesen Sie den Schlüssel/Wert-Speicher dieser hochgeladenen Anwendung statt einer Datei, schreibgeschützt. |
screenrig app dev ./lobby-board --openDer Befehl stellt den Harness unter http://play.screenrig.localhost:18890 bereit und läuft, bis Sie ihn beenden. Er injiziert die Laufzeit wie app pack und meldet beim Bearbeiten, was das Packen ablehnt, mit Nennung von Datei und Zeile. Der Harness simuliert die Fähigkeiten, den Viewport, den Namen, die Zeitzone und die Parameter des Bildschirms, den Seitentimer, Pause, Anzeige und Verlassen, Geräteereignisse sowie serielle Ports, GPIO-Leitungen, Peripheriegeräte für Bluetooth LE und Drucker. Zeilen von emit und log werden im Terminal ausgegeben. Lokal entwickeln beschreibt die Steuerelemente.
app upload#
Packen Sie ein Verzeichnis, veröffentlichen Sie es als neue Anwendungsfreigabe und warten Sie, bis die Veröffentlichung erfolgreich ist.
app upload <directory> [--name NAME] [--no-wait] [--poll-ms MS] [--timeout MS]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<directory> | Pfad | ja | keine | Das erstellte statische Verzeichnis. |
--name NAME | string | nein | ein generierter Name | Name der Anwendung, 1 bis 120 Zeichen nach dem Kürzen von Leerraum, ohne Steuerzeichen. |
--no-wait | boolean | nein | aus | Gibt zurück, bevor der Veröffentlichungsprozess abgeschlossen ist. Führen Sie operations wait aus, bevor Sie die Version in eine Playlist einfügen. |
--poll-ms MS | integer | nein | 1000 | Intervall zwischen Abfragen von Operationen während des Wartens. |
--timeout MS | integer | nein | 120000 | Frist für das Warten. Sie begrenzt auch jede zugrunde liegende Anfrage. |
screenrig app upload ./lobby-board --name "Lobby board"Lese drei Felder: data.operation.state ist succeeded, data.application.release_id ist die rel_ ID, ein application Primitive pinnt, und data.application.id ist die app_ ID, die kv Befehle verwenden. Ein erfolgreicher Vorgang, nicht eine Release-ID allein, bedeutet, dass die Veröffentlichung nutzbar ist.
Jede app upload erstellt eine neue Anwendung und eine erste unveränderliche Version. Um eine spätere Version derselben App zu veröffentlichen, verwenden Sie app update. Eine Playlist bedient weiterhin die Version, die sie bereits festhält, bis Sie dieses Primitive bearbeiten.
Eine unterbrochene Übertragung zum Speicher wird bis zu 4-mal versucht, solange ihre Upload-URL gültig ist. Schlägt sie weiterhin fehl, führen Sie denselben Befehl erneut aus, um denselben Upload fortzusetzen.
app update#
Eine neue Version einer bestehenden Anwendung veröffentlichen und dabei Identität, Namen und Anwendungsschlüssel/Wert erhalten.
app update <id> <directory> [--expect-rev REVISION] [--no-wait] [--poll-ms MS] [--timeout MS]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<id> | string | ja | keine | Die app_ Anwendungs-ID. |
<directory> | Pfad | ja | keine | Das erstellte statische Verzeichnis. |
--expect-rev REVISION | string | nein | keine | Optionale Revisionsvoraussetzung. Weglassen, um die aktuelle Ressource zu schreiben. Ein übergebener veralteter Wert ist revision_conflict: erneut abrufen, erneut anwenden, erneut versuchen. |
--no-wait | boolean | nein | aus | Gibt zurück, bevor der Veröffentlichungsprozess abgeschlossen ist. Führen Sie operations wait aus, bevor Sie die Version in eine Playlist einfügen. |
--poll-ms MS | integer | nein | 1000 | Intervall zwischen Abfragen von Operationen während des Wartens. |
--timeout MS | integer | nein | 120000 | Frist für das Warten. Sie begrenzt auch jede zugrunde liegende Anfrage. |
screenrig app update app_01EXAMPLEAPP00000000000 ./lobby-boardDer Name bleibt erhalten; ändern Sie ihn mit app rename. Warten Sie auf data.operation.state: "succeeded" und verwenden Sie dann playlist replace-release, um die genaue Seite, das Primitive, die neue Version und die betroffenen Bildschirme zu überprüfen. Wenden Sie dies mit dem zurückgegebenen Impact-Token und einer optionalen Revisionssperre wie im Playlist-Workflow beschrieben an. Bestehende Playlist-Pins bleiben bis zur Anwendung unverändert. Bei einem Revisionskonflikt lesen Sie die App erneut, bevor Sie entscheiden, ob Sie es erneut versuchen; erstellen Sie keine Ersatzanwendung, nur um den Konflikt zu umgehen.
app list#
Anwendungen des Projekts auflisten.
app listKeine Parameter.
screenrig app listapp rename#
Den Anzeigenamen einer Anwendung ändern.
app rename <id> --name NAME [--expect-rev REVISION]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<id> | string | ja | keine | Die app_ Anwendungs-ID. |
--name NAME | string | ja | keine | Der neue Name, 1 bis 120 Zeichen nach dem Kürzen von Leerraum, ohne Steuerzeichen. |
--expect-rev REVISION | string | nein | keine | Optionale Revisionsvoraussetzung. Weglassen, um die aktuelle Ressource zu schreiben. Ein übergebener veralteter Wert ist revision_conflict: erneut abrufen, erneut anwenden, erneut versuchen. |
screenrig app rename app_01EXAMPLEAPP00000000000 --name "Lobby welcome"Nur der Anzeigename ändert sich. Die Anwendungs-ID, ihre Versionen, ihre Schlüssel-Wert-Daten und die Playlists, die ihre Versionen anheften, bleiben unverändert, und es wird kein Verzeichnis hochgeladen. Eine Umbenennung auf den aktuellen Namen lässt die Revision unverändert. Namen dürfen sich wiederholen; sprechen Sie eine Anwendung über ihre ID an.
app show#
Eine Anwendung lesen.
app show <id>| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<id> | string | ja | keine | Die app_ Anwendungs-ID. |
screenrig app show app_01EXAMPLEAPP00000000000latest_ready_release fehlt, bis eine erste Veröffentlichung bereit ist. Der Veröffentlichungsstatus lebt auf der Operation und der Version, nicht auf der Anwendung. last_used_at fehlt, bis ein Bildschirm die Anwendung zum ersten Mal abspielt.
app delete#
Eine Anwendung und alle ihre Releases löschen.
app delete <id> [--expect-rev REVISION]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<id> | string | ja | keine | Die app_ Anwendungs-ID. |
--expect-rev REVISION | string | nein | keine | Optionale Revisionsvoraussetzung. Weglassen, um die aktuelle Ressource zu schreiben. Ein übergebener veralteter Wert ist revision_conflict: erneut abrufen, erneut anwenden, erneut versuchen. |
screenrig app delete app_01EXAMPLEAPP00000000000Es gibt kein Löschverfahren pro Release. Solange ein Bildschirm eine der Releases der Anwendung zeigt, antwortet das Löschen mit application_in_use: Geben Sie diesen Bildschirmen zuerst andere Inhalte. Das Löschen prüft keine Playlists, die eine Release anheften, ohne sie anzuzeigen, aktualisieren oder löschen Sie daher auch diese Playlists.
Anwendungs-Schlüssel/Wert
Key/Value-Speicher gehört zu einer Anwendung und ist binärsicher. Jeder Befehl nimmt --app-id mit der app_ ID von app upload und niemals eine Release-ID. Verwenden Sie genau einen Wertmodus pro Schreibvorgang.
kv list#
Für eine Anwendung gespeicherte Schlüssel auflisten.
kv list --app-id ID| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
--app-id ID | string | ja | keine | Die app_ Anwendungs-ID. |
screenrig kv list --app-id app_01EXAMPLEAPP00000000000kv get#
Einen Schlüssel lesen.
kv get --app-id ID <key>| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
--app-id ID | string | ja | keine | Die app_ Anwendungs-ID. |
<key> | string | ja | keine | Der zu lesende Schlüssel. |
screenrig kv get --app-id app_01EXAMPLEAPP00000000000 menuDie Antwort enthält den Wert in data.value_base64, auch JSON-Werte: Dekodieren Sie ihn und parsen Sie JSON nur, wenn data.content_type JSON angibt. kv list lässt Werte weg.
kv set#
Schreiben Sie einen Schlüssel aus JSON, einer Datei oder Base64-Bytes.
kv set --app-id ID <key> --json-value JSON [--expect-rev REVISION]
kv set --app-id ID <key> --file FILE [--content-type TYPE] [--expect-rev REVISION]
kv set --app-id ID <key> --value-base64 BASE64 [--content-type TYPE] [--expect-rev REVISION]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
--app-id ID | string | ja | keine | Die app_ Anwendungs-ID. |
<key> | string | ja | keine | Der zu schreibende Schlüssel. |
--json-value JSON | string | ein Modus | keine | Ein JSON-Wert, vor dem Senden kanonisiert, immer als application/json gespeichert. Ein expliziter application/json Inhaltstyp wird ebenfalls akzeptiert. |
--file FILE | Pfad | ein Modus | keine | Liest die Wert-Bytes aus einer Datei, höchstens 1 MiB, oder mit - von stdin. Standard ist application/octet-stream. |
--value-base64 BASE64 | string | ein Modus | keine | Kanonisches gepolstertes Standard-Base64 ohne Leerzeichen, maximal 1.398.104 Zeichen; ein leerer Wert ist gültig. Standard ist application/octet-stream. |
--content-type TYPE | string | nein | application/octet-stream für Bytes | Ein bis 127 Zeichen. |
--expect-rev REVISION | string | nein | keine | Nur schreiben, wenn der gespeicherte Eintrag noch auf dieser Revision ist. |
screenrig kv set --app-id app_01EXAMPLEAPP00000000000 menu --json-value '{"soup":"lentil"}'kv delete#
Einen Schlüssel löschen.
kv delete --app-id ID <key> [--expect-rev REVISION]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
--app-id ID | string | ja | keine | Die app_ Anwendungs-ID. |
<key> | string | ja | keine | Der zu löschende Schlüssel. |
--expect-rev REVISION | string | nein | keine | Optionale Revisionsvoraussetzung. Weglassen, um die aktuelle Ressource zu schreiben. Ein übergebener veralteter Wert ist revision_conflict: erneut abrufen, erneut anwenden, erneut versuchen. |
screenrig kv delete --app-id app_01EXAMPLEAPP00000000000 menuKey/Value-Webhooks
Ein Schlüssel/Wert-Webhook ist eine URL, die einen Schlüssel einer Anwendung schreibt, sodass jedes externe System wie eine Verkaufsstelle, ein Tabellenkalkulationsskript oder ein Cron-Job Daten mit einem HTTP POST an Bildschirme sendet. Eine Anwendung, die sich mit kv.onChange abonniert, aktualisiert innerhalb von Sekunden jeden Bildschirm, der sie ausführt. Eine Anwendung hat höchstens 20 Webhooks.
Der Absender authentifiziert sich mit dem Geheimnis des Webhooks, srkw_…, als Authorization: Bearer <secret> oder per HTTP Basic mit der Webhook-ID als Benutzernamen und dem Geheimnis als Passwort; ein Geheimnis in der URL oder im Query-String wird nie akzeptiert. Der Rohinhalt, höchstens 1 MiB, wird zum Wert des Schlüssels und Content-Type zu seinem Inhaltstyp. Jeder Post zählt nicht zum Limit für Agentenanfragen, zählt wie kv set zum Speicher, erhöht die Revision und antwortet mit den neuen Metadaten des Schlüssels, nie mit seinem Wert. Ein optionaler Idempotency-Key-Header dedupliziert die Wiederholungen eines Absenders 24 Stunden lang. Ein Webhook nimmt höchstens 120 Posts pro Minute an, und ein fehlendes oder falsches Geheimnis oder ein unbekannter Webhook wird mit 401 beantwortet. Daten aus einem anderen System senden enthält curl-Beispiele.
Das Geheimnis wird nur von kv webhook create und kv webhook rotate-secret angezeigt. Die URL ist nicht geheim. Das Erstellen, Drehen und Löschen eines Webhooks fügt kv_webhook.created, kv_webhook.secret_rotated und kv_webhook.deleted dem Projekt-Ereignisprotokoll hinzu, und jeder Post fügt kv.updated wie jeder Schreibvorgang hinzu.
| Problemcode | Beenden | Bedeutung |
|---|---|---|
kv_webhook_limit_reached | 5 | Die Anwendung oder die Karte hat bereits 20 Webhooks. Es wurde nichts erstellt. Löschen Sie zuerst einen. |
not_found | 4 | Die Anwendung ist nicht in diesem Projekt oder kein Webhook mit dieser ID ist darauf vorhanden. |
card_not_found | 4 | Die Karte gehört nicht zu diesem Projekt. |
kv webhook create#
Einen Webhook erstellen, der einen Schlüssel einer Anwendung oder mit --card das Datendokument einer Karte schreibt, und seine URL und sein Secret einmalig erhalten.
kv webhook create <key> --app-id ID [--description TEXT]
kv webhook create --card CARD_ID [--description TEXT] [--map FILE|-] [--key-template TEMPLATE] [--signing]
[--verify VENDOR [--verify-secret-file FILE|-] [--verify-header NAME] [--verify-encoding hex|base64]
[--verify-timestamp-header NAME] [--verify-tolerance SECONDS]] [--handshake VENDOR]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<key> | string | mit --app-id | keine | Der Schlüssel, den jede Zustellung schreibt, 1 bis 256 Zeichen: zuerst ein Buchstabe oder eine Ziffer, dann Buchstaben, Ziffern, ., _, :, / oder -. Der Schlüssel muss noch nicht existieren. Ein Karten-Webhook hat keinen Schlüssel. |
--app-id ID | string | eines von | keine | Die app_ Anwendungs-ID. Geben Sie genau eine von --app-id und --card an. |
--card CARD_ID | string | eines von | keine | Die crd_ Karten-ID: Der Webhook schreibt das Datendokument der Karte. Siehe Karten-Webhooks. |
--description TEXT | string | nein | keine | Was an ihn sendet, maximal 200 Bytes. Es darf keine Zugangsdaten enthalten. |
--map FILE | Pfad | nein | keine | Das Mapping, das das Dokument aus dem gesendeten Body aufbaut: ein JSON-Objekt von höchstens 64 KiB aus einer Datei oder - für stdin. Ohne es ist das gesendete Objekt das Dokument. |
--key-template TEMPLATE | string | nein | keine | Schreibt Dokumente mit Schlüsseln unter einem aus {screen.field.NAME}-Platzhaltern gefüllten Schlüssel, etwa room-{screen.field.room}. |
--signing | boolean | nein | aus | Verlangt außerdem ScreenRig-Signature bei jeder Zustellung und gibt das Signatur-Secret nur einmal aus. Nicht mit --verify kombinierbar. |
--verify VENDOR | string | nein | keine | Akzeptiert Zustellungen mit der eigenen Signatur dieses Anbieters anstelle des srkw_-Secrets des Webhooks, das daneben weiter funktioniert: github, stripe, shopify, slack, linear, vercel, asana oder generic_hmac. |
--verify-secret-file FILE | Pfad | mit --verify | keine | Liest das Secret des Anbieters aus einer Datei oder mit - von stdin (nie als Argument): das Secret, das GitHub, Stripe, Shopify, Slack, Linear oder Vercel anzeigt, oder das eines generic_hmac-Senders. asana nimmt keines: Sein Handshake liefert es. Nur eine Option liest stdin. |
--verify-header NAME | string | mit generic_hmac | keine | Der Header, der die Signatur trägt, 1 bis 100 Buchstaben, Ziffern, - oder _. |
--verify-encoding ENCODING | string | nein | hex | Mit generic_hmac: wie die Signatur geschrieben wird, hex oder base64; sie darf mit sha256= beginnen. |
--verify-timestamp-header NAME | string | nein | keine | Mit generic_hmac: ein Header, der die Unix-Zeit in Sekunden oder in Millisekunden mit 13 Ziffern trägt. Der signierte Text ist dann der Zeitstempel, ein Punkt und der Body. |
--verify-tolerance SECONDS | integer | nein | 300 | Mit --verify-timestamp-header: wie weit der Zeitstempel von der Uhr des Servers abweichen darf, 1 bis 86400. |
--handshake VENDOR | string | nein | keine | Beantwortet die Einrichtungsabfrage von microsoft_graph, monday, trello oder azure_event_grid. Slack und Asana beantworten ihre über --verify. |
screenrig kv webhook create menu --app-id app_01EXAMPLEAPP00000000000 --description "Point of sale menu feed"
screenrig kv webhook create --card crd_01EXAMPLEBOARD0000000000 --map alert-map.json --description "CMS alerts"--map, --key-template, --signing, --verify mit seinen Optionen und --handshake gelten nur für einen Karten-Webhook.
Der Umschlag ist der Webhook: data.id (kvw_…), data.key oder, bei einer Karte, data.card_id, data.url (https://api.screenrig.ai/api/applications/<app_id>/kv-webhooks/<id>/write oder https://api.screenrig.ai/api/cards/<card_id>/kv-webhooks/<id>/write) und data.secret (srkw_…). Ein signierender Karten-Webhook enthält außerdem data.signing_secret (whsec_…). Tragen Sie die URL und die Secrets jetzt im sendenden System ein. Kein späterer Befehl zeigt sie erneut an. Nach einer unterbrochenen oder mehrdeutigen Erstellung führen Sie denselben Befehl innerhalb von 24 Stunden erneut aus: Er verwendet den gespeicherten Idempotenzschlüssel, und der Server liefert denselben Webhook und dieselben Secrets zurück, statt einen neuen zu erstellen.
kv webhook list#
Die Webhooks einer Anwendung oder einer Karte auflisten, die ältesten zuerst.
kv webhook list (--app-id ID | --card CARD_ID)| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
--app-id ID | string | eines von | keine | Die app_ Anwendungs-ID. Geben Sie genau eine von --app-id und --card an. |
--card CARD_ID | string | eines von | keine | Die crd_ Karten-ID. |
screenrig kv webhook list --app-id app_01EXAMPLEAPP00000000000
screenrig kv webhook list --card crd_01EXAMPLEBOARD0000000000Jedes Element hat id, key, description, url, created_at und, sobald es geschrieben wurde, last_used_at. Das Element eines Karten-Webhooks hat card_id anstelle von key, dazu mapping (null, wenn das gesendete Objekt das Dokument ist), enabled, signing und, falls gesetzt, key_template, verify und handshake. Eine Liste enthält niemals ein Secret.
kv webhook delete#
Einen Webhook löschen. Seine URL funktioniert sofort nicht mehr; der Schlüssel oder das Dokument der Karte behält seinen Wert.
kv webhook delete <webhook_id> (--app-id ID | --card CARD_ID)| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<webhook_id> | string | ja | keine | Die kvw_ Webhook-ID. |
--app-id ID | string | eines von | keine | Die app_ Anwendungs-ID. Geben Sie genau eine von --app-id und --card an. |
--card CARD_ID | string | eines von | keine | Die crd_ Karten-ID. |
screenrig kv webhook delete kvw_01EXAMPLEWEBHOOK00000 --app-id app_01EXAMPLEAPP00000000000
screenrig kv webhook delete kvw_01EXAMPLEWEBHOOK00000 --card crd_01EXAMPLEBOARD0000000000kv webhook rotate-secret#
Geheimnis eines Webhooks ersetzen und das neue einmal erhalten.
kv webhook rotate-secret <webhook_id> (--app-id ID | --card CARD_ID) [--signing]| Parameter | Typ | Erforderlich | Standard | Notizen |
|---|---|---|---|---|
<webhook_id> | string | ja | keine | Die kvw_ Webhook-ID. |
--app-id ID | string | eines von | keine | Die app_ Anwendungs-ID. Geben Sie genau eine von --app-id und --card an. |
--card CARD_ID | string | eines von | keine | Die crd_ Karten-ID. |
--signing | boolean | nein | aus | Mit --card: ersetzt das Signatur-Secret statt des Webhook-Secrets. |
screenrig kv webhook rotate-secret kvw_01EXAMPLEWEBHOOK00000 --app-id app_01EXAMPLEAPP00000000000
screenrig kv webhook rotate-secret kvw_01EXAMPLEWEBHOOK00000 --card crd_01EXAMPLEBOARD0000000000 --signingDer Umschlag enthält das neue Secret in data.secret. Das alte Secret funktioniert sofort nicht mehr, tragen Sie das neue also im sendenden System ein. Mit --signing enthält der Umschlag stattdessen das neue Signatur-Secret in data.signing_secret, und das srkw_-Secret des Webhooks bleibt bestehen. Nach einer unterbrochenen oder mehrdeutigen Rotation führen Sie denselben Befehl erneut aus: Er verwendet den gespeicherten Idempotenzschlüssel, und der Server liefert die bereits erfolgte Rotation zurück, statt erneut zu rotieren.