### 1.2.5 - Module *NgxExport.Tools.Resolve*. + Function *collectSrv* now returns a *TTL* with a list of pairs *(Domain name, IP address)* wrapped in an *SRV* container. + Collection *ServerData* now contains the host name. + Allow multiple *upconf* endpoints, secure and insecure. + Removed *instance FromJSON ServerData*. - Module *NgxExport.Tools.PCRE*. + Removed internal implementation of function *compile* which now requires *pcre-light ≥ 0.4.1.2*. ### 1.2.4 - Added support for *https* connections in module *NgxExport.Tools.Subrequest*. ### 1.2.3 - In module *NgxExport.Tools.EDE*, custom EDE filters are now passed into function *renderEDETemplateWith*. The collection of custom EDE filters with *b64* and *uenc* filters is now exported from the module by name *extraEDEFilters*. ### 1.2.2 - Added Cabal constraint *resolv ≥ 0.2.0.1* to fix memory leaks in module *NgxExport.Tools.Resolve*. ### 1.2.1 - Improvements and bug fixes in module *NgxExport.Tools.Resolve*. + Added ability to set response timeout in service *collectUpstreams*. + Use *handleAny* from *safe-exceptions* in service *collectUpstreams*. + Improved type declarations and documentation. ### 1.2.0 - Added module *NgxExport.Tools.Resolve* which can be used to manage service discovery in Nginx dynamic upstreams. ### 1.1.0 - Using *Network.HTTP.Client.BrReadWithTimeout* in module *NgxExport.Tools.Subrequest* to ensure that a request won't stall on a bad response from a buggy server. - In module *NgxExport.Tools.Subrequest*, *srBody* was reimplemented using lazy bytestrings. ### 1.0 - Module *NgxExport.Tools.Aggregate* can now be built without support from the *Snap framework* (flag *SnapAggregateServer* replaces flag *Aggregate*). The module now allows building native Nginx-based aggregate services (see updated docs). - In module *NgxExport.Tools.Aggregate*, getting current time with *ngxNow* was replaced by *getCurrentTime* because the former is not safe in the async context. - Removed upper bound restriction in the Cabal constraint on the version of package *aeson*. - Package stability tag was promoted to stable. ### 0.8.2.0 - In module *NgxExport.Tools.Subrequest*, bridged HTTP subrequests return status code of the source end of the bridge when it returns a *non-2xx* response. ### 0.8.1.0 - In module *NgxExport.Tools.Subrequest*, bridged HTTP subrequests were added. - In module *NgxExport.Tools.Subrequest*, configured subrequest headers now get merged with originally set request headers. - Added Cabal constraint *aeson < 2.0.0.0* for building EDE module. ### 0.8.0.0 - Added module *NgxExport.Tools.PCRE*, this requires *nginx-haskell-module* *2.8.4* or newer. ### 0.7.0.0 - Added module *NgxExport.Tools.ServiceHookAdaptor* to maintain custom global data in all the worker processes in run-time. ### 0.6.2.0 - Added Cabal flag *Aggregate* to build module *NgxExport.Tools.Aggregate* conditionally. ### 0.6.1.0 - Handler *extractRequestStatusFromFullResponse* was replaced with handler *extractExceptionFromFullResponse*. The new handler extracts the error message if the subrequest was terminated by an exception. ### 0.6.0.0 - Build EDE module with *prettyprinter* automatically. ### 0.5.9.0 - Allow Unix domain sockets in configurations of internal HTTP subrequests. ### 0.5.8.0 - Using *Data.HashSet* for *pcGauges* and *pcScale1000* in Prometheus metrics. ### 0.5.7.0 - Show histogram *error* counters in parameterized Prometheus metrics. ### 0.5.6.2 - Fixed wrong partitioning of gauges and counters from *special* counters. ### 0.5.6.0 - Added labeled parameterization for all supported types of metrics by using annotated counters from [*nginx-custom-counters-module*](https://github.com/lyokha/nginx-custom-counters-module). ### 0.5.5.0 - Added content handler *prometheusMetrics*. - Using lazy text for encoding Prometheus metrics. ### 0.5.4.0 - Added handler *extractRequestStatusFromFullResponse* to retrieve completion status of a subrequest. ### 0.5.3.0 - Handlers *makeSubrequestFull* and *makeSubrequestFullWithRead* no longer throw errors on responses with HTTP statuses other than *2xx*. - Implemented forwarding responses downstream to the client with function *contentFromFullResponse* and content handler *fromFullResponse*. ### 0.5.2.0 - Added handlers to extract data from lists of values in the Prometheus module. ### 0.5.1.0 - Added gauge metrics type to Prometheus counters. ### 0.5.0.0 - Added module *NgxExport.Tools.Prometheus* to convert custom counters from [*nginx-custom-counters-module*](https://github.com/lyokha/nginx-custom-counters-module) to Prometheus metrics. ### 0.4.1.0 - Handler *renderEDETemplateFromFreeValue* was moved from the example to the module. ### 0.4.0.0 - Implemented adjustable response timeouts. - Implemented subrequest handlers with ability to extract full response data. ### 0.3.2.0 - Functions and handlers *subrequest* and *subrequestWithRead* were renamed to *makeSubrequest* and *makeSubrequestWithRead* respectively. ### 0.3.1.0 - Added function *subrequestWithRead* and an asynchronous variable handler of the same name. ### 0.3.0.0 - Added module *NgxExport.Tools.Subrequest* for making HTTP (sub)requests easily. ### 0.2.2.0 - Added Cabal flag *EDE* to detect automatically if EDE module can be built. - Added manual Cabal flag *ExperimentalEDE* to compile against patched *ede* package where package *ansi-wl-pprint* was replaced with *prettyprinter*. - The EDE example was enhanced to show how to parse free JSON values. ### 0.2.1.0 - Improved treatment of quoted string values in *b64* and *uenc* EDE filters. - Added function *renderEDETemplateWith* for templating from any configuration language which is translatable to *Aeson*'s *Value*. ### 0.2.0.0 - Added module *NgxExport.Tools.EDE* for parsing JSON values. ### 0.1.0.1 - Docs improved (using *strict variable handlers* from the latest *nginx-haskell-module* in the example). ### 0.1.0.0 - Initial version.