docs: update machine documentation

Add documentation for the new validation options, and document
changes to the sudo APIs.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
Eric Callahan 2022-08-21 15:04:05 -04:00 committed by Eric Callahan
parent dd7e480cdd
commit 59471a7959
2 changed files with 96 additions and 10 deletions

View File

@ -124,6 +124,18 @@ sudo_password:
# see the [secrets] section for details. It is strongly recommended to only # see the [secrets] section for details. It is strongly recommended to only
# set this option when required and to use the aforementioned secrets module # set this option when required and to use the aforementioned secrets module
# when doing so. The default is no sudo password is set. # when doing so. The default is no sudo password is set.
validate_service:
# Enables validation of Moonraker's systemd service unit. If Moonraker
# detects that a change is necessary it will attempt to do so. Custom
# installations and installations that do systemd should set this to False.
# The default is True.
validate_config:
# Enables validation of Moonraker's configuration. If Moonraker detects
# deprecated options it will attempt to correct them. The default is True.
force_validation:
# By default Moonraker will not attempt to revalidate if a previous attempt
# at validation successfully completed. Setting this value to True will force
# Moonraker to perform validation. The default is False.
``` ```
!!! Note !!! Note

View File

@ -1367,36 +1367,61 @@ object reports total cpu usage, while each `cpuX` field is usage per core.
The `websocket_connections` field reports the number of active websockets The `websocket_connections` field reports the number of active websockets
currently connected to moonraker. currently connected to moonraker.
#### Check sudo access #### Get Sudo Info
Checks if Moonraker has permission to run commands as root. Retrieve sudo information status. Optionally checks if Moonraker has
permission to run commands as root.
HTTP request: HTTP request:
```http ```http
GET /machine/sudo GET /machine/sudo/info?check_access=false
``` ```
JSON-RPC request: JSON-RPC request:
```json ```json
{ {
"jsonrpc": "2.0", "jsonrpc": "2.0",
"method": "machine.sudo", "method": "machine.sudo.info",
"params": {
"check_access": false
},
"id": 7896 "id": 7896
} }
``` ```
Parameters:
- `check_access`: A boolean value, when set to `true` Moonraker will
attempt to run a command with elevated permissions. The result will
be returned in the `sudo_access` field of the response. Defaults to
`false`.
Returns: Returns:
An object in the following format: An object in the following format:
```json ```json
{ {
"sudo_access": true "sudo_access": null,
"linux_user": "pi",
"sudo_requested": false,
"request_messages": []
} }
``` ```
- `sudo_access`: The result of a request to check access. Returns
`true` if Moonraker has sudo permission, `false` if it does not,
and `null` if `check_access` is `false`.
- `linux_user`: The current linux user running Moonraker.
- `sudo_requested`: Returns true if Moonraker is currently requesting
sudo access.
- `request_messages`: An array of strings, each string describing
a pending sudo request. The array will be empty if no sudo
requests are pending.
#### Set sudo password #### Set sudo password
Sets/updates the sudo password currently used by Moonraker. When Sets/updates the sudo password currently used by Moonraker. When
the password is set using this endpoint the change is not persistent the password is set using this endpoint the change is not persistent
across restarts. across restarts. If Moonraker has one or more pending sudo requests
they will be processed.
HTTP request: HTTP request:
```http ```http
@ -1419,10 +1444,32 @@ JSON-RPC request:
"id": 7896 "id": 7896
} }
``` ```
Parameters:
- `password`: The linux user password used to grant elevated
permission. This parameter must be provided.
Returns: Returns:
`ok` on success. If the new password does not grant root permissions An object in the following format:
the request will return with an error. ```json
{
"sudo_responses": [
"Sudo password successfully set."
],
"is_restarting": false
}
```
- `sudo_responses`: An array of one or more sudo responses.
If there are pending sudo requests each request will provide
a response.
- `is_restarting`: A boolean value indicating that a sudo request
prompted Moonraker to restart its service.
This request will return an error if the supplied password is
incorrect or if any pending sudo requests fail.
### File Operations ### File Operations
@ -5353,6 +5400,33 @@ a specified `wake_time` for a dismissed announcement has expired.
The `params` array will contain an object with the `entry_id` of the The `params` array will contain an object with the `entry_id` of the
announcement that is no longer dismissed. announcement that is no longer dismissed.
#### Sudo alert event
Moonraker will emit the `notify_sudo_alert` notification when
a component has requested sudo access. The event is also emitted
when a sudo request has been granted.
```json
{
"jsonrpc": "2.0",
"method": "notify_sudo_alert",
"params": [
{
"sudo_requested": true,
"sudo_messages": [
"Root access required to update Moonraker's systemd service."
]
}
]
}
```
The `params` array contains an object with the following fields:
- `sudo_requested`: Returns true if Moonraker is currently requesting
sudo access.
- `request_messages`: An array of strings, each string describing
a pending sudo request. The array will be empty if no sudo
requests are pending.
#### Agent Events #### Agent Events
Moonraker will emit the `notify_agent_event` notification when it Moonraker will emit the `notify_agent_event` notification when it
@ -5809,7 +5883,7 @@ each entry is an object containing the following fields:
the announcement. the announcement.
When a client first connects to Moonraker it is recommended that the When a client first connects to Moonraker it is recommended that the
[list announcements](#list-announcements) API is called to retreive [list announcements](#list-announcements) API is called to retrieve
the current list of entries. A client may then watch for the the current list of entries. A client may then watch for the
[announcement update](#announcement-update-event) and [announcement update](#announcement-update-event) and
[announcement dismissed](#announcement-dismissed-event) notifications [announcement dismissed](#announcement-dismissed-event) notifications