- 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 error
which is handled the same as till now, andtransient error
which 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
timeout
option toHull.Connector
constructor to control the timeout value - upgrades
raven
library - add support for batch handlers for accounts
- adds
users_segments
andaccounts_segments
to Context Object - deprecation Renamed
userHandlerOptions
tooptions
in 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/export
and...spread
to make the code runnable on node v6 - remove babeljs es transpilation and replace it with
transform-flow-comments
plugin to have the flow annotations be included in resulting code in comments - adds
superagentUrlTemplatePlugin
andsuperagentInstrumentationPlugin
plugins for superagent client - changed concurrency on
handleExtract
to 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
unsupportedChannelFlowControl
size 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
smartNotifierMiddleware
andsmartNotifierHandler
utils - introduces
ctx.smartNotifierResponse
context object to build flow response - added
skipSignatureValidation
Hull.Connector
options to skip smartNotifier signature validation - breaking: removed
serviceMiddleware
andservice
param onHull.Connector
, new way of applying service related objects to the Context Object is theuse
method on the Connector instance and initialize the service objects directly on thereq.hull.service
namespace - restructurized tests folders and files
- properly map account object from batch extract to notification format
- fetch 200 segments for segments middleware
- makes
PromiseReuser
reuse the wholecache.wrap
, notclient.get
only
- adds
PromiseReuser
class 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.wrap
andreq.hull.cache.set
methods to set custom TTL - adds
HULL_ENV
env 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.handle
replaced byctx.helpers.handleExtract
- breaking:
client.utils.extract.request
replaced byctx.helpers.requestExtract
- breaking: removed
lib/utils/batchHandler
in favour oflib/utils/notifHandler
- breaking: removed
service
param onHull.Connector
in favor of custom middleware using.use
method - breaking:
QueueAgent
instance now acceptsQueueAdapter
instance 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
scopes
claim in auth tokens
- when handling batch extract,
notifHandler
should 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.as
alias 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
firehoseUrl
option to the Hull API client - background firehose batcher respects
firehoseUrl
param, if not set defaults to${protocol}://firehose.${domain}
- adds
Hull-Organization
header to firehose calls - make
notifHandler
working with handlers returning promise rejected to undefined value - change notifications JSON bodyParser size limit to 256kb (same as SNS message limit)
- make the
bull
adapter try 3 times before failing a job and cleaning completed jobs - make sure we don't return any
undefined
insegments
param while parsing batch request
- adds
bull
queue adapter using OptimalBits/bull library - minor changes to the
queueUiRouter
to allow working with different adapters - adds
ip
andtime
context param to traits call
- adds
queueName
as first argument to theconnector.startWorker
method - adds
queueName
as option to thectx.enqueue
method
- add
timeout
andretry
to 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.get
method 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
batchHandler
respond as soon as it starts to download the extract payload
ShipCache
properly returns a Promise fordel
method also for node-cache-manager stores which don't support Promise- adds
queue
param toqueueUiRouter
to match naming ofConnector
-queueAgent
is deprecated and will be removed in0.12.0
- fix the way Hull.Connector tried to load
manifest.json
file
- includes changes from all
0.11.0-beta
pre-releases - makes sure that the json logging is always in one-line
- adds
helpersMiddleware
to the worker middleware stack - updates outdated dependencies
- adds initial flow support
- adds logging to nofifHandler
- adds
segmentFilterSetting
setting to enable filtering - by default the filtering is not enabled notifHandler
andbatchHandler
pass all notifications to handler, but addsmatchesFilter
flag (true/false)
- fix
helpers.updateSettings
- adds optional
connectorName
parameter toHull
client andHull.Connector
which if set will be added to logs context (which will end up asconnector_name
in the logs) - if the name is not provided explicitly the
Hull.Connector
will try to read it frommanifest.json
- by default set json format of the logger console output
- fix
del
method call - thanks @phillipalexander - adds
additionalQuery
toreq.hull.helpers.requestExtract
andreq.hull.client.extract.request
- adds third, optional parameter to
notifHandler
user:update
handler to mark if we are processing batch or notifications - in case of batch it includesquery
andbody
params from request - renamed
req.hull.helpers.filterUserSegments
toreq.hull.helpers.filterNotification
- changed the filter to pass users who just left the filtered segment for last sync
- switched
batchHandler
to notification format instead of the simplifieduser
object - removed
setUserSegments
, instead defaultsegments
andchanges.segments.left
parameters should be used - removed filter from internal
batchHandler
insidenotifHandler
- fix the
requestExtract
handler - allow passingpath
param - fix the
.asUser()
and.asAccount()
to returntraits
andtrack
- 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
/app
withHull.App
,Server
andWorker
- Adds
/helpers
with functions being added to thereq.hull.client
after being initiated by theHull.Middleware
- Adds
/infra
withInstrumentation
,Queue
,Cache
andBatcher
services - Adds
/utils
withhandlers
,middlewares
androuters
used as a building blocks of theHullApp
and 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
tokenInUrl
argument inOAuthHandler
allowing to force static urls - Only support an object as second argument in
hull.logger.*
andHull.logger.*
- for better logging
- Allow passing
clientConfig
to 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:true
option onHull.traits
- Automatically batch calls to firehose endpoint
- Ensure
Hull.utils.groupTraits
returns an Object everytime, even if index values such astraits_0
are 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.