bhsf-audit-logging
Version:
Audit entry utility and it is used in all nodejs modules as an audit utility.
53 lines (42 loc) • 1.76 kB
JavaScript
const { Pool } = require("pg");
const logger = require("@bhsf/winston-logger");
const AUDIT_DB_NAME = process.env.AUDIT_DB_NAME || "postgres";
const AUDIT_TABLE_NAME = process.env.AUDIT_TABLE_NAME || "audit";
const AUDIT_HOST = process.env.AUDIT_HOST || "localhost";
const POST_GRS_PORT = process.env.POST_GRS_PORT || 5432;
const POST_GRS_USER_NAME = process.env.POST_GRS_USER_NAME || "postgres";
const POST_GRS_PASSWORD = process.env.POST_GRS_PASSWORD || "mybro143";
const credentials = {
user: POST_GRS_USER_NAME,
host: AUDIT_HOST,
database: AUDIT_DB_NAME,
password: POST_GRS_PASSWORD,
port: POST_GRS_PORT,
};
// Connect with a connection pool.
const pool = new Pool(credentials);
/**
*
* @param {*} auditRecord
*/
async function auditEntry( auditRecord ) {
logger.info("auditRecordEntry():audit entry begin!" + JSON.stringify(auditRecord) );
let val = {};
try {
const text = `
INSERT INTO ${AUDIT_TABLE_NAME}(endpoint,method,parameters,processname,request_payload,responsecode,response_payload,createdTime)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
RETURNING id `;
const currentTimeInSeconds = new Date();
const values = [auditRecord.endpoint, auditRecord.method,
auditRecord.parameters, auditRecord.processname,
auditRecord.request_payload, auditRecord.responsecode,
auditRecord.response_payload,currentTimeInSeconds];
val = pool.query(text, values);
logger.info("audit entry completed" + JSON.stringify(val));
} catch (error) {
logger.error("audit entry is compiled with an error " + JSON.stringify(error));
}
return val;
}
module.exports = auditEntry;