@vqp/audit-memory 0.0.1
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/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/memory-adapter.d.ts +64 -0
- package/dist/memory-adapter.d.ts.map +1 -0
- package/dist/memory-adapter.js +216 -0
- package/dist/memory-adapter.js.map +1 -0
- package/package.json +31 -0
package/dist/index.d.ts
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
export { MemoryAuditAdapter } from './memory-adapter.js';
|
2
|
+
export type { MemoryAuditConfig } from './memory-adapter.js';
|
3
|
+
/**
|
4
|
+
* Factory function to create a memory audit adapter
|
5
|
+
*/
|
6
|
+
export declare function createMemoryAuditAdapter(config?: import('./memory-adapter.js').MemoryAuditConfig): Promise<import("./memory-adapter.js").MemoryAuditAdapter>;
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,GAAE,OAAO,qBAAqB,EAAE,iBAAsB,6DAI7D"}
|
package/dist/index.js
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
export { MemoryAuditAdapter } from './memory-adapter.js';
|
2
|
+
/**
|
3
|
+
* Factory function to create a memory audit adapter
|
4
|
+
*/
|
5
|
+
export async function createMemoryAuditAdapter(config = {}) {
|
6
|
+
const { MemoryAuditAdapter } = await import('./memory-adapter.js');
|
7
|
+
return new MemoryAuditAdapter(config);
|
8
|
+
}
|
9
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,SAA0D,EAAE;IAE5D,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACnE,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC"}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
/**
|
2
|
+
* Memory Audit Adapter - Implements AuditPort using in-memory storage
|
3
|
+
* This adapter stores audit events in memory for testing and lightweight deployments
|
4
|
+
*/
|
5
|
+
import { AuditPort, VQPQuery, VQPResponse, VQPError, AuditEntry } from '@vqp/core';
|
6
|
+
export interface MemoryAuditConfig {
|
7
|
+
maxEntries?: number;
|
8
|
+
includeFullQuery?: boolean;
|
9
|
+
includeFullResponse?: boolean;
|
10
|
+
autoCleanup?: boolean;
|
11
|
+
logLevel?: 'debug' | 'info' | 'warn' | 'error';
|
12
|
+
}
|
13
|
+
export declare class MemoryAuditAdapter implements AuditPort {
|
14
|
+
private entries;
|
15
|
+
private readonly maxEntries;
|
16
|
+
private readonly includeFullQuery;
|
17
|
+
private readonly includeFullResponse;
|
18
|
+
private readonly autoCleanup;
|
19
|
+
private readonly logLevel;
|
20
|
+
constructor(config?: MemoryAuditConfig);
|
21
|
+
logQuery(query: VQPQuery, response: VQPResponse): Promise<void>;
|
22
|
+
logError(error: VQPError, context: any): Promise<void>;
|
23
|
+
getAuditTrail(filters?: {
|
24
|
+
startTime?: string;
|
25
|
+
endTime?: string;
|
26
|
+
querier?: string;
|
27
|
+
event?: string;
|
28
|
+
}): Promise<AuditEntry[]>;
|
29
|
+
purgeOldEntries(olderThan: string): Promise<number>;
|
30
|
+
/**
|
31
|
+
* Get current number of stored entries
|
32
|
+
*/
|
33
|
+
getEntryCount(): number;
|
34
|
+
/**
|
35
|
+
* Clear all entries (useful for testing)
|
36
|
+
*/
|
37
|
+
clearAll(): void;
|
38
|
+
/**
|
39
|
+
* Get memory usage statistics
|
40
|
+
*/
|
41
|
+
getMemoryStats(): {
|
42
|
+
entryCount: number;
|
43
|
+
maxEntries: number;
|
44
|
+
memoryUsageBytes: number;
|
45
|
+
oldestEntry?: string;
|
46
|
+
newestEntry?: string;
|
47
|
+
};
|
48
|
+
private addEntry;
|
49
|
+
private sanitizeContext;
|
50
|
+
private estimateMemoryUsage;
|
51
|
+
/**
|
52
|
+
* Get entries by event type
|
53
|
+
*/
|
54
|
+
getEntriesByEvent(eventType: AuditEntry['event']): AuditEntry[];
|
55
|
+
/**
|
56
|
+
* Get recent entries (last N entries)
|
57
|
+
*/
|
58
|
+
getRecentEntries(count?: number): AuditEntry[];
|
59
|
+
/**
|
60
|
+
* Search entries by metadata
|
61
|
+
*/
|
62
|
+
searchEntries(searchTerm: string): AuditEntry[];
|
63
|
+
}
|
64
|
+
//# sourceMappingURL=memory-adapter.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"memory-adapter.d.ts","sourceRoot":"","sources":["../src/memory-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEnF,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAChD;AAED,qBAAa,kBAAmB,YAAW,SAAS;IAClD,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,MAAM,GAAE,iBAAsB;IAQpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC/D,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBtD,aAAa,CAAC,OAAO,CAAC,EAAE;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAkCnB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASzD;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,cAAc,IAAI;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;IA8BD,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,mBAAmB;IAW3B;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,UAAU,EAAE;IAI/D;;OAEG;IACH,gBAAgB,CAAC,KAAK,GAAE,MAAY,GAAG,UAAU,EAAE;IAInD;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE;CAyBhD"}
|
@@ -0,0 +1,216 @@
|
|
1
|
+
/**
|
2
|
+
* Memory Audit Adapter - Implements AuditPort using in-memory storage
|
3
|
+
* This adapter stores audit events in memory for testing and lightweight deployments
|
4
|
+
*/
|
5
|
+
export class MemoryAuditAdapter {
|
6
|
+
entries = [];
|
7
|
+
maxEntries;
|
8
|
+
includeFullQuery;
|
9
|
+
includeFullResponse;
|
10
|
+
autoCleanup;
|
11
|
+
logLevel;
|
12
|
+
constructor(config = {}) {
|
13
|
+
this.maxEntries = config.maxEntries || 10000;
|
14
|
+
this.includeFullQuery = config.includeFullQuery || false;
|
15
|
+
this.includeFullResponse = config.includeFullResponse || false;
|
16
|
+
this.autoCleanup = config.autoCleanup !== false; // Default to true
|
17
|
+
this.logLevel = config.logLevel || 'info';
|
18
|
+
}
|
19
|
+
async logQuery(query, response) {
|
20
|
+
const responseTime = new Date(response.timestamp).getTime() - new Date(query.timestamp).getTime();
|
21
|
+
const entry = {
|
22
|
+
timestamp: response.timestamp, // Use response timestamp for consistency
|
23
|
+
event: 'query_processed',
|
24
|
+
metadata: {
|
25
|
+
vocabulary: query.query.vocab,
|
26
|
+
responseTime,
|
27
|
+
target: query.target,
|
28
|
+
responder: response.responder,
|
29
|
+
proofType: response.proof.type,
|
30
|
+
...(this.includeFullQuery && { fullQuery: query }),
|
31
|
+
...(this.includeFullResponse && { fullResponse: response }),
|
32
|
+
},
|
33
|
+
};
|
34
|
+
// Add optional fields only if they have values
|
35
|
+
if (query.id) {
|
36
|
+
entry.queryId = query.id;
|
37
|
+
}
|
38
|
+
if (query.requester) {
|
39
|
+
entry.querier = query.requester;
|
40
|
+
}
|
41
|
+
// Only include result if it's a boolean
|
42
|
+
if (typeof response.result === 'boolean') {
|
43
|
+
entry.result = response.result;
|
44
|
+
}
|
45
|
+
this.addEntry(entry);
|
46
|
+
}
|
47
|
+
async logError(error, context) {
|
48
|
+
const entry = {
|
49
|
+
timestamp: new Date().toISOString(),
|
50
|
+
event: 'error_occurred',
|
51
|
+
error: {
|
52
|
+
name: error.name,
|
53
|
+
code: error.code,
|
54
|
+
message: error.message,
|
55
|
+
details: error.details,
|
56
|
+
},
|
57
|
+
metadata: {
|
58
|
+
errorCode: error.code,
|
59
|
+
errorMessage: error.message,
|
60
|
+
context: this.sanitizeContext(context),
|
61
|
+
},
|
62
|
+
};
|
63
|
+
this.addEntry(entry);
|
64
|
+
}
|
65
|
+
async getAuditTrail(filters) {
|
66
|
+
let filteredEntries = [...this.entries];
|
67
|
+
if (!filters) {
|
68
|
+
return filteredEntries;
|
69
|
+
}
|
70
|
+
// Apply time range filter
|
71
|
+
if (filters.startTime) {
|
72
|
+
const startTime = new Date(filters.startTime);
|
73
|
+
filteredEntries = filteredEntries.filter((entry) => new Date(entry.timestamp) >= startTime);
|
74
|
+
}
|
75
|
+
if (filters.endTime) {
|
76
|
+
const endTime = new Date(filters.endTime);
|
77
|
+
filteredEntries = filteredEntries.filter((entry) => new Date(entry.timestamp) <= endTime);
|
78
|
+
}
|
79
|
+
// Apply querier filter
|
80
|
+
if (filters.querier) {
|
81
|
+
filteredEntries = filteredEntries.filter((entry) => entry.querier === filters.querier);
|
82
|
+
}
|
83
|
+
// Apply event filter
|
84
|
+
if (filters.event) {
|
85
|
+
filteredEntries = filteredEntries.filter((entry) => entry.event === filters.event);
|
86
|
+
}
|
87
|
+
// Sort by timestamp (newest first)
|
88
|
+
return filteredEntries.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
|
89
|
+
}
|
90
|
+
async purgeOldEntries(olderThan) {
|
91
|
+
const cutoffTime = new Date(olderThan);
|
92
|
+
const originalCount = this.entries.length;
|
93
|
+
this.entries = this.entries.filter((entry) => new Date(entry.timestamp) > cutoffTime);
|
94
|
+
return originalCount - this.entries.length;
|
95
|
+
}
|
96
|
+
/**
|
97
|
+
* Get current number of stored entries
|
98
|
+
*/
|
99
|
+
getEntryCount() {
|
100
|
+
return this.entries.length;
|
101
|
+
}
|
102
|
+
/**
|
103
|
+
* Clear all entries (useful for testing)
|
104
|
+
*/
|
105
|
+
clearAll() {
|
106
|
+
this.entries = [];
|
107
|
+
}
|
108
|
+
/**
|
109
|
+
* Get memory usage statistics
|
110
|
+
*/
|
111
|
+
getMemoryStats() {
|
112
|
+
const memoryUsageBytes = this.estimateMemoryUsage();
|
113
|
+
const stats = {
|
114
|
+
entryCount: this.entries.length,
|
115
|
+
maxEntries: this.maxEntries,
|
116
|
+
memoryUsageBytes,
|
117
|
+
};
|
118
|
+
if (this.entries.length > 0) {
|
119
|
+
const oldestEntry = this.entries[this.entries.length - 1];
|
120
|
+
const newestEntry = this.entries[0];
|
121
|
+
if (oldestEntry) {
|
122
|
+
stats.oldestEntry = oldestEntry.timestamp;
|
123
|
+
}
|
124
|
+
if (newestEntry) {
|
125
|
+
stats.newestEntry = newestEntry.timestamp;
|
126
|
+
}
|
127
|
+
}
|
128
|
+
return stats;
|
129
|
+
}
|
130
|
+
addEntry(entry) {
|
131
|
+
// Insert at the beginning to maintain newest-first order
|
132
|
+
this.entries.unshift(entry);
|
133
|
+
// Perform auto-cleanup if enabled and we exceed maxEntries
|
134
|
+
if (this.autoCleanup && this.entries.length > this.maxEntries) {
|
135
|
+
// Remove oldest entries (from the end of the array)
|
136
|
+
this.entries = this.entries.slice(0, this.maxEntries);
|
137
|
+
}
|
138
|
+
}
|
139
|
+
sanitizeContext(context) {
|
140
|
+
if (!context)
|
141
|
+
return null;
|
142
|
+
// Create a sanitized copy of the context
|
143
|
+
try {
|
144
|
+
const sanitized = JSON.parse(JSON.stringify(context));
|
145
|
+
// Remove potentially sensitive fields
|
146
|
+
if (typeof sanitized === 'object') {
|
147
|
+
delete sanitized.privateKey;
|
148
|
+
delete sanitized.password;
|
149
|
+
delete sanitized.secret;
|
150
|
+
delete sanitized.token;
|
151
|
+
// Recursively sanitize nested objects
|
152
|
+
Object.keys(sanitized).forEach((key) => {
|
153
|
+
if (typeof sanitized[key] === 'object' && sanitized[key] !== null) {
|
154
|
+
sanitized[key] = this.sanitizeContext(sanitized[key]);
|
155
|
+
}
|
156
|
+
});
|
157
|
+
}
|
158
|
+
return sanitized;
|
159
|
+
}
|
160
|
+
catch {
|
161
|
+
// If serialization fails, return a safe representation
|
162
|
+
return { type: typeof context, error: 'Serialization failed' };
|
163
|
+
}
|
164
|
+
}
|
165
|
+
estimateMemoryUsage() {
|
166
|
+
try {
|
167
|
+
// Rough estimation of memory usage
|
168
|
+
const jsonString = JSON.stringify(this.entries);
|
169
|
+
return jsonString.length * 2; // Approximate bytes (UTF-16)
|
170
|
+
}
|
171
|
+
catch {
|
172
|
+
// Fallback estimation
|
173
|
+
return this.entries.length * 1000; // Rough estimate: 1KB per entry
|
174
|
+
}
|
175
|
+
}
|
176
|
+
/**
|
177
|
+
* Get entries by event type
|
178
|
+
*/
|
179
|
+
getEntriesByEvent(eventType) {
|
180
|
+
return this.entries.filter((entry) => entry.event === eventType);
|
181
|
+
}
|
182
|
+
/**
|
183
|
+
* Get recent entries (last N entries)
|
184
|
+
*/
|
185
|
+
getRecentEntries(count = 100) {
|
186
|
+
return this.entries.slice(0, Math.min(count, this.entries.length));
|
187
|
+
}
|
188
|
+
/**
|
189
|
+
* Search entries by metadata
|
190
|
+
*/
|
191
|
+
searchEntries(searchTerm) {
|
192
|
+
const term = searchTerm.toLowerCase();
|
193
|
+
return this.entries.filter((entry) => {
|
194
|
+
// Search in queryId
|
195
|
+
if (entry.queryId?.toLowerCase().includes(term))
|
196
|
+
return true;
|
197
|
+
// Search in querier
|
198
|
+
if (entry.querier?.toLowerCase().includes(term))
|
199
|
+
return true;
|
200
|
+
// Search in metadata
|
201
|
+
if (entry.metadata) {
|
202
|
+
const metadataString = JSON.stringify(entry.metadata).toLowerCase();
|
203
|
+
if (metadataString.includes(term))
|
204
|
+
return true;
|
205
|
+
}
|
206
|
+
// Search in error details
|
207
|
+
if (entry.error) {
|
208
|
+
const errorString = JSON.stringify(entry.error).toLowerCase();
|
209
|
+
if (errorString.includes(term))
|
210
|
+
return true;
|
211
|
+
}
|
212
|
+
return false;
|
213
|
+
});
|
214
|
+
}
|
215
|
+
}
|
216
|
+
//# sourceMappingURL=memory-adapter.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"memory-adapter.js","sourceRoot":"","sources":["../src/memory-adapter.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
{
|
2
|
+
"name": "@vqp/audit-memory",
|
3
|
+
"version": "0.0.1",
|
4
|
+
"description": "In-memory audit adapter for VQP",
|
5
|
+
"type": "module",
|
6
|
+
"main": "dist/index.js",
|
7
|
+
"types": "dist/index.d.ts",
|
8
|
+
"scripts": {
|
9
|
+
"build": "tsc",
|
10
|
+
"test": "find src -name '*.test.ts' -exec node --import=tsx --test {} +",
|
11
|
+
"lint": "eslint src/**/*.ts",
|
12
|
+
"clean": "rm -rf dist"
|
13
|
+
},
|
14
|
+
"dependencies": {
|
15
|
+
"@vqp/core": "^0.0.5"
|
16
|
+
},
|
17
|
+
"devDependencies": {
|
18
|
+
"typescript": "^5.0.0"
|
19
|
+
},
|
20
|
+
"files": [
|
21
|
+
"dist/**/*",
|
22
|
+
"README.md"
|
23
|
+
],
|
24
|
+
"keywords": [
|
25
|
+
"vqp",
|
26
|
+
"audit",
|
27
|
+
"memory",
|
28
|
+
"logging"
|
29
|
+
],
|
30
|
+
"license": "MIT"
|
31
|
+
}
|