2024-09-23 15:04:22 +00:00
|
|
|
import {HomeDBManager} from 'app/gen-server/lib/homedb/HomeDBManager';
|
2024-09-09 20:04:21 +00:00
|
|
|
import {appSettings} from 'app/server/lib/AppSettings';
|
|
|
|
import {GristAuditLogger} from 'app/server/lib/GristAuditLogger';
|
|
|
|
|
2024-09-23 15:04:22 +00:00
|
|
|
export function configureGristAuditLogger(db: HomeDBManager) {
|
2024-09-09 20:04:21 +00:00
|
|
|
const options = checkGristAuditLogger();
|
|
|
|
if (!options) { return undefined; }
|
|
|
|
|
2024-09-23 15:04:22 +00:00
|
|
|
return new GristAuditLogger(db, options);
|
2024-09-09 20:04:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export function checkGristAuditLogger() {
|
|
|
|
const settings = appSettings.section('auditLogger').section('http');
|
|
|
|
const endpoint = settings.flag('endpoint').readString({
|
|
|
|
envVar: 'GRIST_AUDIT_HTTP_ENDPOINT',
|
|
|
|
});
|
|
|
|
if (!endpoint) { return undefined; }
|
|
|
|
|
|
|
|
const payloadFormat = settings.flag('payloadFormat').readString({
|
|
|
|
envVar: 'GRIST_AUDIT_HTTP_PAYLOAD_FORMAT',
|
|
|
|
defaultValue: 'grist',
|
|
|
|
});
|
|
|
|
if (payloadFormat !== 'grist') { return undefined; }
|
|
|
|
|
|
|
|
const authorizationHeader = settings.flag('authorizationHeader').readString({
|
|
|
|
envVar: 'GRIST_AUDIT_HTTP_AUTHORIZATION_HEADER',
|
|
|
|
censor: true,
|
|
|
|
});
|
|
|
|
|
|
|
|
return {endpoint, authorizationHeader};
|
|
|
|
}
|