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 ¶
- Variables
- type AuditAction
- type AuditEvent
- type AuditLogger
- type AuditSeverity
- type DBConfig
- type DBFactory
- type IncidentStore
- type Role
- type RoleStore
- type SecurityIncident
- type SecurityIncidentStatus
- type SecurityManager
- type Session
- type SessionStore
- type User
- type UserStore
- type Vulnerability
- type VulnerabilitySeverity
- type VulnerabilityStatus
- type VulnerabilityStore
Constants ¶
This section is empty.
Variables ¶
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 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 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 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