Documentation
¶
Overview ¶
Package checkpoint provides scan state persistence and recovery
Index ¶
- func Exists(filePath string) bool
- type Manager
- func (m *Manager) AddError(err types.ScanError)
- func (m *Manager) AddFinding(finding types.Finding)
- func (m *Manager) Cleanup() error
- func (m *Manager) FilterPendingRequests(requests []payloads.FuzzRequest, ...) []payloads.FuzzRequest
- func (m *Manager) GetFindings() []types.Finding
- func (m *Manager) GetResumeInfo() *ResumeInfo
- func (m *Manager) GetState() *ScanState
- func (m *Manager) Initialize(scanID string, inputFile, inputType, target string, config *types.ScanConfig)
- func (m *Manager) IsCompleted(fingerprint string) bool
- func (m *Manager) Load(filePath string) error
- func (m *Manager) RecordCompletion(fingerprint string)
- func (m *Manager) Save() error
- func (m *Manager) SetProgress(total, completed, totalReqs, completedReqs int)
- func (m *Manager) StartAutoSave()
- func (m *Manager) StopAutoSave()
- type ManagerConfig
- type RequestState
- type ResumeInfo
- type ScanProgress
- type ScanState
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager handles checkpoint operations
func LoadAndResume ¶
LoadAndResume loads a checkpoint and prepares for resume
func NewManager ¶
func NewManager(config *ManagerConfig) *Manager
NewManager creates a new checkpoint manager
func (*Manager) AddFinding ¶
AddFinding adds a finding to the checkpoint
func (*Manager) FilterPendingRequests ¶
func (m *Manager) FilterPendingRequests(requests []payloads.FuzzRequest, fingerprinter func(payloads.FuzzRequest) string) []payloads.FuzzRequest
FilterPendingRequests filters out completed requests
func (*Manager) GetFindings ¶
GetFindings returns current findings
func (*Manager) GetResumeInfo ¶
func (m *Manager) GetResumeInfo() *ResumeInfo
GetResumeInfo returns information about a checkpoint for resuming
func (*Manager) Initialize ¶
func (m *Manager) Initialize(scanID string, inputFile, inputType, target string, config *types.ScanConfig)
Initialize initializes the checkpoint state
func (*Manager) IsCompleted ¶
IsCompleted checks if a request has been completed
func (*Manager) RecordCompletion ¶
RecordCompletion records a completed request
func (*Manager) SetProgress ¶
SetProgress updates progress information
func (*Manager) StartAutoSave ¶
func (m *Manager) StartAutoSave()
StartAutoSave starts automatic saving at intervals
func (*Manager) StopAutoSave ¶
func (m *Manager) StopAutoSave()
StopAutoSave stops automatic saving (safe to call multiple times)
type ManagerConfig ¶
ManagerConfig holds checkpoint manager configuration
func DefaultManagerConfig ¶
func DefaultManagerConfig() *ManagerConfig
DefaultManagerConfig returns default configuration
type RequestState ¶
type RequestState struct {
Fingerprint string `json:"fingerprint"`
Endpoint string `json:"endpoint"`
Method string `json:"method"`
Parameter string `json:"parameter,omitempty"`
PayloadType string `json:"payload_type"`
}
RequestState represents a pending request state
type ResumeInfo ¶
type ResumeInfo struct {
ScanID string
StartTime time.Time
LastUpdate time.Time
Target string
Progress ScanProgress
FindingsCount int
ErrorsCount int
}
GetResumeInfo returns information for displaying resume status
type ScanProgress ¶
type ScanProgress struct {
TotalEndpoints int `json:"total_endpoints"`
ScannedEndpoints int `json:"scanned_endpoints"`
TotalRequests int `json:"total_requests"`
CompletedRequests int `json:"completed_requests"`
PercentComplete float64 `json:"percent_complete"`
}
ScanProgress tracks scan progress
type ScanState ¶
type ScanState struct {
Version string `json:"version"`
ScanID string `json:"scan_id"`
StartTime time.Time `json:"start_time"`
LastUpdate time.Time `json:"last_update"`
InputFile string `json:"input_file"`
InputType string `json:"input_type"`
Target string `json:"target"`
Config *types.ScanConfig `json:"config,omitempty"`
Progress ScanProgress `json:"progress"`
Findings []types.Finding `json:"findings"`
CompletedReqs []string `json:"completed_requests"` // Fingerprints of completed requests
PendingReqs []RequestState `json:"pending_requests,omitempty"`
Errors []types.ScanError `json:"errors,omitempty"`
}
ScanState represents the saved scan state