nexus-agents - v2.80.0
    Preparing search index...

    Class FileAuditStorage

    Audit exports - Structured audit logging (Issue #193) Split from index.ts for file size compliance (Issue #285)

    Implements

    Index

    Constructors

    Methods

    Constructors

    • Constructor for FileAuditStorage.

      SECURITY NOTE: Prefer using FileAuditStorage.create() for safe instantiation with proper path validation and error handling.

      Parameters

      • config: {
            logDir: string;
            filePrefix: string;
            maxFileSizeBytes: number;
            maxFiles: number;
            enableHashChain: boolean;
            enableCompression: boolean;
            flushIntervalMs: number;
            minSeverity: "info" | "warning" | "critical";
            categories?: (
                | "authorization"
                | "system"
                | "configuration"
                | "security"
                | "authentication"
                | "tool_invocation"
                | "data_access"
                | "data_modification"
            )[];
        }

        Audit log configuration

      • Optionallogger: ILogger

        Optional logger instance

      • skipValidation: boolean = false

        Internal flag, set by create() after validation

      Returns FileAuditStorage

      SecurityError if path validation fails and skipValidation is false

    Methods

    • Write an audit event to storage

      Parameters

      • event: {
            id: string;
            version: "1.0";
            timestamp: string;
            timestampMs: number;
            category:
                | "authorization"
                | "system"
                | "configuration"
                | "security"
                | "authentication"
                | "tool_invocation"
                | "data_access"
                | "data_modification";
            severity: "info"
            | "warning"
            | "critical";
            outcome: "error" | "success" | "failure" | "denied";
            action: string;
            description?: string;
            actor: {
                type: "system" | "user" | "external" | "agent";
                id: string;
                name?: string;
                ip?: string;
                userAgent?: string;
            };
            resource?: { type: string; id: string; name?: string; path?: string };
            requestId?: string;
            traceId?: string;
            sessionId?: string;
            toolName?: string;
            durationMs?: number;
            metadata?: Record<string, unknown>;
            policyName?: string;
            policyDecision?: string;
            violationType?: string;
            previousHash?: string;
            hash?: string;
        }

      Returns Promise<void>

    • Query events by criteria

      Parameters

      • criteria: {
            startTime?: Date;
            endTime?: Date;
            categories?: (
                | "authorization"
                | "system"
                | "configuration"
                | "security"
                | "authentication"
                | "tool_invocation"
                | "data_access"
                | "data_modification"
            )[];
            severities?: ("info" | "warning" | "critical")[];
            outcomes?: ("error" | "success" | "failure" | "denied")[];
            actorId?: string;
            resourceId?: string;
            requestId?: string;
            traceId?: string;
            limit: number;
            offset: number;
        }

      Returns Promise<
          {
              id: string;
              version: "1.0";
              timestamp: string;
              timestampMs: number;
              category: | "authorization"
              | "system"
              | "configuration"
              | "security"
              | "authentication"
              | "tool_invocation"
              | "data_access"
              | "data_modification";
              severity: "info"
              | "warning"
              | "critical";
              outcome: "error" | "success" | "failure" | "denied";
              action: string;
              description?: string;
              actor: {
                  type: "system" | "user" | "external" | "agent";
                  id: string;
                  name?: string;
                  ip?: string;
                  userAgent?: string;
              };
              resource?: { type: string; id: string; name?: string; path?: string };
              requestId?: string;
              traceId?: string;
              sessionId?: string;
              toolName?: string;
              durationMs?: number;
              metadata?: Record<string, unknown>;
              policyName?: string;
              policyDecision?: string;
              violationType?: string;
              previousHash?: string;
              hash?: string;
          }[],
      >