Skip to content

C12: CLI subcommand crawlex fingerprint <url> #58

Description

@filipeforattini

Parent

#46

What to build

Add crawlex fingerprint <url> CLI subcommand. The subcommand constructs a minimal Crawler (HTTP-only, no queue, no storage), performs one fetch of the target URL, runs Fingerprinter::analyze_hot on the response, and prints the FingerprintReport as JSON to stdout. The subcommand reuses the same ImpersonateClient + Fingerprinter construction that production crawls use so the engine output is identical whether invoked from a crawl or from the CLI.

No flags in this slice — --deep-fingerprint and --audit-tls land in C13. This slice ships the base subcommand wiring + JSON output format.

Acceptance criteria

  • crawlex fingerprint <url> subcommand exists and is dispatched by the main CLI binary
  • Subcommand drives one fetch via ImpersonateClient and prints FingerprintReport as JSON
  • JSON output is parseable by jq and includes all FingerprintReport top-level slots (cdn, waf, antibot, etc.)
  • Subcommand exits non-zero on fetch failure (DNS, TLS, connection) with a human-readable error to stderr
  • New integration test in tests/cli_fingerprint.rs drives the subcommand against a wiremock URL
  • --help output documents the subcommand
  • NDJSON regression byte-stable (CLI uses the same engine; no wire-event paths changed)

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestneeds-triageAwaiting triagerustPull requests that update rust code

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions