Skip to content

maat resolve

Marks a finding fingerprint as intentionally fixed.

bash
maat resolve --fingerprint <fingerprint>
maat --config ./path/to/maat.config.ts resolve --fingerprint <fingerprint>

Resolution is per fingerprint

resolved is a decision about one exact fingerprint. It does not protect the whole rule.

When a resolved fingerprint appears again, maat treats that as a regression and exits non-zero. A different finding from the same rule gets a different fingerprint and starts as a new finding.

Why resolution is explicit

When a finding disappears, maat does not assume the architecture was fixed. The finding could have disappeared because:

  • the code was corrected;
  • the rule changed;
  • the fingerprint inputs changed;
  • the collector stopped seeing the relevant fact.

maat resolve records the human decision: "this fingerprint was fixed, and the same fingerprint should not come back."

State transitions

Not every ledger state can be resolved. The command checks the current state of the finding before appending a finding.resolved event:

Current stateBehavior
observedResolved. A finding.resolved event is appended.
baselinedResolved with a warning. The baseline is superseded by the resolution.
resolvedRejected (exit 1). The finding is already resolved.
revokedRejected (exit 1). A revoked finding cannot be resolved.
unverifiedRejected (exit 1). Use maat verify first to promote the finding to observed.

Observed findings that disappear are also resolved automatically by maat check --ledger when they were not baselined.

Options

OptionPurpose
--fingerprint <fingerprint>Required. Fingerprint of the finding to resolve.

Regression behavior

If a resolved fingerprint appears again later, maat check treats that exact fingerprint as a regression and exits non-zero.