Class: PromptSanitizer::Audit::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/prompt_sanitizer/audit/base.rb

Overview

Abstract base class for audit log backends.

Subclass and implement record, export, count, and clear.

Example custom backend:

class MyAuditLog < PromptSanitizer::Audit::Base
def record(event) = MyDB.insert(event.to_h)
def export(format: :json, since: nil, session_id: nil) = "..."
def count(since: nil) = MyDB.count
def clear = MyDB.truncate
end

Direct Known Subclasses

MemoryAuditLog

Instance Method Summary collapse

Instance Method Details

#clearObject

Remove all stored events.

Raises:

  • (NotImplementedError)


100
101
102
# File 'lib/prompt_sanitizer/audit/base.rb', line 100

def clear
  raise NotImplementedError, "#{self.class}#clear is not implemented"
end

#count(since: nil) ⇒ Integer

Count matching events.

Parameters:

  • since (String, Time, nil) (defaults to: nil)

Returns:

  • (Integer)

Raises:

  • (NotImplementedError)


95
96
97
# File 'lib/prompt_sanitizer/audit/base.rb', line 95

def count(since: nil)
  raise NotImplementedError, "#{self.class}#count is not implemented"
end

#export(format: :json, since: nil, session_id: nil) ⇒ String

Export events as a formatted string.

Parameters:

  • format (Symbol) (defaults to: :json)

    :json or :csv

  • since (String, Time, nil) (defaults to: nil)

    cutoff (e.g. "7d", "1h", Time object)

  • session_id (String, nil) (defaults to: nil)

    filter to a specific session

Returns:

  • (String)

Raises:

  • (NotImplementedError)


88
89
90
# File 'lib/prompt_sanitizer/audit/base.rb', line 88

def export(format: :json, since: nil, session_id: nil)
  raise NotImplementedError, "#{self.class}#export is not implemented"
end

#record(_event) ⇒ Object

Record a detection event. Must not store the original PII value.

Parameters:

Raises:

  • (NotImplementedError)


79
80
81
# File 'lib/prompt_sanitizer/audit/base.rb', line 79

def record(_event)
  raise NotImplementedError, "#{self.class}#record is not implemented"
end