guardian / auditing-thrift-model Edit

Thrift model for auditing updates

Version Matrix

Thrift model for auditing updates

How to use


in build.sbt

libraryDependencies ++= Seq(
    "" %% "auditing-thrift-model" % "0.4.0"

somewhere in your code

import{App, Notification}

    app = App.YourAppHere,
    operation = "EatFruit",
    userEmail = "",
    date = new DateTime().toString(),
    resourceId = Some("apple"),
    message = Some("{json}")


You'll probably want to use thrift-serializer to handle the messages.

Sending messages

var Notification = require('auditing-thrift-model').Notification;
var App = require('auditing-thrift-model').App;

var message = new Notification({
    app = App.YourAppHere,
    operation = "EatFruit",
    userEmail = "",
    date = (new Date()).toISOString(),
    resourceId = "apple",
    message = JSON.stringify({json})

serializer.write(message, serializer.Compression.Gzip, function (err, bytes) {
    // use the buffer somehow

Receiving notifications

var serializer = require('thrift-serialize');
var Notification = require('auditing-thrift-model').Notification;, data, function (err, message) {
    // You can have the full name of the source app calling



  • Install thrift using brew install thrift

Add an application

The list of allowed applications is kept as an enum, add new ones in App.


The model is used both by Scala applications and node.js lambda.

  • sbt release to publish a new version on Sonatype
  • npm run compile to compile the model for node.js
  • update the version of package.json it should match the one you just released on Sonatype
  • npm publish ./ to publish the new version on npm