audit

package
v0.0.0-...-bbd1f01 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 20, 2021 License: AGPL-3.0, Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefMaxQueueSize = 1000

	KeyAPIPath   = "api_path"
	KeyEvent     = "event"
	KeyStatus    = "status"
	KeyUserID    = "user_id"
	KeySessionID = "session_id"
	KeyClient    = "client"
	KeyIPAddress = "ip_address"
	KeyClusterID = "cluster_id"

	Success = "success"
	Attempt = "attempt"
	Fail    = "fail"
)

Variables

This section is empty.

Functions

func NewFileTarget

func NewFileTarget(filter logr.Filter, formatter logr.Formatter, opts FileOptions, maxQSize int) (*target.File, error)

NewFileTarget creates a target capable of outputting log records to a rotated file.

Types

type Audit

type Audit struct {

	// OnQueueFull is called on an attempt to add an audit record to a full queue.
	// Return true to drop record, or false to block until there is room in queue.
	OnQueueFull func(qname string, maxQueueSize int) bool

	// OnError is called when an error occurs while writing an audit record.
	OnError func(err error)
	// contains filtered or unexported fields
}

func (*Audit) AddTarget

func (a *Audit) AddTarget(target logr.Target)

AddTarget adds a Logr target to the list of targets each audit record will be output to.

func (*Audit) Init

func (a *Audit) Init(maxQueueSize int)

func (*Audit) Log

func (a *Audit) Log(level mlog.LogLevel, path string, evt string, status string, userID string, sessionID string, meta Meta)

Log emits an audit record based on minimum required info.

func (*Audit) LogRecord

func (a *Audit) LogRecord(level mlog.LogLevel, rec Record)

LogRecord emits an audit record with complete info.

func (*Audit) MakeFilter

func (a *Audit) MakeFilter(level ...mlog.LogLevel) *logr.CustomFilter

MakeFilter creates a filter which only allows the specified audit levels to be output.

func (*Audit) MakeJSONFormatter

func (a *Audit) MakeJSONFormatter() *format.JSON

MakeJSONFormatter creates a formatter that outputs JSON suitable for audit records.

func (*Audit) Shutdown

func (a *Audit) Shutdown()

Shutdown cleanly stops the audit engine after making best efforts to flush all targets.

type FileOptions

type FileOptions target.FileOptions

type FuncMetaTypeConv

type FuncMetaTypeConv func(val interface{}) (newVal interface{}, converted bool)

FuncMetaTypeConv defines a function that can convert meta data types into something that serializes well for audit records.

type Meta

type Meta map[string]interface{}

Meta represents metadata that can be added to a audit record as name/value pairs.

type Record

type Record struct {
	APIPath   string
	Event     string
	Status    string
	UserID    string
	SessionID string
	Client    string
	IPAddress string
	Meta      Meta
	// contains filtered or unexported fields
}

Record provides a consistent set of fields used for all audit logging.

func (*Record) AddMeta

func (rec *Record) AddMeta(name string, val interface{})

AddMeta adds a single name/value pair to this audit record's metadata.

func (*Record) AddMetaTypeConverter

func (rec *Record) AddMetaTypeConverter(f FuncMetaTypeConv)

AddMetaTypeConverter adds a function capable of converting meta field types into something more suitable for serialization.

func (*Record) Fail

func (rec *Record) Fail()

Success marks the audit record status as failed.

func (*Record) Success

func (rec *Record) Success()

Success marks the audit record status as successful.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL