npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

audit-node-sdk

v2.1.0

Published

Audit node sdk

Downloads

135

Readme

Auditoria SDK

Modulo de registro de logs en el servicio de auditoria.

AMPQ variables de entorno

Es necesario tener funcionando del lado del cliente el servicio de rabbit

MIDAS_AUDIT_AMQP_QUEUE= RABBIT_USERNAME= RABBIT_PASSWORD= MIDAS_AUDIT_AMQP_CONNECTION= AUDIT_SERVICE_HEADER=

Middleware initial

En app.js que es el entrypoint de nuestro aplicación en node, necesitamos importar la función signin para registrarse al servicio de auditoría. Este paso es realmente necesario para poder escribir en los logs del servicio de auditoría.

Express

const {handlerMiddleware} = require('midas-audit-sdk');
 // Enabled Authentication Module
 app.use('/api/', passport.authenticate('jwt', {session: false}));
 // Middleware q obtiene req.user, req.header[trace-header]
 app.use(handlerMiddleware);

Nestjs

[const {handlerMiddleware} = require('midas-audit-sdk');
 // Enabled Authentication Module
 app.use('/api/', passport.authenticate('jwt', {session: false}));
 // Middleware q obtiene req.user, req.header[trace-header]
 app.use(handlerMiddleware);](import { Module, NestModule, MiddlewareConsumer } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { CatsModule } from './cats/cats.module';
import * as dotenv from 'dotenv';
import { handlerMiddleware } from 'midas-audit-sdk';
import { MongooseModule } from '@nestjs/mongoose';
import { AuthModule } from './authentication/auth.module';

@Module({
 imports: [CatsModule, MongooseModule.forRoot('mongodb://localhost/nest'), AuthModule],
 controllers: [AppController],
 providers: [AppService],
})
export class AppModule implements NestModule {
 configure(consumer: MiddlewareConsumer) {
   // initialize dotenv config
   dotenv.config();
   consumer
     // apply middleware to get user and traceID
     .apply(handlerMiddleware)
     .forRoutes('cats');
 }
}
)

@Checkpoint

La segunda forma de utilizar el SDK es mediante la anotación @Chekpoint.

@Checkpoint({ action: 'WRITE', includeParams: true, behavior: 'AROUND' })
public async create(createCatDto: CreateCatDto): Promise<Cat> {
   const createdCat = new this.catModel(createCatDto);
   return createdCat.save();
}

La anotación funciona a nivel de método. Cada vez que se invoque el método anotado, previo a su ejecución se invocará al servicio de auditoría escribiendo la información configurada según los parámetros de la anotación:

action:string: Nombre de la acción

<includeParams:boolean: optional default true>: Si es true, todos los parámetros del método anotado se incluirán en el registro como el payload de la acción

<behavior:BEFORE | AFTER | AROUND>: Indica la información que debe escribir el servicio: BEFORE: Escribe únicamente los parámetros del método en el campo payloadIn AFTER: Escribe únicamente el valor de retorno del método en el campo payloadOut AROUND: Escribe los parámetros del método en el campo payloadIn y el valor de retorno en el campo payloadOut

Middelware error/success

A nivel de middleware de express, podemos loguear después de que las rutas están definidas para loguearse automáticamente los errores o success de cada endpoint.

Express

const {handlerError, handlerSuccess} = require('midas-audit-sdk');
app.use(handlerSuccess);
app.use(handlerError);

Recibe error, request, response de: Action: request.url PayloadIn: request.params // request.swagger.params PayloadOut: err

Wrapper

La anotación funciona a nivel de función. Requiere que las funciones se exporten individualmente en cada archivo js. Cada vez que se invoque el método anotado, previo a su ejecución se invocará al servicio de auditoría escribiendo la información configurada según los parámetros de la anotación:

action:string: Nombre de la función

<payloadIn - parámetros de la funcion>: Todos los parámetros del método anotado se incluirán en el registro como el payload de la acción

<behavior: AROUND>: Indica la información que debe escribir el servicio:

AROUND: Escribe los parámetros del método en el campo payloadIn y el valor de retorno en el campo payloadOut

import {log} from 'midas-audit-sdk';

const createNewUser = (payload) => new Promise((resolve, reject) => {
 User.register(payload, payload.password, (err, user) => {
   if (err) {
     reject(err);
   }
   return resolve(user);
 });
});

module.exports = {
 createNewUser: log(createNewUser)
};

Checkpoint

Es una función de node, que se agrega a cualquier clase/archivo js mediante la siguiente anotación.

const {hit} = require('midas-audit-sdk');

El componente contiene una única función sobrecargado con más o menos parámetros según la necesidad:

hit = ({ action, payloadIn, payloadOut, traceId })

Recibe objeto json que tiene las propiedades: action, payloadIn, payloadOut, traceId. El payload (in/out) puede ser cualquier objeto json. Este método va a generar un traceId nuevo siempre y cuando el traceId sea null o no haya uno previamente en la sesión. Ejemplo de uso:

const {hit} = require('midas-audit-sdk');

public void method() {
 hit({action: “WRITE”,payloadIn:{}, traceId: “123456” });
}