{"id":21511499,"url":"https://github.com/netobserv/network-observability-console-plugin","last_synced_at":"2026-02-23T19:16:23.185Z","repository":{"id":37099961,"uuid":"418511394","full_name":"netobserv/network-observability-console-plugin","owner":"netobserv","description":"Network Observability plugin for the Openshift Console","archived":false,"fork":false,"pushed_at":"2025-04-05T06:47:50.000Z","size":34822,"stargazers_count":5,"open_issues_count":23,"forks_count":18,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-05T07:19:01.361Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netobserv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-18T13:21:40.000Z","updated_at":"2025-03-31T19:04:15.000Z","dependencies_parsed_at":"2024-01-08T12:46:46.927Z","dependency_job_id":"77420145-b36f-46c2-bc57-52e6b47f005d","html_url":"https://github.com/netobserv/network-observability-console-plugin","commit_stats":null,"previous_names":[],"tags_count":49,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netobserv%2Fnetwork-observability-console-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netobserv%2Fnetwork-observability-console-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netobserv%2Fnetwork-observability-console-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netobserv%2Fnetwork-observability-console-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netobserv","download_url":"https://codeload.github.com/netobserv/network-observability-console-plugin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248085157,"owners_count":21045135,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-23T22:14:28.770Z","updated_at":"2026-02-23T19:16:23.180Z","avatar_url":"https://github.com/netobserv.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NetObserv Web Console\n\n[![Docker Repository on Quay](https://quay.io/repository/netobserv/network-observability-console-plugin/status \"Docker Repository on Quay\")](https://quay.io/repository/netobserv/network-observability-console-plugin)\n[![Go Report Card](https://goreportcard.com/badge/github.com/netobserv/network-observability-console-plugin)](https://goreportcard.com/report/github.com/netobserv/network-observability-console-plugin)\n\nThe web console can be deployed either as a standalone console, or as a [console plugin](https://github.com/openshift/console/tree/master/frontend/packages/console-dynamic-plugin-sdk) for OpenShift.\n\n## First setup\n\nYou will need Go, Node.js and npm in order to run the `make` commands described below. You can take a look at the [Dockerfile](./Dockerfile) to get known working versions of these tools. In particular, node and npm are known to often break builds if you don't use the expected versions (even patch versions for npm). You can use [nvm](https://github.com/nvm-sh/nvm) to manage installed node / npm versions.\n\nOnce these tools are installed, run the following command:\n\n```bash\nmake install-frontend\n```\n\n## Building, linting, testing\n\nTo build the plugin, run:\n\n```bash\nmake build\n```\n\nTo run tests and linter:\n\n```bash\nmake test lint\n```\n\nThese targets will build / lint / test both the backend and the frontend. They have selective equivalent to build/lint/test only the backend or the frontend (e.g. `make build-frontend`).\n\nThere are also convenient targets to build+lint+test the backend or the frontend:\n\n```bash\nmake frontend\nmake backend\n```\n\nFor faster frontend builds, you can set the variable: `BUILDSCRIPT=:dev`. E.g:\n\n```bash\nBUILDSCRIPT=:dev make frontend\n```\n\nIt will skip optimizations for production.\n\n## Development environment\n\n### Standalone console\n\nTo build a standalone frontend (ie. not tied to the OpenShift Console as a plugin), run these steps:\n\n```bash\n# build and push on your own quay.io account (quay.io/myuser/network-observability-standalone-frontend:dev):\nSTANDALONE=true IMAGE_ORG=myuser VERSION=dev make images\n```\n\nIf you have a running cluster with NetObserv and Loki installed, you can serve the standalone frontend using a port-forwarded Loki:\n\n```bash\nkubectl port-forward service/loki 3100:3100\nmake start-standalone\n```\n\nAlternatively, you can start it without Loki/NetObserv, using mocked flows:\n\n```bash\nmake serve-mock\n```\n\nBoth options will start the standalone console server on http://localhost:9001/.\n\nNote: this will provide a single page showing the main Netflow Traffic and Network Health pages. However, the OpenShift Console integration goes further, by providing more views directly integrated in other pages. These views obviously cannot be rendered without the OpenShift Console.\n\n### Console plugin\n\nPlugin can be served locally using the following command:\n\n```bash\nmake serve\n```\n\nMake sure you are logged in your OpenShift cluster before with the CLI (`oc login -u kubeadmin` ...)\n\nYou need also to have a local copy of [console repository](https://github.com/openshift/console)\nBuild it once using:\n```bash\n./build.sh\n```\n\nThen, start the console bridge with this local plugin, with:\n```bash\nCONSOLE=/path/to/console make bridge\n```\n\nThen open http://localhost:9000/.\n\nIf you have troubles trying to run the console, refer to their doc: https://github.com/openshift/console/#openshift-no-authentication.\n\n#### Loki in dev mode\n\nYou need to deploy Loki and port-forward on your host: `kubectl port-forward service/loki 3100:3100`\n\n## OCI Image\n\nImages are located on https://quay.io/repository/netobserv/network-observability-console-plugin. To use the latest image corresponding to branch `main`, use `quay.io/netobserv/network-observability-console-plugin:main`.\n\n### Build\n\n```bash\n# build the default image (quay.io/netobserv/network-observability-console-plugin:main):\nmake image-build\n\n# push the default image (quay.io/netobserv/network-observability-console-plugin:main):\nmake image-push\n\n# build and push on your own quay.io account (quay.io/myuser/network-observability-console-plugin:dev):\nIMAGE_ORG=myuser VERSION=dev make images\n\n# build and push on a different registry\nIMAGE=dockerhub.io/myuser/plugin:tag make images\n\n# faster builds with default image / tag\nBUILDSCRIPT=:dev make images\n```\n\n### Testing in OpenShift\n\nProbably the easiest way to test without dev mode (e.g. to test a pull request) is to use the [operator](https://github.com/netobserv/network-observability-operator/), build and push the image to your own registry account and update the `network-observability-operator.vx.y.z` csv to update the plugin image.\n\nE.g:\n\n```bash\nIMAGE=quay.io/${USER}/network-observability-console-plugin:pr-xx make images\n\noc get csv\nNAME                                     DISPLAY                 VERSION   REPLACES                                 PHASE\nnetwork-observability-operator.v1.10.1   Network Observability   1.10.2    network-observability-operator.v1.10.0   Succeeded\n\noc edit csv network-observability-operator.v1.10.1\n# Here replace image in the RELATED_IMAGE_CONSOLE_PLUGIN environment variable with the newly created one under .spec.install.spec.deployments[0].spec.template.spec.containers[0].env\n```\n\nIf you had previously used the console with the plugin installed, you may need to restart console pods to clear cache:\n\n```bash\noc delete pods -n openshift-console -l app=console\n```\n\n## Cypress tests\n\n[Cypress](https://www.cypress.io/) is a framework for running frontend integration tests. Our tests are defined in [cypress/integration](./web/cypress/integration/).\n\nYou can run the cypress tests either with the OpenShift Console + NetObserv as a plugin, or with the NetObserv console deployed as a standalone as documented above.\n\n### With the standalone mode\n\n1. Start the [standalone mode](#standalone-console) as documented above. You should have the console accessible and working on http://localhost:9001\n\n2. Edit [consts.js](./web/cypress/support/const.js) to set the URL to \"http://localhost:9001\".\n\n3. Start cypress:\n\n```bash\nmake cypress\n```\n\n4. Click on \"Run N integration specs\"\n\n### With OpenShift Console and NetObserv as a plugin\n\n1. Start your [dev environment](#development-environment) as documented above, including port-forwarding Loki. You should have the console accessible and working on http://localhost:9000/netflow-traffic\n\n2. Start cypress:\n\n```bash\nmake cypress\n```\n\n3. Click on \"Run N integration specs\"\n\n## Updating schemas\n\nThis console plugin comes with several panels allowing GUI-based configuration for `FlowCollector` and other managed resources, including:\n\n- Comprehensive forms for each of the resources (includes most supported settings that are pretty common to configure).\n- Simplified wizards for faster configuration.\n\nWhen you update the operator CRDs, you may have to update some schemas here as well, which contain some rules that drive how forms are displayed. Especially:\n\n- [uiSchema.ts](./web/src/components/forms/config/uiSchema.ts) contains a display-oriented description of every CRD field, including whether or not they should be hidden, or if they have relationships with other fields.\n- [\u003c CRD name \u003e-wizard.tsx](./web/src/components/forms/flowCollector-wizard.tsx) contains specific fields to be displayed in wizards.\n\nWhen a CRD field is added, consider whether you need to update these files.\n\nAdditionally, [schema.ts](./web/moduleMapper/schemas.ts) contains the full CRD schema as JSON, used in tests and in standalone mode, and should also be kept up to date. Use [generate-schemas.sh](./scripts/generate-schemas.sh) to regenerate them (you need a running cluster with the CRDs installed).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetobserv%2Fnetwork-observability-console-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetobserv%2Fnetwork-observability-console-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetobserv%2Fnetwork-observability-console-plugin/lists"}