New design for RRDS has potential new requirements for WSS. I was just chatting with Mike and thought I'd capture these ideas here.
Mike suggested a new property in service.config, on a per-endpoint basis, which tells WSS to go into a Relaxed-validation mode for that endpoint. Default behavior is that of the current WSS (strict validation of request parameters listed in param.config, AND throwing an exception if the request contains a parameter not found in param.config).
The definition of Relaxed-validation mode is really a mix of validating the known parameters and ignoring the unknown:
- Validate request parameters that are found in the param.config list.
- Any request parameter that is not found in the list in param.config is IGNORED.
The idea is that a new service like RRDS can take advantage of WSS validation for things like SNCL/Start/End, and simply pass along anything else in the request over to Mustang via fetch methods (mustang-lib).
RRDS will do a quick query to Mustang’s metrics service to validate parameters.
Advantage to development:
If Mustang changes a metric or adds a new one, RRDS does not have to be re-configured, or rebuilt & deployed.
Benefit to the user:
The user doesn’t need to learn a new service: They already know SNCL/Start/End, and they already are familiar with Mustang’s parameter set.
#1 Updated by Mike Stults almost 7 years ago
After reviewing code and discussion, the implementation plan is:
- enable a new parameter, per endpoint, named "relaxedValidation"
- when relaxedValidation=true
- - WSS will not throw the exception "No type defined ..." when a user interface parameter is not defined in param.cfg file for the respective endpoint
- - WSS will skip parameter value type checking for undefined interface parameters
- - WSS will also skip setting HTTP return media type if the reserved parameter "format" is used without being defined in the param.cfg file
- - WSS will do validation checking as it does now if a parameter is defined in param.cfg, this also means "format" must be explicitly defined as is the case now.
- - WSS parameter validation will return a complete command line string as it currently does, including all the non-validated values
- if relaxedValidation is false, or not present, WSS operates as it currently does for parameter value validation