models

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2025 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package models provides common data models for the security system

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuditAction

type AuditAction string

AuditAction represents an action that can be audited

const (
	AuditActionCreate AuditAction = "create"
	AuditActionRead   AuditAction = "read"
	AuditActionUpdate AuditAction = "update"
	AuditActionDelete AuditAction = "delete"
	AuditActionLogin  AuditAction = "login"
	AuditActionLogout AuditAction = "logout"
)

Constants for audit actions

func (AuditAction) String

func (a AuditAction) String() string

String returns the string representation of the AuditAction

type AuditLog

type AuditLog struct {
	ID           string                 `json:"id"`
	UserID       string                 `json:"user_id"`
	Username     string                 `json:"username"`
	Action       string                 `json:"action"`
	Resource     string                 `json:"resource"`
	ResourceType string                 `json:"resource_type"`
	ResourceID   string                 `json:"resource_id"`
	Status       string                 `json:"status"`
	Description  string                 `json:"description"`
	IPAddress    string                 `json:"ip_address"`
	UserAgent    string                 `json:"user_agent"`
	Timestamp    time.Time              `json:"timestamp"`
	Metadata     map[string]interface{} `json:"metadata,omitempty"`
}

AuditLog represents an audit log entry

type SecurityIncident

type SecurityIncident struct {
	ID              string                   `json:"id"`
	Title           string                   `json:"title"`
	Description     string                   `json:"description"`
	Severity        SecurityIncidentSeverity `json:"severity"`
	Status          SecurityIncidentStatus   `json:"status"`
	ReportedAt      time.Time                `json:"reported_at"`
	ReportedBy      string                   `json:"reported_by"`
	AssignedTo      string                   `json:"assigned_to,omitempty"`
	Resolution      string                   `json:"resolution,omitempty"`
	ResolvedAt      time.Time                `json:"resolved_at,omitempty"`
	ResolvedBy      string                   `json:"resolved_by,omitempty"`
	AffectedSystems []string                 `json:"affected_systems,omitempty"`
	RelatedLogs     []string                 `json:"related_logs,omitempty"`
	Metadata        map[string]interface{}   `json:"metadata,omitempty"`
}

SecurityIncident represents a security incident

type SecurityIncidentSeverity

type SecurityIncidentSeverity string

SecurityIncidentSeverity represents the severity of a security incident

const (
	SecurityIncidentSeverityLow      SecurityIncidentSeverity = "low"
	SecurityIncidentSeverityMedium   SecurityIncidentSeverity = "medium"
	SecurityIncidentSeverityHigh     SecurityIncidentSeverity = "high"
	SecurityIncidentSeverityCritical SecurityIncidentSeverity = "critical"
)

Constants for security incident severity

type SecurityIncidentStatus

type SecurityIncidentStatus string

SecurityIncidentStatus represents the status of a security incident

const (
	SecurityIncidentStatusOpen       SecurityIncidentStatus = "open"
	SecurityIncidentStatusInProgress SecurityIncidentStatus = "in-progress"
	SecurityIncidentStatusResolved   SecurityIncidentStatus = "resolved"
	SecurityIncidentStatusClosed     SecurityIncidentStatus = "closed"
)

Constants for security incident status

type Session

type Session struct {
	ID           string                 `json:"id"`
	UserID       string                 `json:"user_id"`
	Token        string                 `json:"token"`
	RefreshToken string                 `json:"refresh_token,omitempty"`
	IPAddress    string                 `json:"ip_address"`
	UserAgent    string                 `json:"user_agent"`
	ExpiresAt    time.Time              `json:"expires_at"`
	LastActivity time.Time              `json:"last_activity"`
	MFACompleted bool                   `json:"mfa_completed"`
	CreatedAt    time.Time              `json:"created_at"`
	Metadata     map[string]interface{} `json:"metadata,omitempty"`
}

Session represents a user session

type User

type User struct {
	ID                  string                 `json:"id"`
	Username            string                 `json:"username"`
	Email               string                 `json:"email"`
	PasswordHash        string                 `json:"password_hash,omitempty"`
	Roles               []string               `json:"roles"`
	Permissions         []string               `json:"permissions,omitempty"`
	MFAEnabled          bool                   `json:"mfa_enabled"`
	MFAMethod           string                 `json:"mfa_method,omitempty"`
	MFAMethods          []string               `json:"mfa_methods,omitempty"`
	MFASecret           string                 `json:"mfa_secret,omitempty"`
	LastLogin           time.Time              `json:"last_login"`
	LastPasswordChange  time.Time              `json:"last_password_change"`
	FailedLoginAttempts int                    `json:"failed_login_attempts"`
	Locked              bool                   `json:"locked"`
	Active              bool                   `json:"active"`
	CreatedAt           time.Time              `json:"created_at"`
	UpdatedAt           time.Time              `json:"updated_at"`
	Metadata            map[string]interface{} `json:"metadata,omitempty"`
}

User represents a user in the system

type Vulnerability

type Vulnerability struct {
	ID              string                 `json:"id"`
	Title           string                 `json:"title"`
	Description     string                 `json:"description"`
	Severity        VulnerabilitySeverity  `json:"severity"`
	Status          VulnerabilityStatus    `json:"status"`
	ReportedAt      time.Time              `json:"reported_at"`
	ReportedBy      string                 `json:"reported_by"`
	AssignedTo      string                 `json:"assigned_to,omitempty"`
	Mitigation      string                 `json:"mitigation,omitempty"`
	MitigatedAt     time.Time              `json:"mitigated_at,omitempty"`
	MitigatedBy     string                 `json:"mitigated_by,omitempty"`
	ResolvedAt      time.Time              `json:"resolved_at,omitempty"`
	ResolvedBy      string                 `json:"resolved_by,omitempty"`
	AffectedSystems []string               `json:"affected_systems,omitempty"`
	CVE             string                 `json:"cve,omitempty"`
	Metadata        map[string]interface{} `json:"metadata,omitempty"`
}

Vulnerability represents a security vulnerability

type VulnerabilitySeverity

type VulnerabilitySeverity string

VulnerabilitySeverity represents the severity of a vulnerability

const (
	VulnerabilitySeverityLow      VulnerabilitySeverity = "low"
	VulnerabilitySeverityMedium   VulnerabilitySeverity = "medium"
	VulnerabilitySeverityHigh     VulnerabilitySeverity = "high"
	VulnerabilitySeverityCritical VulnerabilitySeverity = "critical"
)

Constants for vulnerability severity

type VulnerabilityStatus

type VulnerabilityStatus string

VulnerabilityStatus represents the status of a vulnerability

const (
	VulnerabilityStatusOpen      VulnerabilityStatus = "open"
	VulnerabilityStatusMitigated VulnerabilityStatus = "mitigated"
	VulnerabilityStatusResolved  VulnerabilityStatus = "resolved"
	VulnerabilityStatusClosed    VulnerabilityStatus = "closed"
)

Constants for vulnerability status

Jump to

Keyboard shortcuts

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