Human, JSON, scale, and verbose renderers. Source: internal/report/report.go.
type Data struct {
Version string
Target score.DomainData
Suspect score.DomainData
Score int
Findings []string
Verdict string
Relationship string
AgeFlag string
TargetCert *cert.Details
SuspectCert *cert.Details
TargetRDAP *rdap.Result
SuspectRDAP *rdap.Result
TargetDomain string
SuspectDomain string
} |
Everything a renderer needs: scored domain data plus the raw cert and RDAP results backing verbose output.
func Scale(version string) string |
Static scoring-scale reference table (no lookups). Backs the --scale flag.
func Human(d Data) string |
Triage report with per-domain blocks (creation date, registrar, issuer, validation, SANs), the pair relationship line, the scored risk analysis, and the verdict. Empty findings render a clean bill of health.
func JSON(d Data) string |
Machine-readable summary with tool, version, target, suspect (including suspect age_days), risk_score, findings, verdict, relationship, suspect_spf (checked, authorized, cover), target_dmarc, and per-path target_paths / suspect_paths objects. Ends with a newline for pipeline use.
func Verbose(d Data) string |
Raw policy OIDs with classes, per-domain TLS details (issuer, subject, validity, SANs), raw RDAP JSON for both domains, DNS consistency verdicts, and the Resolution paths section (per-path endpoints, per-path TLS agreement, origin-AS status, hosts-override state). Missing data renders an explicit unavailable notice per section.