ql.io 0.5

| Comments

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 in return '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 an expires <interval> clause to specify an interval for caching responses of select statements, as in create 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 and Server headers.
  • Support scatter-gather for requests with bodies by adding a foreach 'param' for the using 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.