auth0-log-extension-tools

1.3.10 • Public • Published

auth0-log-extension-tools

Logs API Client

The API client is a low level client allowing you to fetch logs from the Auth0 Management API. This client will get an access_token from the Management API and cache it in memory for as long as it is valid.

const client = new LogsApiClient({
  domain: config('AUTH0_DOMAIN'),
  clientId: config('AUTH0_CLIENT_ID'),
  clientSecret: config('AUTH0_CLIENT_SECRET'),
  tokenCache: myTokenCache
});
 
client.getLogs(query)
  .then(data => {
    // data.logs contains an array of logs.
    // data.limits contains the rate limit details for this request.
  });

A custom token cache provider can be supplied to persist the token somewhere (instead of in memory):

{
  getToken: function() {
    return Promise.resolve('my token');
  },
  setToken: function(token) {
    // Save the token somewhere
    return Promise.resolve();
  }
}

Logs API Stream

The stream client is a wrapper around the API client and allows you to fetch all logs from a specific point (the checkpoint ID).

const stream = new LogsApiStream({
  domain: config('AUTH0_DOMAIN'),
  clientId: config('AUTH0_CLIENT_ID'),
  clientSecret: config('AUTH0_CLIENT_SECRET'),
  tokenCache: myTokenCache,
  checkpointId: startCheckpoint,
  types: [ 'ss', 'fn' ]
});
 
// Get the first batch of 50 items.
stream.next(50);
 
// Process batch of logs.
stream.on('data', function(data) {
  // data.logs contains an array of logs.
  // data.limits contains the rate limit details for this request.
 
  // You can now ask for the next batch.
  stream.next(50);
 
  // Or you can also stop the stream.
  stream.done();
});
 
// We've reached the end of the stream OR rate limiting kicked in.
stream.on('end', function() {
 
});
 
// An error occured when processing the stream.
stream.on('error', function(err) {
  console.log(err);
});

Logs Processor

The logs processor will orchestrate everything to make log shipping and processing much easier. It will handle retries, timeouts etc..

  • batchSize: Size of the batch we'll make available in the handler
  • maxRetries: How many times the batch should be retried (the send part) before discarding the logs
  • maxRunTimeSeconds: How long the processor is allowed to run
  • startFrom: The Auth0 Log identifier to start from
  • logTypes: An array of log types to filter on
  • logLevel: The log level to filter on (0 = debug, 1 = info, 2 = warning, 3 = error, 4 = critical)
const processor = new LogsProcessor(storageContext, {
  domain: config('AUTH0_DOMAIN'),
  clientId: config('AUTH0_CLIENT_ID'),
  clientSecret: config('AUTH0_CLIENT_SECRET'),
  batchSize: config('BATCH_SIZE'),
  startFrom: config('START_FROM'),
  logTypes: [ 'ss', 'fn' ],
  logLevel: config('LOG_LEVEL')
});
 
processor
  .run((logs, cb) => {
    sendLogsSomewhere(function(err, result) {
      if (err) {
        return cb(err);
      }
 
      cb();
    });
  })
  .then(status => console.log(status))
  .catch(err => console.log(err));

/auth0-log-extension-tools/

    Package Sidebar

    Install

    npm i auth0-log-extension-tools

    Weekly Downloads

    22

    Version

    1.3.10

    License

    MIT

    Unpacked Size

    77.8 kB

    Total Files

    23

    Last publish

    Collaborators

    • jfromaniello
    • edgarchirivella-okta
    • sanjay.manikandhan
    • ncluer
    • vic-dev
    • enriquepina
    • ece-okta
    • pubalokta
    • dougmiller-okta
    • zak.nour
    • stheller
    • jamescgarrett-okta
    • madhuri.rm23
    • willvedd
    • david.renaud.okta
    • jeff.shuman
    • auth0-oss
    • codepete
    • ziluvatar
    • iaco
    • cocojoe
    • auth0npm
    • auth0brokkr
    • hzalaz
    • aaguiarz
    • charlesrea
    • lbalmaceda
    • julien.wollscheid
    • cristiandouce
    • sambego
    • stevehobbsdev
    • sandrinodimattia
    • lzychowski
    • joshcanhelp
    • davidpatrick0
    • widcket
    • adamjmcgrath
    • jim.andersoon
    • frederikprijck
    • sergii.biienko
    • tomauth0
    • jpadilla
    • jessele
    • rhamzeh_auth0