Categorygithub.com/RedHatInsights/insights-results-smart-proxy

# README

insights-results-smart-proxy

forthebadge made-with-go

GoDoc GitHub Pages Go Report Card Build Status GitHub go.mod Go version License

Smart proxy for insights results

Description

Insights Results Smart Proxy is a service that acts as a proxy between the different external data pipeline clients and the different services providing the required information.

It provides access to the Insights Results Aggregator and to the Insights Content Service, providing the clients with different endpoints for accesing both report results and rule content metadata from a single service.

Documentation

Documentation is hosted on Github Pages https://redhatinsights.github.io/insights-results-smart-proxy/. Sources are located in docs.

BDD tests

Behaviour tests for this service are included in Insights Behavioral Spec repository. In order to run these tests, the following steps need to be made:

  1. clone the Insights Behavioral Spec repository
  2. go into the cloned subdirectory insights-behavioral-spec
  3. run the smart_proxy_tests.sh from this subdirectory

List of all test scenarios prepared for this service is available at https://redhatinsights.github.io/insights-behavioral-spec/feature_list.html#smart-proxy

Makefile targets

Usage: make <OPTIONS> ... <TARGETS>

Available targets are:

clean                Run go clean
build                Build binary containing service executable
build-cover          Build binary with code coverage detection support
fmt                  Run go fmt -w for all sources
lint                 Run golint
vet                  Run go vet. Report likely mistakes in source code
cyclo                Run gocyclo
ineffassign          Run ineffassign checker
shellcheck           Run shellcheck
errcheck             Run errcheck
goconst              Run goconst checker
gosec                Run gosec checker
abcgo                Run ABC metrics checker
style                Run all the formatting related commands (fmt, vet, lint, cyclo) + check shell scripts
run                  Build the project and executes the binary
test                 Run the unit tests
help                 Show this help screen

Contribution

Please look into document CONTRIBUTING.md that contains all information about how to contribute to this project.

Package manifest

Package manifest is available at docs/manifest.txt.

# Packages

No description provided by the author
Package conf contains definition of data type named Config that represents configuration of Smart Proxy service.
Package content provides API to get rule's content by its `rule id` and `error key`.
Package server contains implementation of REST API server (HTTPServer) for the Insights results smart proxy service.
Package services contains interface implementations to other REST API services that are called from Smart Proxy.
No description provided by the author
Package types contains all user-defined data types used in Smart Proxy REST API service.

# Constants

ExitStatusOK means that the service have finished with success.
ExitStatusServerError means that the HTTP server cannot be initialized.

# Variables

BuildBranch contains Git branch used to build this application.
BuildCommit contains Git commit used to build this application.
BuildTime contains timestamp when the CLI client has been built.
BuildVersion contains the major.minor version of the CLI client.
UtilsVersion contains currently used version of github.com/RedHatInsights/insights-operator-utils package.

# Type aliases

ExitCode represents numeric value returned to parent process when the current process finishes.