Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,4 @@ dmypy.json
ssvc2-applier-wip.xlsx
_version.py
node_modules
tmp
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ down:
regenerate_json:
@echo "Regenerating JSON files..."
rm -rf data/json/decision_points
export PYTHONPATH=$(PWD)/src && ./src/ssvc/doctools.py --jsondir=./data/json --overwrite
export PYTHONPATH=$(PWD)/src && ./src/ssvc/doctools.py --datadir=./data --overwrite

clean:
@echo "Cleaning up Docker resources..."
Expand Down
21 changes: 7 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,20 +45,22 @@ The data folder contains detailed data files that define suggested prioritizatio

There are both `.csv` and `.json` files in this directory.

### `/data/csvs/*`
### `/data/csv/*`

The `.csv` files are the primary data files used by the `ssvc.py` module.
The `.csv` files are generated from the python `ssvc` module.

Also included in data are the lookup tables as csv files which `ssvc_v2.py` reads in.
These files define one row per possible path through the trees as described in the documentation.
These files define one row per possible path through the decision tables as described in the documentation.
Customizing the "outcome" column in this csv is the primary recommended way that stakeholders might adapt SSVC to their environment.

### `/data/json/*`

These json files are generated examples from the python `ssvc` module.
These json files are generated examples from the python `ssvc` module,
which uses `pydantic` to define the data models.

### `/data/schema/*` and `/data/schema_examples/*`

These json schema files are used to validate the structure of the `.json` files in `/data/json/*`.
They are generated from the python `ssvc` module, which uses `pydantic` to define the data models.
These files are used by the `ssvc-calc` module.

## `/docker/*`
Expand All @@ -85,15 +87,6 @@ These modules are used to generate documentation for various [Decision Points](h

Documentation for the `ssvc` module can be found at [https://certcc.github.io/SSVC/reference/code/](https://certcc.github.io/SSVC/reference/code/)

### `src/ssvc_v2.py`

A basic Python module for interacting with the SSVC trees. `ssvc_v2.py` has
two methods: `applier_tree()` and `developer_tree()`

The two methods just loop through their respective lookup tables until
they hit a match, then return the outcome. Maybe not the best implementation,
but it worked well enough for what was needed at the time.

## Local development

The simplest way to get started with local development is to use Docker.
Expand Down
37 changes: 37 additions & 0 deletions data/csv/cisa/cisa_coordinator_2_0_3.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
row,Exploitation v1.1.0,Automatable v2.0.0,Technical Impact v1.0.0,Mission and Well-Being Impact v1.0.0,CISA Levels v1.1.0 (cisa)
0,none,no,partial,low,track
1,none,no,partial,medium,track
2,none,no,partial,high,track
3,none,no,total,low,track
4,none,no,total,medium,track
5,none,no,total,high,track*
6,none,yes,partial,low,track
7,none,yes,partial,medium,track
8,none,yes,partial,high,attend
9,none,yes,total,low,track
10,none,yes,total,medium,track
11,none,yes,total,high,attend
12,public poc,no,partial,low,track
13,public poc,no,partial,medium,track
14,public poc,no,partial,high,track*
15,public poc,no,total,low,track
16,public poc,no,total,medium,track*
17,public poc,no,total,high,attend
18,public poc,yes,partial,low,track
19,public poc,yes,partial,medium,track
20,public poc,yes,partial,high,attend
21,public poc,yes,total,low,track
22,public poc,yes,total,medium,track*
23,public poc,yes,total,high,attend
24,active,no,partial,low,track
25,active,no,partial,medium,track
26,active,no,partial,high,attend
27,active,no,total,low,track
28,active,no,total,medium,attend
29,active,no,total,high,act
30,active,yes,partial,low,attend
31,active,yes,partial,medium,attend
32,active,yes,partial,high,act
33,active,yes,total,low,attend
34,active,yes,total,medium,act
35,active,yes,total,high,act
Loading