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 matchingtestName
npm 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.