uaxi-shared-entities 1.0.216 → 1.0.217
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/dist/entities/admin-audit-log.entity.d.ts +3 -0
- package/dist/entities/admin-audit-log.entity.d.ts.map +1 -1
- package/dist/entities/admin-audit-log.entity.js +38 -2
- package/dist/entities/admin-audit-log.entity.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/entities/admin-audit-log.entity.ts +50 -0
- package/src/index.ts +0 -3
- package/dist/utils/admin-audit-log.util.d.ts +0 -5
- package/dist/utils/admin-audit-log.util.d.ts.map +0 -1
- package/dist/utils/admin-audit-log.util.js +0 -40
- package/dist/utils/admin-audit-log.util.js.map +0 -1
- package/src/utils/admin-audit-log.util.ts +0 -48
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Model } from "sequelize-typescript";
|
|
2
|
+
import { CreateAdminAuditLogInput } from "../types/admin-audit-log.types";
|
|
2
3
|
import { User } from "./user.entity";
|
|
3
4
|
export declare enum AdminAuditHttpMethod {
|
|
4
5
|
POST = "POST",
|
|
@@ -37,6 +38,8 @@ export declare class AdminAuditLog extends Model<AdminAuditLogAttributes, AdminA
|
|
|
37
38
|
entityId: string | null;
|
|
38
39
|
createdAt: Date;
|
|
39
40
|
performedByUser: User;
|
|
41
|
+
static sanitizeAuditData(data: unknown): Record<string, unknown> | null;
|
|
42
|
+
static persistAdminAuditLog(model: typeof AdminAuditLog, input: CreateAdminAuditLogInput): Promise<void>;
|
|
40
43
|
}
|
|
41
44
|
export {};
|
|
42
45
|
//# sourceMappingURL=admin-audit-log.entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-audit-log.entity.d.ts","sourceRoot":"","sources":["../../src/entities/admin-audit-log.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,EAMN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,oBAAY,oBAAoB;IAC9B,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,oBAAoB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,UAAU,0BAA0B;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,oBAAoB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"admin-audit-log.entity.d.ts","sourceRoot":"","sources":["../../src/entities/admin-audit-log.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,EAMN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,oBAAY,oBAAoB;IAC9B,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,oBAAoB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,UAAU,0BAA0B;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,oBAAoB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAUD,qBAMa,aAAc,SAAQ,KAAK,CACtC,uBAAuB,EACvB,0BAA0B,CAC3B;IAMS,EAAE,EAAE,MAAM,CAAC;IAQnB,iBAAiB,EAAE,MAAM,CAAC;IAM1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAM7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAMxC,QAAQ,EAAE,MAAM,CAAC;IAMjB,UAAU,EAAE,oBAAoB,CAAC;IAOjC,SAAS,EAAE,MAAM,CAAC;IAOlB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAGxB,eAAe,EAAE,IAAI,CAAC;IAEtB,MAAM,CAAC,iBAAiB,CACtB,IAAI,EAAE,OAAO,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;WAoBpB,oBAAoB,CAC/B,KAAK,EAAE,OAAO,aAAa,EAC3B,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,IAAI,CAAC;CAejB"}
|
|
@@ -8,6 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var AdminAuditLog_1;
|
|
11
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
13
|
exports.AdminAuditLog = exports.AdminAuditHttpMethod = void 0;
|
|
13
14
|
const sequelize_typescript_1 = require("sequelize-typescript");
|
|
@@ -19,7 +20,42 @@ var AdminAuditHttpMethod;
|
|
|
19
20
|
AdminAuditHttpMethod["PATCH"] = "PATCH";
|
|
20
21
|
AdminAuditHttpMethod["DELETE"] = "DELETE";
|
|
21
22
|
})(AdminAuditHttpMethod || (exports.AdminAuditHttpMethod = AdminAuditHttpMethod = {}));
|
|
22
|
-
|
|
23
|
+
const SENSITIVE_AUDIT_FIELDS = [
|
|
24
|
+
"password",
|
|
25
|
+
"refreshToken",
|
|
26
|
+
"verificationToken",
|
|
27
|
+
"access_token",
|
|
28
|
+
"accessToken",
|
|
29
|
+
];
|
|
30
|
+
let AdminAuditLog = AdminAuditLog_1 = class AdminAuditLog extends sequelize_typescript_1.Model {
|
|
31
|
+
static sanitizeAuditData(data) {
|
|
32
|
+
if (data == null) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const plain = typeof data.toJSON === "function"
|
|
36
|
+
? data.toJSON()
|
|
37
|
+
: { ...data };
|
|
38
|
+
for (const field of SENSITIVE_AUDIT_FIELDS) {
|
|
39
|
+
delete plain[field];
|
|
40
|
+
}
|
|
41
|
+
return plain;
|
|
42
|
+
}
|
|
43
|
+
static async persistAdminAuditLog(model, input) {
|
|
44
|
+
try {
|
|
45
|
+
await model.create({
|
|
46
|
+
performedByUserId: input.performedByUserId,
|
|
47
|
+
previousData: AdminAuditLog_1.sanitizeAuditData(input.previousData),
|
|
48
|
+
newData: AdminAuditLog_1.sanitizeAuditData(input.newData),
|
|
49
|
+
endpoint: input.endpoint,
|
|
50
|
+
httpMethod: input.httpMethod,
|
|
51
|
+
tableName: input.tableName,
|
|
52
|
+
entityId: input.entityId ?? null,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
console.error("No se pudo persistir admin audit log:", error);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
23
59
|
};
|
|
24
60
|
exports.AdminAuditLog = AdminAuditLog;
|
|
25
61
|
__decorate([
|
|
@@ -91,7 +127,7 @@ __decorate([
|
|
|
91
127
|
(0, sequelize_typescript_1.BelongsTo)(() => user_entity_1.User, "performedByUserId"),
|
|
92
128
|
__metadata("design:type", user_entity_1.User)
|
|
93
129
|
], AdminAuditLog.prototype, "performedByUser", void 0);
|
|
94
|
-
exports.AdminAuditLog = AdminAuditLog = __decorate([
|
|
130
|
+
exports.AdminAuditLog = AdminAuditLog = AdminAuditLog_1 = __decorate([
|
|
95
131
|
(0, sequelize_typescript_1.Table)({
|
|
96
132
|
tableName: "admin_audit_logs",
|
|
97
133
|
timestamps: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-audit-log.entity.js","sourceRoot":"","sources":["../../src/entities/admin-audit-log.entity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"admin-audit-log.entity.js","sourceRoot":"","sources":["../../src/entities/admin-audit-log.entity.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -25,6 +25,4 @@ __exportStar(require("./enums"), exports);
|
|
|
25
25
|
__exportStar(require("./config"), exports);
|
|
26
26
|
// Exportar tipos y interfaces
|
|
27
27
|
__exportStar(require("./types"), exports);
|
|
28
|
-
// Utilidades compartidas
|
|
29
|
-
__exportStar(require("./utils/admin-audit-log.util"), exports);
|
|
30
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,gDAAgD;AAChD,4BAA4B;AAC5B,gDAAgD;;;;;;;;;;;;;;;;AAEhD,oDAAoD;AACpD,6CAA2B;AAE3B,uDAAuD;AACvD,0CAAwB;AAExB,2BAA2B;AAC3B,2CAAyB;AAEzB,8BAA8B;AAC9B,0CAAwB
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,4BAA4B;AAC5B,gDAAgD;;;;;;;;;;;;;;;;AAEhD,oDAAoD;AACpD,6CAA2B;AAE3B,uDAAuD;AACvD,0CAAwB;AAExB,2BAA2B;AAC3B,2CAAyB;AAEzB,8BAA8B;AAC9B,0CAAwB"}
|
package/package.json
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
BelongsTo,
|
|
9
9
|
Index,
|
|
10
10
|
} from "sequelize-typescript";
|
|
11
|
+
import { CreateAdminAuditLogInput } from "../types/admin-audit-log.types";
|
|
11
12
|
import { User } from "./user.entity";
|
|
12
13
|
|
|
13
14
|
export enum AdminAuditHttpMethod {
|
|
@@ -39,6 +40,14 @@ interface AdminAuditLogCreationAttrs {
|
|
|
39
40
|
entityId?: string | null;
|
|
40
41
|
}
|
|
41
42
|
|
|
43
|
+
const SENSITIVE_AUDIT_FIELDS = [
|
|
44
|
+
"password",
|
|
45
|
+
"refreshToken",
|
|
46
|
+
"verificationToken",
|
|
47
|
+
"access_token",
|
|
48
|
+
"accessToken",
|
|
49
|
+
];
|
|
50
|
+
|
|
42
51
|
@Table({
|
|
43
52
|
tableName: "admin_audit_logs",
|
|
44
53
|
timestamps: true,
|
|
@@ -107,4 +116,45 @@ export class AdminAuditLog extends Model<
|
|
|
107
116
|
|
|
108
117
|
@BelongsTo(() => User, "performedByUserId")
|
|
109
118
|
performedByUser: User;
|
|
119
|
+
|
|
120
|
+
static sanitizeAuditData(
|
|
121
|
+
data: unknown,
|
|
122
|
+
): Record<string, unknown> | null {
|
|
123
|
+
if (data == null) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const plain =
|
|
128
|
+
typeof (data as { toJSON?: () => unknown }).toJSON === "function"
|
|
129
|
+
? ((data as { toJSON: () => unknown }).toJSON() as Record<
|
|
130
|
+
string,
|
|
131
|
+
unknown
|
|
132
|
+
>)
|
|
133
|
+
: ({ ...(data as Record<string, unknown>) } as Record<string, unknown>);
|
|
134
|
+
|
|
135
|
+
for (const field of SENSITIVE_AUDIT_FIELDS) {
|
|
136
|
+
delete plain[field];
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return plain;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
static async persistAdminAuditLog(
|
|
143
|
+
model: typeof AdminAuditLog,
|
|
144
|
+
input: CreateAdminAuditLogInput,
|
|
145
|
+
): Promise<void> {
|
|
146
|
+
try {
|
|
147
|
+
await model.create({
|
|
148
|
+
performedByUserId: input.performedByUserId,
|
|
149
|
+
previousData: AdminAuditLog.sanitizeAuditData(input.previousData),
|
|
150
|
+
newData: AdminAuditLog.sanitizeAuditData(input.newData),
|
|
151
|
+
endpoint: input.endpoint,
|
|
152
|
+
httpMethod: input.httpMethod,
|
|
153
|
+
tableName: input.tableName,
|
|
154
|
+
entityId: input.entityId ?? null,
|
|
155
|
+
});
|
|
156
|
+
} catch (error) {
|
|
157
|
+
console.error("No se pudo persistir admin audit log:", error);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
110
160
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { AdminAuditLog } from "../entities/admin-audit-log.entity";
|
|
2
|
-
import { CreateAdminAuditLogInput } from "../types/admin-audit-log.types";
|
|
3
|
-
export declare function sanitizeAuditData(data: unknown): Record<string, unknown> | null;
|
|
4
|
-
export declare function persistAdminAuditLog(model: typeof AdminAuditLog, input: CreateAdminAuditLogInput): Promise<void>;
|
|
5
|
-
//# sourceMappingURL=admin-audit-log.util.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-audit-log.util.d.ts","sourceRoot":"","sources":["../../src/utils/admin-audit-log.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAU1E,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAehC;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,OAAO,aAAa,EAC3B,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sanitizeAuditData = sanitizeAuditData;
|
|
4
|
-
exports.persistAdminAuditLog = persistAdminAuditLog;
|
|
5
|
-
const SENSITIVE_FIELDS = [
|
|
6
|
-
"password",
|
|
7
|
-
"refreshToken",
|
|
8
|
-
"verificationToken",
|
|
9
|
-
"access_token",
|
|
10
|
-
"accessToken",
|
|
11
|
-
];
|
|
12
|
-
function sanitizeAuditData(data) {
|
|
13
|
-
if (data == null) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
const plain = typeof data.toJSON === "function"
|
|
17
|
-
? data.toJSON()
|
|
18
|
-
: { ...data };
|
|
19
|
-
for (const field of SENSITIVE_FIELDS) {
|
|
20
|
-
delete plain[field];
|
|
21
|
-
}
|
|
22
|
-
return plain;
|
|
23
|
-
}
|
|
24
|
-
async function persistAdminAuditLog(model, input) {
|
|
25
|
-
try {
|
|
26
|
-
await model.create({
|
|
27
|
-
performedByUserId: input.performedByUserId,
|
|
28
|
-
previousData: sanitizeAuditData(input.previousData),
|
|
29
|
-
newData: sanitizeAuditData(input.newData),
|
|
30
|
-
endpoint: input.endpoint,
|
|
31
|
-
httpMethod: input.httpMethod,
|
|
32
|
-
tableName: input.tableName,
|
|
33
|
-
entityId: input.entityId ?? null,
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
console.error("No se pudo persistir admin audit log:", error);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=admin-audit-log.util.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-audit-log.util.js","sourceRoot":"","sources":["../../src/utils/admin-audit-log.util.ts"],"names":[],"mappings":";;AAWA,8CAiBC;AAED,oDAiBC;AA5CD,MAAM,gBAAgB,GAAG;IACvB,UAAU;IACV,cAAc;IACd,mBAAmB;IACnB,cAAc;IACd,aAAa;CACd,CAAC;AAEF,SAAgB,iBAAiB,CAC/B,IAAa;IAEb,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GACT,OAAQ,IAAmC,CAAC,MAAM,KAAK,UAAU;QAC/D,CAAC,CAAG,IAAkC,CAAC,MAAM,EAA8B;QAC3E,CAAC,CAAE,EAAE,GAAI,IAAgC,EAA8B,CAAC;IAE5E,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,KAA2B,EAC3B,KAA+B;IAE/B,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,CAAC;YACjB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,YAAY,EAAE,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC;YACnD,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC;YACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;SACjC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { AdminAuditLog } from "../entities/admin-audit-log.entity";
|
|
2
|
-
import { CreateAdminAuditLogInput } from "../types/admin-audit-log.types";
|
|
3
|
-
|
|
4
|
-
const SENSITIVE_FIELDS = [
|
|
5
|
-
"password",
|
|
6
|
-
"refreshToken",
|
|
7
|
-
"verificationToken",
|
|
8
|
-
"access_token",
|
|
9
|
-
"accessToken",
|
|
10
|
-
];
|
|
11
|
-
|
|
12
|
-
export function sanitizeAuditData(
|
|
13
|
-
data: unknown,
|
|
14
|
-
): Record<string, unknown> | null {
|
|
15
|
-
if (data == null) {
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const plain =
|
|
20
|
-
typeof (data as { toJSON?: () => unknown }).toJSON === "function"
|
|
21
|
-
? ((data as { toJSON: () => unknown }).toJSON() as Record<string, unknown>)
|
|
22
|
-
: ({ ...(data as Record<string, unknown>) } as Record<string, unknown>);
|
|
23
|
-
|
|
24
|
-
for (const field of SENSITIVE_FIELDS) {
|
|
25
|
-
delete plain[field];
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return plain;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export async function persistAdminAuditLog(
|
|
32
|
-
model: typeof AdminAuditLog,
|
|
33
|
-
input: CreateAdminAuditLogInput,
|
|
34
|
-
): Promise<void> {
|
|
35
|
-
try {
|
|
36
|
-
await model.create({
|
|
37
|
-
performedByUserId: input.performedByUserId,
|
|
38
|
-
previousData: sanitizeAuditData(input.previousData),
|
|
39
|
-
newData: sanitizeAuditData(input.newData),
|
|
40
|
-
endpoint: input.endpoint,
|
|
41
|
-
httpMethod: input.httpMethod,
|
|
42
|
-
tableName: input.tableName,
|
|
43
|
-
entityId: input.entityId ?? null,
|
|
44
|
-
});
|
|
45
|
-
} catch (error) {
|
|
46
|
-
console.error("No se pudo persistir admin audit log:", error);
|
|
47
|
-
}
|
|
48
|
-
}
|