From c1ae7db8c4a3588a6de926192995cf70879c4099 Mon Sep 17 00:00:00 2001 From: arobbins Date: Thu, 22 Feb 2024 16:11:26 -0500 Subject: [PATCH 1/2] add documentation --- docs/ADD_FRAMEWORKS.md | 31 +++++++++++++++++++++++++ CHANGELOG.md => docs/CHANGELOG.md | 0 CONTRIBUTING.md => docs/CONTRIBUTING.md | 0 3 files changed, 31 insertions(+) create mode 100644 docs/ADD_FRAMEWORKS.md rename CHANGELOG.md => docs/CHANGELOG.md (100%) rename CONTRIBUTING.md => docs/CONTRIBUTING.md (100%) diff --git a/docs/ADD_FRAMEWORKS.md b/docs/ADD_FRAMEWORKS.md new file mode 100644 index 00000000..a4cb2434 --- /dev/null +++ b/docs/ADD_FRAMEWORKS.md @@ -0,0 +1,31 @@ +# Add Mappings Frameworks + +**Table of Contents:** + +- [Add a New Mappings Framework](#add-a-new-mappings-framework) +- [Add a New Version Combination](#add-mappings-frameworks) +- [Add a New ATT&CK Version](#add-a-new-attck-version) + +## Add a New Mappings Framework + +Mappings Explorer is designed to have additional mappings projects added in the future. Follow these steps to add a new project on the website. + +1. Add mappings source files in `src/mapex_convert/mappings` +2. Add new parser in `src/mapex_convert` to convert mappings files into the unified schema +3. Define new project in `load_projects()` function in `site_builder.py` and add all the appropriate information, including framework description, versions, and any resources that will be downloadable from the website (ex. scope documentation). Try to make the framework description roughly the same length as the ones for the other projects in order to make the homepage look as cohesive as possible. +4. Add new project to nav bar (`_navigation`) and footer (`_footer`) +5. Write function to get capability descriptions, if necessary. Some projects (security stack) have capability descriptions in the mappings source files. Other projects (CVE and NIST) have description dictionaries built from API calls. + +## Add a New Version Combination + +In future mappings projects, coverage of existing projects should increase. Follow these steps to add a new version combination to an existing mapping framework. + +1. Add new mappings file in `src/mapex_convert/mappings` +2. If going from one possible version to multiple, adjust the project parser as necessary as the parser may not be set up to look for multiple versions +3. Add version combinations to project's validVersions array + +## Add a New ATT&CK Version + +As future ATT&CK versions get released, new ATT&CK versions will need to be added to the website. + +All that is needed to add future ATT&CK versions is to update the `all_attack_versions` and `attack_domains` variables in `site_builder.py`, being sure to update the matrix-specific versions of those variables as well in `build_matrix`. ATT&CK versions that don't have any mappings will not have pages built out for them but the matrix view will be available. diff --git a/CHANGELOG.md b/docs/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to docs/CHANGELOG.md diff --git a/CONTRIBUTING.md b/docs/CONTRIBUTING.md similarity index 100% rename from CONTRIBUTING.md rename to docs/CONTRIBUTING.md From 7a50bdb6939695847af05b2ff873dcf4896c2284 Mon Sep 17 00:00:00 2001 From: arobbins Date: Fri, 23 Feb 2024 11:22:35 -0500 Subject: [PATCH 2/2] reset repo to before this ticket and link to wiki in readme --- docs/CHANGELOG.md => CHANGELOG.md | 0 docs/CONTRIBUTING.md => CONTRIBUTING.md | 0 README.md | 1 + docs/ADD_FRAMEWORKS.md | 31 ------------------------- 4 files changed, 1 insertion(+), 31 deletions(-) rename docs/CHANGELOG.md => CHANGELOG.md (100%) rename docs/CONTRIBUTING.md => CONTRIBUTING.md (100%) delete mode 100644 docs/ADD_FRAMEWORKS.md diff --git a/docs/CHANGELOG.md b/CHANGELOG.md similarity index 100% rename from docs/CHANGELOG.md rename to CHANGELOG.md diff --git a/docs/CONTRIBUTING.md b/CONTRIBUTING.md similarity index 100% rename from docs/CONTRIBUTING.md rename to CONTRIBUTING.md diff --git a/README.md b/README.md index 0ce07215..300d751e 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ To get started, visit the project website. | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | | [Mappings Explorer](https://center-for-threat-informed-defense.github.io/mappings-explorer/) | A website to access, explore, search, and download our ATT&CK mappings. | | [Mappings Editor](https://center-for-threat-informed-defense.github.io/mappings-editor) | An interactive, web-based tool for creating your own mappings. (This tool is available as a public beta.) | +| [Mappings Explorer Wiki](https://github.com/center-for-threat-informed-defense/mappings-explorer/wiki) | Documentation for adding to and editing the Mappings Explorer website. | ## Getting Involved diff --git a/docs/ADD_FRAMEWORKS.md b/docs/ADD_FRAMEWORKS.md deleted file mode 100644 index a4cb2434..00000000 --- a/docs/ADD_FRAMEWORKS.md +++ /dev/null @@ -1,31 +0,0 @@ -# Add Mappings Frameworks - -**Table of Contents:** - -- [Add a New Mappings Framework](#add-a-new-mappings-framework) -- [Add a New Version Combination](#add-mappings-frameworks) -- [Add a New ATT&CK Version](#add-a-new-attck-version) - -## Add a New Mappings Framework - -Mappings Explorer is designed to have additional mappings projects added in the future. Follow these steps to add a new project on the website. - -1. Add mappings source files in `src/mapex_convert/mappings` -2. Add new parser in `src/mapex_convert` to convert mappings files into the unified schema -3. Define new project in `load_projects()` function in `site_builder.py` and add all the appropriate information, including framework description, versions, and any resources that will be downloadable from the website (ex. scope documentation). Try to make the framework description roughly the same length as the ones for the other projects in order to make the homepage look as cohesive as possible. -4. Add new project to nav bar (`_navigation`) and footer (`_footer`) -5. Write function to get capability descriptions, if necessary. Some projects (security stack) have capability descriptions in the mappings source files. Other projects (CVE and NIST) have description dictionaries built from API calls. - -## Add a New Version Combination - -In future mappings projects, coverage of existing projects should increase. Follow these steps to add a new version combination to an existing mapping framework. - -1. Add new mappings file in `src/mapex_convert/mappings` -2. If going from one possible version to multiple, adjust the project parser as necessary as the parser may not be set up to look for multiple versions -3. Add version combinations to project's validVersions array - -## Add a New ATT&CK Version - -As future ATT&CK versions get released, new ATT&CK versions will need to be added to the website. - -All that is needed to add future ATT&CK versions is to update the `all_attack_versions` and `attack_domains` variables in `site_builder.py`, being sure to update the matrix-specific versions of those variables as well in `build_matrix`. ATT&CK versions that don't have any mappings will not have pages built out for them but the matrix view will be available.