+ Generates a ZIP containing one file per (asset, STIG) by default. + If no assets are selected, every asset in the Collection is + included. Switch to mono{' '} + mode for a single combined file per asset (CKL / CKLB only). +
++ No assets in this Collection yet. +
+ ) : ( ++ Leave empty to export every asset. +
++ {error} +
+ )} + {lastDownload && ( ++ {lastDownload} +
+ )} + + ++ Audit trail of every review state-change. Filters apply to both + the list and the stats panel below. +
++ {(stats.error as Error).message} +
+ ) : stats.data ? ( ++ {(list.error as Error).message} +
+ ) : (list.data ?? []).length === 0 ? ( ++ No history entries match the current filter. +
+ ) : ( ++ Removes review-history rows strictly older than the retention + date. If an asset is selected above it scopes the delete to + that asset only. +
++ {deleteMessage} +
+ )} +| When | +Asset | +Rule | +Result | +Status | +User | +
|---|---|---|---|---|---|
| + {formatTs(r.ts)} + | +{r.assetId} | +{r.ruleId} | +{r.result} | +{r.status?.label ?? '\u2014'} | +{r.username ?? r.userId ?? '\u2014'} | +
+ Aggregate counts across all assets and STIGs in this Collection. + Severity counts are independent of result counts — for example, an + unassessed High-severity rule contributes to both + {' '}assessmentsBySeverity.high{' '} + (denominator) and findings.high when failed. +
++ {(total.error as Error).message} +
+ ) : total.data ? ( ++ One row per asset. Findings shown as high / medium / low. +
++ {(byAsset.error as Error).message} +
+ ) : (byAsset.data ?? []).length === 0 ? ( ++ No assets mapped to STIGs yet. +
+ ) : ( ++ One row per benchmark mapped to at least one asset. +
++ {(byStig.error as Error).message} +
+ ) : (byStig.data ?? []).length === 0 ? ( ++ No STIGs mapped to assets in this Collection. +
+ ) : ( +| Asset | +STIGs | +Assessed | +Findings (H/M/L) | +Pass | +Fail | +
|---|---|---|---|---|---|
| {r.name} | ++ {r.benchmarkIds.length} + | ++ {r.metrics.assessed} + | ++ {r.metrics.findings.high}/{r.metrics.findings.medium}/ + {r.metrics.findings.low} + | ++ {r.metrics.results.pass} + | ++ {r.metrics.results.fail} + | +
| Benchmark | +Assets | +Rules | +Findings (H/M/L) | +
|---|---|---|---|
| + {r.benchmarkId} + {r.title && ( + + {r.title} + + )} + | +{r.assets} | ++ {r.ruleCount ?? '\u2014'} + | ++ {r.metrics.findings.high}/{r.metrics.findings.medium}/ + {r.metrics.findings.low} + | +
+ Generates a Plan of Action & Milestones spreadsheet in xlsx + format. Findings are aggregated by either{' '} + groupId (V-…) or{' '} + ruleId (SV-…). The + downloaded file uses either the EMASS or MCCAST template. +
++ {error} +
+ )} + {success && ( ++ {success} +
+ )} + + +