Red Hat Insights Vulnerability service is used to assess and monitor the status of security vulnerabilities on RHEL systems, understand the level of exposure of infrastructure, and plan a course of action. This is the front-end repository for this service.
- Make sure you have Node.js version >= 18 installed
- Run script to patch your
/etc/hosts - Make sure you are using Red Hat proxy
- Install dependencies with
npm install - Run development server with
npm run start:proxy - While you run the command above, you will be prompted to choose an enviroment.
If you want to test Vulnerability with another application deployed locally, you can utilise LOCAL_APPS environment variable and deploy the needed application on separate ports. To learn more about the variable, see https://github.com/RedHatInsights/frontend-components/tree/master/packages/config#running-multiple-local-frontend-applications.
We'll take for example insights-inventory-frontend.
Open new terminal, navigate to Inventory repository, and run it on a separate port without proxy:
npm run start -- --port=8003
In a separate terminal, run Vulnerability with proxy enabled and list Inventory:
LOCAL_APPS=inventory:8003~http npm run start:proxy
Jest and Cypress are used as the testing frameworks
npm run test- run all testsnpm run test:ct- run all Cypress testsnpm run test:jest- run all Jest testsnpm run test:jest -- testName- run Jest tests for all components matchingtestNamenpm run test:jest:update- run all Jest tests and update snapshotsnpm run test:jest:watch- run Jest tests in watch modenpm run lint- run linter
Translation keys are saved in messages.js.
Each time you add a new translation keys you need to run npm run translations, which will automatically generate JSON files for every language into locales/ folder based on the entries in the messages.js.
There are two ways to use translated strings:
- With
intl.formatMessage(messages.messageId) - With
<FormattedMessage {...messages.messageId}/>
This project uses Patternfly React.
This app imports components from Insights Front-end Components library. ESI tags are used to import Insights Chrome which takes care of the header, sidebar, and footer.