A typescript framework that helps you audit log the changes to your parse objects as well as log queries on the objects. ππ
Simply install the package from the official npm repository
npm install parse-audit-logger
To use parse audit logger in your parse server, you need initialize the auditLogger in your entry point.. The constructor takes various options read about the options .
// src/server.ts
import { AuditLogger } from 'parse-audit-logger'
AuditLogger.initialize({
/// can provide options.
})
Now you can use AuditLogger.audit(req)
in your triggers to audit the request.
// controllers/myClass.ts
import { AuditLogger } from 'parse-audit-logger'
Parse.Cloud.AfterSave('MyClass', async (req)=>{
//Do your stuff here
// .
// .
// .
await AuditLogger.audit(req);
})
If in your parse server allowClientClassCreation
is set to false
, you either need to supply useMasterKey: true
while creating the AuditLogger object, or else supply the audit schemas by using getAuditLoggerSchemas
while creating schemas.
/*
* If allowClientClassCreation is set to false,
* either use masterKey to create the audit objects
*/
AuditLogger.initialize({
// ...other options
useMasterKey:true,
});
/*
* Or,supply the returned schemas along with your schemas
* to your parse server
*/
const auditSchemas = AuditLogger.schemas(...yourClassName);
const parseServerOptions = {
// ...yourParseServerOptions,
schema:{
// ...yourParseServerSchemaOptions
definitions: [
// ...yourDefinitions,
...auditSchemas
]
}
};
const parse = new ParseServer(parseServerOptions);
The options taken by the constructor are given below
option | description | type |
---|---|---|
onSave | Array of classes that should be audited on save | array |
onFind | Array of classes that should be audited on find | array |
onDelete | Array of classes that should be audited on delete | array |
useMasterKey | Wether to use master key while saving audit objects. Defaults to false |
boolean |
prefix | Prefix string to append to the schema. Defaults to _Audit |
string |
postfix | Postfix string to append to the schema | string |
parseClient | Parse client to use. Generally Parse is globally available and will be used. | Parse |
Feel free to create issues π΅βπ« or ask questions π€¨ in issues tab if you have any. You can also create pull requests π» to main
branch if you have something to contribute. Thanks! π