@webiny/api-audit-logs 0.0.0-unstable.6844005670 → 0.0.0-unstable.7be00a75a9
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/abstractions.js +2 -3
- package/abstractions.js.map +1 -1
- package/config.js +2 -1
- package/config.js.map +1 -1
- package/context/AuditLogsContextValue.d.ts +1 -1
- package/context/AuditLogsContextValue.js +115 -125
- package/context/AuditLogsContextValue.js.map +1 -1
- package/context/index.js +23 -27
- package/context/index.js.map +1 -1
- package/events/AuditLogAfterCreateEvent.d.ts +2 -2
- package/events/AuditLogAfterCreateEvent.js +9 -6
- package/events/AuditLogAfterCreateEvent.js.map +1 -1
- package/events/AuditLogAfterUpdateEvent.d.ts +2 -2
- package/events/AuditLogAfterUpdateEvent.js +9 -6
- package/events/AuditLogAfterUpdateEvent.js.map +1 -1
- package/events/AuditLogBeforeCreateEvent.d.ts +2 -2
- package/events/AuditLogBeforeCreateEvent.js +9 -6
- package/events/AuditLogBeforeCreateEvent.js.map +1 -1
- package/events/AuditLogBeforeUpdateEvent.d.ts +2 -2
- package/events/AuditLogBeforeUpdateEvent.js +9 -6
- package/events/AuditLogBeforeUpdateEvent.js.map +1 -1
- package/events/abstractions.d.ts +1 -1
- package/events/abstractions.js +5 -24
- package/events/abstractions.js.map +1 -1
- package/events/index.js +0 -2
- package/graphql/schema.js +37 -48
- package/graphql/schema.js.map +1 -1
- package/graphql/validation.d.ts +10 -53
- package/graphql/validation.js +26 -30
- package/graphql/validation.js.map +1 -1
- package/index.js +18 -15
- package/index.js.map +1 -1
- package/package.json +34 -30
- package/storage/AccessPatternHandler.js +31 -52
- package/storage/AccessPatternHandler.js.map +1 -1
- package/storage/Converter.d.ts +3 -3
- package/storage/Converter.js +45 -48
- package/storage/Converter.js.map +1 -1
- package/storage/Storage.d.ts +2 -2
- package/storage/Storage.js +69 -77
- package/storage/Storage.js.map +1 -1
- package/storage/abstractions/AccessPattern.js +0 -3
- package/storage/abstractions/AccessPatternHandler.js +0 -3
- package/storage/abstractions/Converter.js +0 -3
- package/storage/abstractions/Storage.js +0 -3
- package/storage/accessPatterns/AppAccessPattern.js +31 -25
- package/storage/accessPatterns/AppAccessPattern.js.map +1 -1
- package/storage/accessPatterns/AppCreatedByAccessPattern.js +34 -28
- package/storage/accessPatterns/AppCreatedByAccessPattern.js.map +1 -1
- package/storage/accessPatterns/AppEntityAccessPattern.js +31 -25
- package/storage/accessPatterns/AppEntityAccessPattern.js.map +1 -1
- package/storage/accessPatterns/AppEntityActionAccessPattern.js +31 -25
- package/storage/accessPatterns/AppEntityActionAccessPattern.js.map +1 -1
- package/storage/accessPatterns/AppEntityActionCreatedByAccessPattern.js +34 -28
- package/storage/accessPatterns/AppEntityActionCreatedByAccessPattern.js.map +1 -1
- package/storage/accessPatterns/AppEntityCreatedByAccessPattern.js +34 -28
- package/storage/accessPatterns/AppEntityCreatedByAccessPattern.js.map +1 -1
- package/storage/accessPatterns/BaseAccessPattern.js +47 -69
- package/storage/accessPatterns/BaseAccessPattern.js.map +1 -1
- package/storage/accessPatterns/CreatedByAccessPattern.js +34 -28
- package/storage/accessPatterns/CreatedByAccessPattern.js.map +1 -1
- package/storage/accessPatterns/CreatedOnAccessPattern.js +34 -26
- package/storage/accessPatterns/CreatedOnAccessPattern.js.map +1 -1
- package/storage/accessPatterns/DefaultAccessPattern.js +31 -32
- package/storage/accessPatterns/DefaultAccessPattern.js.map +1 -1
- package/storage/accessPatterns/EntityIdAccessPattern.js +32 -27
- package/storage/accessPatterns/EntityIdAccessPattern.js.map +1 -1
- package/storage/accessPatterns/index.js +44 -34
- package/storage/accessPatterns/index.js.map +1 -1
- package/storage/cursorSchema.js +15 -18
- package/storage/cursorSchema.js.map +1 -1
- package/storage/entity.js +115 -122
- package/storage/entity.js.map +1 -1
- package/storage/results/ListErrorResult.js +9 -8
- package/storage/results/ListErrorResult.js.map +1 -1
- package/storage/results/ListSuccessResult.js +13 -12
- package/storage/results/ListSuccessResult.js.map +1 -1
- package/storage/results/index.js +0 -2
- package/storage/startKey.js +4 -5
- package/storage/startKey.js.map +1 -1
- package/storage/types.js +0 -3
- package/subscriptions/aco/handlers/AuditLogFolderAfterCreateHandler.d.ts +4 -4
- package/subscriptions/aco/handlers/AuditLogFolderAfterCreateHandler.js +27 -26
- package/subscriptions/aco/handlers/AuditLogFolderAfterCreateHandler.js.map +1 -1
- package/subscriptions/aco/handlers/AuditLogFolderAfterDeleteHandler.d.ts +4 -4
- package/subscriptions/aco/handlers/AuditLogFolderAfterDeleteHandler.js +30 -29
- package/subscriptions/aco/handlers/AuditLogFolderAfterDeleteHandler.js.map +1 -1
- package/subscriptions/aco/handlers/AuditLogFolderAfterUpdateHandler.d.ts +4 -4
- package/subscriptions/aco/handlers/AuditLogFolderAfterUpdateHandler.js +33 -33
- package/subscriptions/aco/handlers/AuditLogFolderAfterUpdateHandler.js.map +1 -1
- package/subscriptions/aco/index.js +5 -4
- package/subscriptions/aco/index.js.map +1 -1
- package/subscriptions/fileManager/handlers/AuditLogFileAfterCreateHandler.d.ts +4 -4
- package/subscriptions/fileManager/handlers/AuditLogFileAfterCreateHandler.js +22 -21
- package/subscriptions/fileManager/handlers/AuditLogFileAfterCreateHandler.js.map +1 -1
- package/subscriptions/fileManager/handlers/AuditLogFileAfterDeleteHandler.d.ts +4 -4
- package/subscriptions/fileManager/handlers/AuditLogFileAfterDeleteHandler.js +22 -21
- package/subscriptions/fileManager/handlers/AuditLogFileAfterDeleteHandler.js.map +1 -1
- package/subscriptions/fileManager/handlers/AuditLogFileAfterUpdateHandler.d.ts +4 -4
- package/subscriptions/fileManager/handlers/AuditLogFileAfterUpdateHandler.js +25 -25
- package/subscriptions/fileManager/handlers/AuditLogFileAfterUpdateHandler.js.map +1 -1
- package/subscriptions/fileManager/handlers/AuditLogSettingsAfterUpdateHandler.d.ts +4 -4
- package/subscriptions/fileManager/handlers/AuditLogSettingsAfterUpdateHandler.js +25 -25
- package/subscriptions/fileManager/handlers/AuditLogSettingsAfterUpdateHandler.js.map +1 -1
- package/subscriptions/fileManager/index.js +6 -8
- package/subscriptions/fileManager/index.js.map +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterCreateEventHandler.d.ts +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterCreateEventHandler.js +21 -23
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterCreateEventHandler.js.map +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterDeleteEventHandler.d.ts +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterDeleteEventHandler.js +26 -29
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterDeleteEventHandler.js.map +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterPublishEventHandler.d.ts +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterPublishEventHandler.js +21 -23
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterPublishEventHandler.js.map +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterRestoreFromBinEventHandler.d.ts +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterRestoreFromBinEventHandler.js +21 -23
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterRestoreFromBinEventHandler.js.map +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterUnpublishEventHandler.d.ts +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterUnpublishEventHandler.js +21 -23
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterUnpublishEventHandler.js.map +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterUpdateEventHandler.d.ts +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterUpdateEventHandler.js +24 -27
- package/subscriptions/headlessCms/handlers/AuditLogEntryAfterUpdateEventHandler.js.map +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryRevisionAfterCreateEventHandler.d.ts +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryRevisionAfterCreateEventHandler.js +21 -23
- package/subscriptions/headlessCms/handlers/AuditLogEntryRevisionAfterCreateEventHandler.js.map +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryRevisionAfterDeleteEventHandler.d.ts +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogEntryRevisionAfterDeleteEventHandler.js +21 -23
- package/subscriptions/headlessCms/handlers/AuditLogEntryRevisionAfterDeleteEventHandler.js.map +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogGroupAfterCreateEventHandler.d.ts +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogGroupAfterCreateEventHandler.js +21 -20
- package/subscriptions/headlessCms/handlers/AuditLogGroupAfterCreateEventHandler.js.map +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogGroupAfterDeleteEventHandler.d.ts +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogGroupAfterDeleteEventHandler.js +21 -20
- package/subscriptions/headlessCms/handlers/AuditLogGroupAfterDeleteEventHandler.js.map +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogGroupAfterUpdateEventHandler.d.ts +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogGroupAfterUpdateEventHandler.js +24 -24
- package/subscriptions/headlessCms/handlers/AuditLogGroupAfterUpdateEventHandler.js.map +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogModelAfterCreateEventHandler.d.ts +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogModelAfterCreateEventHandler.js +21 -20
- package/subscriptions/headlessCms/handlers/AuditLogModelAfterCreateEventHandler.js.map +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogModelAfterDeleteEventHandler.d.ts +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogModelAfterDeleteEventHandler.js +21 -20
- package/subscriptions/headlessCms/handlers/AuditLogModelAfterDeleteEventHandler.js.map +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogModelAfterUpdateEventHandler.d.ts +1 -1
- package/subscriptions/headlessCms/handlers/AuditLogModelAfterUpdateEventHandler.js +24 -24
- package/subscriptions/headlessCms/handlers/AuditLogModelAfterUpdateEventHandler.js.map +1 -1
- package/subscriptions/headlessCms/index.js +16 -20
- package/subscriptions/headlessCms/index.js.map +1 -1
- package/subscriptions/index.js +8 -7
- package/subscriptions/index.js.map +1 -1
- package/subscriptions/mailer/handlers/AuditLogMailerSettingsAfterSaveHandler.d.ts +4 -4
- package/subscriptions/mailer/handlers/AuditLogMailerSettingsAfterSaveHandler.js +24 -23
- package/subscriptions/mailer/handlers/AuditLogMailerSettingsAfterSaveHandler.js.map +1 -1
- package/subscriptions/mailer/index.js +3 -3
- package/subscriptions/mailer/index.js.map +1 -1
- package/subscriptions/security/handlers/AuditLogApiKeyAfterCreateHandler.d.ts +4 -4
- package/subscriptions/security/handlers/AuditLogApiKeyAfterCreateHandler.js +32 -38
- package/subscriptions/security/handlers/AuditLogApiKeyAfterCreateHandler.js.map +1 -1
- package/subscriptions/security/handlers/AuditLogApiKeyAfterDeleteHandler.d.ts +4 -4
- package/subscriptions/security/handlers/AuditLogApiKeyAfterDeleteHandler.js +32 -38
- package/subscriptions/security/handlers/AuditLogApiKeyAfterDeleteHandler.js.map +1 -1
- package/subscriptions/security/handlers/AuditLogApiKeyAfterUpdateHandler.d.ts +4 -4
- package/subscriptions/security/handlers/AuditLogApiKeyAfterUpdateHandler.js +36 -43
- package/subscriptions/security/handlers/AuditLogApiKeyAfterUpdateHandler.js.map +1 -1
- package/subscriptions/security/handlers/AuditLogRoleAfterCreateHandler.d.ts +4 -4
- package/subscriptions/security/handlers/AuditLogRoleAfterCreateHandler.js +22 -21
- package/subscriptions/security/handlers/AuditLogRoleAfterCreateHandler.js.map +1 -1
- package/subscriptions/security/handlers/AuditLogRoleAfterDeleteHandler.d.ts +4 -4
- package/subscriptions/security/handlers/AuditLogRoleAfterDeleteHandler.js +22 -21
- package/subscriptions/security/handlers/AuditLogRoleAfterDeleteHandler.js.map +1 -1
- package/subscriptions/security/handlers/AuditLogRoleAfterUpdateHandler.d.ts +4 -4
- package/subscriptions/security/handlers/AuditLogRoleAfterUpdateHandler.js +25 -25
- package/subscriptions/security/handlers/AuditLogRoleAfterUpdateHandler.js.map +1 -1
- package/subscriptions/security/handlers/AuditLogTeamAfterCreateHandler.d.ts +4 -4
- package/subscriptions/security/handlers/AuditLogTeamAfterCreateHandler.js +22 -21
- package/subscriptions/security/handlers/AuditLogTeamAfterCreateHandler.js.map +1 -1
- package/subscriptions/security/handlers/AuditLogTeamAfterDeleteHandler.d.ts +4 -4
- package/subscriptions/security/handlers/AuditLogTeamAfterDeleteHandler.js +22 -21
- package/subscriptions/security/handlers/AuditLogTeamAfterDeleteHandler.js.map +1 -1
- package/subscriptions/security/handlers/AuditLogTeamAfterUpdateHandler.d.ts +4 -4
- package/subscriptions/security/handlers/AuditLogTeamAfterUpdateHandler.js +25 -25
- package/subscriptions/security/handlers/AuditLogTeamAfterUpdateHandler.js.map +1 -1
- package/subscriptions/security/handlers/AuditLogUserAfterCreateHandler.d.ts +4 -4
- package/subscriptions/security/handlers/AuditLogUserAfterCreateHandler.js +22 -21
- package/subscriptions/security/handlers/AuditLogUserAfterCreateHandler.js.map +1 -1
- package/subscriptions/security/handlers/AuditLogUserAfterDeleteHandler.d.ts +4 -4
- package/subscriptions/security/handlers/AuditLogUserAfterDeleteHandler.js +22 -21
- package/subscriptions/security/handlers/AuditLogUserAfterDeleteHandler.js.map +1 -1
- package/subscriptions/security/handlers/AuditLogUserAfterUpdateHandler.d.ts +4 -4
- package/subscriptions/security/handlers/AuditLogUserAfterUpdateHandler.js +25 -25
- package/subscriptions/security/handlers/AuditLogUserAfterUpdateHandler.js.map +1 -1
- package/subscriptions/security/handlers/cleanupApiKey.js +10 -16
- package/subscriptions/security/handlers/cleanupApiKey.js.map +1 -1
- package/subscriptions/security/index.js +14 -20
- package/subscriptions/security/index.js.map +1 -1
- package/subscriptions/websiteBuilder/index.js +14 -16
- package/subscriptions/websiteBuilder/index.js.map +1 -1
- package/subscriptions/websiteBuilder/pages/PageAfterCreateHandler.d.ts +4 -4
- package/subscriptions/websiteBuilder/pages/PageAfterCreateHandler.js +21 -20
- package/subscriptions/websiteBuilder/pages/PageAfterCreateHandler.js.map +1 -1
- package/subscriptions/websiteBuilder/pages/PageAfterCreateRevisionFromHandler.d.ts +4 -4
- package/subscriptions/websiteBuilder/pages/PageAfterCreateRevisionFromHandler.js +21 -20
- package/subscriptions/websiteBuilder/pages/PageAfterCreateRevisionFromHandler.js.map +1 -1
- package/subscriptions/websiteBuilder/pages/PageAfterDeleteHandler.d.ts +4 -4
- package/subscriptions/websiteBuilder/pages/PageAfterDeleteHandler.js +21 -20
- package/subscriptions/websiteBuilder/pages/PageAfterDeleteHandler.js.map +1 -1
- package/subscriptions/websiteBuilder/pages/PageAfterDuplicateHandler.d.ts +4 -4
- package/subscriptions/websiteBuilder/pages/PageAfterDuplicateHandler.js +24 -24
- package/subscriptions/websiteBuilder/pages/PageAfterDuplicateHandler.js.map +1 -1
- package/subscriptions/websiteBuilder/pages/PageAfterMoveHandler.d.ts +4 -4
- package/subscriptions/websiteBuilder/pages/PageAfterMoveHandler.js +21 -20
- package/subscriptions/websiteBuilder/pages/PageAfterMoveHandler.js.map +1 -1
- package/subscriptions/websiteBuilder/pages/PageAfterPublishHandler.d.ts +4 -4
- package/subscriptions/websiteBuilder/pages/PageAfterPublishHandler.js +21 -20
- package/subscriptions/websiteBuilder/pages/PageAfterPublishHandler.js.map +1 -1
- package/subscriptions/websiteBuilder/pages/PageAfterUnpublishHandler.d.ts +4 -4
- package/subscriptions/websiteBuilder/pages/PageAfterUnpublishHandler.js +21 -20
- package/subscriptions/websiteBuilder/pages/PageAfterUnpublishHandler.js.map +1 -1
- package/subscriptions/websiteBuilder/pages/PageAfterUpdateHandler.d.ts +4 -4
- package/subscriptions/websiteBuilder/pages/PageAfterUpdateHandler.js +24 -24
- package/subscriptions/websiteBuilder/pages/PageAfterUpdateHandler.js.map +1 -1
- package/subscriptions/websiteBuilder/redirects/RedirectAfterCreateHandler.d.ts +4 -4
- package/subscriptions/websiteBuilder/redirects/RedirectAfterCreateHandler.js +21 -20
- package/subscriptions/websiteBuilder/redirects/RedirectAfterCreateHandler.js.map +1 -1
- package/subscriptions/websiteBuilder/redirects/RedirectAfterDeleteHandler.d.ts +4 -4
- package/subscriptions/websiteBuilder/redirects/RedirectAfterDeleteHandler.js +21 -20
- package/subscriptions/websiteBuilder/redirects/RedirectAfterDeleteHandler.js.map +1 -1
- package/subscriptions/websiteBuilder/redirects/RedirectAfterMoveHandler.d.ts +4 -4
- package/subscriptions/websiteBuilder/redirects/RedirectAfterMoveHandler.js +21 -20
- package/subscriptions/websiteBuilder/redirects/RedirectAfterMoveHandler.js.map +1 -1
- package/subscriptions/websiteBuilder/redirects/RedirectAfterUpdateHandler.d.ts +4 -4
- package/subscriptions/websiteBuilder/redirects/RedirectAfterUpdateHandler.js +24 -24
- package/subscriptions/websiteBuilder/redirects/RedirectAfterUpdateHandler.js.map +1 -1
- package/types.js +0 -3
- package/utils/expiresAt.js +14 -19
- package/utils/expiresAt.js.map +1 -1
- package/utils/getAuditConfig.js +79 -98
- package/utils/getAuditConfig.js.map +1 -1
- package/utils/getAuditObject.js +14 -15
- package/utils/getAuditObject.js.map +1 -1
- package/events/index.js.map +0 -1
- package/storage/abstractions/AccessPattern.js.map +0 -1
- package/storage/abstractions/AccessPatternHandler.js.map +0 -1
- package/storage/abstractions/Converter.js.map +0 -1
- package/storage/abstractions/Storage.js.map +0 -1
- package/storage/results/index.js.map +0 -1
- package/storage/types.js.map +0 -1
- package/types.js.map +0 -1
package/abstractions.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export const AuditLogsContext = createAbstraction("AuditLogsContext");
|
|
2
|
+
const AuditLogsContext = createAbstraction("AuditLogsContext");
|
|
3
|
+
export { AuditLogsContext };
|
|
5
4
|
|
|
6
5
|
//# sourceMappingURL=abstractions.js.map
|
package/abstractions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"abstractions.js","sources":["../src/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { AuditLogsContext as Context } from \"~/types.js\";\n\n// TODO: this is a bridge for legacy context; needs review and refactor of code that uses it.\n\nexport const AuditLogsContext = createAbstraction<Context>(\"AuditLogsContext\");\n\nexport namespace AuditLogsContext {\n export type Interface = Context;\n}\n"],"names":["AuditLogsContext","createAbstraction"],"mappings":";AAKO,MAAMA,mBAAmBC,kBAA2B"}
|
package/config.js
CHANGED
package/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../src/config.ts"],"sourcesContent":["import { getAuditObject } from \"~/utils/getAuditObject.js\";\nimport { apps } from \"@webiny/common-audit-logs\";\n\nexport const AUDIT = getAuditObject(apps);\n"],"names":["AUDIT","getAuditObject","apps"],"mappings":";;AAGO,MAAMA,QAAQC,eAAeC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AuditLogsContext, AuditLogsContextValue } from "../types.js";
|
|
2
2
|
import type { IStorage } from "../storage/abstractions/Storage.js";
|
|
3
|
-
import type { EventPublisher } from "@webiny/api-core/features/
|
|
3
|
+
import type { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
4
4
|
export interface IAuditLogsContextValueParams {
|
|
5
5
|
getContext: () => AuditLogsContext;
|
|
6
6
|
deleteLogsAfterDays: number;
|
|
@@ -1,139 +1,129 @@
|
|
|
1
1
|
import { convertExpiresAtDaysToDate } from "../utils/expiresAt.js";
|
|
2
2
|
import { mdbid } from "@webiny/utils/mdbid.js";
|
|
3
3
|
import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/index.js";
|
|
4
|
-
import {
|
|
4
|
+
import { AuditLogAfterCreateEvent, AuditLogAfterUpdateEvent, AuditLogBeforeCreateEvent, AuditLogBeforeUpdateEvent } from "../events/index.js";
|
|
5
5
|
class AuditLogsContextValueImpl {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
async createAuditLog(payload) {
|
|
13
|
-
const context = this.getContext();
|
|
14
|
-
const expiresAt = convertExpiresAtDaysToDate(this.deleteLogsAfterDays);
|
|
15
|
-
const auditLog = {
|
|
16
|
-
id: mdbid(),
|
|
17
|
-
tenant: this.getTenantId(),
|
|
18
|
-
createdBy: this.getIdentity(),
|
|
19
|
-
createdOn: new Date(),
|
|
20
|
-
...payload,
|
|
21
|
-
content: JSON.stringify(payload.content),
|
|
22
|
-
expiresAt
|
|
23
|
-
};
|
|
24
|
-
await this.checkPermissions(auditLog);
|
|
25
|
-
const beforeCreateEvent = new AuditLogBeforeCreateEvent({
|
|
26
|
-
auditLog: auditLog,
|
|
27
|
-
context,
|
|
28
|
-
setAuditLog(input) {
|
|
29
|
-
Object.assign(auditLog, input);
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
await this.eventPublisher.publish(beforeCreateEvent);
|
|
33
|
-
const result = await this.storage.store({
|
|
34
|
-
data: auditLog
|
|
35
|
-
});
|
|
36
|
-
if (result.success) {
|
|
37
|
-
const afterCreateEvent = new AuditLogAfterCreateEvent({
|
|
38
|
-
auditLog: auditLog,
|
|
39
|
-
context
|
|
40
|
-
});
|
|
41
|
-
await this.eventPublisher.publish(afterCreateEvent);
|
|
42
|
-
return result.data;
|
|
6
|
+
constructor(params){
|
|
7
|
+
this.getContext = params.getContext;
|
|
8
|
+
this.deleteLogsAfterDays = params.deleteLogsAfterDays;
|
|
9
|
+
this.storage = params.storage;
|
|
10
|
+
this.eventPublisher = params.eventPublisher;
|
|
43
11
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
12
|
+
async createAuditLog(payload) {
|
|
13
|
+
const context = this.getContext();
|
|
14
|
+
const expiresAt = convertExpiresAtDaysToDate(this.deleteLogsAfterDays);
|
|
15
|
+
const auditLog = {
|
|
16
|
+
id: mdbid(),
|
|
17
|
+
tenant: this.getTenantId(),
|
|
18
|
+
createdBy: this.getIdentity(),
|
|
19
|
+
createdOn: new Date(),
|
|
20
|
+
...payload,
|
|
21
|
+
content: JSON.stringify(payload.content),
|
|
22
|
+
expiresAt
|
|
23
|
+
};
|
|
24
|
+
await this.checkPermissions(auditLog);
|
|
25
|
+
const beforeCreateEvent = new AuditLogBeforeCreateEvent({
|
|
26
|
+
auditLog: auditLog,
|
|
27
|
+
context,
|
|
28
|
+
setAuditLog (input) {
|
|
29
|
+
Object.assign(auditLog, input);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
await this.eventPublisher.publish(beforeCreateEvent);
|
|
33
|
+
const result = await this.storage.store({
|
|
34
|
+
data: auditLog
|
|
35
|
+
});
|
|
36
|
+
if (result.success) {
|
|
37
|
+
const afterCreateEvent = new AuditLogAfterCreateEvent({
|
|
38
|
+
auditLog: auditLog,
|
|
39
|
+
context
|
|
40
|
+
});
|
|
41
|
+
await this.eventPublisher.publish(afterCreateEvent);
|
|
42
|
+
return result.data;
|
|
43
|
+
}
|
|
44
|
+
throw result.error;
|
|
45
|
+
}
|
|
46
|
+
async updateAuditLog(original, payload) {
|
|
47
|
+
const context = this.getContext();
|
|
48
|
+
const auditLog = {
|
|
49
|
+
...original,
|
|
50
|
+
...payload,
|
|
51
|
+
content: payload.content ? JSON.stringify(payload.content) : original.content
|
|
52
|
+
};
|
|
53
|
+
await this.checkPermissions(auditLog);
|
|
54
|
+
const beforeUpdateEvent = new AuditLogBeforeUpdateEvent({
|
|
55
|
+
original,
|
|
56
|
+
auditLog,
|
|
57
|
+
context,
|
|
58
|
+
setAuditLog (input) {
|
|
59
|
+
Object.assign(auditLog, input);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
await this.eventPublisher.publish(beforeUpdateEvent);
|
|
63
|
+
const result = await this.storage.store({
|
|
64
|
+
data: auditLog
|
|
65
|
+
});
|
|
66
|
+
if (result.success) {
|
|
67
|
+
const afterUpdateEvent = new AuditLogAfterUpdateEvent({
|
|
68
|
+
original: original,
|
|
69
|
+
auditLog: auditLog,
|
|
70
|
+
context
|
|
71
|
+
});
|
|
72
|
+
await this.eventPublisher.publish(afterUpdateEvent);
|
|
73
|
+
return result.data;
|
|
74
|
+
}
|
|
75
|
+
throw result.error;
|
|
76
|
+
}
|
|
77
|
+
async getAuditLog(id) {
|
|
78
|
+
const result = await this.storage.fetch({
|
|
79
|
+
id,
|
|
80
|
+
tenant: this.getTenantId()
|
|
81
|
+
});
|
|
82
|
+
if (result.success) {
|
|
83
|
+
await this.checkPermissions(result.data);
|
|
84
|
+
return result.data;
|
|
85
|
+
}
|
|
86
|
+
throw result.error;
|
|
74
87
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
88
|
+
async listAuditLogs(params) {
|
|
89
|
+
const result = await this.storage.list({
|
|
90
|
+
...params,
|
|
91
|
+
tenant: this.getTenantId()
|
|
92
|
+
});
|
|
93
|
+
if (result.success) return {
|
|
94
|
+
items: result.data,
|
|
95
|
+
meta: {
|
|
96
|
+
cursor: result.meta.after || null,
|
|
97
|
+
hasMoreItems: result.meta.hasMoreItems
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
throw result.error;
|
|
85
101
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (result.success) {
|
|
94
|
-
return {
|
|
95
|
-
items: result.data,
|
|
96
|
-
meta: {
|
|
97
|
-
cursor: result.meta.after || null,
|
|
98
|
-
hasMoreItems: result.meta.hasMoreItems
|
|
102
|
+
async checkPermissions(auditLog) {
|
|
103
|
+
if (!auditLog.action) throw new Error("Audit log action is not defined. Cannot check permissions.");
|
|
104
|
+
const permissions = await this.getContext().security.getPermissions("al.*");
|
|
105
|
+
for (const permission of permissions){
|
|
106
|
+
if ("*" === permission.name) return;
|
|
107
|
+
if ("al.*" === permission.name) return;
|
|
108
|
+
if (permission.name === `al.${auditLog.action}`) return;
|
|
99
109
|
}
|
|
100
|
-
|
|
110
|
+
throw new NotAuthorizedError({
|
|
111
|
+
message: "You cannot access audit logs."
|
|
112
|
+
});
|
|
101
113
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
async checkPermissions(auditLog) {
|
|
105
|
-
if (!auditLog.action) {
|
|
106
|
-
throw new Error("Audit log action is not defined. Cannot check permissions.");
|
|
114
|
+
getTenantId() {
|
|
115
|
+
return this.getContext().tenancy.getCurrentTenant().id;
|
|
107
116
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
} else if (permission.name === `al.${auditLog.action}`) {
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
117
|
+
getIdentity() {
|
|
118
|
+
const identity = this.getContext().security.getIdentity();
|
|
119
|
+
return {
|
|
120
|
+
id: identity.id,
|
|
121
|
+
type: identity.type,
|
|
122
|
+
displayName: identity.displayName || "unknown"
|
|
123
|
+
};
|
|
118
124
|
}
|
|
119
|
-
throw new NotAuthorizedError({
|
|
120
|
-
message: "You cannot access audit logs."
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
getTenantId() {
|
|
124
|
-
return this.getContext().tenancy.getCurrentTenant().id;
|
|
125
|
-
}
|
|
126
|
-
getIdentity() {
|
|
127
|
-
const identity = this.getContext().security.getIdentity();
|
|
128
|
-
return {
|
|
129
|
-
id: identity.id,
|
|
130
|
-
type: identity.type,
|
|
131
|
-
displayName: identity.displayName || "unknown"
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
125
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
};
|
|
126
|
+
const createAuditLogsContextValue = (params)=>new AuditLogsContextValueImpl(params);
|
|
127
|
+
export { createAuditLogsContextValue };
|
|
138
128
|
|
|
139
129
|
//# sourceMappingURL=AuditLogsContextValue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["convertExpiresAtDaysToDate","mdbid","NotAuthorizedError","AuditLogBeforeCreateEvent","AuditLogAfterCreateEvent","AuditLogBeforeUpdateEvent","AuditLogAfterUpdateEvent","AuditLogsContextValueImpl","constructor","params","getContext","deleteLogsAfterDays","storage","eventPublisher","createAuditLog","payload","context","expiresAt","auditLog","id","tenant","getTenantId","createdBy","getIdentity","createdOn","Date","content","JSON","stringify","checkPermissions","beforeCreateEvent","setAuditLog","input","Object","assign","publish","result","store","data","success","afterCreateEvent","error","updateAuditLog","original","beforeUpdateEvent","afterUpdateEvent","getAuditLog","fetch","listAuditLogs","list","items","meta","cursor","after","hasMoreItems","action","Error","permissions","security","getPermissions","permission","name","message","tenancy","getCurrentTenant","identity","type","displayName","createAuditLogsContextValue"],"sources":["AuditLogsContextValue.ts"],"sourcesContent":["import type {\n AuditLogPayload,\n AuditLogsContext,\n AuditLogsContextValue,\n IListAuditLogsParams,\n IListAuditLogsResult\n} from \"~/types.js\";\nimport { convertExpiresAtDaysToDate } from \"~/utils/expiresAt.js\";\nimport type { IAuditLog, IAuditLogCreatedBy } from \"~/storage/types.js\";\nimport { mdbid } from \"@webiny/utils/mdbid.js\";\nimport type { IStorage, IStorageListParams } from \"~/storage/abstractions/Storage.js\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/index.js\";\nimport type { EventPublisher } from \"@webiny/api-core/features/EventPublisher\";\nimport {\n AuditLogBeforeCreateEvent,\n AuditLogAfterCreateEvent,\n AuditLogBeforeUpdateEvent,\n AuditLogAfterUpdateEvent\n} from \"~/events/index.js\";\n\nexport interface IAuditLogsContextValueParams {\n getContext: () => AuditLogsContext;\n deleteLogsAfterDays: number;\n storage: IStorage;\n eventPublisher: EventPublisher.Interface;\n}\n\nclass AuditLogsContextValueImpl implements AuditLogsContextValue {\n private readonly getContext;\n public readonly deleteLogsAfterDays;\n private readonly storage: IStorage;\n private readonly eventPublisher: EventPublisher.Interface;\n\n public constructor(params: IAuditLogsContextValueParams) {\n this.getContext = params.getContext;\n this.deleteLogsAfterDays = params.deleteLogsAfterDays;\n this.storage = params.storage;\n this.eventPublisher = params.eventPublisher;\n }\n\n public async createAuditLog(payload: AuditLogPayload): Promise<IAuditLog> {\n const context = this.getContext();\n const expiresAt = convertExpiresAtDaysToDate(this.deleteLogsAfterDays);\n\n const auditLog: IAuditLog = {\n id: mdbid(),\n tenant: this.getTenantId(),\n createdBy: this.getIdentity(),\n createdOn: new Date(),\n ...payload,\n content: JSON.stringify(payload.content),\n expiresAt\n };\n await this.checkPermissions(auditLog);\n\n const beforeCreateEvent = new AuditLogBeforeCreateEvent({\n auditLog: auditLog,\n context,\n setAuditLog(input) {\n Object.assign(auditLog, input);\n }\n });\n await this.eventPublisher.publish(beforeCreateEvent);\n\n const result = await this.storage.store({\n data: auditLog\n });\n if (result.success) {\n const afterCreateEvent = new AuditLogAfterCreateEvent({\n auditLog: auditLog,\n context\n });\n await this.eventPublisher.publish(afterCreateEvent);\n return result.data;\n }\n throw result.error;\n }\n\n public async updateAuditLog(\n original: IAuditLog,\n payload: Partial<AuditLogPayload>\n ): Promise<IAuditLog> {\n const context = this.getContext();\n const auditLog: IAuditLog = {\n ...original,\n ...payload,\n content: payload.content ? JSON.stringify(payload.content) : original.content\n };\n await this.checkPermissions(auditLog);\n\n const beforeUpdateEvent = new AuditLogBeforeUpdateEvent({\n original,\n auditLog,\n context,\n setAuditLog(input) {\n Object.assign(auditLog, input);\n }\n });\n await this.eventPublisher.publish(beforeUpdateEvent);\n\n const result = await this.storage.store({\n data: auditLog\n });\n if (result.success) {\n const afterUpdateEvent = new AuditLogAfterUpdateEvent({\n original: original,\n auditLog: auditLog,\n context\n });\n await this.eventPublisher.publish(afterUpdateEvent);\n return result.data;\n }\n throw result.error;\n }\n\n public async getAuditLog(id: string): Promise<IAuditLog | null> {\n const result = await this.storage.fetch({\n id,\n tenant: this.getTenantId()\n });\n if (result.success) {\n await this.checkPermissions(result.data);\n return result.data;\n }\n throw result.error;\n }\n\n public async listAuditLogs(params: IListAuditLogsParams): Promise<IListAuditLogsResult> {\n const result = await this.storage.list({\n ...params,\n tenant: this.getTenantId()\n } as unknown as IStorageListParams);\n if (result.success) {\n return {\n items: result.data,\n meta: {\n cursor: result.meta.after || null,\n hasMoreItems: result.meta.hasMoreItems\n }\n };\n }\n throw result.error;\n }\n\n private async checkPermissions(auditLog: Pick<IAuditLog, \"action\">): Promise<void> {\n if (!auditLog.action) {\n throw new Error(\"Audit log action is not defined. Cannot check permissions.\");\n }\n const permissions = await this.getContext().security.getPermissions(\"al.*\");\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return;\n }\n if (permission.name === \"al.*\") {\n return;\n } else if (permission.name === `al.${auditLog.action}`) {\n return;\n }\n }\n\n throw new NotAuthorizedError({\n message: \"You cannot access audit logs.\"\n });\n }\n\n private getTenantId(): string {\n return this.getContext().tenancy.getCurrentTenant().id;\n }\n\n private getIdentity(): IAuditLogCreatedBy {\n const identity = this.getContext().security.getIdentity();\n return {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName || \"unknown\"\n };\n }\n}\n\nexport const createAuditLogsContextValue = (\n params: IAuditLogsContextValueParams\n): AuditLogsContextValue => {\n return new AuditLogsContextValueImpl(params);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"context/AuditLogsContextValue.js","sources":["../../src/context/AuditLogsContextValue.ts"],"sourcesContent":["import type {\n AuditLogPayload,\n AuditLogsContext,\n AuditLogsContextValue,\n IListAuditLogsParams,\n IListAuditLogsResult\n} from \"~/types.js\";\nimport { convertExpiresAtDaysToDate } from \"~/utils/expiresAt.js\";\nimport type { IAuditLog, IAuditLogCreatedBy } from \"~/storage/types.js\";\nimport { mdbid } from \"@webiny/utils/mdbid.js\";\nimport type { IStorage, IStorageListParams } from \"~/storage/abstractions/Storage.js\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/index.js\";\nimport type { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport {\n AuditLogBeforeCreateEvent,\n AuditLogAfterCreateEvent,\n AuditLogBeforeUpdateEvent,\n AuditLogAfterUpdateEvent\n} from \"~/events/index.js\";\n\nexport interface IAuditLogsContextValueParams {\n getContext: () => AuditLogsContext;\n deleteLogsAfterDays: number;\n storage: IStorage;\n eventPublisher: EventPublisher.Interface;\n}\n\nclass AuditLogsContextValueImpl implements AuditLogsContextValue {\n private readonly getContext;\n public readonly deleteLogsAfterDays;\n private readonly storage: IStorage;\n private readonly eventPublisher: EventPublisher.Interface;\n\n public constructor(params: IAuditLogsContextValueParams) {\n this.getContext = params.getContext;\n this.deleteLogsAfterDays = params.deleteLogsAfterDays;\n this.storage = params.storage;\n this.eventPublisher = params.eventPublisher;\n }\n\n public async createAuditLog(payload: AuditLogPayload): Promise<IAuditLog> {\n const context = this.getContext();\n const expiresAt = convertExpiresAtDaysToDate(this.deleteLogsAfterDays);\n\n const auditLog: IAuditLog = {\n id: mdbid(),\n tenant: this.getTenantId(),\n createdBy: this.getIdentity(),\n createdOn: new Date(),\n ...payload,\n content: JSON.stringify(payload.content),\n expiresAt\n };\n await this.checkPermissions(auditLog);\n\n const beforeCreateEvent = new AuditLogBeforeCreateEvent({\n auditLog: auditLog,\n context,\n setAuditLog(input) {\n Object.assign(auditLog, input);\n }\n });\n await this.eventPublisher.publish(beforeCreateEvent);\n\n const result = await this.storage.store({\n data: auditLog\n });\n if (result.success) {\n const afterCreateEvent = new AuditLogAfterCreateEvent({\n auditLog: auditLog,\n context\n });\n await this.eventPublisher.publish(afterCreateEvent);\n return result.data;\n }\n throw result.error;\n }\n\n public async updateAuditLog(\n original: IAuditLog,\n payload: Partial<AuditLogPayload>\n ): Promise<IAuditLog> {\n const context = this.getContext();\n const auditLog: IAuditLog = {\n ...original,\n ...payload,\n content: payload.content ? JSON.stringify(payload.content) : original.content\n };\n await this.checkPermissions(auditLog);\n\n const beforeUpdateEvent = new AuditLogBeforeUpdateEvent({\n original,\n auditLog,\n context,\n setAuditLog(input) {\n Object.assign(auditLog, input);\n }\n });\n await this.eventPublisher.publish(beforeUpdateEvent);\n\n const result = await this.storage.store({\n data: auditLog\n });\n if (result.success) {\n const afterUpdateEvent = new AuditLogAfterUpdateEvent({\n original: original,\n auditLog: auditLog,\n context\n });\n await this.eventPublisher.publish(afterUpdateEvent);\n return result.data;\n }\n throw result.error;\n }\n\n public async getAuditLog(id: string): Promise<IAuditLog | null> {\n const result = await this.storage.fetch({\n id,\n tenant: this.getTenantId()\n });\n if (result.success) {\n await this.checkPermissions(result.data);\n return result.data;\n }\n throw result.error;\n }\n\n public async listAuditLogs(params: IListAuditLogsParams): Promise<IListAuditLogsResult> {\n const result = await this.storage.list({\n ...params,\n tenant: this.getTenantId()\n } as unknown as IStorageListParams);\n if (result.success) {\n return {\n items: result.data,\n meta: {\n cursor: result.meta.after || null,\n hasMoreItems: result.meta.hasMoreItems\n }\n };\n }\n throw result.error;\n }\n\n private async checkPermissions(auditLog: Pick<IAuditLog, \"action\">): Promise<void> {\n if (!auditLog.action) {\n throw new Error(\"Audit log action is not defined. Cannot check permissions.\");\n }\n const permissions = await this.getContext().security.getPermissions(\"al.*\");\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return;\n }\n if (permission.name === \"al.*\") {\n return;\n } else if (permission.name === `al.${auditLog.action}`) {\n return;\n }\n }\n\n throw new NotAuthorizedError({\n message: \"You cannot access audit logs.\"\n });\n }\n\n private getTenantId(): string {\n return this.getContext().tenancy.getCurrentTenant().id;\n }\n\n private getIdentity(): IAuditLogCreatedBy {\n const identity = this.getContext().security.getIdentity();\n return {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName || \"unknown\"\n };\n }\n}\n\nexport const createAuditLogsContextValue = (\n params: IAuditLogsContextValueParams\n): AuditLogsContextValue => {\n return new AuditLogsContextValueImpl(params);\n};\n"],"names":["AuditLogsContextValueImpl","params","payload","context","expiresAt","convertExpiresAtDaysToDate","auditLog","mdbid","Date","JSON","beforeCreateEvent","AuditLogBeforeCreateEvent","input","Object","result","afterCreateEvent","AuditLogAfterCreateEvent","original","beforeUpdateEvent","AuditLogBeforeUpdateEvent","afterUpdateEvent","AuditLogAfterUpdateEvent","id","Error","permissions","permission","NotAuthorizedError","identity","createAuditLogsContextValue"],"mappings":";;;;AA2BA,MAAMA;IAMF,YAAmBC,MAAoC,CAAE;QACrD,IAAI,CAAC,UAAU,GAAGA,OAAO,UAAU;QACnC,IAAI,CAAC,mBAAmB,GAAGA,OAAO,mBAAmB;QACrD,IAAI,CAAC,OAAO,GAAGA,OAAO,OAAO;QAC7B,IAAI,CAAC,cAAc,GAAGA,OAAO,cAAc;IAC/C;IAEA,MAAa,eAAeC,OAAwB,EAAsB;QACtE,MAAMC,UAAU,IAAI,CAAC,UAAU;QAC/B,MAAMC,YAAYC,2BAA2B,IAAI,CAAC,mBAAmB;QAErE,MAAMC,WAAsB;YACxB,IAAIC;YACJ,QAAQ,IAAI,CAAC,WAAW;YACxB,WAAW,IAAI,CAAC,WAAW;YAC3B,WAAW,IAAIC;YACf,GAAGN,OAAO;YACV,SAASO,KAAK,SAAS,CAACP,QAAQ,OAAO;YACvCE;QACJ;QACA,MAAM,IAAI,CAAC,gBAAgB,CAACE;QAE5B,MAAMI,oBAAoB,IAAIC,0BAA0B;YACpD,UAAUL;YACVH;YACA,aAAYS,KAAK;gBACbC,OAAO,MAAM,CAACP,UAAUM;YAC5B;QACJ;QACA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACF;QAElC,MAAMI,SAAS,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACpC,MAAMR;QACV;QACA,IAAIQ,OAAO,OAAO,EAAE;YAChB,MAAMC,mBAAmB,IAAIC,yBAAyB;gBAClD,UAAUV;gBACVH;YACJ;YACA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACY;YAClC,OAAOD,OAAO,IAAI;QACtB;QACA,MAAMA,OAAO,KAAK;IACtB;IAEA,MAAa,eACTG,QAAmB,EACnBf,OAAiC,EACf;QAClB,MAAMC,UAAU,IAAI,CAAC,UAAU;QAC/B,MAAMG,WAAsB;YACxB,GAAGW,QAAQ;YACX,GAAGf,OAAO;YACV,SAASA,QAAQ,OAAO,GAAGO,KAAK,SAAS,CAACP,QAAQ,OAAO,IAAIe,SAAS,OAAO;QACjF;QACA,MAAM,IAAI,CAAC,gBAAgB,CAACX;QAE5B,MAAMY,oBAAoB,IAAIC,0BAA0B;YACpDF;YACAX;YACAH;YACA,aAAYS,KAAK;gBACbC,OAAO,MAAM,CAACP,UAAUM;YAC5B;QACJ;QACA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACM;QAElC,MAAMJ,SAAS,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACpC,MAAMR;QACV;QACA,IAAIQ,OAAO,OAAO,EAAE;YAChB,MAAMM,mBAAmB,IAAIC,yBAAyB;gBAClD,UAAUJ;gBACV,UAAUX;gBACVH;YACJ;YACA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACiB;YAClC,OAAON,OAAO,IAAI;QACtB;QACA,MAAMA,OAAO,KAAK;IACtB;IAEA,MAAa,YAAYQ,EAAU,EAA6B;QAC5D,MAAMR,SAAS,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACpCQ;YACA,QAAQ,IAAI,CAAC,WAAW;QAC5B;QACA,IAAIR,OAAO,OAAO,EAAE;YAChB,MAAM,IAAI,CAAC,gBAAgB,CAACA,OAAO,IAAI;YACvC,OAAOA,OAAO,IAAI;QACtB;QACA,MAAMA,OAAO,KAAK;IACtB;IAEA,MAAa,cAAcb,MAA4B,EAAiC;QACpF,MAAMa,SAAS,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACnC,GAAGb,MAAM;YACT,QAAQ,IAAI,CAAC,WAAW;QAC5B;QACA,IAAIa,OAAO,OAAO,EACd,OAAO;YACH,OAAOA,OAAO,IAAI;YAClB,MAAM;gBACF,QAAQA,OAAO,IAAI,CAAC,KAAK,IAAI;gBAC7B,cAAcA,OAAO,IAAI,CAAC,YAAY;YAC1C;QACJ;QAEJ,MAAMA,OAAO,KAAK;IACtB;IAEA,MAAc,iBAAiBR,QAAmC,EAAiB;QAC/E,IAAI,CAACA,SAAS,MAAM,EAChB,MAAM,IAAIiB,MAAM;QAEpB,MAAMC,cAAc,MAAM,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC;QACpE,KAAK,MAAMC,cAAcD,YAAa;YAClC,IAAIC,AAAoB,QAApBA,WAAW,IAAI,EACf;YAEJ,IAAIA,AAAoB,WAApBA,WAAW,IAAI,EACf;YACG,IAAIA,WAAW,IAAI,KAAK,CAAC,GAAG,EAAEnB,SAAS,MAAM,EAAE,EAClD;QAER;QAEA,MAAM,IAAIoB,mBAAmB;YACzB,SAAS;QACb;IACJ;IAEQ,cAAsB;QAC1B,OAAO,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,gBAAgB,GAAG,EAAE;IAC1D;IAEQ,cAAkC;QACtC,MAAMC,WAAW,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,WAAW;QACvD,OAAO;YACH,IAAIA,SAAS,EAAE;YACf,MAAMA,SAAS,IAAI;YACnB,aAAaA,SAAS,WAAW,IAAI;QACzC;IACJ;AACJ;AAEO,MAAMC,8BAA8B,CACvC3B,SAEO,IAAID,0BAA0BC"}
|
package/context/index.js
CHANGED
|
@@ -1,35 +1,31 @@
|
|
|
1
1
|
import { ContextPlugin } from "@webiny/api";
|
|
2
|
-
import { EventPublisher } from "@webiny/api-core/features/
|
|
2
|
+
import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
3
3
|
import { createAuditLogsContextValue } from "./AuditLogsContextValue.js";
|
|
4
4
|
import { createStorage } from "../storage/Storage.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
return days;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Default days to delete logs after.
|
|
11
|
-
*/
|
|
12
|
-
return 60;
|
|
5
|
+
import { CompressionHandler } from "@webiny/utils/exports/api.js";
|
|
6
|
+
const getDeleteLogsAfterDays = (days)=>{
|
|
7
|
+
if (days && days > 0) return days;
|
|
8
|
+
return 60;
|
|
13
9
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
10
|
+
const createAuditLogsContext = (params)=>{
|
|
11
|
+
const plugin = new ContextPlugin(async (context)=>{
|
|
12
|
+
const compressionHandler = context.container.resolve(CompressionHandler);
|
|
13
|
+
const storage = createStorage({
|
|
14
|
+
tableName: params?.tableName,
|
|
15
|
+
client: params?.documentClient || context.db.driver.getClient(),
|
|
16
|
+
compressionHandler
|
|
17
|
+
});
|
|
18
|
+
const eventPublisher = context.container.resolve(EventPublisher);
|
|
19
|
+
context.auditLogs = createAuditLogsContextValue({
|
|
20
|
+
getContext: ()=>context,
|
|
21
|
+
deleteLogsAfterDays: getDeleteLogsAfterDays(params?.deleteLogsAfterDays),
|
|
22
|
+
storage,
|
|
23
|
+
eventPublisher
|
|
24
|
+
});
|
|
20
25
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
getContext: () => {
|
|
24
|
-
return context;
|
|
25
|
-
},
|
|
26
|
-
deleteLogsAfterDays: getDeleteLogsAfterDays(params?.deleteLogsAfterDays),
|
|
27
|
-
storage,
|
|
28
|
-
eventPublisher
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
plugin.name = "audit-logs.createContext";
|
|
32
|
-
return plugin;
|
|
26
|
+
plugin.name = "audit-logs.createContext";
|
|
27
|
+
return plugin;
|
|
33
28
|
};
|
|
29
|
+
export { createAuditLogsContext };
|
|
34
30
|
|
|
35
31
|
//# sourceMappingURL=index.js.map
|
package/context/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"context/index.js","sources":["../../src/context/index.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport type { AuditLogsContext } from \"~/types.js\";\nimport { createAuditLogsContextValue } from \"./AuditLogsContextValue.js\";\nimport { createStorage } from \"~/storage/Storage.js\";\nimport { CompressionHandler } from \"@webiny/utils/exports/api.js\";\n\nexport interface ISetupContextOptions {\n deleteLogsAfterDays: number | undefined;\n tableName: string | undefined;\n documentClient: DynamoDBDocument | undefined;\n}\n\nconst getDeleteLogsAfterDays = (days?: number): number => {\n if (days && days > 0) {\n return days;\n }\n /**\n * Default days to delete logs after.\n */\n return 60;\n};\n\nexport const createAuditLogsContext = (params?: ISetupContextOptions) => {\n const plugin = new ContextPlugin<AuditLogsContext>(async context => {\n const compressionHandler = context.container.resolve(CompressionHandler);\n\n const storage = createStorage({\n tableName: params?.tableName,\n client: params?.documentClient || (context.db.driver.getClient() as DynamoDBDocument),\n compressionHandler\n });\n\n const eventPublisher = context.container.resolve(EventPublisher);\n\n context.auditLogs = createAuditLogsContextValue({\n getContext: () => {\n return context;\n },\n deleteLogsAfterDays: getDeleteLogsAfterDays(params?.deleteLogsAfterDays),\n storage,\n eventPublisher\n });\n });\n\n plugin.name = \"audit-logs.createContext\";\n\n return plugin;\n};\n"],"names":["getDeleteLogsAfterDays","days","createAuditLogsContext","params","plugin","ContextPlugin","context","compressionHandler","CompressionHandler","storage","createStorage","eventPublisher","EventPublisher","createAuditLogsContextValue"],"mappings":";;;;;AAcA,MAAMA,yBAAyB,CAACC;IAC5B,IAAIA,QAAQA,OAAO,GACf,OAAOA;IAKX,OAAO;AACX;AAEO,MAAMC,yBAAyB,CAACC;IACnC,MAAMC,SAAS,IAAIC,cAAgC,OAAMC;QACrD,MAAMC,qBAAqBD,QAAQ,SAAS,CAAC,OAAO,CAACE;QAErD,MAAMC,UAAUC,cAAc;YAC1B,WAAWP,QAAQ;YACnB,QAAQA,QAAQ,kBAAmBG,QAAQ,EAAE,CAAC,MAAM,CAAC,SAAS;YAC9DC;QACJ;QAEA,MAAMI,iBAAiBL,QAAQ,SAAS,CAAC,OAAO,CAACM;QAEjDN,QAAQ,SAAS,GAAGO,4BAA4B;YAC5C,YAAY,IACDP;YAEX,qBAAqBN,uBAAuBG,QAAQ;YACpDM;YACAE;QACJ;IACJ;IAEAP,OAAO,IAAI,GAAG;IAEd,OAAOA;AACX"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DomainEvent } from "@webiny/api-core/features/
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
2
|
import { AuditLogAfterCreatePayload } from "./abstractions.js";
|
|
3
3
|
export declare class AuditLogAfterCreateEvent extends DomainEvent<AuditLogAfterCreatePayload> {
|
|
4
4
|
eventType: "auditLog.afterCreate";
|
|
5
|
-
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/
|
|
5
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<AuditLogAfterCreatePayload>>>;
|
|
6
6
|
}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { DomainEvent } from "@webiny/api-core/features/
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
2
|
import { AuditLogAfterCreateHandler } from "./abstractions.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
class AuditLogAfterCreateEvent extends DomainEvent {
|
|
4
|
+
getHandlerAbstraction() {
|
|
5
|
+
return AuditLogAfterCreateHandler;
|
|
6
|
+
}
|
|
7
|
+
constructor(...args){
|
|
8
|
+
super(...args), this.eventType = "auditLog.afterCreate";
|
|
9
|
+
}
|
|
8
10
|
}
|
|
11
|
+
export { AuditLogAfterCreateEvent };
|
|
9
12
|
|
|
10
13
|
//# sourceMappingURL=AuditLogAfterCreateEvent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"events/AuditLogAfterCreateEvent.js","sources":["../../src/events/AuditLogAfterCreateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { AuditLogAfterCreateHandler, AuditLogAfterCreatePayload } from \"./abstractions.js\";\n\nexport class AuditLogAfterCreateEvent extends DomainEvent<AuditLogAfterCreatePayload> {\n eventType = \"auditLog.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return AuditLogAfterCreateHandler;\n }\n}\n"],"names":["AuditLogAfterCreateEvent","DomainEvent","AuditLogAfterCreateHandler"],"mappings":";;AAGO,MAAMA,iCAAiCC;IAG1C,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DomainEvent } from "@webiny/api-core/features/
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
2
|
import { AuditLogAfterUpdatePayload } from "./abstractions.js";
|
|
3
3
|
export declare class AuditLogAfterUpdateEvent extends DomainEvent<AuditLogAfterUpdatePayload> {
|
|
4
4
|
eventType: "auditLog.afterUpdate";
|
|
5
|
-
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/
|
|
5
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<AuditLogAfterUpdatePayload>>>;
|
|
6
6
|
}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { DomainEvent } from "@webiny/api-core/features/
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
2
|
import { AuditLogAfterUpdateHandler } from "./abstractions.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
class AuditLogAfterUpdateEvent extends DomainEvent {
|
|
4
|
+
getHandlerAbstraction() {
|
|
5
|
+
return AuditLogAfterUpdateHandler;
|
|
6
|
+
}
|
|
7
|
+
constructor(...args){
|
|
8
|
+
super(...args), this.eventType = "auditLog.afterUpdate";
|
|
9
|
+
}
|
|
8
10
|
}
|
|
11
|
+
export { AuditLogAfterUpdateEvent };
|
|
9
12
|
|
|
10
13
|
//# sourceMappingURL=AuditLogAfterUpdateEvent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"events/AuditLogAfterUpdateEvent.js","sources":["../../src/events/AuditLogAfterUpdateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { AuditLogAfterUpdateHandler, AuditLogAfterUpdatePayload } from \"./abstractions.js\";\n\nexport class AuditLogAfterUpdateEvent extends DomainEvent<AuditLogAfterUpdatePayload> {\n eventType = \"auditLog.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return AuditLogAfterUpdateHandler;\n }\n}\n"],"names":["AuditLogAfterUpdateEvent","DomainEvent","AuditLogAfterUpdateHandler"],"mappings":";;AAGO,MAAMA,iCAAiCC;IAG1C,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DomainEvent } from "@webiny/api-core/features/
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
2
|
import { AuditLogBeforeCreatePayload } from "./abstractions.js";
|
|
3
3
|
export declare class AuditLogBeforeCreateEvent extends DomainEvent<AuditLogBeforeCreatePayload> {
|
|
4
4
|
eventType: "auditLog.beforeCreate";
|
|
5
|
-
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/
|
|
5
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<AuditLogBeforeCreatePayload>>>;
|
|
6
6
|
}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { DomainEvent } from "@webiny/api-core/features/
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
2
|
import { AuditLogBeforeCreateHandler } from "./abstractions.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
class AuditLogBeforeCreateEvent extends DomainEvent {
|
|
4
|
+
getHandlerAbstraction() {
|
|
5
|
+
return AuditLogBeforeCreateHandler;
|
|
6
|
+
}
|
|
7
|
+
constructor(...args){
|
|
8
|
+
super(...args), this.eventType = "auditLog.beforeCreate";
|
|
9
|
+
}
|
|
8
10
|
}
|
|
11
|
+
export { AuditLogBeforeCreateEvent };
|
|
9
12
|
|
|
10
13
|
//# sourceMappingURL=AuditLogBeforeCreateEvent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"events/AuditLogBeforeCreateEvent.js","sources":["../../src/events/AuditLogBeforeCreateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { AuditLogBeforeCreateHandler, AuditLogBeforeCreatePayload } from \"./abstractions.js\";\n\nexport class AuditLogBeforeCreateEvent extends DomainEvent<AuditLogBeforeCreatePayload> {\n eventType = \"auditLog.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return AuditLogBeforeCreateHandler;\n }\n}\n"],"names":["AuditLogBeforeCreateEvent","DomainEvent","AuditLogBeforeCreateHandler"],"mappings":";;AAGO,MAAMA,kCAAkCC;IAG3C,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DomainEvent } from "@webiny/api-core/features/
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
2
|
import { AuditLogBeforeUpdatePayload } from "./abstractions.js";
|
|
3
3
|
export declare class AuditLogBeforeUpdateEvent extends DomainEvent<AuditLogBeforeUpdatePayload> {
|
|
4
4
|
eventType: "auditLog.beforeUpdate";
|
|
5
|
-
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/
|
|
5
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<AuditLogBeforeUpdatePayload>>>;
|
|
6
6
|
}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { DomainEvent } from "@webiny/api-core/features/
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
2
|
import { AuditLogBeforeUpdateHandler } from "./abstractions.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
class AuditLogBeforeUpdateEvent extends DomainEvent {
|
|
4
|
+
getHandlerAbstraction() {
|
|
5
|
+
return AuditLogBeforeUpdateHandler;
|
|
6
|
+
}
|
|
7
|
+
constructor(...args){
|
|
8
|
+
super(...args), this.eventType = "auditLog.beforeUpdate";
|
|
9
|
+
}
|
|
8
10
|
}
|
|
11
|
+
export { AuditLogBeforeUpdateEvent };
|
|
9
12
|
|
|
10
13
|
//# sourceMappingURL=AuditLogBeforeUpdateEvent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"events/AuditLogBeforeUpdateEvent.js","sources":["../../src/events/AuditLogBeforeUpdateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { AuditLogBeforeUpdateHandler, AuditLogBeforeUpdatePayload } from \"./abstractions.js\";\n\nexport class AuditLogBeforeUpdateEvent extends DomainEvent<AuditLogBeforeUpdatePayload> {\n eventType = \"auditLog.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return AuditLogBeforeUpdateHandler;\n }\n}\n"],"names":["AuditLogBeforeUpdateEvent","DomainEvent","AuditLogBeforeUpdateHandler"],"mappings":";;AAGO,MAAMA,kCAAkCC;IAG3C,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
|
package/events/abstractions.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/
|
|
1
|
+
import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
2
2
|
import type { IAuditLog } from "../storage/types.js";
|
|
3
3
|
import type { AuditLogsContext } from "../types.js";
|
|
4
4
|
export interface AuditLogBeforeCreatePayload {
|