interfaces

package
v0.3.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: 4 Imported by: 0

Documentation

Overview

Package interfaces defines common interfaces and types for the access control system

Package interfaces defines the interfaces for the access control system

Package interfaces defines the interfaces for the access control system

Package interfaces defines the interfaces for the access control system

Package interfaces defines the interfaces for the access control system

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidCredentials      = errors.New("invalid credentials")
	ErrUserNotFound            = errors.New("user not found")
	ErrUserLocked              = errors.New("user account is locked")
	ErrUserInactive            = errors.New("user account is inactive")
	ErrMFARequired             = errors.New("multi-factor authentication required")
	ErrInvalidMFACode          = errors.New("invalid MFA code")
	ErrSessionExpired          = errors.New("session expired")
	ErrSessionNotFound         = errors.New("session not found")
	ErrInvalidToken            = errors.New("invalid token")
	ErrInsufficientPermissions = errors.New("insufficient permissions")
	ErrInvalidRequest          = errors.New("invalid request")
	ErrNotFound                = errors.New("resource not found")
)

Common errors

Functions

This section is empty.

Types

type AuditAction

type AuditAction string

AuditAction represents an action recorded in the audit log

const (
	AuditActionLogin            AuditAction = "login"
	AuditActionLogout           AuditAction = "logout"
	AuditActionCreate           AuditAction = "create"
	AuditActionRead             AuditAction = "read"
	AuditActionUpdate           AuditAction = "update"
	AuditActionDelete           AuditAction = "delete"
	AuditActionExecute          AuditAction = "execute"
	AuditActionApprove          AuditAction = "approve"
	AuditActionReject           AuditAction = "reject"
	AuditActionConfigChange     AuditAction = "config_change"
	AuditActionPermissionChange AuditAction = "permission_change"
	AuditActionRoleChange       AuditAction = "role_change"
	AuditActionSecurityAlert    AuditAction = "security_alert"
)

Constants for audit actions

type AuditEvent

type AuditEvent = models.AuditLog

AuditEvent represents an entry in the audit log

type AuditLogger

type AuditLogger interface {
	// LogEvent logs an audit event
	LogEvent(ctx context.Context, event *AuditEvent) error

	// GetEventByID retrieves an audit event by ID
	GetEventByID(ctx context.Context, id string) (*AuditEvent, error)

	// QueryEvents queries audit events with filtering
	QueryEvents(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*AuditEvent, int, error)

	// ExportEvents exports audit events to a file
	ExportEvents(ctx context.Context, filter map[string]interface{}, format string) (string, error)

	// Close closes the audit logger
	Close() error
}

AuditLogger defines the interface for audit logging operations

type AuditSeverity

type AuditSeverity string

AuditSeverity represents the severity level of an audit event

const (
	AuditSeverityInfo     AuditSeverity = "info"
	AuditSeverityLow      AuditSeverity = "low"
	AuditSeverityMedium   AuditSeverity = "medium"
	AuditSeverityHigh     AuditSeverity = "high"
	AuditSeverityCritical AuditSeverity = "critical"
)

Constants for audit severity

type DBConfig

type DBConfig struct {
	// Driver is the database driver name (e.g., "sqlite3", "postgres")
	Driver string

	// DSN is the data source name or connection string
	DSN string

	// MaxOpenConns is the maximum number of open connections to the database
	MaxOpenConns int

	// MaxIdleConns is the maximum number of connections in the idle connection pool
	MaxIdleConns int

	// ConnMaxLifetime is the maximum amount of time a connection may be reused
	ConnMaxLifetime int

	// MigrationDir is the directory containing database migration files
	MigrationDir string

	// AutoMigrate indicates whether to automatically run migrations on startup
	AutoMigrate bool
}

DBConfig contains configuration for the database

type DBFactory

type DBFactory interface {
	// GetUserStore returns a user store implementation
	GetUserStore() (UserStore, error)

	// GetSessionStore returns a session store implementation
	GetSessionStore() (SessionStore, error)

	// GetAuditStore returns an audit store implementation
	GetAuditStore() (AuditLogger, error)

	// GetIncidentStore returns an incident store implementation
	GetIncidentStore() (IncidentStore, error)

	// GetVulnerabilityStore returns a vulnerability store implementation
	GetVulnerabilityStore() (VulnerabilityStore, error)

	// CreateAllStores creates all stores and returns any errors
	CreateAllStores() error

	// Close closes all database connections
	Close() error
}

DBFactory defines an interface for creating database connections and stores

type IncidentStore

type IncidentStore interface {
	// CreateIncident creates a new security incident
	CreateIncident(ctx context.Context, incident *SecurityIncident) error

	// GetIncidentByID retrieves a security incident by ID
	GetIncidentByID(ctx context.Context, id string) (*SecurityIncident, error)

	// UpdateIncident updates an existing security incident
	UpdateIncident(ctx context.Context, incident *SecurityIncident) error

	// DeleteIncident deletes a security incident
	DeleteIncident(ctx context.Context, id string) error

	// ListIncidents lists security incidents with optional filtering
	ListIncidents(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*SecurityIncident, int, error)

	// Close closes the incident store
	Close() error
}

IncidentStore defines the interface for security incident storage operations

type Role

type Role struct {
	ID          string
	Name        string
	Description string
	Permissions []string
	IsBuiltIn   bool
	CreatedAt   time.Time
	UpdatedAt   time.Time
}

Role represents a role in the system

type RoleStore

type RoleStore interface {
	// CreateRole creates a new role
	CreateRole(ctx context.Context, role *Role) error

	// GetRoleByID retrieves a role by ID
	GetRoleByID(ctx context.Context, id string) (*Role, error)

	// GetRoleByName retrieves a role by name
	GetRoleByName(ctx context.Context, name string) (*Role, error)

	// UpdateRole updates an existing role
	UpdateRole(ctx context.Context, role *Role) error

	// DeleteRole deletes a role
	DeleteRole(ctx context.Context, id string) error

	// ListRoles lists roles with optional filtering
	ListRoles(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*Role, int, error)

	// Close closes the role store
	Close() error
}

RoleStore defines the interface for role storage operations

type SecurityIncident

type SecurityIncident = models.SecurityIncident

SecurityIncident represents a security incident

type SecurityIncidentStatus

type SecurityIncidentStatus string

SecurityIncidentStatus represents the status of a security incident

const (
	IncidentStatusOpen       SecurityIncidentStatus = "open"
	IncidentStatusInProgress SecurityIncidentStatus = "in_progress"
	IncidentStatusContained  SecurityIncidentStatus = "contained"
	IncidentStatusResolved   SecurityIncidentStatus = "resolved"
	IncidentStatusClosed     SecurityIncidentStatus = "closed"
)

Constants for security incident status

type SecurityManager

type SecurityManager interface {
	// Initialize initializes the security manager
	Initialize(ctx context.Context) error

	// CreateIncident creates a new security incident
	CreateIncident(ctx context.Context, incident *models.SecurityIncident) error

	// GetIncidentByID retrieves a security incident by ID
	GetIncidentByID(ctx context.Context, id string) (*models.SecurityIncident, error)

	// UpdateIncident updates an existing security incident
	UpdateIncident(ctx context.Context, incident *models.SecurityIncident) error

	// DeleteIncident deletes a security incident
	DeleteIncident(ctx context.Context, id string) error

	// ListIncidents lists security incidents with filtering
	ListIncidents(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.SecurityIncident, int, error)

	// CreateVulnerability creates a new vulnerability
	CreateVulnerability(ctx context.Context, vulnerability *models.Vulnerability) error

	// GetVulnerabilityByID retrieves a vulnerability by ID
	GetVulnerabilityByID(ctx context.Context, id string) (*models.Vulnerability, error)

	// UpdateVulnerability updates an existing vulnerability
	UpdateVulnerability(ctx context.Context, vulnerability *models.Vulnerability) error

	// DeleteVulnerability deletes a vulnerability
	DeleteVulnerability(ctx context.Context, id string) error

	// ListVulnerabilities lists vulnerabilities with filtering
	ListVulnerabilities(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.Vulnerability, int, error)

	// UpdateVulnerabilityStatus updates the status of a vulnerability
	UpdateVulnerabilityStatus(ctx context.Context, id string, status models.VulnerabilityStatus) error

	// Close closes the security manager
	Close() error
}

SecurityManager defines the interface for security management operations

type Session

type Session = models.Session

Session represents a user session

type SessionStore

type SessionStore interface {
	// CreateSession creates a new session
	CreateSession(ctx context.Context, session *Session) error

	// GetSessionByID retrieves a session by ID
	GetSessionByID(ctx context.Context, id string) (*Session, error)

	// GetSessionByToken retrieves a session by token
	GetSessionByToken(ctx context.Context, token string) (*Session, error)

	// GetSessionByRefreshToken retrieves a session by refresh token
	GetSessionByRefreshToken(ctx context.Context, refreshToken string) (*Session, error)

	// UpdateSession updates an existing session
	UpdateSession(ctx context.Context, session *Session) error

	// DeleteSession deletes a session
	DeleteSession(ctx context.Context, id string) error

	// DeleteSessionsByUserID deletes all sessions for a user
	DeleteSessionsByUserID(ctx context.Context, userID string) error

	// ListSessionsByUserID lists sessions for a user
	ListSessionsByUserID(ctx context.Context, userID string) ([]*Session, error)

	// CleanExpiredSessions removes expired sessions
	CleanExpiredSessions(ctx context.Context) (int, error)

	// Close closes the session store
	Close() error
}

SessionStore defines the interface for session storage operations

type User

type User = models.User

User represents a user in the system

type UserStore

type UserStore interface {
	// CreateUser creates a new user
	CreateUser(ctx context.Context, user *User) error

	// GetUserByID retrieves a user by ID
	GetUserByID(ctx context.Context, id string) (*User, error)

	// GetUserByUsername retrieves a user by username
	GetUserByUsername(ctx context.Context, username string) (*User, error)

	// GetUserByEmail retrieves a user by email
	GetUserByEmail(ctx context.Context, email string) (*User, error)

	// UpdateUser updates an existing user
	UpdateUser(ctx context.Context, user *User) error

	// DeleteUser deletes a user
	DeleteUser(ctx context.Context, id string) error

	// ListUsers lists users with optional filtering
	ListUsers(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*User, int, error)

	// Close closes the user store
	Close() error
}

UserStore defines the interface for user storage operations

type Vulnerability

type Vulnerability = models.Vulnerability

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"
	VulnerabilityStatusInProgress VulnerabilityStatus = "in_progress"
	VulnerabilityStatusMitigated  VulnerabilityStatus = "mitigated"
	VulnerabilityStatusResolved   VulnerabilityStatus = "resolved"
	VulnerabilityStatusClosed     VulnerabilityStatus = "closed"
	VulnerabilityStatusDeferred   VulnerabilityStatus = "deferred"
)

Constants for vulnerability status

type VulnerabilityStore

type VulnerabilityStore interface {
	// CreateVulnerability creates a new vulnerability
	CreateVulnerability(ctx context.Context, vulnerability *Vulnerability) error

	// GetVulnerabilityByID retrieves a vulnerability by ID
	GetVulnerabilityByID(ctx context.Context, id string) (*Vulnerability, error)

	// GetVulnerabilityByCVE retrieves a vulnerability by CVE ID
	GetVulnerabilityByCVE(ctx context.Context, cve string) (*Vulnerability, error)

	// UpdateVulnerability updates an existing vulnerability
	UpdateVulnerability(ctx context.Context, vulnerability *Vulnerability) error

	// DeleteVulnerability deletes a vulnerability
	DeleteVulnerability(ctx context.Context, id string) error

	// ListVulnerabilities lists vulnerabilities with optional filtering
	ListVulnerabilities(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*Vulnerability, int, error)

	// Close closes the vulnerability store
	Close() error
}

VulnerabilityStore defines the interface for vulnerability storage operations

Jump to

Keyboard shortcuts

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