New features include
- relaxed-validation mode so that handler parameters can be changed slightly without redeploying the service
- the ability to create an IP white list per endpoint
- if errors occur while reading configuration files, continue to process respective files to facilitate problem resolution
Bug fixes include
- correcting the order of output fields in usage log output
- enable corsEnabled property for error handling in the same way as successful queries
- re-enable operation with Glassfish 4.x server
Please see the main documentation on the Wiki page for a complete list of changes.
- Allow end time specification to be an offset relative to the start time in the pattern #.#[SMHD], e.g. "30m", "1h", "2D", etc.
- Allow -F option to accept a list of data centers that is passed to the Federator to limit the response to specific centers. A list of data center identifiers is avaialable (in JSON) here: http://service.iris.edu/irisws/fedcatalog/1/datacenters
- Turn off verification of hostname and other SSL certificate checks to allow usage with HTTPS web services on hosts that do not have a Certificate Authority certs for use by to the Perl subsystem.
- Add more details to help message if -h is specified more than once. Relegate lesser used options to the extended help and add more details of federation usage and specification of alternate WS endpoints.
This project has been migrated to GitHub:
Releases are available for download at:
Some documentation in this project Wiki will remain available here until it is migrated to GitHub.
- Add minimum request interval and use it to avoid sending web service requests too quickly. At 50 milliseconds the throttling will not engage for the vast majority of users.
- Numerous fixes to handling of Federated requests.
Highlights of changes:
- Support for much larger range of sample rates. Outside of the range 32767 to 1/32767 integer sample rates are approximated whenever possible.
- Rewrite of all decoding and encoding routines to replace those used from qlib2, now the entire project is LGPL licensed.
ChangeLog since 2.17:
- Remove limitation on sample rate before calling ms_genfactmult() in the normal path of packing records. Previously generating the factor and multiplier was not attempted for rates higher than 32,767. - ms_genfactmult() now support a much larger range of integer sample rates and periods. - ms_genfactmult() now sets the factor and multiplier using the SECONDS/SAMPLE notation for sample rates less than 1.0 to retain precision for low rates. - ms_genfactmult() now assumes the specified rate is a sample period in seconds if the samprate value is negative. - Add ms_rsqrt64() as a general use reciprocal sqrt for doubles. - Use memcpy() instead of assignment when unpacking float32 and float64 samples to avoid problems with NaN's. Thanks Lion Krischer. - Add test for reading records without Blockette 1000. - Reformat all source code using included clang-format profile. - A more elegant sanity check for output length in packing by mbyt. - Improvements for test suite, more consistency. - Remove msr_decode_steim? from libmseed.def, they are internal. - Add sanity to length check before memset calls in packing functions. - Check for environment variables ENCODE_DEBUG and DECODE_DEBUG and set debugging output, at this point it is Steim frame details and differences being encoded/decoded. - Fix padding in steim encoding routines. - Remove unneeded output buffer checks in steim decoding routines. - Replace data sample packing and unpacking routines from qlib2 with new routines developed from scratch. All code is now LGPL licensed. - Add test suite with tests for encoding, decoding, parsing, etc. - Update licensing to GNU-LGPL version 3 and include (L)GPL licenses in LICENSE.txt. - Define needed C99 int types for MSVC 2012 or earlier. Previously this was only done for versions earlier than MSVC 2010.
Web Service Shell version 2 is a major update that adds the capability to define multiple endpoints and adds more flexibility in naming services. Incremental improvements include adding a new logging method and more consistent error messages. The core concept of providing a web service that can be configured via simple properties files to utilize external resources remains the same.
- Configure multiple, arbitrary endpoints. Previously, only one endpoint, “query” was provided. Now it is possible to define multiple endpoints and define endpoint names by configuration. Each endpoint may have its own list of supported media types and may include static or dynamic HTTP response header adjustments.
- The web service naming convention (and URL path) has been generalized to support simple or multi-level naming conventions while still supporting the original, three level FDSN standard of “/fdsnws/<service>/<majorversion>/“
- Endpoints that return content proxied from other resources (e.g. files or other endpoints) are supported. In version 1, only one endpoint, “application.wadl” was available to deliver XML content. In version 2, multiple proxy endpoints may be configured, along with respective media types. Also, endpoint “application.wadl” may be removed if it is not needed.
- A new loggingMethod to support RabbitMQ has been added.
- Time values in usage log messages are standardized to UTC time so that time is not affected by other system settings.
- Version 2 has improved consistency for error messages
- A few unused parameters are removed
Changes needed for upgrading a service from version 1 to version 2
- Configuration file naming conventions have changed slightly to support generalized service naming capability.
- Additional syntax is used to define endpoints plus their respective parameters see WSS 2.2 Documentation at https://seiscode.iris.washington.edu/projects/webserviceshell/wiki/Web_Service_Shell for details on naming conventions and configuration parameter changes.
Binaries are posted for the latest version (0.9) of Seismic Canvas. This is the last beta version before 1.0RC is released in January. Binaries are now available for both 32 and 64 bit Windows and some Linux distros.
- Issue 633 - Added a check for non-zero exit code from the command line handler after
stdoutis closed. Also added error text to
stdoutstream if a non-zero exit code is encountered.
- Issue 631 - In the service parameter configuration file (servicename-1-param.cfg), the parameter
aliaseshas been added to more easily define short-hand versions of parameter names (i.e. net/network). These identical parameters no longer need to be defined separately in the parameter configuration file.
- Issue 607 - In the service configuration file (servicename-1-service.cfg), the parameter
outputTypehas been replaced with
outputTypesand now determines the MIME type returned to the HTTP header.
- Issue 606 - Various fixes to logging messages and content.
- Issue 473 – Update error response for service root documentation page. Now, information is more clearly displayed when the root documentation page is not available.
- Issue 688 – A new resource endpoint has been added (‘v2/swagger’). The respective parameter ‘swaggerV2URL’ has been added to the service configuration file (SERVICENAME-1-service.cfg).
- Issue 690 – Updated error handling when the service WADL is not found.
- Issue 707 – Fixed a bug where start and end times were not listed in the service usage logs if the times were not specified in the query.
- Issue 724 – Added the boolean parameter ‘corsEnabled’ to the service configuration file to include the Access-Control-Allow-Origin header in the HTTP response.
- Issue 733 – A new resource endpoint has been added (‘info’). The respective parameter ‘infoHandlerProgram’ has been added to the service configuration file (SERVICENAME-1-service.cfg)
Also available in: Atom