@apptrail/application-events-sdk
TypeScript icon, indicating that this package has built-in type declarations

0.0.10 • Public • Published

Apptrail Application Events SDK for Node JS

You can use the Apptrail Application Events SDK for Node JS to send audit logs from your Javascript applications to your customers.

Learn more

Notes and tips

  • Requires Node JS >= 12
  • The Application Events SDK relies on your Apptrail API key secret and is meant for server side use only and not in the browser.
  • Instantiate the client once at the top of your application and reuse it to prevent unnecessary recreation.

Installing

npm i --save @apptrail/application-events-sdk

Instantiating client

import { ApptrailEventsClient, ApptrailEventsClientConfig } from "@apptrail/application-events-sdk";

const myApiKey = loadMySecretApiKey();
const myRegion = "us-west-2";

const eventsClient = new ApptrailEventsClient({
  region: myRegion,
  apiKey: myApiKey,
});

Sending an event

import { ApptrailEvent, ApptrailEventsClient, ApptrailEventsClientConfig } from "@apptrail/application-events-sdk";

const event: ApptrailEvent = {
  tenantId: "cust_MGY4MmYzNDMtZjEwOC00OWI",
  eventName: "CreateRepository",
  eventTime: "2022-01-26T06:01:00Z",
  actor: {
    id: "acct_MmRlODllZDctM2I0Yi0",
    details: {
      type: "account",
      name: "API Access",
    },
  },
  resources: [
    {
      id: "repo_YWI5NjkzY2UtNzI1Ny00N",
      details: {
        repositoryType: "V2",
      },
    },
  ],
  context: {
    sourceIpAddress: "103.6.179.245",
    userAgent: "Apache-HttpClient/4.5.3 (Java/11.0.11)",
  },
  tags: {
    severity: "LOW",
  },
  eventDetails: {
    request: {
      repositoryName: "my-repository",
    },
  },
};

eventsClient.putEvent(event);

Handling errors

As a best practice, you should handle errors while sending events, especially if you are sending critical logs. The Events client includes automatic retries with backoff, but errors can happen due to rare server issues or client side issues.

You can choose what to do with failing events. For example, you may sideline them to disk, or a dead letter queue for retry or remediation.

import { ApptrailError } from "@apptrail/application-events-sdk";

try {
  eventsClient.putEvent(event);
} catch (e: any) {
  const error = e as ApptrailError;
  console.log(e.message);
  console.log(e.code);
  // handle error
}

Package Sidebar

Install

npm i @apptrail/application-events-sdk

Weekly Downloads

2

Version

0.0.10

License

ISC

Unpacked Size

24.9 kB

Total Files

9

Last publish

Collaborators

  • apptrail-npm