in-toto / witness

Witness is a pluggable framework for software supply chain risk management. It automates, normalizes, and verifies software artifact provenance.
https://witness.dev
Apache License 2.0
399 stars 57 forks source link

Feature Request: Generate Human-Readable Reports from `witness verify` Outputs #326

Open colek42 opened 8 months ago

colek42 commented 8 months ago

Description

As a user, I need the ability to generate detailed, human-readable reports from the outputs of the witness verify command. These reports should provide comprehensive details about each attestation's steps and fields. Users must have the flexibility to define which attestation fields to display in the report using a YAML file.

Proposed Flags

Report Configuration Example (YAML)

report:
  title: "Witness Verification Report"
  steps_summary:
    include: true

  attestations:
    - id: "gitlab"
      url: "https://witness.dev/attestations/gitlab/v0.1"
      fields:
        - "jwt.claims.project_id"
        - "jwt.claims.iss"
        - "ciconfigpath"
        - "jwt.verifiedBy.jwksUrl"

    - id: "gcp-iit"
      url: "https://witness.dev/attestations/gcp-iit/v0.1"
      fields:
        - "jwt.claims.iss"
        - "jwt.claims.aud"
        - "jwt.claims.email"
        - "jwt.claims.sub"
        - "jwt.verifiedBy.jwksUrl"
        - "project_id"
        - "project_number"
        - "cluster_name"
        - "cluster_uid"
        - "cluster_location"
        - "zone"

Requirements

Expected Behavior

Use Cases

Additional Context

fkautz commented 8 months ago

If we generate an attestation of the generated report, we can have cryptographically verifiable physical reports!