REST service for managing DART's tenants
Module Name | Description |
---|---|
tenants-api | REST API definition using Tapir |
tenants-controllers | Scalatra controllers implementing dart-tenants REST API |
tenants-client | REST client library (unimplemented) |
tenants-microservice | Scalatra microservice serving dart-tenants API |
This project is built using SBT. For more information on installation and configuration of SBT please see their documentation
To build and test the code:
sbt clean test
To create a runnable JAR of tenants-microservice:
sbt clean assembly
To create a Docker image of the runnable application:
make docker-build
The microservice's configuration is defined in tenants-microservice/sr/main/resources/application.conf
. Most properties can be overridden
by environment variables:
Name | Description | Example Values |
---|---|---|
TENANTS_HTTP_PORT | Port where tenants REST service will be served | 8080 (default) |
INDEX_MASTER | Type id of main tenant index | arango (default) / in-memory |
INDEX_1 | Type id of secondary tenant index | elasticsearch (default) / none |
INDEX_2 | Type id of secondary tenant index | keycloak (default) / none |
CORS_ALLOWED_ORIGINS | Allowed origins for cross-origin requests | * (default) |
KEYCLOAK_SCHEME | Protocol for keycloak connection | https (default) |
KEYCLOAK_HOST | Hostname or IP of keycloak instance | localhost (default) |
KEYCLOAK_PORT | Port for keycloak connection | 8090 (default) |
KEYCLOAK_BASE_PATH | Base path for keycloak requests | auth (default) |
KEYCLOAK_REALM | Keycloak realm used for REST auth | dart (default) |
KEYCLOAK_ADMIN_REALM | Name of realm used by keycloak tenant index's auth client | dart (default) |
KEYCLOAK_ADMIN_CLIENT_ID | Admin client id used by keycloak tenant index (if enabled) | dart-admin (default) |
KEYCLOAK_ADMIN_CLIENT_SECRET | Secret used by keycloak admin client | a5dd2106-326b-4b2b-bf0a-c4afd5e86851 |
ARANGODB_DATABASE | Database Name for Arango CDR datastore | dart (default) |
ARANGODB_HOST | Hostname or IP of Arango database instance | localhost (default) / dart-arangodb |
ARANGODB_PORT | Arango database port | 8529 (default) |
ELASTICSEARCH_SCHEME | Protocol used for Elasticsearch connection | http (default) |
ELASTICSEARCH_HOST | Hostname or IP address of Elasticsearch instance | localhost (default) |
ELASTICSEARCH_PORT | Elasticsearch port number | 9200 (default) |
DART_AUTH_SECRET | Auth token secret for keycloak integration | xxyyzz (no default) |
DART_AUTH_BYPASS | If true do not use tokens to authenticate/authorize | "true" or "false" |
DART_AUTH_BASIC_CREDENTIALS | Use these credentials for basic auth authentication if DART_AUTH_BYPASS=true | user1:pass1,user2:pass2 |
This software was developed with funding from the following sources.
Agency | Program(s) | Grant # |
---|---|---|
DARPA | Causal Exploration, World Modelers | W911NF-19-C-0080 |