@newrelic/preflight 1.42.0 → 1.43.0

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.
@@ -36,6 +36,10 @@ export const DEFAULT_DESTRUCTIVE_COMMAND_PATTERNS = [
36
36
  /\bgit\s+push\s+--force(?!-(?:with-lease|if-includes))\b/i,
37
37
  /\bgit\s+push\s+-f\b/i,
38
38
  /\bgit\s+reset\s+--hard\b/i,
39
+ // git clean only deletes with -f/--force (clean.requireForce defaults to true);
40
+ // -n/--dry-run and bare `git clean` are safe and stay unflagged.
41
+ /\bgit\s+clean\b(?=.*\s(?:-[a-zA-Z]*f[a-zA-Z]*|--force)\b)/i,
42
+ /\bfind\b.*\s-delete\b/i,
39
43
  /\bDROP\s+TABLE\b/i,
40
44
  /\bDROP\s+DATABASE\b/i,
41
45
  /\bDELETE\s+FROM\b/i,
@@ -52,6 +56,21 @@ export const DEFAULT_NETWORK_COMMAND_PATTERNS = [
52
56
  /\bnc\b/,
53
57
  /\bssh\b/,
54
58
  ];
59
+ const RM_OR_UNLINK_IN_COMMAND_POSITION = /(?:^|[;&|(])\s*(?:sudo\s+)?(?:rm|unlink)\s/m;
60
+ export const DEFAULT_DELETION_COMMAND_PATTERNS = [RM_OR_UNLINK_IN_COMMAND_POSITION];
61
+ const ATTRIBUTION_WIRE_KEYS = {
62
+ sessionId: 'session_id',
63
+ agentId: 'agent_id',
64
+ agentType: 'agent_type',
65
+ };
66
+ const ATTRIBUTION_KEYS = Object.keys(ATTRIBUTION_WIRE_KEYS);
67
+ export function attachAuditAttribution(target, source) {
68
+ for (const key of ATTRIBUTION_KEYS) {
69
+ const value = source[key];
70
+ if (typeof value === 'string')
71
+ target[ATTRIBUTION_WIRE_KEYS[key]] = value;
72
+ }
73
+ }
55
74
  // ---------------------------------------------------------------------------
56
75
  // Tool name → AuditAction mapping
57
76
  // ---------------------------------------------------------------------------
@@ -98,50 +117,59 @@ function buildDetail(record) {
98
117
  function matchesAny(value, patterns) {
99
118
  return patterns.some((p) => p.test(value));
100
119
  }
101
- function detectSecurityAlert(record, sensitivePatterns, destructivePatterns, networkPatterns) {
102
- const command = record.command;
103
- const filePath = record.filePath;
104
- // Defense in depth: the classifier's verdict and the pattern lists are
105
- // OR-ed together. Either layer flagging is enough to alert. We deliberately
106
- // do NOT short-circuit on `bashDestructive === false` — the two layers can
107
- // diverge (the classifier and the audit pattern list maintain independent
108
- // regexes), so treating the classifier as authoritative would let a
109
- // narrower classifier silently suppress a hit the audit list would have
110
- // caught. Treat the classifier as additive, not authoritative, for
111
- // security-critical decisions.
112
- const classifierDestructive = record.bashDestructive === true;
113
- const classifierNetwork = record.bashNetwork === true;
114
- // Destructive commands (critical) — check first, highest priority
115
- if (command) {
116
- const isDestructive = classifierDestructive || matchesAny(command, destructivePatterns);
117
- if (isDestructive) {
118
- return {
119
- severity: 'critical',
120
- alertType: 'destructive_command',
121
- description: `Destructive command detected: ${redactSensitive(command)}`,
122
- };
123
- }
124
- }
125
- // Sensitive file access (high)
126
- if (filePath && matchesAny(filePath, sensitivePatterns)) {
127
- return {
128
- severity: 'high',
120
+ const SEVERITY_RANK = { critical: 3, high: 2, medium: 1 };
121
+ function buildAlertRules(p) {
122
+ return [
123
+ {
124
+ alertType: 'destructive_command',
125
+ severity: 'critical',
126
+ subject: 'command',
127
+ patterns: p.destructive,
128
+ classifierHit: (r) => r.bashDestructive === true,
129
+ describe: (c) => `Destructive command detected: ${c}`,
130
+ },
131
+ {
129
132
  alertType: 'sensitive_file',
130
- description: `Sensitive file accessed: ${redactSensitive(filePath)}`,
133
+ severity: 'high',
134
+ subject: 'filePath',
135
+ patterns: p.sensitive,
136
+ describe: (f) => `Sensitive file accessed: ${f}`,
137
+ },
138
+ {
139
+ alertType: 'external_network',
140
+ severity: 'medium',
141
+ subject: 'command',
142
+ patterns: p.network,
143
+ classifierHit: (r) => r.bashNetwork === true,
144
+ describe: (c) => `External network request: ${c}`,
145
+ },
146
+ {
147
+ alertType: 'file_deletion',
148
+ severity: 'medium',
149
+ subject: 'command',
150
+ patterns: p.deletion,
151
+ classifierHit: (r) => r.bashLeading === 'rm' || r.bashLeading === 'unlink',
152
+ describe: (c) => `File deletion: ${c}`,
153
+ },
154
+ ];
155
+ }
156
+ function detectSecurityAlert(record, rules) {
157
+ let best;
158
+ for (const rule of rules) {
159
+ const value = record[rule.subject];
160
+ if (typeof value !== 'string' || value.length === 0)
161
+ continue;
162
+ if (!rule.classifierHit?.(record) && !matchesAny(value, rule.patterns))
163
+ continue;
164
+ if (best && SEVERITY_RANK[best.severity] >= SEVERITY_RANK[rule.severity])
165
+ continue;
166
+ best = {
167
+ severity: rule.severity,
168
+ alertType: rule.alertType,
169
+ description: rule.describe(redactSensitive(value)),
131
170
  };
132
171
  }
133
- // External network request (medium) — only for Bash commands
134
- if (command) {
135
- const isNetwork = classifierNetwork || matchesAny(command, networkPatterns);
136
- if (isNetwork) {
137
- return {
138
- severity: 'medium',
139
- alertType: 'external_network',
140
- description: `External network request: ${redactSensitive(command)}`,
141
- };
142
- }
143
- }
144
- return undefined;
172
+ return best;
145
173
  }
146
174
  // ---------------------------------------------------------------------------
147
175
  // NR Event helpers
@@ -157,8 +185,7 @@ export function auditRecordToNrEvent(record, attrs) {
157
185
  developer: record.developer,
158
186
  };
159
187
  attachTeamAttribution(event, attrs ?? {});
160
- if (record.sessionId != null)
161
- event.session_id = record.sessionId;
188
+ attachAuditAttribution(event, record);
162
189
  if (record.filePath != null)
163
190
  event.file_path = redactSensitive(record.filePath);
164
191
  if (record.command != null)
@@ -188,8 +215,7 @@ export function securityAlertToNrEvent(record, attrs) {
188
215
  developer: record.developer,
189
216
  };
190
217
  attachTeamAttribution(event, attrs ?? {});
191
- if (record.sessionId != null)
192
- event.session_id = record.sessionId;
218
+ attachAuditAttribution(event, record);
193
219
  if (record.filePath != null)
194
220
  event.file_path = redactSensitive(record.filePath);
195
221
  if (record.command != null)
@@ -254,6 +280,8 @@ function auditEntryToRecord(entry) {
254
280
  const sessionId = typeof rawSessionId === 'string' && !isSyntheticSessionId(rawSessionId) ? rawSessionId : null;
255
281
  const filePath = typeof entry.filePath === 'string' ? entry.filePath : undefined;
256
282
  const command = typeof entry.command === 'string' ? entry.command : undefined;
283
+ const agentId = typeof entry.agentId === 'string' && entry.agentId.length > 0 ? entry.agentId : undefined;
284
+ const agentType = typeof entry.agentType === 'string' && entry.agentType.length > 0 ? entry.agentType : undefined;
257
285
  // Disk entries written before this field was introduced have no `id`; fall
258
286
  // back to the same content fingerprint used for cross-process dedup below.
259
287
  // That fingerprint isn't guaranteed unique across two distinct legacy
@@ -278,6 +306,8 @@ function auditEntryToRecord(entry) {
278
306
  id,
279
307
  timestamp,
280
308
  sessionId,
309
+ agentId,
310
+ agentType,
281
311
  action,
282
312
  tool,
283
313
  detail,
@@ -297,9 +327,7 @@ function auditIdentityKey(r) {
297
327
  export class AuditTrailManager {
298
328
  developer;
299
329
  sessionId;
300
- sensitivePatterns;
301
- destructivePatterns;
302
- networkPatterns;
330
+ rules;
303
331
  localStore;
304
332
  entries = [];
305
333
  sensitiveAccessLog = [];
@@ -317,21 +345,33 @@ export class AuditTrailManager {
317
345
  constructor(options) {
318
346
  this.developer = options.developer;
319
347
  this.sessionId = options.sessionId;
320
- this.sensitivePatterns = options.sensitivePatterns ?? DEFAULT_SENSITIVE_FILE_PATTERNS;
321
- this.destructivePatterns = options.destructivePatterns ?? DEFAULT_DESTRUCTIVE_COMMAND_PATTERNS;
322
- this.networkPatterns = options.networkPatterns ?? DEFAULT_NETWORK_COMMAND_PATTERNS;
348
+ this.rules = buildAlertRules({
349
+ sensitive: options.sensitivePatterns ?? DEFAULT_SENSITIVE_FILE_PATTERNS,
350
+ destructive: options.destructivePatterns ?? DEFAULT_DESTRUCTIVE_COMMAND_PATTERNS,
351
+ network: options.networkPatterns ?? DEFAULT_NETWORK_COMMAND_PATTERNS,
352
+ deletion: options.deletionPatterns ?? DEFAULT_DELETION_COMMAND_PATTERNS,
353
+ });
323
354
  this.localStore = options.localStore ?? null;
324
355
  }
325
356
  recordToolCall(record) {
326
357
  const action = classifyTool(record.toolName);
327
358
  const detail = buildDetail(record);
328
- const alert = detectSecurityAlert(record, this.sensitivePatterns, this.destructivePatterns, this.networkPatterns);
359
+ return this.commit(record, action, detail);
360
+ }
361
+ recordProxyCall(record) {
362
+ const detail = `McpToolCall: ${record.serverName}/${record.toolName}`;
363
+ return this.commit(record, 'McpToolCall', detail);
364
+ }
365
+ commit(record, action, detail) {
366
+ const alert = detectSecurityAlert(record, this.rules);
329
367
  const rawFilePath = record.filePath;
330
368
  const rawCommand = record.command;
331
369
  const auditRecord = {
332
370
  id: record.id,
333
371
  timestamp: record.timestamp,
334
372
  sessionId: resolveAuditSessionId(record.sessionId, this.sessionId),
373
+ agentId: typeof record.agentId === 'string' ? record.agentId : undefined,
374
+ agentType: typeof record.agentType === 'string' ? record.agentType : undefined,
335
375
  action,
336
376
  tool: record.toolName,
337
377
  detail,
@@ -349,47 +389,14 @@ export class AuditTrailManager {
349
389
  if (this.sensitiveAccessLog.length >= AuditTrailManager.MAX_ENTRIES)
350
390
  this.sensitiveAccessLog.shift();
351
391
  this.sensitiveAccessLog.push(auditRecord);
352
- logger.warn('Security alert', {
392
+ const alertContext = {
353
393
  severity: alert.severity,
354
394
  alertType: alert.alertType,
355
395
  tool: record.toolName,
356
396
  detail,
357
- });
358
- }
359
- this.persistToDisk(auditRecord);
360
- return auditRecord;
361
- }
362
- recordProxyCall(record) {
363
- const detail = `McpToolCall: ${record.serverName}/${record.toolName}`;
364
- const filePath = record.filePath;
365
- const command = record.command;
366
- const alert = detectSecurityAlert(record, this.sensitivePatterns, this.destructivePatterns, this.networkPatterns);
367
- const auditRecord = {
368
- id: record.id,
369
- timestamp: record.timestamp,
370
- sessionId: resolveAuditSessionId(record.sessionId, this.sessionId),
371
- action: 'McpToolCall',
372
- tool: record.toolName,
373
- detail,
374
- developer: this.developer,
375
- // Same redaction policy as recordToolCall — see comment there.
376
- filePath: filePath != null ? redactSensitive(filePath) : undefined,
377
- command: command != null ? redactSensitive(command) : undefined,
378
- securityAlert: alert,
379
- };
380
- if (this.entries.length >= AuditTrailManager.MAX_ENTRIES)
381
- this.entries.shift();
382
- this.entries.push(auditRecord);
383
- if (alert) {
384
- if (this.sensitiveAccessLog.length >= AuditTrailManager.MAX_ENTRIES)
385
- this.sensitiveAccessLog.shift();
386
- this.sensitiveAccessLog.push(auditRecord);
387
- logger.warn('Security alert', {
388
- severity: alert.severity,
389
- alertType: alert.alertType,
390
- tool: record.toolName,
391
- detail,
392
- });
397
+ };
398
+ attachAuditAttribution(alertContext, auditRecord);
399
+ logger.warn('Security alert', alertContext);
393
400
  }
394
401
  this.persistToDisk(auditRecord);
395
402
  return auditRecord;
@@ -475,6 +482,8 @@ export class AuditTrailManager {
475
482
  developer: record.developer,
476
483
  filePath: record.filePath,
477
484
  command: record.command,
485
+ agentId: record.agentId,
486
+ agentType: record.agentType,
478
487
  securityAlert: record.securityAlert
479
488
  ? { severity: record.securityAlert.severity, alertType: record.securityAlert.alertType }
480
489
  : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"audit-trail.js","sourceRoot":"","sources":["../../src/security/audit-trail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-trail.js","sourceRoot":"","sources":["../../src/security/audit-trail.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAoD3C,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,+BAA+B,GAAa;IACvD,0BAA0B;IAC1B,sBAAsB;IACtB,iBAAiB;IACjB,SAAS;IACT,SAAS;IACT,yBAAyB;IACzB,6BAA6B;IAC7B,kBAAkB;IAClB,sCAAsC;IACtC,mBAAmB;IACnB,oBAAoB;IACpB,mCAAmC;CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAa;IAC5D,+DAA+D;IAC/D,wFAAwF;IACxF,kEAAkE;IAClE,iMAAiM;IACjM,gCAAgC;IAChC,uBAAuB;IACvB,2FAA2F;IAC3F,0DAA0D;IAC1D,sBAAsB;IACtB,2BAA2B;IAC3B,gFAAgF;IAChF,iEAAiE;IACjE,4DAA4D;IAC5D,wBAAwB;IACxB,mBAAmB;IACnB,sBAAsB;IACtB,oBAAoB;IACpB,iBAAiB;IACjB,yDAAyD;IACzD,2DAA2D;IAC3D,2DAA2D;IAC3D,8DAA8D;IAC9D,8DAA8D;CAC/D,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAa;IACxD,WAAW;IACX,WAAW;IACX,QAAQ;IACR,SAAS;CACV,CAAC;AAEF,MAAM,gCAAgC,GAAG,6CAA6C,CAAC;AAEvF,MAAM,CAAC,MAAM,iCAAiC,GAAa,CAAC,gCAAgC,CAAC,CAAC;AAE9F,MAAM,qBAAqB,GAA2C;IACpE,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,UAAU;IACnB,SAAS,EAAE,YAAY;CACxB,CAAC;AACF,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAEzD,CAAC;AAEF,MAAM,UAAU,sBAAsB,CACpC,MAAiD,EACjD,MAAwB;IAExB,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,MAAM,eAAe,GAAgC;IACnD,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;CACf,CAAC;AAEF,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,eAAe,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC;AAC9C,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,SAAS,WAAW,CAAC,MAAsB;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAA8B,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,OAA6B,CAAC;IACrD,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAsC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,CAAC,OAA6B,CAAC;IAErD,kEAAkE;IAClE,wEAAwE;IACxE,sEAAsE;IACtE,8DAA8D;IAC9D,sEAAsE;IACtE,wEAAwE;IACxE,IAAI,QAAQ;QAAE,OAAO,GAAG,IAAI,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5D,IAAI,OAAO;QAAE,OAAO,GAAG,IAAI,KAAK,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3D,IAAI,gBAAgB;QAAE,OAAO,GAAG,IAAI,KAAK,eAAe,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC7E,IAAI,OAAO;QAAE,OAAO,GAAG,IAAI,KAAK,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,SAAS,UAAU,CAAC,KAAa,EAAE,QAA2B;IAC5D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7C,CAAC;AAoBD,MAAM,aAAa,GAAkC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAEzF,SAAS,eAAe,CAAC,CAAkB;IACzC,OAAO;QACL;YACE,SAAS,EAAE,qBAAqB;YAChC,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,CAAC,CAAC,WAAW;YACvB,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,IAAI;YAChD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iCAAiC,CAAC,EAAE;SACtD;QACD;YACE,SAAS,EAAE,gBAAgB;YAC3B,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,CAAC,CAAC,SAAS;YACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,4BAA4B,CAAC,EAAE;SACjD;QACD;YACE,SAAS,EAAE,kBAAkB;YAC7B,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,CAAC,CAAC,OAAO;YACnB,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI;YAC5C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,6BAA6B,CAAC,EAAE;SAClD;QACD;YACE,SAAS,EAAE,eAAe;YAC1B,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,QAAQ;YAC1E,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE;SACvC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAsB,EACtB,KAA2B;IAE3B,IAAI,IAA+B,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC9D,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS;QACjF,IAAI,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS;QACnF,IAAI,GAAG;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SACnD,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,MAAM,UAAU,oBAAoB,CAClC,MAAmB,EACnB,KAKC;IAED,MAAM,KAAK,GAAgB;QACzB,SAAS,EAAE,cAAc;QACzB,aAAa,EAAE,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QAC9C,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;IAEF,qBAAqB,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1C,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEtC,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI;QAAE,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChF,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI;QAAE,KAAK,CAAC,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5E,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,KAAK,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC;QACrC,KAAK,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;QACxD,KAAK,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC;IACxC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAmB,EACnB,KAKC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAgB;QACzB,SAAS,EAAE,eAAe;QAC1B,aAAa,EAAE,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QAC9C,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,SAAS;QAC3B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;IAEF,qBAAqB,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1C,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEtC,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI;QAAE,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChF,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI;QAAE,KAAK,CAAC,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,SAAS,qBAAqB,CAC5B,eAA0C,EAC1C,gBAA+B;IAE/B,MAAM,GAAG,GAAG,eAAe,IAAI,gBAAgB,CAAC;IAChD,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AAChD,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,CACL,KAAK,KAAK,UAAU;QACpB,KAAK,KAAK,WAAW;QACrB,KAAK,KAAK,UAAU;QACpB,KAAK,KAAK,aAAa;QACvB,KAAK,KAAK,aAAa;QACvB,KAAK,KAAK,YAAY;QACtB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,OAAO,CAClB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,CAAC;AACxE,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,kBAAkB,CAAC,KAAiB;IAC3C,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC7D,IACE,OAAO,SAAS,KAAK,QAAQ;QAC7B,OAAO,MAAM,KAAK,QAAQ;QAC1B,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,MAAM,KAAK,QAAQ;QAC1B,OAAO,SAAS,KAAK,QAAQ;QAC7B,CAAC,aAAa,CAAC,MAAM,CAAC,EACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC;IACrC,MAAM,SAAS,GACb,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IAChG,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,OAAO,GACX,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,MAAM,SAAS,GACb,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,2EAA2E;IAC3E,2EAA2E;IAC3E,sEAAsE;IACtE,yEAAyE;IACzE,gDAAgD;IAChD,MAAM,EAAE,GACN,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC;QACjD,CAAC,CAAC,KAAK,CAAC,EAAE;QACV,CAAC,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAE/D,IAAI,aAAwC,CAAC;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC;IACrC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,QAAmC,CAAC;QAC9C,IAAI,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACnE,aAAa,GAAG;gBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,WAAW,EAAE,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;aAC7E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE;QACF,SAAS;QACT,SAAS;QACT,OAAO;QACP,SAAS;QACT,MAAM;QACN,IAAI;QACJ,MAAM;QACN,SAAS;QACT,QAAQ;QACR,OAAO;QACP,aAAa;KACd,CAAC;AACJ,CAAC;AAED;;;gEAGgE;AAChE,SAAS,gBAAgB,CACvB,CAAmE;IAEnE,OAAO,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACrE,CAAC;AAkBD,MAAM,OAAO,iBAAiB;IACX,SAAS,CAAS;IAC3B,SAAS,CAAgB;IAChB,KAAK,CAAuB;IAC5B,UAAU,CAAoB;IAEvC,OAAO,GAAkB,EAAE,CAAC;IAC5B,kBAAkB,GAAkB,EAAE,CAAC;IACvC,MAAM,CAAU,WAAW,GAAG,MAAM,CAAC;IAC7C;;;;;;;;OAQG;IACK,MAAM,CAAU,iBAAiB,GAAG,IAAI,CAAC;IAEjD,YAAY,OAAiC;QAC3C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC;YAC3B,SAAS,EAAE,OAAO,CAAC,iBAAiB,IAAI,+BAA+B;YACvE,WAAW,EAAE,OAAO,CAAC,mBAAmB,IAAI,oCAAoC;YAChF,OAAO,EAAE,OAAO,CAAC,eAAe,IAAI,gCAAgC;YACpE,QAAQ,EAAE,OAAO,CAAC,gBAAgB,IAAI,iCAAiC;SACxE,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;IAC/C,CAAC;IAED,cAAc,CAAC,MAAsB;QACnC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,eAAe,CAAC,MAA2B;QACzC,MAAM,MAAM,GAAG,gBAAgB,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAEO,MAAM,CAAC,MAAsB,EAAE,MAAmB,EAAE,MAAc;QACxE,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtD,MAAM,WAAW,GAAG,MAAM,CAAC,QAA8B,CAAC;QAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,OAA6B,CAAC;QACxD,MAAM,WAAW,GAAgB;YAC/B,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,qBAAqB,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;YAClE,OAAO,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACxE,SAAS,EAAE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC9E,MAAM;YACN,IAAI,EAAE,MAAM,CAAC,QAAQ;YACrB,MAAM;YACN,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,yEAAyE;YACzE,wEAAwE;YACxE,QAAQ,EAAE,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;YACxE,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;YACrE,aAAa,EAAE,KAAK;SACrB,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,iBAAiB,CAAC,WAAW;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,iBAAiB,CAAC,WAAW;gBACjE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,YAAY,GAA8C;gBAC9D,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI,EAAE,MAAM,CAAC,QAAQ;gBACrB,MAAM;aACP,CAAC;YACF,sBAAsB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAChC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,WAAW,CAAC,QAAgB,iBAAiB,CAAC,iBAAiB;QAC7D,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACrD,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChE,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAC7C,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,oEAAoE;QACpE,iEAAiE;QACjE,uEAAuE;QACvE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,UAAU;QACR,MAAM,gBAAgB,GAA2B,EAAE,CAAC;QACpD,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxB,cAAc,EAAE,CAAC;gBACjB,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACzC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YACjC,cAAc;YACd,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAyB;QAC7B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,MAAmB;QACvC,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YAC7B,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;gBACjC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE;gBACxF,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;IACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"log-ingest.d.ts","sourceRoot":"","sources":["../../src/transport/log-ingest.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAQ9D,KAAK,UAAU,GAAG,CAChB,IAAI,EAAE,UAAU,EAAE,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9B,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uEAAuE;IACvE,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CA2BtF;AAQD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAA8B;gBAEvC,OAAO,EAAE,gBAAgB;IASrC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI/B,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIzC,KAAK,IAAI,IAAI;IAYP,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAerB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC5B,OAAO,CAAC,YAAY;CAarB"}
1
+ {"version":3,"file":"log-ingest.d.ts","sourceRoot":"","sources":["../../src/transport/log-ingest.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAS9D,KAAK,UAAU,GAAG,CAChB,IAAI,EAAE,UAAU,EAAE,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9B,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uEAAuE;IACvE,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CA2BtF;AAQD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAA8B;gBAEvC,OAAO,EAAE,gBAAgB;IASrC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI/B,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIzC,KAAK,IAAI,IAAI;IAYP,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAerB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC5B,OAAO,CAAC,YAAY;CAarB"}
@@ -5,6 +5,7 @@
5
5
  import { createLogger } from '../shared/index.js';
6
6
  import { sendLogs } from '../shared/index.js';
7
7
  import { redactSensitive } from '../config.js';
8
+ import { attachAuditAttribution } from '../security/audit-trail.js';
8
9
  const logger = createLogger('log-ingest');
9
10
  // ---------------------------------------------------------------------------
10
11
  // Conversion
@@ -20,8 +21,7 @@ export function auditRecordToLogEntry(record, appName) {
20
21
  'audit.action': record.action,
21
22
  'audit.security_alert': !!record.securityAlert,
22
23
  };
23
- if (record.sessionId != null)
24
- attributes.session_id = record.sessionId;
24
+ attachAuditAttribution(attributes, record);
25
25
  // Defense-in-depth: AuditRecord is already constructed with redacted
26
26
  // filePath/command/detail (see audit-trail.ts), but apply redactSensitive
27
27
  // again here so a future caller that bypasses the AuditTrailManager
@@ -1 +1 @@
1
- {"version":3,"file":"log-ingest.js","sourceRoot":"","sources":["../../src/transport/log-ingest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log-ingest.js","sourceRoot":"","sources":["../../src/transport/log-ingest.ts"],"names":[],"mappings":"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"}