@contrast/reporter
v1.58.0
Published
Subscribes to agent messages and reports them
Keywords
Readme
@contrast/reporter
Set up agent IO.
Reporting in the agent follows the PUB-SUB model. Reporters are nothing more than subscribers of messages published by the various agent components. Reporters can collect messages of interest and do with them what they will.
If a reporter want's to communicate with the agent, e.g. send it new settings to update feature behaviors, then it will publish the appropirate message to which the agent component is listening.
Main Ideas
Like other services, core will compose
@contrast/reportersinto the dependency container object.const { reporters } require('@contrast/core')();Clients can than
awaitany reporter initialization code and respond to any errors.try { await reporters.install(); } catch (error) { // maybe we failed to connect to teamserver or something? // decide what to do. }Other than that, it's just plugging into the agent's event stream.
// e.g. teamserver Protect reporter pseudocode module.exports = function(deps) { return { async install() { await this.startup(deps); await this.appCreate(deps); ['InputAnalysis', 'BlockAtPerimeter', 'SinkEvent', 'HTTPRequest'].forEach((msgName) => { deps.messages.on(msgName, (msg) => { putInQueueAndReportLater(msgName, msg); }); }); } }; };
