recon

package
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: Aug 15, 2026 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package recon holds the domain types for reconnaissance runs. A run is one argv-based tool execution against an in-scope engagement target; its raw output is sealed into the evidence chain and its progress is tracked so the UI can tail logs and survive reloads. The package is pure: it knows nothing about how tools execute (that is the ToolRunner port / adapters).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Result

type Result struct {
	Kind   ResultKind `json:"kind"`
	Value  string     `json:"value"`  // the discovered host / url / host:port
	Detail string     `json:"detail"` // tool-specific extra (status code, title, …)
}

Result is a single asset a recon tool discovered. The recon use case re-checks every Result against the engagement scope before keeping it (discovered hosts are re-validated before they feed any further action).

type ResultKind

type ResultKind string

ResultKind classifies a discovered asset.

const (
	ResultSubdomain ResultKind = "subdomain"
	ResultURL       ResultKind = "url"
	ResultPort      ResultKind = "port"
	ResultHost      ResultKind = "host"
)

type Run

type Run struct {
	ID           shared.ID  `json:"id"`
	EngagementID shared.ID  `json:"engagementId"`
	Tool         string     `json:"tool"`   // recon tool name, e.g. "subfinder"
	Target       string     `json:"target"` // the in-scope target value the run was launched against
	Status       Status     `json:"status"`
	Stage        string     `json:"stage"`
	Error        string     `json:"error,omitempty"`
	ResultCount  int        `json:"resultCount"`           // in-scope results discovered
	Containment  string     `json:"containment,omitempty"` // human-readable confinement posture
	EvidenceID   shared.ID  `json:"evidenceId,omitempty"`
	StartedAt    time.Time  `json:"startedAt"`
	FinishedAt   *time.Time `json:"finishedAt,omitempty"`
}

Run records one recon tool execution against an engagement target so the UI can track progress, survive reloads, and link to the sealed evidence.

type Status

type Status string

Status is the lifecycle of a recon run.

const (
	StatusQueued    Status = "queued"
	StatusRunning   Status = "running"
	StatusSucceeded Status = "succeeded"
	StatusFailed    Status = "failed"
)

func (Status) Terminal

func (s Status) Terminal() bool

Terminal reports whether the run has finished (success or failure).

func (Status) Valid

func (s Status) Valid() bool

Valid reports whether s is a known status.

Jump to

Keyboard shortcuts

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