Sign inSign up

atlasplatformdocker/rta-gatewaysvc

By atlasplatformdocker

Updated 11 months ago

Image
0

308

atlasplatformdocker/rta-gatewaysvc repository overview

RTA Gateway Service

This service is part of the RTA Toolkit Services suite.

It is a reverse proxy, and would typically be deployed in front of:

  • Session Service — handling session management, browsing and filtering
  • Config Service — handling configuration storage and retrieval
  • Data Service — or storage-specific service, handling retrieval of data samples and events

This microservices-style deployment is very flexible, allowing you to independently scale components and add in your own implementations. For example, if you want to use multiple data storage technologies, you can deploy multiple data services behind the Gateway Service.

As an alternative, the Server package provides most of this functionality in one convenient executable for development use.

The service exposes the outward-facing REST interface to ATLAS users. There is no GRPC interface.

It is available as a binary for Windows and Linux, and as a Docker image.

Usage

Docker
docker run --rm \
  -e RTA_SessionServiceUri=http://myhost:2650/ \
  -e RTA_ConfigServiceUri=http://myhost:2660/ \
  -e RTA_DataServiceUris__mydata=http://myhost:2670/ \
  -p 80:80 -p 443:443 \
  mclarenapplied/rta-gatewaysvc
Command Line
rta-gatewaysvc --SessionServiceUri "http://myhost:2650/" --ConfigServiceUri "http://myhost:2660/" --DataServiceUris:mydata "http://myhost:2670/"

Ports

PortProtocolUsage
80HTTPExpose to ATLAS via a TLS-enabled ingress
443HTTPSExpose to ATLAS directly or via an ingress

Monitoring

HTTP GET / : Returns 200 OK and reports the software version. In Kubernetes, use this for liveness probes.

HTTP GET /health : Returns 200 OK if the service is up and all configured service URIs are accessible at their root path.
In Kubernetes, use this for readiness probes.

HTTP GET /metrics : Prometheus metrics, including the health check status.

Configuration

The service must be configured with URIs to the Session Service, Config Service and typically one or more data services.

The RTA Toolkit provides drop-in implementations, but you can substitute your own as long as it implements the service interface.

Options can be set using both environment variables and command line arguments, or by the provided appsettings.config JSON configuration file.

Environment variables are all prefixed with RTA_, and can be written in ALLCAPS or MixedCase.
For example, SessionServiceUri is RTA_SESSIONSERVICEURI or RTA_SessionServiceUri.

For Linux and on Kubernetes, also replace : with __.
For example, Category:Item is RTA_CATEGORY__ITEM.

OptionValueRequired
SessionServiceUriURI to Session Service or customer implementationyes
ConfigServiceUriURI to Config Service or customer implementationyes
DataServiceUris:<source>URIs to Data Service deployments or customer implementations, identified by <source>zero or more
Service Info

ATLAS will poll /rta/v2/info to check whether authentication is required, and retrieve a label and description to display to the user.

These are configurable. This is particularly useful in an environment where users be using multiple services, perhaps hosted at different locations.

OptionValueRequiredDefault
ServiceInfo:​LabelHuman-readable short labelnoText including the hostname
ServiceInfo:DescriptionHuman-readable descriptionno
Authentication and Authorization

These options enable OAuth 2.0 support.

Bearer tokens are forwarded to the configured services.

OptionValueRequired
EnableAuthtrue or falseno
Auth:AuthorityOAuth2 authorization serverif EnableAuth=​true
Auth:AudienceOAuth2 audienceif EnableAuth=​true

Tag summary

Content type

Image

Digest

sha256:74bdac176

Size

120.4 MB

Last updated

11 months ago

docker pull atlasplatformdocker/rta-gatewaysvc