- Bump dependencies
- Breaking: Removed kue adapter due to vulnerabilities
- Bump hull-client version to 2.0.4
- Bump dependencies
- Bump dependencies
- Bump node dependency
- Bump dependencies
- Increase payload max size
- Do not resolve disabled orgs
- Bump up version of hull-client-node to 1.2.4
- use source url instead of the hostname to build urls
- upgrade hull-client to v1.2.3 to add support for unalias methods
- up the limit on bodyParser applied on the batch endpoint
- Explicitly handle too large kraken notification payloads
- Adds devMode utility
- Turn on flow in index.js files
- Bump hull-client version to 1.2.2
- Adds support for Account anonymous_id claim
- Fix flow type for THullEvent
- set unsupportedFlowControl default size to 10
- render docs without a TOC so the Website can display them properly.
- this release brings bigger changes to error handling:
- it cleans up a little middleware stack including smart-notifier errors
- it introduces two types of errors -
unhandled errorwhich is handled the same as till now, andtransient errorwhich won't be pushed to sentry, but only instrumented in datadog - it deprecates dedicated smartNotifierErrorMiddleware
- smartNotifierHandler in case of error behaves like notifHandler and pass the error down the middleware stack
- added
timeoutoption toHull.Connectorconstructor to control the timeout value - upgrades
ravenlibrary - add support for batch handlers for accounts
- adds
users_segmentsandaccounts_segmentsto Context Object - deprecation Renamed
userHandlerOptionstooptionsin notifyHandler - flow types fixes
- from now we test each commit on multiple nodejs versions
- in case of smart-notifier notification if requestId is not passed as an http header we fallback to notification_id from body
- adds more data to flow types
- adds ENV VAR flagged optional logging of metrics
- upgrades hull-client to v1.1.5 which have better error handling (retrying all 5xx errors not only 503)
- improved superagent instrumentation plugin metrics
- moved added newrelic and expressjs to peerDependencies to ensure good versions
- hotfixes CSVstream library which fails on Node v8
- remove
import/exportand...spreadto make the code runnable on node v6 - remove babeljs es transpilation and replace it with
transform-flow-commentsplugin to have the flow annotations be included in resulting code in comments - adds
superagentUrlTemplatePluginandsuperagentInstrumentationPluginplugins for superagent client - changed concurrency on
handleExtractto 1
- Add requestId in client middleware to decorate logs with the incoming requestId
- added set of flow types which can be imported from "hull/lib/types"
- reduced logging from Batcher utility
- adjust
unsupportedChannelFlowControlsize param
- adjust handling unsupported channel in
smartNotifierHandler
- pass original error information from
SmartNotifierValidator
- adds error handler and segment filtering to
smartNotifierHandler - properly map account object from batch extract to notification format
- fetch 200 segments for segments middleware
- introduces
smartNotifierMiddlewareandsmartNotifierHandlerutils - introduces
ctx.smartNotifierResponsecontext object to build flow response - added
skipSignatureValidationHull.Connectoroptions to skip smartNotifier signature validation - breaking: removed
serviceMiddlewareandserviceparam onHull.Connector, new way of applying service related objects to the Context Object is theusemethod on the Connector instance and initialize the service objects directly on thereq.hull.servicenamespace - restructurized tests folders and files
- properly map account object from batch extract to notification format
- fetch 200 segments for segments middleware
- makes
PromiseReuserreuse the wholecache.wrap, notclient.getonly
- adds
PromiseReuserclass which allows us to handle in memory longer running promises and reuse them in case the same function is called multiple times with the same input
- upgrades hull-client to 1.1.3
- update documentation about initialization of
QueueAdapter
- handle properly empty jobs in background worker
- upgrades underlying hull-client which fixes the way timeouted or errored rest API events are rejected
- adds option to get cache data via
req.hull.cache.get
- adds options to
req.hull.cache.wrapandreq.hull.cache.setmethods to set custom TTL - adds
HULL_ENVenv variable to mark the environment passed to Sentry integration (default to production when not set) - set default settings, including TTL for memory caching
- replaces low level api client with a separate library
- breaking:
client.utils.extract.handlereplaced byctx.helpers.handleExtract - breaking:
client.utils.extract.requestreplaced byctx.helpers.requestExtract - breaking: removed
lib/utils/batchHandlerin favour oflib/utils/notifHandler - breaking: removed
serviceparam onHull.Connectorin favor of custom middleware using.usemethod - breaking:
QueueAgentinstance now acceptsQueueAdapterinstance instead of it's name. Load you adapter now like this:import BullAdapter from "hull/lib/infra/queue/adapter/bull"; const queueAdapter = new BullAdapter(options); const queue = new Queue(queueAdapter);
- don't exit on unhandled errors in by default, turn it on for workers
- handle unhandled rejection which was rejected to an undefined value
- add more context to the express app requests middleware stack
- adds logging to all oauth handler steps
- upgrade hull-client to v1.1.1 to add support for
scopesclaim in auth tokens
- when handling batch extract,
notifHandlershould respond as soon as we have started to download and process JSON file. Otherwise in case of big extract files in may lead to response timeout
- sqs adapter
- logging api timeouts and failures
- filter out logged claims for users and accounts so one can pass
hull.asUser(user) - add
client.asalias and deprecation notice - add error handling for oAuth client
- adds identification claims mapping for logger. Since now we can use:
client.asUser({ id, email }).logger("incoming.user.success");
- adds
firehoseUrloption to the Hull API client - background firehose batcher respects
firehoseUrlparam, if not set defaults to${protocol}://firehose.${domain} - adds
Hull-Organizationheader to firehose calls - make
notifHandlerworking with handlers returning promise rejected to undefined value - change notifications JSON bodyParser size limit to 256kb (same as SNS message limit)
- make the
bulladapter try 3 times before failing a job and cleaning completed jobs - make sure we don't return any
undefinedinsegmentsparam while parsing batch request
- adds
bullqueue adapter using OptimalBits/bull library - minor changes to the
queueUiRouterto allow working with different adapters - adds
ipandtimecontext param to traits call
- adds
queueNameas first argument to theconnector.startWorkermethod - adds
queueNameas option to thectx.enqueuemethod
- add
timeoutandretryto client api calls options; when defined thogether timeout specifies number of miliseconds after which the connection would be timeouted and retry specifies number of miliseconds when the retry will be done after the timeout - by default
client.getmethod retries twice calls when error 503 is returned - fetching connector settings and segments are instrumented by above settings to timeout after 5000 miliseconds and retried after 1000 ms
- fix dogapi calls to create events
- normalize the connector name in logs context
- make the
batchHandlerrespond as soon as it starts to download the extract payload
ShipCacheproperly returns a Promise fordelmethod also for node-cache-manager stores which don't support Promise- adds
queueparam toqueueUiRouterto match naming ofConnector-queueAgentis deprecated and will be removed in0.12.0 - fix the way Hull.Connector tried to load
manifest.jsonfile
- includes changes from all
0.11.0-betapre-releases - makes sure that the json logging is always in one-line
- adds
helpersMiddlewareto the worker middleware stack - updates outdated dependencies
- adds initial flow support
- adds logging to nofifHandler
- adds
segmentFilterSettingsetting to enable filtering - by default the filtering is not enabled notifHandlerandbatchHandlerpass all notifications to handler, but addsmatchesFilterflag (true/false)
- fix
helpers.updateSettings - adds optional
connectorNameparameter toHullclient andHull.Connectorwhich if set will be added to logs context (which will end up asconnector_namein the logs) - if the name is not provided explicitly the
Hull.Connectorwill try to read it frommanifest.json - by default set json format of the logger console output
- fix
delmethod call - thanks @phillipalexander - adds
additionalQuerytoreq.hull.helpers.requestExtractandreq.hull.client.extract.request - adds third, optional parameter to
notifHandleruser:updatehandler to mark if we are processing batch or notifications - in case of batch it includesqueryandbodyparams from request - renamed
req.hull.helpers.filterUserSegmentstoreq.hull.helpers.filterNotification - changed the filter to pass users who just left the filtered segment for last sync
- switched
batchHandlerto notification format instead of the simplifieduserobject - removed
setUserSegments, instead defaultsegmentsandchanges.segments.leftparameters should be used - removed filter from internal
batchHandlerinsidenotifHandler
- fix the
requestExtracthandler - allow passingpathparam - fix the
.asUser()and.asAccount()to returntraitsandtrack - adds
.asUser().account()method
- Reorganize the utils/helpers
- Introduce hull.as() create option
- Upgrade raven API and add default exit handler
- Combine notifHandler and batchHandler
- Automatically filter out users using segment filter on user:update and NOT on batch actions
- Renames
hull().as()method tohull().asUser() - Adds initial support for accounts
- Adds
/appwithHull.App,ServerandWorker - Adds
/helperswith functions being added to thereq.hull.clientafter being initiated by theHull.Middleware - Adds
/infrawithInstrumentation,Queue,CacheandBatcherservices - Adds
/utilswithhandlers,middlewaresandroutersused as a building blocks of theHullAppand to be used by the ship/connector directly - BREAKING - changed the callback signature in
NotifHandler
- Properly handle Passport strategies that don't accept a 6-argument method.
- Add optional
tokenInUrlargument inOAuthHandlerallowing to force static urls - Only support an object as second argument in
hull.logger.*andHull.logger.*- for better logging
- Allow passing
clientConfigto Middleware and NotifHandler - Keeps the logging context consist of organization and ship id
- Move signing cache key to ship-cache module
- Allow to bypass requireCredentials on Middleware
- Add processed count in batch handler context
- Sign ship cache key with secret
- Ship caching
- Hull.as uses lookup tokens by default
- Add support for
sync:trueoption onHull.traits
- Automatically batch calls to firehose endpoint
- Ensure
Hull.utils.groupTraitsreturns an Object everytime, even if index values such astraits_0are set. - Add Tests
- isSetup method in oAuth handler accepts parameters in resolve and reject to pass to the view
- Fix unsupported traits with special characters
- Removed
Hull.log,Hull.debug,Hull.onDebug,Hull.onMetric,Hull.onLog,hull.utils.debug,hull.utils.log,hull.utils.metric - Added Winston Logger that can accept new transports easily.