belrald-audit-logs
v1.0.3
Published
Track and Record API Request and Response Logs
Downloads
87
Readme
@belraldhq/audit-logs
Track and Record API Request and Response Logs
Table of Contents
Installation
Install the package using npm:
npm install belrald-audit-logs
yarn add belrald-audit-logs
Usage
getUserIpAddress
Function to get the user's IP address from the ipify API.
import { getUserIpAddress } from "belrald-audit-logs";
async function main() {
try {
const userIp = await getUserIpAddress();
console.log("User IP Address:", userIp);
} catch (error) {
console.error("Error:", error);
}
}
main();
createS3Client
Function to initialize an AWS S3 client.
import { createS3Client } from "belrald-audit-logs";
const config = {
accessKeyId: "YOUR_ACCESS_KEY_ID",
secretAccessKey: "YOUR_SECRET_ACCESS_KEY",
region: "YOUR_REGION",
};
const s3Client = createS3Client(config);
logUserActivity
Middleware for logging user actions and uploading logs to an S3 bucket.
import express from "express";
import { logUserActivity, createS3Client } from "belrald-audit-logs";
const app = express();
const awsConfig = {
accessKeyId: "YOUR_ACCESS_KEY_ID",
secretAccessKey: "YOUR_SECRET_ACCESS_KEY",
region: "YOUR_REGION",
bucket: "YOUR_BUCKET_NAME",
};
app.use(function (req: Request, res: Response, next: NextFunction) { logUserActivity(req, res, next, config, bucket) });
fetchLogsForOrganization
Function to fetch logs for a specific organization from an S3 bucket.
import { fetchLogsForOrganization, createS3Client } from "belrald-audit-logs";
const s3Client = createS3Client({
accessKeyId: "YOUR_ACCESS_KEY_ID",
secretAccessKey: "YOUR_SECRET_ACCESS_KEY",
region: "YOUR_REGION",
});
const bucketName = "YOUR_BUCKET_NAME";
async function main() {
const logs = await fetchLogsForOrganization(s3Client, bucketName);
console.log("Organization Logs:", logs);
}
main();
Types
This package provides various TypeScript types for the functions and configurations. You can refer to the Types section in the source code.
Contributing
Contributions are welcome! Please read our Contribution Guidelines for details.
License
This project is licensed under the MIT License - see the LICENSE file for details.