* add generic audit_trail service in core * expose auditTraik service to plugins * add auditTrail x-pack plugin * fix type errors * update mocks * expose asScoped interface via start. auditor via request context * use type from audit trail service * wrap getActiveSpace in safeCall only. it throws exception for non-authz * pass message to log explicitly * update docs * create one auditor per request * wire es client up to auditor * update docs * withScope accepts only one scope * use scoped client in context for callAsInternalUser * use auditor in scoped cluster client * adopt auditTrail plugin to new interface. configure log from config * do not log audit events in console by default * add audit trail functional tests * cleanup * add example * add mocks for spaces plugin * add unit tests * update docs * test description * Apply suggestions from code review apply @jportner suggestions Co-authored-by: Joe Portner <5295965+jportner@users.noreply.github.com> * add unit tests * more robust tests * make spaces optional * address comments * update docs * fix WebStorm refactoring Co-authored-by: Joe Portner <5295965+jportner@users.noreply.github.com>
56 lines
1.2 KiB
TypeScript
56 lines
1.2 KiB
TypeScript
/*
|
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
* or more contributor license agreements. Licensed under the Elastic License;
|
|
* you may not use this file except in compliance with the Elastic License.
|
|
*/
|
|
|
|
import { config } from './config';
|
|
|
|
describe('config schema', () => {
|
|
it('generates proper defaults', () => {
|
|
expect(config.schema.validate({})).toEqual({
|
|
enabled: false,
|
|
logger: {
|
|
enabled: false,
|
|
},
|
|
});
|
|
});
|
|
|
|
it('accepts an appender', () => {
|
|
const appender = config.schema.validate({
|
|
appender: {
|
|
kind: 'file',
|
|
path: '/path/to/file.txt',
|
|
layout: {
|
|
kind: 'json',
|
|
},
|
|
},
|
|
logger: {
|
|
enabled: false,
|
|
},
|
|
}).appender;
|
|
|
|
expect(appender).toEqual({
|
|
kind: 'file',
|
|
path: '/path/to/file.txt',
|
|
layout: {
|
|
kind: 'json',
|
|
},
|
|
});
|
|
});
|
|
|
|
it('rejects an appender if not fully configured', () => {
|
|
expect(() =>
|
|
config.schema.validate({
|
|
// no layout configured
|
|
appender: {
|
|
kind: 'file',
|
|
path: '/path/to/file.txt',
|
|
},
|
|
logger: {
|
|
enabled: false,
|
|
},
|
|
})
|
|
).toThrow();
|
|
});
|
|
});
|