Skip to content

Commit

Permalink
Merge pull request #11 from center-for-threat-informed-defense/cti-au…
Browse files Browse the repository at this point in the history
…thoring-tool-v1-0-0

CTI Authoring Tool v1.0.0
  • Loading branch information
mikecarenzo authored Jun 12, 2023
2 parents cfb8109 + c4355a2 commit 51bc8fe
Show file tree
Hide file tree
Showing 154 changed files with 3,970 additions and 2,175 deletions.
Binary file added CTI_Blueprints_One_Pager.pdf
Binary file not shown.
6 changes: 0 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,9 @@ threat-informed defense:
This will give you a quick overview of the project's goals and help to envision your
own capability to use it.
- **Read [the
documentation](https://github.com/center-for-threat-informed-defense/cti-blueprints/wiki).**
The project wiki goes deeper into the project's goals and objectives.
- **Create your own reports.** Choose one of two approaches for creating reports:
- Build reports with the [Word templates](./templates), which are user friendly and
are the fastest way to get up and running with CTI Blueprints.
- Build reports with the CTI Blueprints Suite, which is a set of tools for authoring
and publishing CTI reports that is highly flexible and has time-saving features.
This approach requires more initial investment in setup and learning.

## Questions and Feedback

Please submit issues for any technical questions/concerns or contact
Expand Down
20 changes: 20 additions & 0 deletions src/cti_authoring_tool/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,26 @@

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

## [1.0.0](///compare/v0.1.3...v1.0.0) (2023-06-09)


### Features

* add duplicate column to tabular properties 3820dab
* add global install features for plugins 68ee889
* add property metrics bar ae8409e
* add splash page d2a74a6
* add support for group page commands 576102a
* add text metrics plugin 789fb10
* allow plugins to restrict enum field options 8de39a6


### Bug Fixes

* apply horizontal spacing to tabular field actions 8f5e061
* resolve bug which prevented large fields from being selected more than once 545641a
* split page import into construct and initialize phases to eliminate plugin install inconsistencies eae7036

### [0.1.3](///compare/v0.1.2...v0.1.3) (2023-06-06)


Expand Down
4 changes: 2 additions & 2 deletions src/cti_authoring_tool/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src/cti_authoring_tool/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cti-authoring-tool",
"version": "0.1.3",
"version": "1.0.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
Expand Down
Binary file added src/cti_authoring_tool/public/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
52 changes: 42 additions & 10 deletions src/cti_authoring_tool/src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@
<!-- <div class id="tool-bar"></div> -->
<div id="app-body">
<ScrollBox id="page-container" :alwaysShowScrollBar="true">
<PageEditorControl id="page" :page="editor.page" @execute="onExecute" />
<template v-if="editor.isPhantom()">
<SplashMenu id="splash-menu" :templates="templates" @new="onNewDocument" @open="onOpenDocument"/>
</template>
<template v-else>
<PageEditorControl id="page" :page="editor.page" @execute="onExecute"/>
</template>
</ScrollBox>
</div>
<FileSelect
Expand All @@ -15,7 +20,7 @@
@switch="onEditorSwitch"
v-show="0 < editors.size"
/>
<div class id="footer-bar"></div>
<AppMetricsBar id="metrics-bar"></AppMetricsBar>
</AppHotkeyBox>
</template>

Expand All @@ -27,12 +32,15 @@ import Configuration from "@/assets/configuration/app.config"
import { Command } from "./assets/scripts/Application/Command";
import { PageEditor } from "./assets/scripts/PageEditor/PageEditor";
import { defineComponent } from 'vue';
import { DocumentTemplate } from "./assets/scripts/Application";
import { mapMutations, mapState } from 'vuex';
// Components
import ScrollBox from "./components/Containers/ScrollBox.vue";
import SplashMenu from "./components/Controls/SplashMenu.vue";
import FileSelect from "./components/Controls/FileSelect.vue";
import AppTitleBar from "./components/Elements/AppTitleBar.vue";
import AppHotkeyBox from "./components/Elements/AppHotkeyBox.vue";
import AppMetricsBar from "./components/Elements/AppMetricsBar.vue";
import PageEditorControl from "./components/Controls/PageEditor.vue";
export default defineComponent({
Expand All @@ -55,10 +63,19 @@ export default defineComponent({
},
editors(state: Store.ApplicationStore): Map<string, PageEditor> {
let editors = [...state.editors.entries()]
.filter(o => o[0] !== PageEditor.Phantom.id)
.filter(o => !o[1].isPhantom())
return new Map(editors);
}
})
}),
/**
* Returns the application's document templates.
* @returns
* The application's document templates.
*/
templates(): DocumentTemplate[] {
return Configuration.templates;
}
},
methods: {
Expand Down Expand Up @@ -101,8 +118,23 @@ export default defineComponent({
*/
onEditorClose(id: string) {
this.execute(AppCommands.unloadPage(this.ctx, id));
}
},
/**
* New document behavior.
* @param template
* The document's template.
*/
onNewDocument(template: DocumentTemplate) {
this.execute(AppCommands.loadNewPageFile(this.ctx, template));
},
/**
* Open document behavior.
*/
async onOpenDocument() {
this.execute(await AppCommands.loadPageFromFileSystem(this.ctx));
}
},
async created() {
Expand All @@ -117,8 +149,8 @@ export default defineComponent({
this.execute(AppCommands.loadSettings(this.ctx, settings));
},
components: {
ScrollBox, AppTitleBar, AppHotkeyBox,
FileSelect, PageEditorControl
ScrollBox, AppTitleBar, AppHotkeyBox, AppMetricsBar,
FileSelect, PageEditorControl, SplashMenu
}
});
</script>
Expand Down Expand Up @@ -186,7 +218,7 @@ ul {
background: url("./assets/images/texture.png");
}
#tool-bar, #footer-bar {
#tool-bar, #metrics-bar {
flex-shrink: 0;
height: 31px;
}
Expand All @@ -195,7 +227,7 @@ ul {
border-bottom: solid 1px #d9d9d9;
}
#footer-bar {
#metrics-bar {
border-top: solid 1px #bfbfbf;
}
Expand All @@ -204,7 +236,7 @@ ul {
height: 100%;
}
#page {
#page, #splash-menu {
width: 950px;
margin: auto;
}
Expand Down
8 changes: 6 additions & 2 deletions src/cti_authoring_tool/src/assets/configuration/app.config.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
import { Campaign } from "./templates/Campaign";
import { Executive } from "./templates/Executive";
import { AppConfiguration } from "@/assets/scripts/Application";
import { IntrusionAnalysis } from "./templates/IntrusionAnalysis";
import { ThreatActorProfile } from "./templates/ThreatActorProfile";
import { AppConfiguration } from "@/assets/scripts/Application/AppConfiguration";

const config: AppConfiguration = {
is_web_hosted: false,
file_type_name: "CTI Template",
file_type_extension: "json",
branding: {
product: "./product.png",
organization: "./organization.png",
},
templates: [
ThreatActorProfile,
Campaign,
Expand All @@ -30,4 +34,4 @@ const config: AppConfiguration = {
}
}

export default config;
export default config;
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 51bc8fe

Please sign in to comment.