Skip to content

Repository files navigation

NAPE

NAPE is a command-line tool for collecting evidence, applying tests of detail, and generating assurance reports.

It is built for assurance workflows where a team needs to prove what a system says it should be doing against evidence of what it is actually doing. NAPE does this by retrieving an assurance procedure, copying evidence into a local run workspace, evaluating evidence with procedure-defined tests, and writing an assurance report.

How It Works

The current CLI workflow has three steps:

nape collect start
nape collect evidence
nape collect report

nape collect start creates a local run workspace from an assurance procedure repository.

nape collect evidence copies evidence files into that workspace under an activity name.

nape collect report invokes nape-eval, evaluates the collected evidence, signs the evaluated files, and writes assurance_report.yaml.

Core Concepts

  • Subject: the system, repository, procedure, or resource being evaluated.
  • Assurance Procedure: a YAML file that defines activities, actions, test files, and expected evidence paths.
  • Activity: a named group of related actions. Evidence is collected under an activity directory.
  • Action: one testable expectation inside an activity.
  • Evidence: a file copied into the NAPE run workspace.
  • Test of Detail: a Python evaluator file invoked through nape-eval.
  • Assurance Report: the generated YAML result with outcomes, reasons, summary counts, and SHA256 signatures.

Repository Layout

apps/nape-cli/   CLI parsing, command handlers, adapters, serializers, evaluator integration
domain/          Evidence collection use cases and use case boundaries
docs/            Product, user, reference, and maintainer documentation

Documentation

Start by audience:

Documentation index:

Product:

Reference:

Maintainers:

Current Limitations

  • --meta is described as optional by CLI help, but the current collect start implementation expects at least one metadata pair.
  • --procedure-link accepts file, git, and https; it does not accept ssh://.
  • The CLI currently writes local reports and does not upload results to a repository, despite older help text mentioning upload behavior.
  • NAPE tracks one active run in $HOME/nape/.nape_cli_config.
  • Successful commands usually print no terminal output; inspect generated files to confirm success.

Build

cargo build

Build the CLI release binary:

cargo build --release -p nape_cli

Test

cargo test

Package-specific targets:

make test-nape-cli
make test-domain