@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 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, LoggingEventType } from '@sphereon/ssi-sdk.data-store'
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;AAEH,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,CAA0B;gBAEpC,OAAO,EAAE,kBAAkB;IAM1B,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAUpE,oBAAoB;YAMpB,mBAAmB;CAclC"}
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
- yield this.loggerLogAuditEvent({ event: event.data }, context);
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, context) {
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,IAAI,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,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,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAC9C,CAAC;KAAA;IAEa,mBAAmB,CAAC,IAAuB,EAAE,OAAwB;;;YACjF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;YAEtB,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;gBAChC,KAAK,kCACA,KAAK,KACR,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,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;AA/CD,kCA+CC"}
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
@@ -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;AACjD,cAAc,sBAAsB,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,mDAAiD;AAAxC,0GAAA,WAAW,OAAA;AACpB,uDAAoC"}
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: AbstractEventLoggerStore;
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<never>;
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: AbstractEventLoggerStore;
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<never>;
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,EAAE,iBAAiB,EAAE,6BAA6B,IAAI,mBAAmB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AACrJ,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,EAAE,wBAAwB,CAAA;IAC/B,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,CAAC,GAAG;IAClG,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,SAAS,CAAA;CACzB,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,KAAK,CAAC,CAAA"}
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.1",
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.1",
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.1",
23
- "@sphereon/ssi-sdk.core": "0.18.1",
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": "661217d378e952a9eebfd38c5a0426c7c4f2a54e"
55
+ "gitHead": "9bc06856a9ad026cc14e7922bc634ee4a8f16f9d"
56
56
  }
@@ -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": {}
@@ -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: AbstractEventLoggerStore
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
- await this.loggerLogAuditEvent({ event: event.data }, context)
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, context: RequiredContext): Promise<AuditLoggingEvent> {
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
@@ -3,5 +3,5 @@
3
3
  */
4
4
  const schema = require('../plugin.schema.json')
5
5
  export { schema }
6
- export { EventLogger } from './agent/EventLogger'
6
+ export { EventLogger, eventLoggerMethods, eventLoggerAuditMethods } from './agent/EventLogger'
7
7
  export * from './types/IEventLogger'
@@ -1,5 +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 {
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: AbstractEventLoggerStore
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<never>
41
+ export type RequiredContext = IAgentContext<IEventLogger>