@sphereon/ssi-sdk.event-logger 0.18.1 → 0.18.2-next.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/agent/EventLogger.d.ts +3 -1
- package/dist/agent/EventLogger.d.ts.map +1 -1
- package/dist/agent/EventLogger.js +14 -4
- package/dist/agent/EventLogger.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/ssi-sdk.event-logger.d.ts +13 -7
- package/dist/types/IEventLogger.d.ts +5 -4
- package/dist/types/IEventLogger.d.ts.map +1 -1
- package/package.json +5 -5
- package/plugin.schema.json +5 -5
- package/src/agent/EventLogger.ts +17 -3
- package/src/index.ts +1 -1
- package/src/types/IEventLogger.ts +12 -4
package/README.md
CHANGED
|
@@ -30,7 +30,8 @@ This is mainly as a fallback for when no listener is present within the agent.
|
|
|
30
30
|
```typescript
|
|
31
31
|
import { migrations, Entities } from '@veramo/data-store'
|
|
32
32
|
import { EventLogger, IEventLogger } from '@sphereon/ssi-sdk.event-logger'
|
|
33
|
-
import { EventLoggerStore, DataStoreMigrations, DataStoreEventLoggerEntities
|
|
33
|
+
import { EventLoggerStore, DataStoreMigrations, DataStoreEventLoggerEntities } from '@sphereon/ssi-sdk.data-store'
|
|
34
|
+
import { LoggingEventType } from '@sphereon/ssi-sdk.core'
|
|
34
35
|
|
|
35
36
|
const dbConnection = createConnection({
|
|
36
37
|
type: 'react-native',
|
|
@@ -4,11 +4,13 @@ import { EventLoggerOptions, IEventLogger, RequiredContext, LoggingEvent } from
|
|
|
4
4
|
/**
|
|
5
5
|
* {@inheritDoc IEventLogger}
|
|
6
6
|
*/
|
|
7
|
+
export declare const eventLoggerAuditMethods: Array<string>;
|
|
8
|
+
export declare const eventLoggerMethods: Array<string>;
|
|
7
9
|
export declare class EventLogger implements IAgentPlugin {
|
|
8
10
|
readonly schema: any;
|
|
9
11
|
readonly eventTypes: Array<LoggingEventType>;
|
|
10
12
|
readonly methods: IEventLogger;
|
|
11
|
-
private readonly store
|
|
13
|
+
private readonly store?;
|
|
12
14
|
constructor(options: EventLoggerOptions);
|
|
13
15
|
onEvent(event: LoggingEvent, context: RequiredContext): Promise<void>;
|
|
14
16
|
private loggerGetAuditEvents;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventLogger.d.ts","sourceRoot":"","sources":["../../src/agent/EventLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAqB,gBAAgB,EAAY,MAAM,wBAAwB,CAAA;AAGtF,OAAO,EAAE,kBAAkB,EAAsB,YAAY,EAAE,eAAe,EAAqB,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAE9I;;GAEG;
|
|
1
|
+
{"version":3,"file":"EventLogger.d.ts","sourceRoot":"","sources":["../../src/agent/EventLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAqB,gBAAgB,EAAY,MAAM,wBAAwB,CAAA;AAGtF,OAAO,EAAE,kBAAkB,EAAsB,YAAY,EAAE,eAAe,EAAqB,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAE9I;;GAEG;AAGH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,MAAM,CAAmD,CAAA;AACrG,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAgC,CAAA;AAE7E,qBAAa,WAAY,YAAW,YAAY;IAC9C,QAAQ,CAAC,MAAM,MAAsB;IACrC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAK;IAEjD,QAAQ,CAAC,OAAO,EAAE,YAAY,CAG7B;IAED,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAA0B;gBAErC,OAAO,EAAE,kBAAkB;IAM1B,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAWpE,oBAAoB;YAUpB,mBAAmB;CAmBlC"}
|
|
@@ -9,13 +9,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.EventLogger = void 0;
|
|
12
|
+
exports.EventLogger = exports.eventLoggerMethods = exports.eventLoggerAuditMethods = void 0;
|
|
13
13
|
const ssi_sdk_core_1 = require("@sphereon/ssi-sdk.core");
|
|
14
14
|
const uuid_1 = require("uuid");
|
|
15
15
|
const index_1 = require("../index");
|
|
16
16
|
/**
|
|
17
17
|
* {@inheritDoc IEventLogger}
|
|
18
18
|
*/
|
|
19
|
+
// Exposing the methods here for any REST implementation
|
|
20
|
+
exports.eventLoggerAuditMethods = ['loggerGetAuditEvents', 'loggerLogAuditEvent'];
|
|
21
|
+
exports.eventLoggerMethods = [...exports.eventLoggerAuditMethods];
|
|
19
22
|
class EventLogger {
|
|
20
23
|
constructor(options) {
|
|
21
24
|
this.schema = index_1.schema.IEventLogger;
|
|
@@ -32,7 +35,8 @@ class EventLogger {
|
|
|
32
35
|
return __awaiter(this, void 0, void 0, function* () {
|
|
33
36
|
switch (event.type) {
|
|
34
37
|
case ssi_sdk_core_1.LoggingEventType.AUDIT:
|
|
35
|
-
|
|
38
|
+
// Calling the context of the agent to make sure the REST client is called when configured
|
|
39
|
+
yield context.agent.loggerLogAuditEvent({ event: event.data });
|
|
36
40
|
break;
|
|
37
41
|
default:
|
|
38
42
|
return Promise.reject(Error('Event type not supported'));
|
|
@@ -42,15 +46,21 @@ class EventLogger {
|
|
|
42
46
|
loggerGetAuditEvents(args) {
|
|
43
47
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
48
|
const { filter } = args !== null && args !== void 0 ? args : {};
|
|
49
|
+
if (!this.store) {
|
|
50
|
+
return Promise.reject(Error('No store available in options'));
|
|
51
|
+
}
|
|
45
52
|
return this.store.getAuditEvents({ filter });
|
|
46
53
|
});
|
|
47
54
|
}
|
|
48
|
-
loggerLogAuditEvent(args
|
|
55
|
+
loggerLogAuditEvent(args) {
|
|
49
56
|
var _a, _b;
|
|
50
57
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
58
|
const { event } = args;
|
|
59
|
+
if (!this.store) {
|
|
60
|
+
return Promise.reject(Error('No store available in options'));
|
|
61
|
+
}
|
|
52
62
|
return this.store.storeAuditEvent({
|
|
53
|
-
event: Object.assign(Object.assign({}, event), { system: event.system, subSystemType: event.subSystemType, level: (_a = event.level) !== null && _a !== void 0 ? _a : ssi_sdk_core_1.LogLevel.INFO, correlationId: (_b = event.correlationId) !== null && _b !== void 0 ? _b : (0, uuid_1.v4)(), timestamp: new Date() }),
|
|
63
|
+
event: Object.assign(Object.assign({}, event), { system: event.system, subSystemType: event.subSystemType, initiatorType: event.initiatorType, level: (_a = event.level) !== null && _a !== void 0 ? _a : ssi_sdk_core_1.LogLevel.INFO, correlationId: (_b = event.correlationId) !== null && _b !== void 0 ? _b : (0, uuid_1.v4)(), timestamp: new Date() }),
|
|
54
64
|
});
|
|
55
65
|
});
|
|
56
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventLogger.js","sourceRoot":"","sources":["../../src/agent/EventLogger.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,yDAAsF;AACtF,+BAAmC;AACnC,oCAAiC;AAGjC;;GAEG;AAEH,MAAa,WAAW;IAWtB,YAAY,OAA2B;QAV9B,WAAM,GAAG,cAAM,CAAC,YAAY,CAAA;QAC5B,eAAU,GAA4B,EAAE,CAAA;QAExC,YAAO,GAAiB;YAC/B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1D,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;SACzD,CAAA;QAKC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAEY,OAAO,CAAC,KAAmB,EAAE,OAAwB;;YAChE,QAAQ,KAAK,CAAC,IAAI,EAAE;gBAClB,KAAK,+BAAgB,CAAC,KAAK;oBACzB,MAAM,
|
|
1
|
+
{"version":3,"file":"EventLogger.js","sourceRoot":"","sources":["../../src/agent/EventLogger.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,yDAAsF;AACtF,+BAAmC;AACnC,oCAAiC;AAGjC;;GAEG;AAEH,wDAAwD;AAC3C,QAAA,uBAAuB,GAAkB,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,CAAA;AACxF,QAAA,kBAAkB,GAAkB,CAAC,GAAG,+BAAuB,CAAC,CAAA;AAE7E,MAAa,WAAW;IAWtB,YAAY,OAA2B;QAV9B,WAAM,GAAG,cAAM,CAAC,YAAY,CAAA;QAC5B,eAAU,GAA4B,EAAE,CAAA;QAExC,YAAO,GAAiB;YAC/B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1D,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;SACzD,CAAA;QAKC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAEY,OAAO,CAAC,KAAmB,EAAE,OAAwB;;YAChE,QAAQ,KAAK,CAAC,IAAI,EAAE;gBAClB,KAAK,+BAAgB,CAAC,KAAK;oBACzB,0FAA0F;oBAC1F,MAAM,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;oBAC9D,MAAK;gBACP;oBACE,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAA;aAC3D;QACH,CAAC;KAAA;IAEa,oBAAoB,CAAC,IAAyB;;YAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA;YAE7B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACf,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAA;aAC9D;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAC9C,CAAC;KAAA;IAEa,mBAAmB,CAAC,IAAuB;;;YACvD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;YAEtB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACf,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAA;aAC9D;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;gBAChC,KAAK,kCACA,KAAK,KACR,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,uBAAQ,CAAC,IAAI,EACnC,aAAa,EAAE,MAAA,KAAK,CAAC,aAAa,mCAAI,IAAA,SAAM,GAAE,EAC9C,SAAS,EAAE,IAAI,IAAI,EAAE,GACtB;aACF,CAAC,CAAA;;KACH;CACF;AAzDD,kCAyDC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
declare const schema: any;
|
|
5
5
|
export { schema };
|
|
6
|
-
export { EventLogger } from './agent/EventLogger';
|
|
6
|
+
export { EventLogger, eventLoggerMethods, eventLoggerAuditMethods } from './agent/EventLogger';
|
|
7
7
|
export * from './types/IEventLogger';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,QAAA,MAAM,MAAM,KAAmC,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,QAAA,MAAM,MAAM,KAAmC,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC9F,cAAc,sBAAsB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.EventLogger = exports.schema = void 0;
|
|
17
|
+
exports.eventLoggerAuditMethods = exports.eventLoggerMethods = exports.EventLogger = exports.schema = void 0;
|
|
18
18
|
/**
|
|
19
19
|
* @public
|
|
20
20
|
*/
|
|
@@ -22,5 +22,7 @@ const schema = require('../plugin.schema.json');
|
|
|
22
22
|
exports.schema = schema;
|
|
23
23
|
var EventLogger_1 = require("./agent/EventLogger");
|
|
24
24
|
Object.defineProperty(exports, "EventLogger", { enumerable: true, get: function () { return EventLogger_1.EventLogger; } });
|
|
25
|
+
Object.defineProperty(exports, "eventLoggerMethods", { enumerable: true, get: function () { return EventLogger_1.eventLoggerMethods; } });
|
|
26
|
+
Object.defineProperty(exports, "eventLoggerAuditMethods", { enumerable: true, get: function () { return EventLogger_1.eventLoggerAuditMethods; } });
|
|
25
27
|
__exportStar(require("./types/IEventLogger"), exports);
|
|
26
28
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;AACtC,wBAAM;AACf,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;AACtC,wBAAM;AACf,mDAA8F;AAArF,0GAAA,WAAW,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAAE,sHAAA,uBAAuB,OAAA;AACjE,uDAAoC"}
|
|
@@ -3,28 +3,33 @@ import { AuditLoggingEvent } from '@sphereon/ssi-sdk.core';
|
|
|
3
3
|
import { FindAuditLoggingEventArgs } from '@sphereon/ssi-sdk.data-store';
|
|
4
4
|
import { IAgentContext } from '@veramo/core';
|
|
5
5
|
import { IAgentPlugin } from '@veramo/core';
|
|
6
|
+
import { InitiatorType } from '@sphereon/ssi-sdk.core';
|
|
6
7
|
import { IPluginMethodMap } from '@veramo/core';
|
|
7
8
|
import { LoggingEventType } from '@sphereon/ssi-sdk.core';
|
|
8
9
|
import { NonPersistedAuditLoggingEvent as NonPersistedAuditLoggingEvent_2 } from '@sphereon/ssi-sdk.core';
|
|
9
10
|
import { SubSystem } from '@sphereon/ssi-sdk.core';
|
|
10
11
|
import { System } from '@sphereon/ssi-sdk.core';
|
|
11
12
|
|
|
12
|
-
/**
|
|
13
|
-
* {@inheritDoc IEventLogger}
|
|
14
|
-
*/
|
|
15
13
|
export declare class EventLogger implements IAgentPlugin {
|
|
16
14
|
readonly schema: any;
|
|
17
15
|
readonly eventTypes: Array<LoggingEventType>;
|
|
18
16
|
readonly methods: IEventLogger;
|
|
19
|
-
private readonly store
|
|
17
|
+
private readonly store?;
|
|
20
18
|
constructor(options: EventLoggerOptions);
|
|
21
19
|
onEvent(event: LoggingEvent, context: RequiredContext): Promise<void>;
|
|
22
20
|
private loggerGetAuditEvents;
|
|
23
21
|
private loggerLogAuditEvent;
|
|
24
22
|
}
|
|
25
23
|
|
|
24
|
+
/**
|
|
25
|
+
* {@inheritDoc IEventLogger}
|
|
26
|
+
*/
|
|
27
|
+
export declare const eventLoggerAuditMethods: Array<string>;
|
|
28
|
+
|
|
29
|
+
export declare const eventLoggerMethods: Array<string>;
|
|
30
|
+
|
|
26
31
|
export declare type EventLoggerOptions = {
|
|
27
|
-
store
|
|
32
|
+
store?: AbstractEventLoggerStore;
|
|
28
33
|
eventTypes: Array<LoggingEventType>;
|
|
29
34
|
};
|
|
30
35
|
|
|
@@ -46,12 +51,13 @@ export declare type LoggingEvent = {
|
|
|
46
51
|
data: NonPersistedAuditLoggingEvent;
|
|
47
52
|
};
|
|
48
53
|
|
|
49
|
-
export declare type NonPersistedAuditLoggingEvent = Omit<NonPersistedAuditLoggingEvent_2, 'system' | 'subSystemType'> & {
|
|
54
|
+
export declare type NonPersistedAuditLoggingEvent = Omit<NonPersistedAuditLoggingEvent_2, 'system' | 'subSystemType' | 'initiatorType'> & {
|
|
50
55
|
system: System;
|
|
51
56
|
subSystemType: SubSystem;
|
|
57
|
+
initiatorType: InitiatorType;
|
|
52
58
|
};
|
|
53
59
|
|
|
54
|
-
export declare type RequiredContext = IAgentContext<
|
|
60
|
+
export declare type RequiredContext = IAgentContext<IEventLogger>;
|
|
55
61
|
|
|
56
62
|
/**
|
|
57
63
|
* @public
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { IAgentContext, IPluginMethodMap } from '@veramo/core';
|
|
2
|
-
import { AuditLoggingEvent, NonPersistedAuditLoggingEvent as NPAuditLoggingEvent, LoggingEventType, SubSystem, System } from '@sphereon/ssi-sdk.core';
|
|
2
|
+
import { AuditLoggingEvent, NonPersistedAuditLoggingEvent as NPAuditLoggingEvent, LoggingEventType, SubSystem, System, InitiatorType } from '@sphereon/ssi-sdk.core';
|
|
3
3
|
import { AbstractEventLoggerStore, FindAuditLoggingEventArgs } from '@sphereon/ssi-sdk.data-store';
|
|
4
4
|
export interface IEventLogger extends IPluginMethodMap {
|
|
5
5
|
loggerGetAuditEvents(args?: GetAuditEventsArgs): Promise<Array<AuditLoggingEvent>>;
|
|
6
6
|
loggerLogAuditEvent(args: LogAuditEventArgs, context: RequiredContext): Promise<AuditLoggingEvent>;
|
|
7
7
|
}
|
|
8
8
|
export type EventLoggerOptions = {
|
|
9
|
-
store
|
|
9
|
+
store?: AbstractEventLoggerStore;
|
|
10
10
|
eventTypes: Array<LoggingEventType>;
|
|
11
11
|
};
|
|
12
12
|
export type GetAuditEventsArgs = {
|
|
@@ -15,13 +15,14 @@ export type GetAuditEventsArgs = {
|
|
|
15
15
|
export type LogAuditEventArgs = {
|
|
16
16
|
event: NonPersistedAuditLoggingEvent;
|
|
17
17
|
};
|
|
18
|
-
export type NonPersistedAuditLoggingEvent = Omit<NPAuditLoggingEvent, 'system' | 'subSystemType'> & {
|
|
18
|
+
export type NonPersistedAuditLoggingEvent = Omit<NPAuditLoggingEvent, 'system' | 'subSystemType' | 'initiatorType'> & {
|
|
19
19
|
system: System;
|
|
20
20
|
subSystemType: SubSystem;
|
|
21
|
+
initiatorType: InitiatorType;
|
|
21
22
|
};
|
|
22
23
|
export type LoggingEvent = {
|
|
23
24
|
type: LoggingEventType;
|
|
24
25
|
data: NonPersistedAuditLoggingEvent;
|
|
25
26
|
};
|
|
26
|
-
export type RequiredContext = IAgentContext<
|
|
27
|
+
export type RequiredContext = IAgentContext<IEventLogger>;
|
|
27
28
|
//# sourceMappingURL=IEventLogger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IEventLogger.d.ts","sourceRoot":"","sources":["../../src/types/IEventLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"IEventLogger.d.ts","sourceRoot":"","sources":["../../src/types/IEventLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EACL,iBAAiB,EACjB,6BAA6B,IAAI,mBAAmB,EACpD,gBAAgB,EAChB,SAAS,EACT,MAAM,EACN,aAAa,EACd,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAElG,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,oBAAoB,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAClF,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;CACnG;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE,wBAAwB,CAAA;IAChC,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,yBAAyB,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,6BAA6B,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,mBAAmB,EAAE,QAAQ,GAAG,eAAe,GAAG,eAAe,CAAC,GAAG;IACpH,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,SAAS,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,gBAAgB,CAAA;IACtB,IAAI,EAAE,6BAA6B,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.event-logger",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.2-next.14+9bc06856",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
"generate-plugin-schema": "ts-node ../../packages/dev/bin/sphereon.js dev generate-plugin-schema"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@sphereon/ssi-sdk.data-store": "0.18.
|
|
18
|
+
"@sphereon/ssi-sdk.data-store": "0.18.2-next.14+9bc06856",
|
|
19
19
|
"uuid": "^8.3.2"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@sphereon/ssi-sdk.agent-config": "0.18.
|
|
23
|
-
"@sphereon/ssi-sdk.core": "0.18.
|
|
22
|
+
"@sphereon/ssi-sdk.agent-config": "0.18.2-next.14+9bc06856",
|
|
23
|
+
"@sphereon/ssi-sdk.core": "0.18.2-next.14+9bc06856",
|
|
24
24
|
"@sphereon/ssi-sdk.data-store": "workspace:*",
|
|
25
25
|
"@types/jest": "^27.5.2",
|
|
26
26
|
"@types/uuid": "^8.3.4",
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"Logger",
|
|
53
53
|
"Audit"
|
|
54
54
|
],
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "9bc06856a9ad026cc14e7922bc634ee4a8f16f9d"
|
|
56
56
|
}
|
package/plugin.schema.json
CHANGED
|
@@ -78,7 +78,8 @@
|
|
|
78
78
|
0,
|
|
79
79
|
1,
|
|
80
80
|
2,
|
|
81
|
-
3
|
|
81
|
+
3,
|
|
82
|
+
4
|
|
82
83
|
]
|
|
83
84
|
},
|
|
84
85
|
"System": {
|
|
@@ -260,6 +261,9 @@
|
|
|
260
261
|
"subSystemType": {
|
|
261
262
|
"$ref": "#/components/schemas/SubSystem"
|
|
262
263
|
},
|
|
264
|
+
"initiatorType": {
|
|
265
|
+
"$ref": "#/components/schemas/InitiatorType"
|
|
266
|
+
},
|
|
263
267
|
"actionType": {
|
|
264
268
|
"type": "object",
|
|
265
269
|
"properties": {}
|
|
@@ -275,10 +279,6 @@
|
|
|
275
279
|
}
|
|
276
280
|
]
|
|
277
281
|
},
|
|
278
|
-
"initiatorType": {
|
|
279
|
-
"type": "object",
|
|
280
|
-
"properties": {}
|
|
281
|
-
},
|
|
282
282
|
"systemCorrelationIdType": {
|
|
283
283
|
"type": "object",
|
|
284
284
|
"properties": {}
|
package/src/agent/EventLogger.ts
CHANGED
|
@@ -9,6 +9,10 @@ import { EventLoggerOptions, GetAuditEventsArgs, IEventLogger, RequiredContext,
|
|
|
9
9
|
* {@inheritDoc IEventLogger}
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
+
// Exposing the methods here for any REST implementation
|
|
13
|
+
export const eventLoggerAuditMethods: Array<string> = ['loggerGetAuditEvents', 'loggerLogAuditEvent']
|
|
14
|
+
export const eventLoggerMethods: Array<string> = [...eventLoggerAuditMethods]
|
|
15
|
+
|
|
12
16
|
export class EventLogger implements IAgentPlugin {
|
|
13
17
|
readonly schema = schema.IEventLogger
|
|
14
18
|
readonly eventTypes: Array<LoggingEventType> = []
|
|
@@ -18,7 +22,7 @@ export class EventLogger implements IAgentPlugin {
|
|
|
18
22
|
loggerLogAuditEvent: this.loggerLogAuditEvent.bind(this),
|
|
19
23
|
}
|
|
20
24
|
|
|
21
|
-
private readonly store
|
|
25
|
+
private readonly store?: AbstractEventLoggerStore
|
|
22
26
|
|
|
23
27
|
constructor(options: EventLoggerOptions) {
|
|
24
28
|
const { store, eventTypes } = options
|
|
@@ -29,7 +33,8 @@ export class EventLogger implements IAgentPlugin {
|
|
|
29
33
|
public async onEvent(event: LoggingEvent, context: RequiredContext): Promise<void> {
|
|
30
34
|
switch (event.type) {
|
|
31
35
|
case LoggingEventType.AUDIT:
|
|
32
|
-
|
|
36
|
+
// Calling the context of the agent to make sure the REST client is called when configured
|
|
37
|
+
await context.agent.loggerLogAuditEvent({ event: event.data })
|
|
33
38
|
break
|
|
34
39
|
default:
|
|
35
40
|
return Promise.reject(Error('Event type not supported'))
|
|
@@ -39,17 +44,26 @@ export class EventLogger implements IAgentPlugin {
|
|
|
39
44
|
private async loggerGetAuditEvents(args?: GetAuditEventsArgs): Promise<Array<AuditLoggingEvent>> {
|
|
40
45
|
const { filter } = args ?? {}
|
|
41
46
|
|
|
47
|
+
if (!this.store) {
|
|
48
|
+
return Promise.reject(Error('No store available in options'))
|
|
49
|
+
}
|
|
50
|
+
|
|
42
51
|
return this.store.getAuditEvents({ filter })
|
|
43
52
|
}
|
|
44
53
|
|
|
45
|
-
private async loggerLogAuditEvent(args: LogAuditEventArgs
|
|
54
|
+
private async loggerLogAuditEvent(args: LogAuditEventArgs): Promise<AuditLoggingEvent> {
|
|
46
55
|
const { event } = args
|
|
47
56
|
|
|
57
|
+
if (!this.store) {
|
|
58
|
+
return Promise.reject(Error('No store available in options'))
|
|
59
|
+
}
|
|
60
|
+
|
|
48
61
|
return this.store.storeAuditEvent({
|
|
49
62
|
event: {
|
|
50
63
|
...event,
|
|
51
64
|
system: event.system,
|
|
52
65
|
subSystemType: event.subSystemType,
|
|
66
|
+
initiatorType: event.initiatorType,
|
|
53
67
|
level: event.level ?? LogLevel.INFO,
|
|
54
68
|
correlationId: event.correlationId ?? uuidv4(),
|
|
55
69
|
timestamp: new Date(),
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { IAgentContext, IPluginMethodMap } from '@veramo/core'
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
AuditLoggingEvent,
|
|
4
|
+
NonPersistedAuditLoggingEvent as NPAuditLoggingEvent,
|
|
5
|
+
LoggingEventType,
|
|
6
|
+
SubSystem,
|
|
7
|
+
System,
|
|
8
|
+
InitiatorType,
|
|
9
|
+
} from '@sphereon/ssi-sdk.core'
|
|
3
10
|
import { AbstractEventLoggerStore, FindAuditLoggingEventArgs } from '@sphereon/ssi-sdk.data-store'
|
|
4
11
|
|
|
5
12
|
export interface IEventLogger extends IPluginMethodMap {
|
|
@@ -8,7 +15,7 @@ export interface IEventLogger extends IPluginMethodMap {
|
|
|
8
15
|
}
|
|
9
16
|
|
|
10
17
|
export type EventLoggerOptions = {
|
|
11
|
-
store
|
|
18
|
+
store?: AbstractEventLoggerStore
|
|
12
19
|
eventTypes: Array<LoggingEventType>
|
|
13
20
|
}
|
|
14
21
|
|
|
@@ -20,9 +27,10 @@ export type LogAuditEventArgs = {
|
|
|
20
27
|
event: NonPersistedAuditLoggingEvent
|
|
21
28
|
}
|
|
22
29
|
|
|
23
|
-
export type NonPersistedAuditLoggingEvent = Omit<NPAuditLoggingEvent, 'system' | 'subSystemType'> & {
|
|
30
|
+
export type NonPersistedAuditLoggingEvent = Omit<NPAuditLoggingEvent, 'system' | 'subSystemType' | 'initiatorType'> & {
|
|
24
31
|
system: System
|
|
25
32
|
subSystemType: SubSystem
|
|
33
|
+
initiatorType: InitiatorType
|
|
26
34
|
}
|
|
27
35
|
|
|
28
36
|
export type LoggingEvent = {
|
|
@@ -30,4 +38,4 @@ export type LoggingEvent = {
|
|
|
30
38
|
data: NonPersistedAuditLoggingEvent
|
|
31
39
|
}
|
|
32
40
|
|
|
33
|
-
export type RequiredContext = IAgentContext<
|
|
41
|
+
export type RequiredContext = IAgentContext<IEventLogger>
|