# README
dp-api-router
A service which routes API requests to the correct services. In the future this may add additional header information which will be used by the services.
JSON-LD
This service is responsible for serving a JSON-LD @context
field on configured API routes. In order to update the JSON-LD files, follow this guide. Once the files have been updated, consider if the secrets for this service need to be updated to point to a new file location or not.
Configuration
Environment variable | Default | Description |
---|---|---|
ALLOWED_ORIGINS | "http://localhost:8081" | |
BIND_ADDR | ":23200" | The host and port to bind to |
ENV_HOST | "http://localhost:23200" | The public host for the environment the service is running on |
VERSION | "v1" | The version of the API |
ENABLE_AUDIT | false | |
ENABLE_OBSERVATION_API | false | |
ENABLE_PRIVATE_ENDPOINTS | true | If private endpoints should be routed |
ENABLE_V1_BETA_RESTRICTION | false | |
ENABLE_SESSIONS_API | false | |
ENABLE_RELEASE_CALENDAR_API | false | Flag to enable routing to the release calendar API |
ENABLE_CANTABULAR_METADATA_EXTRACTOR_API | false | Flag to enable routing to the cantabular metadata extractor API |
ENABLE_ZEBEDEE_AUDIT | false | |
ENABLE_NLP_SEARCH_APIS | false | Flag to enable routing to the NLP search APIs |
CONTEXT_URL | "" | A URL to the JSON-LD context file describing the APIs |
API_POC_URL | "http://localhost:3000" | A URL to the poc api |
IMPORT_API_URL | "http://localhost:21800" | A URL to the import api |
DATASET_API_URL | "http://localhost:22000" | A URL to the dataset api |
FILTER_API_URL | "http://localhost:22100" | A URL to the filter api |
RECIPE_API_URL | "http://localhost:22300" | A URL to the recipe api |
CODE_LIST_API_URL | "http://localhost:22400" | A URL to the code list api |
HIERARCHY_API_URL | "http://localhost:22600" | A URL to the hierarchy api |
SEARCH_API_URL | "http://localhost:23900" | A URL to the search api |
DIMENSION_SEARCH_API_URL | "http://localhost:23100" | A URL to the dimension search api |
SESSIONS_API_URL | "http://localhost:24400" | A URL to the sessions api |
OBSERVATION_API_URL | "http://localhost:24500" | A URL to the observation api |
IMAGE_API_URL | "http://localhost:24700" | A URL to the image api |
UPLOAD_SERVICE_API_URL: | "http://localhost:25100" | A URL to the upload service api |
FILES_API_URL: | "http://localhost:26900" | A URL to the files API |
DOWNLOAD_SERVICE_URL: | "http://localhost:23600" | A URL to the download service API |
IDENTITY_API_URL: | "http://localhost:25600" | A URL to the identity api |
IDENTITY_API_VERSIONS | "v1" | A comma delimted string with a list of versions supported by identity api |
PERMISSIONS_API_URL: | "http://localhost:25400" | A URL to the permissions api |
PERMISSIONS_API_VERSIONS | "v1" | A comma delimted string with a list of versions supported by permissions api |
RELEASE_CALENDAR_API_URL | "http://localhost:27800" | A URL to the release calendar api |
ZEBEDEE_URL | "http://localhost:8082" | A URL to the zebedee service api |
CANTABULAR_METADATA_EXTRACTOR_API_URL | "http://localhost:28300" | A URL to the Cantabular metadata extractor API |
SEARCH_SCRUBBER_API_URL | "http://localhost:28700" | A URL to the Cantabular metadata extractor API |
SEARCH_SCRUBBER_API_VERSIONS | "v1" | A comma delimted string with a list of versions supported by search scrubber api |
CATEGORY_API_URL | "http://localhost:28800" | A URL to the NLP Category API |
CATEGORY_API_VERSIONS | "v1" | A comma delimted string with a list of versions supported by search scrubber api |
BERLIN_API_URL | "http://localhost:28900" | A URL to the NLP Berlin API |
BERLIN_API_VERSIONS | "v1" | A comma delimted string with a list of versions supported by search scrubber api |
KAFKA_ADDR | localhost:9092 | The list of kafka hosts |
KAFKA_MAX_BYTES | 2000000 | The maximum bytes that can be sent in an event to kafka topic |
KAFKA_VERSION | "1.0.2" | The kafka version that this service expects to connect to |
KAFKA_SEC_PROTO | unset (only TLS ) | if set to TLS , kafka connections will use TLS |
KAFKA_SEC_CLIENT_KEY | unset | PEM [2] for the client key (optional, used for client auth) [1] |
KAFKA_SEC_CLIENT_CERT | unset | PEM [2] for the client certificate (optional, used for client auth) [1] |
KAFKA_SEC_CA_CERTS | unset | PEM [2] of CA cert chain if using private CA for the server cert [1] |
KAFKA_SEC_SKIP_VERIFY | false | ignore server certificate issues if set to true [1] |
KAFKA_MIN_HEALTHY_BROKERS | 0 | The minimum number of healthy brokers, else app stays unhealthy [3] |
AUDIT_TOPIC | audit | The kafka topic name for audit events |
HEALTHCHECK_INTERVAL | 30s | The period of time between health checks |
HEALTHCHECK_CRITICAL_TIMEOUT | 90s | The period of time after which failing checks will result in critical global check |
SHUTDOWN_TIMEOUT | 5s | The graceful shutdown timeout (time.Duration format) |
HTTP_WRITE_TIMEOUT | dp-net default | How long the dispatcher waits for us to write to it (time.Duration format) |
OTEL_EXPORTER_OTLP_ENDPOINT | localhost:4317 | Host and port for the OpenTelemetry endpoint |
OTEL_SERVICE_NAME | dp-api-router | Service name to report to telemetry tools |
Notes:
-
Ignored unless using TLS (i.e.
KAFKA_SEC_PROTO
has a value enabling TLS) -
PEM values are identified as those starting with
-----BEGIN
and can use\n
(sic) instead of newlines (they will be converted to newlines before use). Any other value will be treated as a path to the given PEM file. -
the default is
0
which means "use library default" - recommended to change this only in development (e.g. when running only one broker)