The console UI is an early state of development, it will change.

Working in a terminal is an essential and every day part of any software or DevOps engineer’s life. A terminal is perhaps the most common interface most of us use.

Console UIs are not so common these days, which is really strange.

Using a browser based app is cool, but there is something really cool about a console UI. That’s why vacuum comes with a custom console UI for reviewing a linting run. I’m calling it the dashboard (for now)

Run the dashboard against an OpenAPI spec

If you’re running docker, make sure you’re using the -it flag.

docker run --rm -v $PWD:/work:ro -it dshanley/vacuum dashboard sample.yaml

Run the dashboard command and pass in your OpenAPI spec, or vacuum Report.

vacuum dashboard <my-openapi-spec.yaml>

Make sure your terminal window is sized to at least 1024x768

Everything is keyboard driven (no mouse).

Action Keys Action Result
Select Category <LEFT> <RIGHT>/S,X Navigate between categories
Change Rule / Violation <UP> <DOWN>/A,Z Change currently selected rule or violation
Select <Enter> Select a highlighted rule
Leave Rule <Esc> Leave selected rule
Quit Q, Ctrl-C Leave selected rule

Replaying a report

The dashboard can replay a vacuum report. This means the dashboard will load in all the results as they were captured Even if the current specification is different to what it was when the report was captured.

Simply replace the <my-openapi-spec.yaml> with the report file, which will look something like my-openapi-spec-report-07-04-22-12-30-21.json.gz. vacuum will auto-detect the report file.

Global Flags

dashboard supports the following global flags

Short Full Input Description
-r –ruleset string Use an existing ruleset file for linting
-p –base string Base URL or Base working directory to use for relative references
-u –remote string Load remote references automatically if possible (default is true)
-k –skip-check string Skip checking for a valid OpenAPI document, useful for linting fragments or non-OpenAPI documents
-g –timeout string How long (in seconds to wait) for a rule before it times out (default is 5 seconds)
-z –hard-mode string Enable every single built-in rule (including OWASP). Only for adventurers and brave souls.