Home

Awesome

retraced-js

CircleCI

This is the official NodeJS client for interacting with the Retraced API. Retraced is an "audit logs as a service" provider, allowing developers to easily implement audit logging in their multi-tenant products and services. For more information, see the official website: https://boxyhq.com/audit-logs

Installation

yarn

yarn add @retracedhq/retraced

npm

npm i -s @retracedhq/retraced

Usage

import * as Retraced from "@retracedhq/retraced";

// Initialize the client with your information.
const retraced = new Retraced.Client({
  apiKey: "your api key goes here",
  projectId: "your project id goes here",
});

// Report some audit events!
async function createNewRecord(request) {
  const newRecord = /* transform request into newRecord */
  // ... some more business logic here ...

  // Now construct the audit event to be reported to Retraced.
  const event = {
    action: "some.record.created",
    group: {
      id: "12345",
      name: "My Rad Customer",
    },
    crud: "c",
    source_ip: request.ip,
    actor: {
      id: "ultra.employee@customertowne.xyz",
      displayName: "Ultra Employee",
      url: "https://customertowne.xyz/employees/123456",
    },
    target: {
      id: newRecord.id,
      displayName: newRecord.name,
      url: "https://customertowne.xyz/records/" + newRecord.id,
    },
  };

  // The Retraced client's methods are asynchronous.
  // You can "fire and forget" them...
  retraced.reportEvent(event);

  // ... "await" them...
  console.log("Reporting...");
  await retraced.reportEvent(event);
  console.log("Finished reporting!");

  // ... or treat them as Promises.
  console.log("Reporting...");
  retraced.reportEvent(event)
    .then(() => { console.log("Finished reporting!"); })
    .catch((err) => handleError(err));
}

Next Steps

For more details on the structure of Retraced events, please visit the official documentation.