Git Product home page Git Product logo

heimdall-vue's Introduction

ATTENTION: THIS REPOSITORY HAS BEEN DEPRECATED IN FAVOR OF https://github.com/mitre/heimdall-vuetify

Check that repository for most up to date edition of this software.

Netlify Status

https://heimdall-vue.netlify.com

Samples

Example JSON profiles are stored in sample_jsons/

Project setup

npm install

Compiles and hot-reloads for development

npm run serve

Compiles and minifies for production

npm run build

Compiles and runs as electron application

npm run electron

Run your tests

npm run test

Lints and fixes files

npm run lint

Run your end-to-end tests

npm run test:e2e

Run your unit tests

npm run test:unit

Run storybook

npm run storybook

Customize configuration

See Configuration Reference.

Notes/Commmon Problems

Proxy Notes

If you have a proxy, remember to setup your NPM enviroment to respect the proxy

Install Problems

If you run "npm install" and get the error "unable to get local issuer certificate", you can run this command:

  npm config set strict-ssl false

If you run "npm install" and get the error "node-pre-gyp ERR! Completion callback never invoked!", you can delete the "package-lock.json" file and try it again.

Contributing

Components

When developing Vue components, add your component to src/components, following a similar style to existing components.

Storybook integration

For visual components it is advised to add a story view of the component to storybook. This will serve as a visualization of the component under test conditions and serves to help other developers know how newly developed components are supposed to be used.

First thing to do is after creating the component, register it in storybooks config.js file (.storybook/config.js)

import MyComponent from '../src/components/MyComponent.vue';
Vue.component('MyComponent',MyComponent);

This needs to be done as storybook runs its own instance of vue.

Next step is to add a story to stories/index.stories.js or add one to a file in stories/ then import said story into stories/index.stories.js

Stories look like the following example from https://storybook.js.org/docs/guides/guide-vue/:

storiesOf('Button', module)
  .add('with text', () => '<my-button>with text</my-button>')
  .add('with emoji', () => '<my-button>πŸ˜€ 😎 πŸ‘ πŸ’―</my-button>')
  .add('as a component', () => ({
    components: { MyButton },
    template: '<my-button :rounded="true">rounded</my-button>'
  }));

Release Process

Branches

The master branch contains the latest version of the software leading up to a new release.

Other branches contain feature-specific updates.

Tags

Tags indicate official releases of the project.

Please note 0.x releases are works in progress (WIP) and may change at any time.

Legal Stuff

NOTICE

Β© 2019 The MITRE Corporation.

Approved for Public Release; Distribution Unlimited. Case Number 18-3678.

NOTICE

MITRE hereby grants express written permission to use, reproduce, distribute, modify, and otherwise leverage this software to the extent permitted by the licensed terms provided in the LICENSE.md file included with this project.

NOTICE

This software was produced for the U. S. Government under Contract Number HHSM-500-2012-00008I, and is subject to Federal Acquisition Regulation Clause 52.227-14, Rights in Data-General.

No other use other than that granted to the U. S. Government, or to those acting on behalf of the U. S. Government under that Clause is authorized without the express written permission of The MITRE Corporation.

For further information, please contact The MITRE Corporation, Contracts Management Office, 7515 Colshire Drive, McLean, VA 22102-7539, (703) 983-6000.

heimdall-vue's People

Contributors

aaronlippold avatar artem-bot avatar asturtevant avatar christianpaget avatar cjdoherty avatar djhaynes avatar james-garriss avatar lukemalinowski avatar mitriol avatar robthew avatar v1kramb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

heimdall-vue's Issues

Reject non-JSON test files.

The "Select File" button allows users to select any type of file. Images, installers, Word docs, whatever. If the user selects anything other than a JSON file, it should fail fast and politely warn the user to select the right type of file.

Related to #17

#17

Add test JSON files.

Add a handful of test JSON files that allow the user to play with HV. Add a note about these files to the README, something about what they should expect to see from the various test files.

Alternatively, modify the README to point the reader an online source where they can find some test file to play with.

Storybook stories need to be fleshed out

If you run npm run storybook and go through the list of stories you will see that the components are not be fed very good data, so they don't render well.

This is for several reasons, one of which being that store is not filled by anything when running storybook, two some components are not wrapped correctly, the countcards should be wrapped in a bootstrap card deck div, but are not.

Issue created for tracking purposes. We're overtasked right now, so it'll have to wait.

Also need to wait till #44 is marked resolved

Fix broken unit test

Running "npm run test:unit" throws an error:

Module not found: '@/components/HelloWorld.vue' in '/Users/garriss/Documents/Coding/MITRE GitHub/Heimdall-Vue/tests/unit'

Plug Treemap into Vuex

Create a new vuex module for all the functions that Treemap wants to use, they are:

getImpactFilter
getNistHash
getSearchTerm
getStatusFilter
setImpactFilter
setSearchTerm
setSelectedControl
setSelectedFamily
setSelectedSubFamily
setStatusFilter

clarify profile error subtext

For clarity,

change:
(no result from test - check profile run privileges or author of profile)

to:
(errors running test - check profile run privileges or check with the author of profile)

Enhance the CAAT component to have a 'full data' and 'condensed/interactive' mode

Full Data: The current function of the CAAT component.

Condensed/Interactive:
Use Case:
A user wants to fold each NIST Sub-Family into single row rather than multiple rows for every result. If they select the condensed mode - we will have a 'wizard model' come out and ask what 'standard text' we want for each column for that Sub-Family Finding - walking them across the spreadsheet.

As the user is walking though each sub-family step - It would be good if we can have another model that has a datatable of the 'detailed results' of those findings for the sub-family that they could open and close for review if needed.

UX consideration: we can we can suggest a 'default' answer -
a) like Severity ( if 8 / 10 are high or they are all the same) or
b) if they have already provided an answer - such as 'System Name' - that is unlikely to change. ( perhaps the last answer is good enough for most cases ).

Once they walk through, they can save it as a csv/xlsx.

npm run serve throws eslint errors on vue templates

Module Warning (from ./node_modules/eslint-loader/index.js):
error: Parsing error: Unexpected token < at src/App.vue:1:1:
> 1 | <template>
    | ^
  2 |   <b-container fluid>
  3 |     <NavHeader/>
  4 |     <router-view/>


1 error found.

Vue Storybook

Setup a storybook config for all the components, it will look like rendering tests, to be reviewed manually.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.