Documentation
¶
Overview ¶
internal/audit/logger.go
Index ¶
- Constants
- Variables
- type AuditEntry
- type AuditFilter
- type AuditLogger
- func (al *AuditLogger) GetEntries(limit int, offset int, filter *AuditFilter) ([]AuditEntry, int, error)
- func (al *AuditLogger) GetStats() AuditStats
- func (al *AuditLogger) Log(event, userID, clientID, ip, userAgent string, success bool, ...)
- func (al *AuditLogger) LogOAuthTokenIssued(userID, clientID, ip, userAgent string, tokenType string, success bool, ...)
- func (al *AuditLogger) LogOAuthTokenRevoked(userID, clientID, ip, userAgent string, tokenType string, success bool, ...)
- func (al *AuditLogger) LogServerAccess(userID, clientID, ip, userAgent string, serverName, scope string, success bool, ...)
- func (al *AuditLogger) LogUserLogin(userID, ip, userAgent string, success bool, err error)
- func (al *AuditLogger) Shutdown() error
- type AuditStats
- type Entry
- type Logger
Constants ¶
View Source
const ( // Default audit retention period in days DefaultAuditRetentionDays = 7 // Default audit statistics timeout in seconds DefaultAuditStatsTimeout = 5 // Percentage multiplier for success rate calculation PercentageMultiplier = 100 )
Variables ¶
View Source
var ( // ErrAuditShutdownTimeout is returned when audit logger shutdown times out. ErrAuditShutdownTimeout = errors.New("audit logger shutdown timeout") )
Functions ¶
This section is empty.
Types ¶
type AuditEntry ¶
type AuditEntry struct {
ID string `json:"id"`
Timestamp time.Time `json:"timestamp"`
Event string `json:"event"`
UserID string `json:"user_id,omitempty"`
ClientID string `json:"client_id,omitempty"`
IP string `json:"ip_address,omitempty"`
UserAgent string `json:"user_agent,omitempty"`
Details map[string]interface{} `json:"details,omitempty"`
Success bool `json:"success"`
Error string `json:"error,omitempty"`
}
type AuditFilter ¶
type AuditLogger ¶
type AuditLogger struct {
// contains filtered or unexported fields
}
func NewAuditLogger ¶
func NewAuditLogger(auditConfig *config.AuditConfig, logger *logging.Logger) *AuditLogger
func (*AuditLogger) GetEntries ¶
func (al *AuditLogger) GetEntries(limit int, offset int, filter *AuditFilter) ([]AuditEntry, int, error)
func (*AuditLogger) GetStats ¶
func (al *AuditLogger) GetStats() AuditStats
func (*AuditLogger) Log ¶
func (al *AuditLogger) Log(event, userID, clientID, ip, userAgent string, success bool, details map[string]interface{}, err error)
func (*AuditLogger) LogOAuthTokenIssued ¶
func (al *AuditLogger) LogOAuthTokenIssued(userID, clientID, ip, userAgent string, tokenType string, success bool, err error)
Helper methods for common audit events
func (*AuditLogger) LogOAuthTokenRevoked ¶
func (al *AuditLogger) LogOAuthTokenRevoked(userID, clientID, ip, userAgent string, tokenType string, success bool, err error)
func (*AuditLogger) LogServerAccess ¶
func (al *AuditLogger) LogServerAccess(userID, clientID, ip, userAgent string, serverName, scope string, success bool, err error)
func (*AuditLogger) LogUserLogin ¶
func (al *AuditLogger) LogUserLogin(userID, ip, userAgent string, success bool, err error)
func (*AuditLogger) Shutdown ¶
func (al *AuditLogger) Shutdown() error
Shutdown gracefully stops the audit logger
type AuditStats ¶
type Entry ¶
type Entry struct {
ID string `json:"id"`
Timestamp time.Time `json:"timestamp"`
Event string `json:"event"`
UserID string `json:"user_id,omitempty"`
ClientID string `json:"client_id,omitempty"`
IP string `json:"ip_address,omitempty"`
UserAgent string `json:"user_agent,omitempty"`
Details map[string]interface{} `json:"details,omitempty"`
Success bool `json:"success"`
Error string `json:"error,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.