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.