Today’s release of ql.io 0.5 includes the following changes:
- Enable caching on ql.io response. You can add
using headers
clause to routes to add arbitrary response headers, as inreturn 'hello' via route '/hello' using method get using headers 'Cache-Control' = 'max-age=3600';
- [Experimental] Enable caching of responses from APIs for select statements.
create table
statements can now include anexpires <interval>
clause to specify an interval for caching responses ofselect
statements, as increate table auto.compute.key on select get from 'http://a.uri.net' ... expires 10;
- Process gzip/deflate encoded responses from upstream servers.
- Support
Content-Encoding
for incoming requests and gzip/deflate encode responses. - Several bug fixes to maintain hierarchical logging of script execution. You can handle events emitted by the engine to log script execution flow. Watch this blog for an example soon.
- Factor out cluster management to a new module cluster2 to support deployments on CloudFoundry and Heroku.
- New URI
/api
to navigate tables and routes - see En Route for details. - Support
delete
statements. - Upgrade CodeMirror to 2.22 to resolve some quirks in the console UI.
- Add a page to show all installed npm packages. Try http://
: /deps (or http://localhost:3001/deps). - Support custom xml2json convertors to enable clients interop with legacy XML APIs.
- Recover shutdown/stop from extraneous pid files.
- Simplify response decoding. In stead of setting encoding on the response, collect buffers into array, and then decode in the default impl of ‘parse response’.
- Removed /in-flight requests api.
- Enable numbers in
in
clause and args of udfs - Export version from each module. You can find version of a module using
require('ql.io-<somemodule>').version
. - Include version number in
User-Agent
andServer
headers. - Support scatter-gather for requests with bodies by adding a
foreach 'param'
for theusing bodyTemplate
cluase. This allows scripts to batchup POST and PUT requests. - Support ejs body templates.
- Skip files that don’t end with
.ql
. - “/ecv” check returns network ip instead of loopback address
- Let the engine allow a monkey patch to parse the response. Useful to process binary formats like avro.