Servox

Latest version: v25.3.0

Safety actively analyzes 714875 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 8 of 9

0.6.0

Enhanced

- The checks subsystem has been rearchitected to streamline the development of
checks and provide a better operational experience for running and debugging
checks.

Added

- `servo run --check` will run all configured checks before starting the servo
runloop.
- `servo check` now supports filtering by name, id, and tags. Failure mode
handling is configurable via `--halt-on-failed=[requirement,check,never]`
- `servo run` now applies exponential backoff and retry to recover from
transient HTTP errors.
- Introduce associations mixin for managing off-model support objects that don't
make sense to model as attributes.
- `ServoConfiguration` class for applying settings to the servo itself.
- HTTP proxy support (configured on `ServoConfiguration`).
- Timeout configuration (configured on `ServoConfiguration`).
- Support for configuring backoff and retry behaviors (configured on
`ServoConfiguration`).
- Baseline set of checks on the Kubernetes Connector.

Fixed

- Attempting to connect to an invalid or unavailable optimizer backend now
triggers exponential backoff and retry rather than crashing.
- Encountering an unexpected event error from the optimizer now aborts the
operation in progress and resets rather than waiting for the operation to
complete.

0.5.1

Removed

- Migrated servo-webhooks into a standalone project (see
[opsani/servo-webhooks](https://github.com/opsani/servo-webhooks))

0.5.0

Added

- The capabilities of the logging module have been significantly enhanced with
supporting for changing the logging levels, performing timed logging around
methods, and attaching backtraces.
- Log messages are now annotated with the event context when logging occurs
during an event handler.
- The metadata decorator now accepts a tuple for the `name` parameter for
providing an explicit default name for connectors of the decorated type,
overriding the name inference.
- Progress can be automatically reported to the Opsani API by annotating log
messages with a "progress" key.
- Introduced general utilities for executing subprocesses including streaming
output, timeouts, etc.
- Added integration testing infrastructure for testing the servo in Docker,
Minikube, and EKS.
- Integrated complete implementation of Kubernetes connector on top of
kubernetes_asyncio.

Changed

- Enable parsing of extended Golang duration strings in `Duration` (days, weeks,
months, years).
- The base connector class has been renamed from `Connector` to `BaseConnector`
to align with other inheritance patterns in the library.
- Redesigned the Kuberenetes configuration to adopt familiar naming conventions
and structure from Kubernetes.

0.4.2

Fixed

- The init command output formatting was broken when accepting defaults.

0.4.1

Fixed

- The `respx` mocking library was in the main project dependencies instead of
dev dependencies.

0.4.0

The headline feature of this release is the adoption of asyncio as a core part
of the architecture.

Fixed

- Docker image builds now correctly support excluding development dependencies
via the `SERVO_ENV` build argument.

Added

- Docker images are now published to Docker Hub with README content from
`docs/README-DOCKERHUB.md`.
- Introduced Duration class for modeling time durations as Golang style duration
strings.
- BaseConfiguration now provides a `yaml` method for easily to YAML.
- BaseConfiguration now provides a `json_encoders` static method for easily
accessing the default encoders.
- The Vegeta connector now validates the `target` and `targets` settings.
- The check command now supports a verbose and non-verbose modes for outputting
multiple checks from a connector.
- The version command can now output version data for connectors.
- The connectors command now outputs names for displaying aliased
configurations.
- The servo now runs asynchronously on top of asyncio.
- Added start-up banner to run command.

Removed

- The `durationpy` package has been removed in favor of a local implementation.

Changed

- Updated Docker and Docker Compose configurations to use `/servo/opsani.token`
as the default path for API tokens mounted as a file.
- Docker images pushed to Docker Hub are now built with `SERVO_ENV=production`
to exclude development packages.
- The reporting interval is now configurable `VegetaConfiguration`.
- The check event now returns a list of checks instead of one result.
- Removed the 'Connector' suffix from the default connector name attribute and
introduced `full_name`.
- The `__config_key__` attribute has been renamed to `__default_name__`.
- The identifier for connectors has been renamed to `name` for simplicitly and
clarity.
- The `ServoAssembly` class has been renamed to `Assembly`.

Page 8 of 9

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.