Reports and formats

One run, four ways to keep what it found, and a mask for the parts that should not leave the building.

Four formats

FormatSwitchWhat it is
terminalthe defaultthe report as you read it, 100 columns wide, in colour when the output is a terminal
Markdown--format mdthe same report for a ticket or a chat
HTML--format htmlone self-contained page, with no script in it and nothing fetched from anywhere
JSON--format json, or --jsonthe report as data, checked against its schema before it is printed

Every format carries the same findings. A report written in one says nothing another would leave out.

Writing to a file

--out writes the report to the path you give instead of printing it:

certdoctor https://api.example.com/ --format html --out report.html

This is the only file certdoctor ever writes. If it cannot be written - no space, no permission - the run ends with exit code 6 and says why.

Masking internal names

A report holds internal host names, file system paths and user names, because that is what makes it useful in a ticket. --redact masks them:

certdoctor https://api.example.com/ --redact --format md --out report.md

Credentials are different. Proxy passwords, authorization headers and cookies are masked always, with or without --redact, because a mask that depends on a switch is one forgotten switch away from a leak.

Read a report before you paste it somewhere public. Masking is a filter, not a guarantee.

A page from a saved report

--from takes a report saved earlier with --json and writes it again in another format, without running anything:

certdoctor https://api.example.com/ --json --out report.json
certdoctor --from report.json --format html --out report.html

A single dash reads the JSON from standard input. --from ends with exit code 0 once the page is written, whatever the report found, and the run’s own verdict stays in the report.

The JSON schema

certdoctor --version prints the version of the tool and of the report schema it emits, so a JSON file from six months ago still says what produced it:

certdoctor --version