<commit_before>## Components Overview

### Gateway
Gateway is main entry point to application services. It is in charge of routing requests to appropriate service and load balancing.
Gateway communicates with Service Registry to get list actual of services that are allowed to route traffic to.
There are two options proposed: 
* [Fabio](https://github.com/fabiolb/fabio)
    * Configuration parameters:
        * `FABIO_REGISTRY_CONSUL_ADDR=registry:8500` Specifies URL to service registry server
        * `FABIO_REGISTRY_CONSUL_REGISTER_NAME=gateway` Specifies service name to register in service registry (consul)
        * `FABIO_PROXY_ADDR=:9999;rt=300s;wt=300s` Application port, read/write timeouts
* [Traefik](https://traefik.io/)

### Service Registry
Service Registry is the tool that keeps actual list of running services with meta-information attached.
It performs health-checks to each running service to ensure availability.
For the details, see [Consul](https://www.consul.io/)

### API Service
API service is a core of ReportPortal. It is in charge of handling incoming requests from agents and UI. 

### UAT Service
UAT (Unified Authorization Trap) service is module that authenticate users and creates/revokes user tokens. 
It supports various types of authentication mechanisms:
* Basic Auth
* GitHub Auth (OAuth2)
* LDAP Auth
UAT service itself is a OAuth2 server that authenticates user using mechanisms mentioned 
below and creates internal OAuth2 token which is used by UI and agents. There are two types of tokens:
* UI (expiring token)
* API - non-expiring token, intended to use on agent side   

### Index Service
Index services handles requests that does not match any pattern of other services. 
It also aggregates some information/health data from other services to provide UI with that information

### JIRA Service
Integration with JIRA's bug tracking system

### Rally Service
Integration with Rally's bug tracking system

### Analyzer Service
Keeps index of user logs per project and provides ability to perform search by that index. Used by auto-analysis functionality <commit_msg>Minor edits (#112)<commit_after>## Components Overview

### Gateway
Gateway is a main entry point to application services. It is in-charge of routing requests to appropriate service and load balancing.
The Gateway communicates with Service Registry to get list actual of services that are allowed to route traffic to.
There are two options proposed: 
* [Fabio](https://github.com/fabiolb/fabio)
    * Configuration parameters:
        * `FABIO_REGISTRY_CONSUL_ADDR=registry:8500` Specifies URL to service registry server
        * `FABIO_REGISTRY_CONSUL_REGISTER_NAME=gateway` Specifies service name to register in service registry (consul)
        * `FABIO_PROXY_ADDR=:9999;rt=300s;wt=300s` Application port, read/write timeouts
* [Traefik](https://traefik.io/)

### Service Registry
The Service Registry is the tool that keeps an actual list of running services with meta-information attached.
It performs health-checks to each running service to ensure availability.
For the details, see [Consul](https://www.consul.io/)

### API Service
The API service is the core of ReportPortal. It is in-charge of handling incoming requests from agents and UI. 

### UAT Service
The UAT (Unified Authorization Trap) service is module that authenticate users and creates/revokes user tokens. 
It supports various types of authentication mechanisms:
* Basic Auth
* GitHub Auth (OAuth2)
* LDAP Auth
The UAT service itself is a OAuth2 server that authenticates a user using mechanisms mentioned 
below and creates internal OAuth2 token which is used by UI and agents. There are two types of tokens:
* UI (expiring token)
* API - non-expiring token, intended to use on agent side   

### Index Service
The Index services handle requests that do not match any pattern of other services. 
It also aggregates some information/health data from other services to provide UI with that information

### JIRA Service
Integration with JIRA's bug tracking system

### Rally Service
Integration with Rally's bug tracking system

### Analyzer Service
Keeps index of user logs per project and provides ability to perform search by that index. Used by auto-analysis functionality 

{'fraction_non_alphanumeric': 0.05737704918032787, 'fraction_numerical': 0.008665105386416861, 'mean_word_length': 4.732885906040268, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5099978', 'n_tokens_mistral': 1138, 'n_tokens_neox': 1078, 'n_words': 547}