You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/images/docker-baseimage-selkies.md
+14-13Lines changed: 14 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -226,26 +226,27 @@ When secure mode is enabled (`SELKIES_MASTER_TOKEN` is set), the server runs a c
226
226
227
227
**Permissions Object Fields:**
228
228
* `"role"`: (String, required) Can be one of the following:
229
-
* `"controller"`: Full access. Can send keyboard, mouse, and all other input events.
230
-
* `"viewer"`: Restricted access. Primarily for viewing the stream. Can be granted specific input rights via the `slot` property.
231
-
* `"slot"`: (Integer or `null`, required) Assigns an input slot, for gamepads.
232
-
* `null`: No specific input slot. A viewer with a `null` slot has no input capabilities.
233
-
* `1`: Grants the `viewer` control over the **Player 1** gamepad *only*.
234
-
* `2`: Grants the `viewer` control over the **Player 2** gamepad *only*.
235
-
* `3`: Grants the `viewer` control over the **Player 3** gamepad *only*.
236
-
* `4`: Grants the `viewer` control over the **Player 4** gamepad *only*.
237
-
238
-
**Behavior:** When a valid request is received, the server replaces its entire set of active tokens with the new set provided in the payload. It then runs a reconciliation process: any connected client whose token is now invalid or has changed permissions will be disconnected and users input capabilities will be modified live.
229
+
* `"controller"`: Full access. Can send keyboard, mouse, and all other input events (unless overridden by `mk_control`).
230
+
* `"viewer"`: Restricted access. Primarily for viewing the stream. Can be granted specific input rights via the `slot` or `mk_control` properties.
231
+
* `"slot"`: (Integer or `null`, required) Assigns an input slot, primarily for gamepads.
232
+
* `null`: No specific input slot.
233
+
* `1` - `4`: Grants the user control over the specific virtual gamepad slot (Player 1 through Player 4).
* If `true` on **any** active token in the set, only that specific client processes mouse and keyboard events.
236
+
* If `false` or omitted on **all** active tokens, mouse and keyboard access defaults to clients with the `"controller"` role.
237
+
238
+
**Behavior:** When a valid request is received, the server replaces its entire set of active tokens with the new set provided in the payload. It then runs a reconciliation process:
239
+
1. Clients with tokens not present in the new set are disconnected.
240
+
2. Clients with tokens that remain valid but have changed permissions (`role`, `slot`, or `mk_control`) receive an immediate state update without disconnection.
0 commit comments