Breaking Changes
- Routinator now keeps the last valid data from a publication point and falls back to using that if an update to the publication point does not have a valid manifest or the data does not match the manifest. This data is stored in a [sled] key-value database rather than directly in the file system. (#456)
- RRDP data is now collected into the same key-value database. The new command
dump
allows copying the data from the database to the file system. (#473, #480, #484) - If an RRDP repository is unavailable for a certain time, Routinator will now fall back to rsync. The time since last successful update before this fallback happens is configurable via the
rrdp-fallback-time
option and defaults to one hour. (#473, #482) - The
rsync-timeout
now describes a hard timeout on the rsync process for updating a repository. ([#528)] - The size of downloaded RPKI objects is now limited by the
max-object-size
options which defaults to a limit of 20 MBytes. This limit applies to both RRDP and rsync. (#531) - Routinator now includes additional TALs for various commonly used RPKI testbeds. The
init
command has been restructured to make it possible to select the TALs for installation. The default is still to install the five production RIR TALs. (#500) - Deprecated configuration items have been removed:
unknown-objects
cannot be spelled with a underscore anymore and string values are not accepted anymore forrtr-tcp-keepalive
. (#496) - The minimal supported Rust version is now 1.45.0. (#444, #498)
New
- The new option
--fresh
causes Routinator to delete all cached data before starting. This can be used when data corruption is reported. (#470) - The new HTTP server endpoint
/json-delta
provides an option to retrieve updates to a previously received data set via deltas. (#537) - Status information is now available in JSON format at
/api/v1/status
. (#437) - The metrics of RRDP repositories now also include the serial number of the last update. The JSON status information also includes the session ID and whether the last update was via a delta and if it wasn’t why a snapshot had to be used. It also separately provides the status codes for the request of the notification file and the snapshot or last requested delta file. (#487, #489)
- Prometheus metrics and JSON status have been greatly extended with more detailed counters for individual valid and invalid object types. They are also now available on a per-repository basis in addition to the already existing per-TAL basis. (#493, #539)
- Prometheus metrics and JSON status can now optionally include per-client RTR metrics. This is disabled by default to avoid accidentally leaking information about the local network topology. (#519)
- The RRDP client now supports the gzip transfer encoding for HTTPs. (#463, contributed by @bjpbakker)
- The
exception
config file value now also accepts a single string with a path name instead of an array of strings. (#471) - The new
rrdp-keep-responses
option allows optionally storing the XML content of all received RRDP responses in the file system. (#490) - The HTTP endpoints that supply the current VRP set now support conditional request handling. They include Etag and Last-Modified headers in their response and process If-None-Match and If-Modified-Since headers in requests. (#474, contributed by @reschke, #488)
- The
validate
command now accepts input from and can write its output to files. Both are available in simple plain text and JSON formatting. (#514)
Bug Fixes
- The
csvcompat
output format that was introduced in 0.7.0 is now actually accepted by the--format
command line option. - The
/validity
HTTP endpoint now accepts percent-encoded characters in the query parameters. (#505)
Other Changes
- Updated the bundled APNIC and LACNIC TALs. When upgrading, please re-install the TALs in your system via
routinator init
. (#510, #543) - Upgrade rpki-rs to 0.11 and drop now unnecessary separate dependency to rpki-rtr. (#443)
- Upgrade Tokio-related dependencies to new version based on Tokio 1.0. (#444)
- Upgrade the bundled UI to version 0.2.0 reflecting the changed metrics. (#550)