db

package
v0.7.9 Latest Latest
Warning

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

Go to latest
Published: Feb 9, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MakeArgsList

func MakeArgsList(prefix any, values []string) [][]any

MakeArgsList takes a prefix (like domainID) and a slice of strings (like URLs or reports), and builds a [][]any that can be used with ExecBulkInsert.

Types

type DB

type DB struct {
	*sql.DB
}

func (*DB) Close

func (db *DB) Close() error

Close closes the database connection.

func (*DB) Connect

func (db *DB) Connect(dbPath string) error

Connect opens a database connection to the specified path.

func (*DB) ExecBulkInsert

func (db *DB) ExecBulkInsert(query string, argsList [][]any) error

ExecBulkInsert runs a prepared, transactional bulk insert. query: INSERT statement with placeholders. argsList: each inner slice represents one row of arguments.

func (*DB) ExecInsert

func (db *DB) ExecInsert(query string, args ...any) error

Exec executes an query with args without returning any rows.

func (*DB) ExecStmt

func (db *DB) ExecStmt(stmt string) error

ExecStmt executes a statement without returning any rows.

type Domain

type Domain struct {
	Id        int
	Name      string
	IsScanned bool
	CreatedAt time.Time
}

type DomainRepository

type DomainRepository struct {
	// contains filtered or unexported fields
}

func NewDomainRepository

func NewDomainRepository(db *DB) *DomainRepository

func (*DomainRepository) BulkInsert

func (r *DomainRepository) BulkInsert(domains []string) error

func (*DomainRepository) CreateTable

func (r *DomainRepository) CreateTable() error

func (*DomainRepository) GetAll

func (r *DomainRepository) GetAll() ([]Domain, error)

func (*DomainRepository) GetScanned

func (r *DomainRepository) GetScanned() ([]Domain, error)

func (*DomainRepository) GetUnscanned

func (r *DomainRepository) GetUnscanned() ([]Domain, error)

func (*DomainRepository) Insert

func (r *DomainRepository) Insert(domain string) error

func (*DomainRepository) MarkAsScanned

func (r *DomainRepository) MarkAsScanned(name string) error

func (*DomainRepository) SelectByName

func (r *DomainRepository) SelectByName(name string) (*Domain, error)

type ScanTracker

type ScanTracker struct {
	Id        int
	DomainID  int
	ToolName  string
	Status    string
	CreatedAt string
}

type ScanTrackerRepository

type ScanTrackerRepository struct {
	// contains filtered or unexported fields
}

func NewScanTrackerRepository

func NewScanTrackerRepository(db *DB) *ScanTrackerRepository

func (*ScanTrackerRepository) CreateTable

func (r *ScanTrackerRepository) CreateTable() error

func (*ScanTrackerRepository) IsScanCompleted

func (r *ScanTrackerRepository) IsScanCompleted(domainID int, toolName string) (bool, error)

Check if scan is completed

func (*ScanTrackerRepository) MarkScanCompleted

func (r *ScanTrackerRepository) MarkScanCompleted(domainID int, toolName string) error

Mark scan completed using FULL UPSERT

func (*ScanTrackerRepository) MarkScanTimedOut

func (r *ScanTrackerRepository) MarkScanTimedOut(domainID int, toolName string) error

Mark scan completed using FULL UPSERT

func (*ScanTrackerRepository) UpdateScanStatus

func (r *ScanTrackerRepository) UpdateScanStatus(domainID int, toolName, status string) error

Update status manually

func (*ScanTrackerRepository) WasScanTimedOut added in v0.7.5

func (r *ScanTrackerRepository) WasScanTimedOut(domainID int, toolName string) (bool, error)

Check if scan was timed out

type StringRepository

type StringRepository struct {
	*StringRepositoryBase
	// contains filtered or unexported fields
}

STRING-ONLY REPOSITORIES

func NewCachexRepository

func NewCachexRepository(db *DB) *StringRepository

func NewDnsXRepository added in v0.7.2

func NewDnsXRepository(db *DB) *StringRepository

func NewGauRepository

func NewGauRepository(db *DB) *StringRepository

func NewHttpxRepository

func NewHttpxRepository(db *DB) *StringRepository

func NewKatanaRepository

func NewKatanaRepository(db *DB) *StringRepository

func NewNucleiRepository

func NewNucleiRepository(db *DB) *StringRepository

func NewStringRepository

func NewStringRepository(db *DB, tableName, valueColumn, createSQL, insertSQL string) *StringRepository

NewStringRepository creates a new string-only repo.

func NewSubfinderRepository

func NewSubfinderRepository(db *DB) *StringRepository

INDIVIDUAL TOOL REPOS

func NewUroRepository

func NewUroRepository(db *DB) *StringRepository

func (*StringRepository) Fetch

func (r *StringRepository) Fetch(domainID int) ([]string, error)

Fetch data by domain ID

type StringRepositoryBase

type StringRepositoryBase struct {
	// contains filtered or unexported fields
}

func NewStringRepositoryBase

func NewStringRepositoryBase(db *DB, tableName, createSQL, insertSQL string) *StringRepositoryBase

NewStringRepositoryBase creates a new string-only repo.

func (*StringRepositoryBase) BulkInsert

func (r *StringRepositoryBase) BulkInsert(domainID int, items []string) error

BulkInsert inserts many string rows for a domain.

func (*StringRepositoryBase) CreateTable

func (r *StringRepositoryBase) CreateTable() error

CreateTable runs the CREATE TABLE query.

func (*StringRepositoryBase) Insert

func (r *StringRepositoryBase) Insert(domainID int, value string) error

Insert inserts a single string row for a domain.

type ToolsRepository

type ToolsRepository struct {
	Subfinder *StringRepository
	Httpx     *StringRepository
	Gau       *StringRepository
	Katana    *StringRepository
	Nuclei    *StringRepository
	Cachex    *StringRepository
	Uro       *StringRepository
	DnsX      *StringRepository
	// contains filtered or unexported fields
}

NewToolsRepository should be used to obtain a fully initialized ToolsRepository.

func NewToolsRepository

func NewToolsRepository(db *DB) *ToolsRepository

func (*ToolsRepository) CreateTables

func (tr *ToolsRepository) CreateTables() error

Jump to

Keyboard shortcuts

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