Don't raise an exception if the option in a path does not exist. Remove
the option and fall back to the default path location
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Prevent users from uploading files before validation is complete, as
this can populate one of the subfolders resulting in a failure when
attempting to symlink the original path.
When validating the config symlink the database first. This should
allow Moonraker to correctly move the database should an error
be encountered when validating the other config options.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Specifically check against the detected service unit, otherwise
allow a power device to bind to any available service.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Handle exceptions raised when adding a new watch. Warn
the user and skip adding the node to the watched tree.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Allow components to register reserved paths, then perform reserved
path validation it upon request. Reserved paths may be registered as
read-only or no access. Any request to modify an file/folder that is
either reserved or a child of a reserved path is rejected.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
The secrets module will now look for "moonraker.secrets"
in the data folder. If the file does not exist the deprecated
"secrets_path" option will be used as a fallback.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Deprecate the "database_path" option. If the database
does not exist, however the "database_path" does, it
will be used as a fallback.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
The config and logs paths are no longer configurable,
they all exist as folders or symbolic links within the primary
data folder. The gcode path no longer relies on Klipper to
specify the location, instead Klipper's virtual_sdcard path
shold be configured to the location of the "gcodes" folder
in the data path.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Klipper now has the ability to report the current layer on
properly configured slicers. Prefer this value if available,
otherwise fall back to layer detection.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Users may specify a dedicated ambient sensor in the
[simplyprint] configuration. If the specified sensor is
invalid or no sensor is specified ambient detection
will fall back to an estimate using the extruder.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Its possible for the websocket client to disconnect before
read_message() returns None. Await all calls to write_message()
to handle websocket closed exceptions.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Query the detected url and make sure it redirects to the
expected url. This closes a security vulnerability
where a remote could be changed to an arbitrary repo's url.
The `moved_origin` option is no longer necessary, however it
is currently used as an additional check. In the future it will be
deprecated.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Close a security hole where an attacker could overwrite an existing repo
with any remote and run malicious code through an update.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
If the supplied python executable is a symbolic link attempt
to read the location at which it points. If this is a virtualenv
this should give us the correct pip location.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>