Skip to content

RTA Schema Mapping Service#

This service is part of the RTA Toolkit Services suite.

It provides a repository to describe a mapping between a source schema in your data store, and the RTA domain model.

RTA makes data requests using channel numbers using descriptions downloaded from the Config Service. When integrating a new data source, these requests need to be mapped to something meaningful to the source schema, which likely represents data as named fields in files, tables or documents. This service provides a simple, standard way to store that Schema Mapping and perform lookups as required.

Info

The Config Service is similar, but only describes the RTA domain model.
The Schema Mapping Service describes the relationship with the source schema, which is specific to the data storage technology.

It exposes a gRPC interface to define and query the Schema Mappings. Aside from metrics and health checks, there is no outward-facing REST interface, and this service is strictly optional.

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

Usage#

Docker#

Storing schema mappings on the file system:

docker run --rm \
  -v /path/to/store:/data/rta-schema-mappings \
  -e RTA_Store=File \
  -e RTA_FilePath=/data/rta-schema-mappings \
  -p 2680:2680 -p 2682:2682 \
  mclarenapplied/rta-schemamappingsvc

Storing schema mappings on AWS S3:

docker run --rm \
  -e RTA_Store=Aws \
  -e RTA_AwsS3Bucket=my-schema-mappings-bucket \
  -p 2680:2680 -p 2682:2682 \
  mclarenapplied/rta-schemamappingsvc

Command Line#

Storing schema mappings on the file system:

rta-schemamappingsvc --Store File --FilePath /data/rta-schema-mappings

Storing schema mappings on AWS S3:

rta-schemamappingsvc --Store Aws --AwsS3Bucket my-schema-mappings-bucket

Ports#

Port Protocol Usage
2680 HTTP Expose within local environment for health checks and metrics only
2682 gRPC Expose within local environment

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 the file system path or AWS S3 bucket is accessible.
In Kubernetes, use this for readiness probes.
HTTP GET /metrics
Prometheus metrics, including the health check status.

Configuration#

The service can be configured to store data either on the file system, or on AWS S3.

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, FilePath is RTA_FILEPATH or RTA_FilePath.

Option Value Required
Store File or Aws yes
FilePath Path to config volume if Store=File
AwsS3Bucket S3 bucket name if Store=Aws

Init Store#

InitStoreAndExit=true will cause the service to initialize the store and exit immediately. This enables the service to be used to setup or upgrade the environment.

Option Value Required Default
InitStoreAndExit true or false no false