Skip to content

chore: Merge Aviator 26.3 changes#1053

Merged
rsenden merged 73 commits into
dev/v3.xfrom
feat/v3.x/aviator/26.3
Jul 10, 2026
Merged

chore: Merge Aviator 26.3 changes#1053
rsenden merged 73 commits into
dev/v3.xfrom
feat/v3.x/aviator/26.3

Conversation

@kireetivar

@kireetivar kireetivar commented Jul 10, 2026

Copy link
Copy Markdown
Contributor
feat: `fcli aviator ssc correlate-sast-dast`: New command for correlating SAST and DAST findings in SSC, persisting correlation state, and uploading updated FPR artifacts
feat: SSC `bulkcorrelate` action: New preview action for running Aviator SAST-DAST correlation across SSC application versions in bulk
feat: `fcli aviator app add-entitlement`: New command for adding an entitlement to an existing Fortify Aviator application
feat: `fcli aviator ssc prepare`: Support SSC 26.2+ system-managed Aviator tags and synchronize the `last_correlation` attribute
feat: `fcli aviator ssc apply-remediations`: Include modified files in command output
feat: `fcli fod aviator apply-remediations`: Include modified files in command output
fix: `fcli fod aviator apply-remediations`: Show only relevant fields in command output
fix: `fcli aviator`: Prefer FPR source file types over configured extension fallback
fix: `fcli aviator`: Record issue suppression state changes in audit history
fix: `fcli aviator ssc audit`: Validate SSC Aviator tags before upload to prevent silent audit result loss
fix: `fcli aviator ssc audit`: Fix preflight issue counting when using `--no-filterset`
fix: `fcli aviator ssc audit`: Reject incompatible `--skip-if-exceeding-quota` and `--folder-priority-order` options
fix: `fcli aviator`: Validate admin sessions for Aviator gRPC operations

Neeta Meshram and others added 30 commits April 16, 2026 12:04
…on and SSC upload

- Add correlate-sast-dast command for SSC Aviator
- Parse SAST (FVDL) and DAST (WebInspect) FPRs from SSC
- Group findings by category, identify mixed SAST+DAST buckets
- gRPC-based correlation stream with Aviator server
- Inject ExternalFindings into DAST FPR for SSC correlation visibility
- Upload enriched DAST FPR back to SSC
- Add streaming WebInspect parser for large DAST FPRs
- Add getLatestSASTArtifact/getLatestDASTArtifact helpers
- Add unit and integration tests for ExternalFindings injection flow
- Add correlation.proto for gRPC service definition
… upsert AI_CORRELATION_METADATA session

- Extract AviatorSSCCorrelateHelper, AviatorSSCCorrelateFprParser, AviatorSSCCorrelateDownloadHelper from command class to reduce GOD class
- Add proper try/catch(IOException) around FPR download calls
- Add progress logging at each major step (download, parse, group, correlate, inject, upload)
- Add per-response progress in CorrelationStreamProcessor (Correlating X of Y / Validating X of Y)
- Rename ExternalFindingsInjector to DastFprCorrelationEnricher to reflect full scope
- Upsert synthetic <Session requestId=AI_CORRELATION_METADATA> in webinspect.xml with HTTP Date header to avoid needing to delete prior DAST scan before re-upload
- Update references in test classes
…ied pairs, write last_correlation attribute

- Add CorrelationResult record to return both confirmed and rejected pairs from gRPC stream
- Track rejected pairs in CorrelationStreamState + CorrelationStreamProcessor
- Parse ExternalFindings from DAST FPR via StreamingWebInspectParser to build confirmed pair keys
- Add SastFprCorrelationRecorder: read/write DAST_CORRELATION_STATUS tag in SAST FPR audit.xml
  - Namespace-aware XML parsing (setNamespaceAware + getElementsByTagNameNS)
  - Creates new Issue elements for SAST findings with no prior audit record
  - Merge logic: CORRELATED is sticky, cannot be downgraded to REJECTED on re-run
- Skip both confirmed and rejected pairs on subsequent runs (alreadyTriedKeys union)
- Fix SAST FPR upload: use PROJECT_VERSION_ARTIFACTS restUpload (not UPLOAD_RESULT_FILE htmlUpload)
  to avoid duplicate scan GUID error in SSC
- Add AviatorSSCAttributeDefs + AviatorSSCAttributeHelper: create-if-not-exists last_correlation
  TEXT attribute definition on SSC instance, write ISO-8601 UTC timestamp after FPR uploads
- Add last_correlation attribute synchronization to prepare command (AviatorSSCPrepareHelper)
- Add Step 6c to correlate-sast-dast: write last_correlation timestamp after all FPR uploads
- Fix AviatorSSCCustomTagHelper: null-safe cast for valueList on TEXT-type tags (NullNode guard)
…sueList namespace lookup, add audit.xml validation

- Add receivedCorrelationResponses to CorrelationResult record for Phase 1 response count
- Output now includes succeeded (responses received) and skipped (submitted - succeeded)
- Fix SastFprCorrelationRecorder: fallback to no-namespace getElementsByTagName for IssueList
  in un-audited FPRs where audit.xml uses default (null) namespace
- Match parent IssueList namespace when creating new Issue elements
- Add audit.xml existence validation in parseSastFpr() and parseDastFpr()
- Prevent double-wrapping of FcliSimpleException in FPR parser catch blocks
…ttribute classes to correlation-specific names, remove admin-only auto-create from writeLastCorrelationTimestamp
feat: Add entitlement management to Aviator application
feat(ssc): Add bulkcorrelate action for automated SAST-DAST correlation of SSC application versions
…llback

fix: prefer FPR source file types over configured extension fallback
…trail

fix(aviator): record suppression state changes in audit history
chore: Add description key for applicationId parameter in add-entitlement command
cdatla and others added 24 commits May 29, 2026 12:00
fix: fcli aviator ssc audit: Reject --skip-if-exceeding-quota with --…
chore: Align Aviator exception handling with Aviator simple/technical exceptions
- Add SynchronizationResult class to track tag sync status and system-managed flag
- Implement /internalCustomTags fallback for Aviator built-in tags detection
- Update prepare command to skip manual association for system-managed tags
- Preserve DAST correlation tag and last_correlation attribute behavior
- Fix AviatorLoggerImpl.warn() to output warnings to console (stderr)
- Update help text to explain SSC 26.2+ behavior
- Add unit tests for SynchronizationResult and PrepareResult
Previously buildResultNode() used rd.asObjectNode() which dumped all
50+ FoDReleaseDescriptor fields into the output. Changed to create a
fresh ObjectNode with only releaseId, applicationName, releaseName,
and remediation metrics - matching the SSC helper pattern.
fix: FoD apply-remediation output shows only relevant fields
chore(aviator): align line-number enrichment with aviator-cli and initialize comment mapping
chore: add reflection configuration for DAST entitlement classes
private Document parseXml(Path path) {
var factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(false);
return factory.newDocumentBuilder().parse(Files.newInputStream(path));
private Document parseXml(Path path) {
var factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(false);
return factory.newDocumentBuilder().parse(Files.newInputStream(path));
private static Document parseXml(Path path) {
var factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true); // must be true to find ns0:Issue / ns0:Tag by local name
return factory.newDocumentBuilder().parse(Files.newInputStream(path));
private static Document parseXml(Path path) {
var factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true); // must be true to find ns0:Issue / ns0:Tag by local name
return factory.newDocumentBuilder().parse(Files.newInputStream(path));
@kireetivar kireetivar self-assigned this Jul 10, 2026
@kireetivar kireetivar changed the title Aviator 26.3 release chore: Merge Aviator 26.3 changes Jul 10, 2026
@kireetivar kireetivar marked this pull request as ready for review July 10, 2026 08:55
@rsenden rsenden merged commit 5a492df into dev/v3.x Jul 10, 2026
54 of 55 checks passed
@rsenden rsenden deleted the feat/v3.x/aviator/26.3 branch July 10, 2026 09:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants