Skip to content

feat: add fcli fpr module for local FPR file operations#987

Open
SangameshV wants to merge 5 commits intodev/v3.xfrom
feat/v3.x/fcli-fpr
Open

feat: add fcli fpr module for local FPR file operations#987
SangameshV wants to merge 5 commits intodev/v3.xfrom
feat/v3.x/fcli-fpr

Conversation

@SangameshV
Copy link
Copy Markdown
Contributor

Introduces a new fcli fpr command tree that operates directly on local
.fpr files without requiring an SSC or FoD session.

Commands:

  • fcli fpr issue list - List vulnerabilities from an FPR
  • fcli fpr issue get - Get full details for a single issue;
    use --embed=history to include
    audit revision, comments, and the
    ClientAuditTrail tag-change history
  • fcli fpr issue count - Count issues by category
  • fcli fpr issue audit - Audit one or more issues in-place
    via --instance-ids (comma-separated),
    with --analysis, --comment,
    --suppress, and optional --user
    (defaults to the OS username)
  • fcli fpr apply-remediations - Apply auto-remediations from an FPR

Implementation details:

  • New fcli-fpr Gradle module wired through gradle.properties,
    fcli-app/build.gradle.kts, and FCLIRootCommands.
  • Reuses FPR parsing infrastructure from fcli-aviator-common
    (FprHandle, FPRProcessor, StreamingFVDLProcessor, AuditProcessor).
  • AuditProcessor extended with:
    • auditIssue() that skips revision bump and TagHistory write when
      the tag value is unchanged (idempotent re-audits).
    • saveAuditXml() is now atomic: serialization happens in memory
      first, so a failed transform never corrupts the FPR.
    • Username is now caller-provided (no more hard-coded default).
  • AuditIssue model gained TagHistoryEntry for full audit history.
  • --analysis is validated case-insensitively against the canonical
    SSC values and canonicalized in the output.
  • Per-issue results report __action__ = AUDITED or UNCHANGED.

…ng custom tags via --custom-tags in fcli fpr issue audit
@SangameshV SangameshV marked this pull request as draft May 4, 2026 06:03
@SangameshV SangameshV marked this pull request as ready for review May 5, 2026 06:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants