Releases: EarthScope/ringserver
Releases · EarthScope/ringserver
v4.1.2
- Avoid pruning files from scan list when a scan has been interrupted by a termination signal and aggressively flush scanning state file.
- Fix file descriptor and memory leaks on errors in miniSEED scanning.
- Remove use of inode values when tracking miniSEED files being scanned; storage layers, such as Docker mounts, render inode values inconsistent.
- Update Docker container instructions to illustrate and recommend using named volume for server state storage.
v4.1.1
- Enable linux/arm64 docker image build for releases.
- Update libmseed to v3.1.6
- Update mbedtls to v3.6.4
v4.1.0
- Now requires a C11 compiler and uses --std=c11 when building.
- For SeedLink, miniSEED packets must be identified using an FDSN Source Identifier with a suffix of
/MSEEDor/MSEED3. - Allow protocol detection on connections using TLS. This enables secure mixed-protocol use, e.g. secure WebSocket for SeedLink or DataLink.
- Support for SeedLink selector filters (
:3) to convert data to miniSEED v3. - Add authentication and authorization support:
- Support
AUTHcommand of SeedLink v4.0 - Support
AUTHcommand of DataLink v1.1 - Add example authorization code and description
- Support
- Add
AuthRequiredForStreams/RS_AUTH_REQUIRED_FOR_STREAMS config parameter. - Rename following parameters (and environment variables):
- MatchIP/RS_MATCH_IP renamed to
AcceptIP/RS_ACCEPT_IP - RejectIP/RS_REJECT_IP renamed to
DenyIP/RS_DENY_IP - LimitIP/RS_LIMIT_IP renamed to
AllowedStreamsIP/RS_ALLOWED_STREAMS_IP
The old parameters (and environment variables) are supported but deprecated.
- MatchIP/RS_MATCH_IP renamed to
- Add
ForbiddenStreamsIP/RS_FORBIDDEN_STREAMS_IP config parameter. - Add
NetIOTimeout/RS_NETIO_TIMEOUT config option. - Improve WebSocket handling regarding closing and ping/pong.
- Increase
MAXSTREAMIDfrom 60 to 64 for improved alignment and allowing maximum stream IDs of 63 bytes. - Fix assignment of starting packet when not provided in SeedLink
DATA/FETCH. - Remove unused mbedtls PSA initialization and thread-unsafe free'ing causing crashes.
- Improve TLS entropy seeding and diagnostic printing.
- Use the C11 _Atomic feature and reorganize for increased thread safety.
- Include
fdsn_source_identifiers,datalink_protocols, andseedlink_protocolsin "status" details. - Fix inclusion of
start_packet_timeelement in connection station list. - Move the seedlink_protocol and datalink_protocol arrays to the "id" details.
- Enable PCRE2 JIT compilation and matching for regexes (much faster).
- New version of ring buffer (v3) with consistent binary layout.
- Update mbedtls to v3.6.4
- Update pcre2 to v10.45
- Update mxml to v4.0.4
- Update libmseed to v3.1.5
v4.0.1
- Include server_port key in
INFO CONNECTIONSresponse. - Fix parsing of HTTP requests that required URL decoding.
- Fix and enhance HTTP
/connectionsendpoint response. - Fix WebSocket connection handling and variable terminators.
- Document stream ID limitations and conventions in manual.
- Return error for WRITE command when stream ID exceeds limit.
- Remove colons from date-time values in transfer log file names, e.g.
txlog-20241205T0000-20241206T0000instead oftxlog-20241205T00:00-20241206T00:00 - Add SeedLink-specific details to INFO CONNECTIONS response.
- Implement handling of SeedLink v4
ENDFETCHcommand. - Strict matching of HTTP URL paths and improved 404 messages.
v4.0.0
Note
The ring buffer format has changed in this release. Older versions of the saved buffer format will be converted for a seamless upgrade. Once this conversion is completed, older releases of ringserver will detect the buffer as corrupt and discard the contents, a consequence of downgrading to an earlier release.
Major new features:
- Add support for SeedLink protocol version 4.
- Support for buffer sizes up to UINT64_MAX (aka more than you need).
- Map 24-bit SeedLink v3 sequence numbers into 64-bit range, allowing v3 clients to resume from the most recent 16,777,215 packets in the buffer even if the buffer can contain more packets.
- Add support for TLS/SSL using mbedtls release 3.6.2
- Add
TLSflag for listening port configuration - Add
TLSCertfile,TLSKeyFile, andTLSVerfiyClientCertparameters (and equivalent environment variables) for TLS configuration. - Allow DataLink v1.1 WRITE command to accept a packet ID.
- All configuration options can be specified with environment variables.
- Container images are built for release versions and published to Docker Hub:
https://hub.docker.com/r/earthscope/ringserver
Other changes:
- Add HTTP endpoints that return status information in JSON format:
/id/json, /streams/json, /status/json, /connections/json - Add
-Ccommand line option to print a reference configuration file. - Add
HTTPPortparameter,RS_HTTP_PORTevnvvar, and-HLoption for HTTP-only ports. - Automatically convert packet buffer from previous version to current.
- Convert internal time stamps from microsecond ticks (hptime) to use nanosecond ticks, as used by the libmseed3.
- Most generated time strings are now
YYYY-MM-DDThh:mm:ss.sss*Zformatted. - All legacy stream IDs for miniSEED of the form:
NN_SSSSS_LL_CCC/MSEEDwill be converted to FDSN Source ID form:FDSN:NN_SSSSS_LL_C_C_C/MSEED. - Allow ring size to be specified in fractional large units, e.g. "1.5g".
- Update libmseed to 3.1.3, adapt for miniSEED 3 API.
- Upgrade to PCRE2 10.44 from legacy PCRE.
- Upgrade mini-XML (mxml) to 4.0.3.
v2020.075
- Fix resuming SeedLink connections when both sequence and begin time are included in multi-station mode.
- Add IPv6 support, on by default if supported by the system.
- Add ability to serve variable miniSEED record lengths via SeedLink.
- Add ability to scan variable miniSEED record length via file scanning.
- Apply LimitIP SourceID pattern to limit what a client can write in addition to read.
- Update libmseed to 2.19.6.
- Update mini-XML library to 3.1.
- Update pcre library to 8.43.
- License ringserver specific code as Apache 2.
v2018.078
- Add MIME-type mappings for static files with extensions: htm, css, xml, json, text. Already supported were html, js and txt.
v2018.054
- Fix unmasking of received data for DataLink over WebSockets
v2018.050
- Change output of /streamids to always be only stream IDs (no type included)
v2018.047
- Add HTTPHeader config file parameter that specifies custom HTTP headers that will be added to HTTP responses.
- Decode percent-encoded URLs (for HTTP).
- Append 'Z' time zone designator to earliest and latest times in HTTP streams output.
- Add /streamids endpoint to HTTP support to return a list of streams. This is similar to the /streams endpoint but without the time extents. The /streamids endpoint is consistent, always and only a list of streams.
- Disallow SeedLink TIME requests with future start time, return error to the client.
- Update mini-XML library to 2.11.
- Update pcre library to 8.41.