Usage reference


mfaudit — main audit runner

mfaudit [options]

Optional arguments

Argument Default Description
--controls FILE [FILE …] bundled controls One or more controls YAML files. Controls from all files are merged before execution. Defaults to all YAML files bundled with the package (mfaudit/controls/). Run --list-controls to see the bundled paths.
--out DIR current directory Output directory. Created automatically if it does not exist.
--irrdbu00 PATH ./IRRDBU00 Path to the IRRDBU00 database unload.
--setropts PATH ./SETROPTS Path to the REXX-produced SETROPTS export.
--dcollect PATH (not loaded) Path to a DCOLLECT output file. Required only by controls that use it.
--system-name NAME UNKNOWN Mainframe system identifier shown in the report header.
--report-date DATE Today's date ISO-format date (YYYY-MM-DD) shown in the report header.
--template NAME\|FILE default Bundled template short name (e.g. terminal) or path to a .html.j2 file.
--format CSV,PDF,JSON CSV,PDF Comma-separated output formats to generate. Supported values: CSV, PDF, JSON.
--list-templates Print available bundled template names and exit.
--anonymize off Replace all RACF user, group, and profile names with stable labels before writing output. Useful when sharing reports externally.
--list-controls Print paths of bundled controls YAML files and exit.

Examples

# Minimal — outputs written to current directory
mfaudit --controls controls.yaml

# CSV only
mfaudit --controls controls.yaml \
         --format CSV

# JSON only
mfaudit --controls controls.yaml \
         --format JSON

# CSV + JSON + PDF
mfaudit --controls controls.yaml \
         --format CSV,JSON,PDF

# Multiple control files merged, explicit output directory
mfaudit --controls controls.yaml example_controls.yaml \
         --out out/

# All options
mfaudit --irrdbu00 /exports/IRRDBU00 \
         --setropts  /exports/SETROPTS \
         --controls  controls.yaml \
         --system-name PROD1 \
         --report-date 2026-05-17 \
         --format CSV,JSON,PDF \
         --anonymize \
         --out /reports/2026-05-17/

Output files

File Description
report.pdf PDF report generated when PDF is included in --format
controls_results.csv One row per control: ID, title, status, detail
controls_results.json JSON export containing the same control result data as the CSV output

Control status values

Status Meaning
PASS All assertions satisfied
FAIL One or more assertions failed; findings listed in report
REVIEW Requires human judgment (e.g. list of TRUSTED STCs to verify)
SKIP Required data source was not supplied — not counted as a failure
ERROR Control logic raised an exception — check the console for the traceback