/insights-inventory-frontend

The Insights Inventory Frontend

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Build Status semantic-release GitHub release codecov

Insights Inventory Frontend

This is the frontend application for Insights Inventory. It is based on the insights-frontend-starter-app.

First time setup

Quick start

  1. Make sure you have Node.js and npm installed
  2. Run script to patch your /etc/hosts
  3. Make sure you are using Red Hat proxy

Comprehensive documentation

There is a comprehensive quick start guide in the Storybook Documentation to setting up an Insights environment.

Running locally

  1. Install dependencies with npm install
  2. Run development server with npm run start:proxy:beta
  3. Local version of the app will be available at https://stage.foo.redhat.com:1337/beta/insights/inventory/

Running with another app

If you want to see changes made in inventory table in another application you will have to run both inventory and desired application. We'll take for example insights-advisor-frontend application as app that uses system detail.

Open new terminal and navigate to desired application (for instance insights-adviror-frontend) and run it (make sure to run it on different port)

npm start

Run the inventory application with proxy enabled and list of additional applications

LOCAL_API=advisor:8003~https npm run start:proxy

If you want to run advisor and for instance vulnerability just add new entry to LOCAL_API

LOCAL_API=advisor:8003~https,vulnerability:8004

Testing

There is an npm script that runs the build, JS and CSS linters and unit tests. The script can be invoked by npm run verify

Mocking Inventory API

Inventory frontend has support for https://github.com/stoplightio/prism CLI. The CLI reads the OpenAPI schema, spins up a localhost server and serves dynamically generated responses for Inventory API endpoints (/hosts, /groups, etc.).

  1. Verify package.json config section for the correct URL to OpenAPI schema (contains remote URL by default).
  2. Verify dev.webpack.config.js customProxy settings. There you can specify which endpoints to proxy and modify request/response headers.
  3. Run npm run mock-server to start the mock server. The fist output must list the endpoints that are generated by the localhost server.
  4. In another terminal, run npm run start:mock or npm run start:mock:beta to start the webpack server either in stage-stable or stabe-beta environment. The scripts set the MOCK variable to true and the customProxy is enabled.

Inventory table and detail

We are serving inventory through federated modules, this means both inventory table and inventory detail is served to you in runtime. No need to install and rebuild when something changes in inventory.

Applications using InventoryTable

These applications import InventoryTable component through federated modules:

Documentation Links