You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add support for all 6 NIST control status types in viewer
Extend the NIST viewer to support all 6 status types defined in the
control file format, not just the initial 3. This allows proper
representation of controls that are inherently met, do not meet
requirements, or are not applicable.
Status types and their visual representation:
1. automated - Green (#28a745) - Technical controls implemented
2. manual - Blue (#0366d6) - Manual processes required
3. inherently met - Purple (#6f42c1) - Met by system design
4. does not meet - Red (#dc3545) - Does not satisfy requirement
5. not applicable - Gray (#6c757d) - Not relevant to this product
6. pending - Yellow (#ffd33d) - Not yet evaluated
Changes:
Generator (generate_nist_viewer.py):
- Add is_inherently_met, is_does_not_meet, is_not_applicable flags
- Track counts for all 6 statuses in statistics
- Calculate percentages for progress bars
Templates:
- _shared_styles.html: Add badge styles for 3 new status types
- index.html: Add stat cards for inherently met, not applicable, does not meet
- index.html: Update family progress bars to show all 6 status types
- controls.html, family.html, gaps.html, statistics.html: Update statusClass
determination to handle all 6 types
Dashboard now shows:
- 7 stat cards (Total + 6 status types)
- Multi-segment progress bars with up to 6 colors
- Proper filtering and display for all status types
Example control file usage:
```yaml
- id: pe-1
title: Physical Protection Policy
levels: [low, moderate, high]
rules: []
status: not applicable
notes: Physical security is managed at datacenter level
```
This allows organizations to properly track controls that are:
- Satisfied through architectural choices (inherently met)
- Not relevant to their deployment model (not applicable)
- Identified as gaps that cannot be remediated (does not meet)
0 commit comments