Moonraker's external API documentation has been significantly overhauled in an effort to improve clarity and readability. All parameters and responses are documented with specifications. Tables and other elements are used to make documentation more visible and less verbose. Spelling and other corrections have also been added. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
771 lines
36 KiB
Markdown
771 lines
36 KiB
Markdown
# Update Management
|
|
|
|
The endpoints in the section are available when the `[update_manager]`
|
|
component has been configured in `moonraker.conf`. They may be used
|
|
to manage updates for Moonraker, Klipper, OS Packages, and additional
|
|
software added through the configuration.
|
|
|
|
## Get update status
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
GET /machine/update/status
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "machine.update.status",
|
|
"id": 4644
|
|
}
|
|
```
|
|
|
|
/// api-parameters
|
|
open: True
|
|
|
|
| Name | Type | Default | Description |
|
|
| --------- | :--: | ------- | ----------------------------------------------- |
|
|
| `refresh` | bool | false | *DEPRECATED*. When `true` an attempt will |
|
|
| | | | be made to refresh all updaters. The refresh |^
|
|
| | | | will abort under the following conditions:<BR/> |^
|
|
| | | | - an update is in progress<BR/> |^
|
|
| | | | - a print is in progress<BR/> |^
|
|
| | | | - the update manager hasn't completed |^
|
|
| | | | initialization<BR/> |^
|
|
| | | | - a refresh has been performed within the last |^
|
|
| | | | 60 seconds<BR/> |^
|
|
|
|
//// Note
|
|
The `refresh` parameter is deprecated. Front end developers should use the
|
|
[refresh endpoint](#refresh-update-status) to request a refresh.
|
|
////
|
|
///
|
|
|
|
/// collapse-code
|
|
```{.json #status-example-response .apiresponse title="Example Response"}
|
|
{
|
|
"busy": false,
|
|
"github_rate_limit": 60,
|
|
"github_requests_remaining": 57,
|
|
"github_limit_reset_time": 1615836932,
|
|
"version_info": {
|
|
"system": {
|
|
"name": "system",
|
|
"configured_type": "system",
|
|
"package_count": 4,
|
|
"package_list": [
|
|
"libtiff5",
|
|
"raspberrypi-sys-mods",
|
|
"rpi-eeprom-images",
|
|
"rpi-eeprom"
|
|
]
|
|
},
|
|
"moonraker": {
|
|
"channel": "dev",
|
|
"debug_enabled": true,
|
|
"is_valid": true,
|
|
"configured_type": "git_repo",
|
|
"corrupt": false,
|
|
"info_tags": [],
|
|
"detected_type": "git_repo",
|
|
"name": "moonraker",
|
|
"remote_alias": "arksine",
|
|
"branch": "master",
|
|
"owner": "arksine",
|
|
"repo_name": "moonraker",
|
|
"version": "v0.7.1-364",
|
|
"remote_version": "v0.7.1-364",
|
|
"rollback_version": "v0.7.1-360",
|
|
"current_hash": "ecfad5cff15fff1d82cb9bdc64d6b548ed53dfaf",
|
|
"remote_hash": "ecfad5cff15fff1d82cb9bdc64d6b548ed53dfaf",
|
|
"is_dirty": false,
|
|
"detached": true,
|
|
"commits_behind": [],
|
|
"git_messages": [],
|
|
"full_version_string": "v0.7.1-364-gecfad5c",
|
|
"pristine": true,
|
|
"recovery_url": "https://github.com/Arksine/moonraker.git",
|
|
"remote_url": "https://github.com/Arksine/moonraker.git",
|
|
"warnings": [],
|
|
"anomalies": [
|
|
"Unofficial remote url: https://github.com/Arksine/moonraker-fork.git",
|
|
"Repo not on official remote/branch, expected: origin/master, detected: altremote/altbranch",
|
|
"Detached HEAD detected"
|
|
]
|
|
},
|
|
"mainsail": {
|
|
"name": "mainsail",
|
|
"owner": "mainsail-crew",
|
|
"version": "v2.1.1",
|
|
"remote_version": "v2.1.1",
|
|
"rollback_version": "v2.0.0",
|
|
"configured_type": "web",
|
|
"channel": "stable",
|
|
"info_tags": [
|
|
"desc=Mainsail Web Client",
|
|
"action=some_action"
|
|
],
|
|
"warnings": [],
|
|
"anomalies": [],
|
|
"is_valid": true
|
|
},
|
|
"fluidd": {
|
|
"name": "fluidd",
|
|
"owner": "fluidd-core",
|
|
"version": "v1.16.2",
|
|
"remote_version": "v1.16.2",
|
|
"rollback_version": "v1.15.0",
|
|
"configured_type": "web",
|
|
"channel": "beta",
|
|
"info_tags": [],
|
|
"warnings": [],
|
|
"anomalies": [],
|
|
"is_valid": true
|
|
},
|
|
"klipper": {
|
|
"channel": "dev",
|
|
"debug_enabled": true,
|
|
"is_valid": true,
|
|
"configured_type": "git_repo",
|
|
"corrupt": false,
|
|
"info_tags": [],
|
|
"detected_type": "git_repo",
|
|
"name": "klipper",
|
|
"remote_alias": "origin",
|
|
"branch": "master",
|
|
"owner": "Klipper3d",
|
|
"repo_name": "klipper",
|
|
"version": "v0.10.0-1",
|
|
"remote_version": "v0.10.0-41",
|
|
"rollback_version": "v0.9.1-340",
|
|
"current_hash": "4c8d24ae03eadf3fc5a28efb1209ce810251d02d",
|
|
"remote_hash": "e3cbe7ea3663a8cd10207a9aecc4e5458aeb1f1f",
|
|
"is_dirty": false,
|
|
"detached": false,
|
|
"commits_behind": [
|
|
{
|
|
"sha": "e3cbe7ea3663a8cd10207a9aecc4e5458aeb1f1f",
|
|
"author": "Kevin O'Connor",
|
|
"date": "1644534721",
|
|
"subject": "stm32: Clear SPE flag on a change to SPI CR1 register",
|
|
"message": "The stm32 specs indicate that the SPE bit must be cleared before\nchanging the CPHA or CPOL bits.\n\nReported by @cbc02009 and @bigtreetech.\n\nSigned-off-by: Kevin O'Connor <kevin@koconnor.net>",
|
|
"tag": null
|
|
},
|
|
{
|
|
"sha": "99d55185a21703611b862f6ce4b80bba70a9c4b5",
|
|
"author": "Kevin O'Connor",
|
|
"date": "1644532075",
|
|
"subject": "stm32: Wait for transmission to complete before returning from spi_transfer()",
|
|
"message": "It's possible for the SCLK pin to still be updating even after the\nlast byte of data has been read from the receive pin. (In particular\nin spi mode 0 and 1.) Exiting early from spi_transfer() in this case\ncould result in the CS pin being raised before the final updates to\nSCLK pin.\n\nAdd an additional wait at the end of spi_transfer() to avoid this\nissue.\n\nSigned-off-by: Kevin O'Connor <kevin@koconnor.net>",
|
|
"tag": null
|
|
}
|
|
],
|
|
"git_messages": [],
|
|
"full_version_string": "v0.10.0-1-g4c8d24ae-shallow",
|
|
"pristine": true,
|
|
"recovery_url": "https://github.com/Klipper3d/klipper.git",
|
|
"remote_url": "https://github.com/Klipper3d/klipper.git",
|
|
"warnings": [],
|
|
"anomalies": []
|
|
}
|
|
}
|
|
}
|
|
```
|
|
///
|
|
|
|
/// api-response-spec
|
|
open: True
|
|
|
|
| Field | Type | Description |
|
|
| --------------------------- | :----: | ----------------------------------------------------- |
|
|
| `busy` | bool | Set to `true` if an update is currently in progress. |
|
|
| `github_rate_limit` | int | The maximum number of GitHub API requests allowed. |
|
|
| | | An unauthenticated user is typically allowed 60 |^
|
|
| | | requests per hour. |^
|
|
| `github_requests_remaining` | int | The number of GitHub API requests remaining until the |
|
|
| | | reset time is reached. |^
|
|
| `github_limit_reset_time` | int | The time when the rate limit will reset, reported in |
|
|
| | | unix time. |^
|
|
| `version_info` | object | A `Version Info` object containing the update status |
|
|
| | | for each configured software updater. |^
|
|
| | | #version-info-desc |+
|
|
{ #update-status-spec }
|
|
|
|
| Field | Type | Description |
|
|
| --------- | :----: | ---------------------------------------------------------- |
|
|
| `system` | object | A [System Status](#system-status-spec) object. |
|
|
| | | This field is only available when the `update_manager` is |^
|
|
| | | configured to update system packages. |^
|
|
| _updater_ | object | A `Status Update` object. There are multiple sub-types of |
|
|
| | | status objects, the specific type can be determined by the |^
|
|
| | | object's [configured_type](#configured-type-desc) field. |^
|
|
| | | The `version_info` object may have multiple _updater_ |^
|
|
| | | items. The field name for each updater will match the |^
|
|
| | | object's `name`. |^
|
|
{ #version-info-desc } Version Info
|
|
|
|
| Type | Description |
|
|
| ---------- | ---------------------------------------------------------- |
|
|
| `git_repo` | A [Git Repo Status](#git-repo-status-spec) object. |
|
|
| | The software is distributed through a git repo on GitHub. |^
|
|
| `web` | A [Net Hosted Status](#net-app-status-spec ) object. |
|
|
| | The software is a web application. |^
|
|
| | Updates are GitHub hosted releases packaged in a zip file. |^
|
|
| `zip` | A [Net Hosted Status](#net-app-status-spec ) object. |
|
|
| | The software is a local application, optionally installed |^
|
|
| | as a system service. Updates are GitHub hosted releases |^
|
|
| | packaged in a zip file. |^
|
|
| `python` | A [Python Package Status](#python-status-spec) object. |
|
|
| | The software is a Python Application installed in its own |^
|
|
| | virtualenv. Updates may be hosted on PyPI or GitHub. |^
|
|
| | Pip is used to deploy updates. |^
|
|
| `system` | A [System Status](#system-status-spec) object. This type |
|
|
| | is internally managed and only applicable to the system |^
|
|
| | package manager. |^
|
|
{ #configured-type-desc } Configured Types
|
|
|
|
| Field | Type | Description |
|
|
| ---------------------- | :------: | -------------------------------------------------------- |
|
|
| `name` | string | The name of the software to manage updates for. |
|
|
| `configured_type` | string | The [type](#configured-type-desc) of updater configured. |
|
|
| `detected_type` | string | **DEPRECATED.** Will always report `git_repo`. |
|
|
| `channel` | string | The configured update `channel`. |
|
|
| | | #git-repo-channel-desc |+
|
|
| `channel_invalid` | bool | A value of `true` indicates that the current `channel` |
|
|
| | | configuration is not supported by the type. Will |^
|
|
| | | always be `false` for `git_repo` types as all channels |^
|
|
| | | are supported. |^
|
|
| `debug_enabled` | bool | Set to `true` when Moonraker's debug features are |
|
|
| | | enabled. In this condition updates may proceed when the |^
|
|
| | | repo's HEAD is detached. |^
|
|
| `is_valid` | bool | Set to `true` when repo detection completes and passes |
|
|
| | | all validity checks. |^
|
|
| `version` | string | The current detected version. |
|
|
| `remote_version` | string | The latest version available on the remote. |
|
|
| `rollback_version` | string | The version prior to the last update. This version is |
|
|
| | | used during a `rollback` request. |^
|
|
| `full_version_string` | string | The complete version string reported by `git describe`. |
|
|
| | | Generally includes an abbreviated hash of the current |^
|
|
| | | commit and tags such as "dirty" when appropriate. |^
|
|
| `remote_hash` | string | The latest available commit hash on the remote. |
|
|
| `current_hash` | string | The commit hash the local repo is currently on. |
|
|
| `remote_alias` | string | The git alias of the remote. The git default for the |
|
|
| | | primary alias is `origin`. |^
|
|
| `remote_url` | string | Full URL of the git remote matching the current |
|
|
| | | `remote_alias`. |^
|
|
| `recovery_url` | string | The `origin` git remote URL for this repo. This URL is |
|
|
| | | used to perform a `hard recovery` when requested. |^
|
|
| `owner` | string | The owner of the remote repo as detected from the remote |
|
|
| | | URL. |^
|
|
| `branch` | string | The name of the current git branch. |
|
|
| `repo_name` | string | The name of the remote repo as detected from the remote |
|
|
| | | URL. |^
|
|
| `is_dirty` | bool | Set to `true` if the repo is "dirty", ie: if one or |
|
|
| | | more files in the repo have been modified. |^
|
|
| `corrupt` | bool | Set to `true` if the repo is corrupt. This indicates |
|
|
| | | that the local repo is broken and needs to be recovered. |^
|
|
| `pristine` | bool | Set to `true` when the repo is clean and no untracked |
|
|
| | | files exist in the repo. |^
|
|
| `detached` | bool | Set to `true` when the git repo's HEAD is detached. |
|
|
| `git_messages` | [string] | An array of strings containing the output from a failed |
|
|
| | | `git` command during initialization or an update. This |^
|
|
| | | array will be empty if all `git` commands succeed. |^
|
|
| `anomalies` | [string] | An array of strings that describe anomalies found during |
|
|
| | | initialization. An anomaly can be defined as an |^
|
|
| | | unexpected condition that does not result in an |^
|
|
| | | `invalid` repo state. Updates may proceed when |^
|
|
| | | anomalies are detected. An example of an anomaly is the |^
|
|
| | | presence of "untracked files" in the repo. |^
|
|
| `warnings` | [string] | An array of strings that describe warnings detected |
|
|
| | | during repo initialization. When a warning is present |^
|
|
| | | the repo is marked invalid and updates are disabled. |^
|
|
| `commits_behind` | [object] | An array of `Commit Info` objects providing commit data |
|
|
| | | on upstream commits available for update. This array is |^
|
|
| | | limited to a size of 30 untagged commits. Any tagged |^
|
|
| | | commits within 100 commits behind are included. |^
|
|
| | | #git-commit-info-spec |+
|
|
| `commits_behind_count` | int | The total number of commits the current repo is behind |
|
|
| | | the next update. This number may be greater than the |^
|
|
| | | length of the `commits_behind` array. |^
|
|
| `info_tags` | object | An object containing custom tags added to the updater's |
|
|
| | | configuration in `moonraker.conf`. The values will |^
|
|
| | | always be strings. Client developers may define what |^
|
|
| | | tags, if any, users will configure. The software can |^
|
|
| | | then choose to display information or perform a |^
|
|
| | | specific action pre/post update if necessary. |^
|
|
{ #git-repo-status-spec } Git Repo Status
|
|
|
|
| Channel | Description |
|
|
| -------- | --------------------------------------------------------- |
|
|
| `stable` | The repo will update to the latest tagged stable release. |
|
|
| `beta` | The repo will update to the latest tag. This may include |
|
|
| | tags with `beta` and `release candidate` identifiers. |^
|
|
| `dev` | The repo will update to the latest available commit. |
|
|
{ #git-repo-channel-desc }
|
|
|
|
| Field | Type | Description |
|
|
| --------- | :------------: | ----------------------------------------------------- |
|
|
| `author` | string | The author of the commit. |
|
|
| `date` | string | The date of the commit in unix time. Note that the |
|
|
| | | date is extracted from the git log as a string value. |^
|
|
| | | It should be converted to an integer prior to |^
|
|
| | | processing from unix time. |^
|
|
| `sha` | string | The commit hash. |
|
|
| `subject` | string | The title of the commit. |
|
|
| `message` | string | The content in the body of the commit. |
|
|
| `tag` | string \| null | The name of the associated tag if present. Will be |
|
|
| | | null if the commit has no tag. |^
|
|
{ #git-commit-info-spec } Commit Info
|
|
|
|
|
|
| Field | Type | Description |
|
|
| ------------------ | :------: | -------------------------------------------------------- |
|
|
| `name` | string | The name of the software to manage updates for. |
|
|
| `configured_type` | string | The [type](#configured-type-desc) of updater configured. |
|
|
| `channel` | string | The configured update `channel`. |
|
|
| | | #net-hosted-channel-desc |+
|
|
| `channel_invalid` | bool | A value of `true` indicates that the current `channel` |
|
|
| | | configuration is not supported by the type. |^
|
|
| | | are supported. |^
|
|
| `debug_enabled` | bool | Set to `true` when Moonraker's debug features are |
|
|
| | | enabled. |^
|
|
| `owner` | string | The owner of the GitHub repo hosting the software. |
|
|
| `repo_name` | string | The name of the GitHub repo hosting the software. |
|
|
| `last_error` | string | A message associated with the last error encountered |
|
|
| | | after initialization or an update. Will be an empty |^
|
|
| | | string if no errors were detected. |^
|
|
| `version` | string | The current detected version. |
|
|
| `remote_version` | string | The version of the latest available release on GitHub. |
|
|
| `rollback_version` | string | The version prior to the last update. This version is |
|
|
| | | used during a `rollback` request. |^
|
|
| `is_valid` | bool | Set to `true` when the updater has completed |
|
|
| | | initialization and all validity checks passed. |^
|
|
| `anomalies` | [string] | An array of strings that describe anomalies found during |
|
|
| | | initialization. An anomaly can be defined as an |^
|
|
| | | unexpected condition that does not result in an |^
|
|
| | | `invalid` updater state. Updates may proceed when |^
|
|
| | | anomalies are detected. |^
|
|
| `warnings` | [string] | An array of strings that describe warnings detected |
|
|
| | | during initialization. When a warning is present |^
|
|
| | | the updater is marked invalid and updates are disabled. |^
|
|
| `info_tags` | object | An object containing custom tags added to the updater's |
|
|
| | | configuration in `moonraker.conf`. The values will |^
|
|
| | | always be strings. Client developers may define what |^
|
|
| | | tags, if any, users will configure. The software can |^
|
|
| | | then choose to display information or perform a |^
|
|
| | | specific action pre/post update if necessary. |^
|
|
{ #net-app-status-spec } Net Hosted Status
|
|
|
|
| Channel | Description |
|
|
| -------- | --------------------------------------------------------- |
|
|
| `stable` | The software will update to the stable release on GitHub. |
|
|
| `beta` | The software will update to the latest release on GitHub, |
|
|
| | including those marked as "pre-release". |^
|
|
{ #net-hosted-channel-desc }
|
|
|
|
| Field | Type | Description |
|
|
| --------------------- | :------------: | --------------------------------------------------------- |
|
|
| `name` | string | The name of the software to manage updates for. |
|
|
| `configured_type` | string | The [type](#configured-type-desc) of updater configured. |
|
|
| `channel` | string | The configured update `channel`. |
|
|
| | | #python-channel-desc |+
|
|
| `channel_invalid` | bool | A value of `true` indicates that the current `channel` |
|
|
| | | configuration is not supported by the type. |^
|
|
| | | are supported. |^
|
|
| `debug_enabled` | bool | Set to `true` when Moonraker's debug features are |
|
|
| | | enabled. |^
|
|
| `owner` | string | The owner of the GitHub repo hosting the software. |
|
|
| | | Will be a `?` when no repo owner is detected. |^
|
|
| `repo_name` | string | The name of the GitHub repo hosting the software. |
|
|
| | | Will be a `?` when no repo name is detected. |^
|
|
| `branch` | string \| null | The name of the branch on the GitHub remote to build |
|
|
| | | `dev` updates from. Will be `null` if no primary branch |^
|
|
| | | is configured. |^
|
|
| `version` | string | The current detected version. |
|
|
| `remote_version` | string | The version of the latest available release on GitHub. |
|
|
| `rollback_version` | string | The version prior to the last update. This version is |
|
|
| | | used during a `rollback` request. |^
|
|
| `full_version_string` | string | The complete version string extracted from the python |
|
|
| | | package's metadata. |^
|
|
| `current_hash` | string | The hash of the commit used to build the current version |
|
|
| | | of the package. A placeholder of `not-specified` is used |^
|
|
| | | when the the current hash is not provided in the package |^
|
|
| | | metadata. |^
|
|
| `remote_hash` | string | The hash of the latest update available. A placeholder of |
|
|
| | | `update-available` is used when the remote hash is not |^
|
|
| | | provided by the remote host and updates are available. |^
|
|
| `is_valid` | bool | Set to `true` when the updater has completed |
|
|
| | | initialization and all validity checks passed. |^
|
|
| `is_dirty` | bool | Set to `true` if the repo was modified at the time the |
|
|
| | | package was built. |^
|
|
| `changelog_url` | string | A URL to the software's changelog. Will be an empty |
|
|
| | | string if no changelog URL is detected. |^
|
|
| `anomalies` | [string] | An array of strings that describe anomalies found during |
|
|
| | | initialization. An anomaly can be defined as an |^
|
|
| | | unexpected condition that does not result in an |^
|
|
| | | `invalid` updater state. Updates may proceed when |^
|
|
| | | anomalies are detected. |^
|
|
| `warnings` | [string] | An array of strings that describe warnings detected |
|
|
| | | during initialization. When a warning is present |^
|
|
| | | the updater is marked invalid and updates are disabled. |^
|
|
| `info_tags` | object | An object containing custom tags added to the updater's |
|
|
| | | configuration in `moonraker.conf`. The values will |^
|
|
| | | always be strings. Client developers may define what |^
|
|
| | | tags, if any, users will configure. The software can |^
|
|
| | | then choose to display information or perform a |^
|
|
| | | specific action pre/post update if necessary. |^
|
|
{ #python-status-spec } Python Package Status
|
|
|
|
| Channel | Description |
|
|
| -------- | -------------------------------------------------------- |
|
|
| `stable` | The software will update to the stable release on GitHub |
|
|
| | or PyPI. |^
|
|
| `beta` | Only applies to packages installed via GitHub. The |
|
|
| | software will update to the latest release, including |^
|
|
| | hose marked as "pre-release". |^
|
|
| `dev` | Only applies to packages installed via GitHub. The |
|
|
| | software will update to the latest commit available. |^
|
|
{ #python-channel-desc }
|
|
|
|
|
|
| Field | Type | Description |
|
|
| ----------------- | :------: | -------------------------------------------------------- |
|
|
| `name` | string | The name of the software to manage updates for. Will |
|
|
| | | always be `system`. |^
|
|
| `configured_type` | string | The [type](#configured-type-desc) of updater configured. |
|
|
| | | Will always be `system`. |^
|
|
| `package_count` | int | The number of system packages that require updating. |
|
|
| `package_list` | [string] | An array of package names that require updating. |
|
|
{ #system-status-spec } System Update Status
|
|
|
|
///
|
|
|
|
## Refresh update status
|
|
|
|
Refreshes the internal update state for the requested software.
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /machine/update/refresh
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"name": "klipper"
|
|
}
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "machine.update.refresh",
|
|
"params": {
|
|
"name": "klipper"
|
|
},
|
|
"id": 4644
|
|
}
|
|
```
|
|
|
|
/// api-parameters
|
|
open: True
|
|
|
|
| Name | Type | Default | Description |
|
|
| ------ | :----: | ------- | ----------------------------------------------------- |
|
|
| `name` | string | `null` | The name of the software to refresh. |
|
|
| | | | If omitted all registered software will be refreshed. |^
|
|
|
|
///
|
|
|
|
/// Note
|
|
This endpoint will raise 503 error under the following conditions:
|
|
|
|
- An update is in progress
|
|
- A print is in progress
|
|
- The update manager hasn't completed initialization
|
|
///
|
|
|
|
For an example response refer to the
|
|
[Status Example Response](#status-example-response).
|
|
|
|
/// api-response-spec
|
|
open: True
|
|
The response spec is identical to the
|
|
[Status Request Specification](#update-status-spec)
|
|
///
|
|
|
|
/// Tip
|
|
Applications should use care when calling this method as a refresh
|
|
is CPU intensive and may be time consuming. Moonraker can be
|
|
configured to refresh state periodically, thus it is recommended
|
|
that applications avoid their own procedural implementations.
|
|
Instead it is best to call this API only when a user requests a
|
|
refresh.
|
|
///
|
|
|
|
## Perform an Upgrade
|
|
|
|
*Added in API Version 1.5.0*
|
|
|
|
Upgrade to the most recent release of the requested software.
|
|
If an update is requested while a print is in progress then this
|
|
request will return an error.
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /machine/update/upgrade
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"name": "app_name"
|
|
}
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "machine.update.upgrade",
|
|
"params": {
|
|
"name": "app_name"
|
|
},
|
|
"id": 8546
|
|
}
|
|
```
|
|
|
|
/// api-parameters
|
|
open: True
|
|
|
|
| Name | Type | Default | Description |
|
|
| ------ | :----: | ------- | ------------------------------------ |
|
|
| `name` | string | null | The name of the software to upgrade. |
|
|
| | | | If omitted all registered |^
|
|
| | | | software updates will be upgraded. |^
|
|
|
|
///
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
## Recover a corrupt repo
|
|
|
|
On occasion a git command may fail resulting in a repo in a
|
|
dirty or invalid state. This endpoint may be used to attempt
|
|
to recover a git repo that is dirty, broken, or corrupt.
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /machine/update/recover
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"name": "moonraker",
|
|
"hard": false
|
|
}
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "machine.update.recover",
|
|
"params": {
|
|
"name": "moonraker",
|
|
"hard": false
|
|
},
|
|
"id": 4564
|
|
}
|
|
```
|
|
|
|
/// api-parameters
|
|
open: True
|
|
|
|
| Name | Type | Default | Description |
|
|
| ------ | :----: | ------------ | --------------------------------------------------- |
|
|
| `name` | string | **REQUIRED** | The name of the software to recover. |
|
|
| `hard` | bool | false | Determines the [mode](#git-repo-recovery-mode-desc) |
|
|
| | | | used to perform the recovery. |^
|
|
|
|
| Name | Description |
|
|
| --------------- | ------------------------------------------------------- |
|
|
| `hard == false` | Moonraker will attempt to recover the repo by running |
|
|
| | `git reset`. This will generally work for repos that |^
|
|
| | are dirty, but will not correct repos that are corrupt. |^
|
|
| `hard == true` | Moonraker will remove the current repo and re-clone it. |
|
|
{ #git-repo-recovery-mode-desc } Recovery Modes
|
|
|
|
///
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
## Rollback to the previous version
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /machine/update/rollback
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"name": "moonraker"
|
|
}
|
|
```
|
|
|
|
JSON-RPC request:
|
|
|
|
```json
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "machine.update.rollback",
|
|
"params": {
|
|
"name": "moonraker"
|
|
},
|
|
"id": 4564
|
|
}
|
|
```
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
## Perform a full update
|
|
|
|
*Deprecated in API Version 1.5.0, superseded by the*
|
|
*[Upgrade](#perform-an-upgrade) endpoint.*
|
|
|
|
Attempts to update all registered software. Updates are performed in the
|
|
following order:
|
|
|
|
- `system` if enabled
|
|
- All optional software configured in `moonraker.conf`.
|
|
- Klipper
|
|
- Moonraker
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /machine/update/full
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "machine.update.full",
|
|
"id": 4645
|
|
}
|
|
```
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
## Update Moonraker
|
|
|
|
*Deprecated in API Version 1.5.0, superseded by the*
|
|
*[Upgrade](#perform-an-upgrade) endpoint.*
|
|
|
|
Upgrades to the latest version of Moonraker and restarts
|
|
the service. If an update is requested while a print is in progress then
|
|
this request will return an error.
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /machine/update/moonraker
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "machine.update.moonraker",
|
|
"id": 4645
|
|
}
|
|
```
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
## Update Klipper
|
|
|
|
*Deprecated in API Version 1.5.0, superseded by the*
|
|
*[Upgrade](#perform-an-upgrade) endpoint.*
|
|
|
|
Upgrades to the latest version of Klipper and restarts
|
|
the service. If an update is requested while a print is in progress
|
|
then this request will return an error.
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /machine/update/klipper
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "machine.update.klipper",
|
|
"id": 5745
|
|
}
|
|
```
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
## Update Client
|
|
|
|
*Deprecated in API Version 1.5.0, superseded by the*
|
|
*[Upgrade](#perform-an-upgrade) endpoint.*
|
|
|
|
Update to the most recent release of the requested software.
|
|
If an update is requested while a print is in progress then this
|
|
request will return an error.
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /machine/update/client
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"name": "app_name"
|
|
}
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "machine.update.client",
|
|
"params": {
|
|
"name": "app_name"
|
|
},
|
|
"id": 8546
|
|
}
|
|
```
|
|
|
|
/// api-parameters
|
|
open: True
|
|
|
|
| Name | Type | Default | Description |
|
|
| ------ | :----: | ------- | ------------------------------------ |
|
|
| `name` | string | null | The name of the software to upgrade. |
|
|
| | | | If omitted all registered |^
|
|
| | | | software updates will be upgraded. |^
|
|
|
|
///
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
## Update System Packages
|
|
|
|
*Deprecated in API Version 1.5.0, superseded by the*
|
|
*[Upgrade](#perform-an-upgrade) endpoint.*
|
|
|
|
Upgrades system packages. If an update is requested while a print is
|
|
in progress then this request will return an error.
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /machine/update/system
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "machine.update.system",
|
|
"id": 4564
|
|
}
|
|
```
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
|