Configuring ARLAS Server running environment

ARLAS configuration file

ARLAS server is configured with a yaml configuration file.

External module configurations are available online:

Module Link
Swagger https://github.com/federecio/dropwizard-swagger
Dropwizard http://www.dropwizard.io/1.0.4/docs/manual/configuration.html

Configure ARLAS Server as a docker container

With environment variables

ARLAS can run as a docker container. A rich set of properties of the configuration file can be overriden by passing environment variables to the container:

docker run -ti -d \
   --name arlas-server \
   gisaia/arlas-server:latest

All supported environment variables are listed below.

With file/URL based configuration

Instead of overriding some properties of the configuration file, it is possible to start the ARLAS Server container with a given configuration file.

File

The ARLAS Server container can start with a mounted configuration file thanks to docker volume mapping. For instance, if the current directory of the host contains a configuration.yaml file, the container can be started as follow:

docker run -ti -d \
   --name arlas-server \
   -v `pwd`/configuration.yaml:/opt/app/configuration.yaml \
   gisaia/arlas-server:latest

URL

The ARLAS Server container can start with a configuration file that is downloaded before starting up. The configuration file must be available through an URL accessible from within the container. The URL is specified with an environment variable:

Environment variable Description
ARLAS_CONFIGURATION_URL URL of the ARLAS configuration file to be downloaded by the container before starting

For instance, if the current directory of the host contains a configuration.yaml file, the container can be started as follow:

docker run -ti -d \
   --name arlas-server \
   -e ARLAS_CONFIGURATION_URL="http://somemachine/conf.yaml" \
   gisaia/arlas-server:latest

ARLAS configuration properties

Authentication

Refer to ARLAS IAM configuration for a comprehensive configuration guide of authentication.

Environment variable ARLAS Server configuration variable Default Description
ARLAS_AUTH_POLICY_CLASS arlas_auth_policy_class io.arlas.filter.impl.NoPolicyEnforcer Specify a PolicyEnforcer class to load in order to activate Authentication if needed

CORS, HEADERS for API response

Environment variable ARLAS Server configuration variable Default Description
ARLAS_CORS_ENABLED arlas_cors.enabled false Whether to configure cors or not
ARLAS_CORS_ALLOWED_ORIGINS arlas_cors.allowed_origins "*" Comma-separated list of allowed origins
ARLAS_CORS_ALLOWED_HEADERS arlas_cors.allowed_headers "arlas-user,arlas-groups,arlas-organization,X-Requested-With,Content-Type,Accept,Origin,Authorization,X-Forwarded-User" Comma-separated list of allowed headers
ARLAS_CORS_ALLOWED_METHODS arlas_cors.allowed_methods "OPTIONS,GET,PUT,POST,DELETE,HEAD" Comma-separated list of allowed methods
ARLAS_CORS_ALLOWED_CREDENTIALS arlas_cors.allowed_credentials true Whether to allow credentials or not
ARLAS_CORS_EXPOSED_HEADERS arlas_cors.exposed_headers "Content-Type,Authorization,X-Requested-With,Content-Length,Accept,Origin,Location" Comma-separated list of exposed headers, readable on client side

Enabled Services

Environment variable ARLAS Server configuration variable Default Description
ARLAS_SERVICE_COLLECTIONS_ENABLE arlas-service-collections-enabled true Whether the collection service is enabled or not
ARLAS_SERVICE_EXPLORE_ENABLE arlas-service-explore-enabled true Whether the explore service is enabled or not
ARLAS_SERVICE_WFS_ENABLE arlas-service-wfs-enabled false Whether the WFS service is enabled or not
ARLAS_SERVICE_OPENSEARCH_ENABLE arlas-service-opensearch-enabled true Whether the opensearch service is enabled or not
ARLAS_SERVICE_CSW_ENABLE arlas-service-csw-enabled true Whether the CSW service is enabled or not
ARLAS_SERVICE_RASTER_TILES_ENABLE arlas-service-raster-tiles-enabled false Whether the RASTER tile service is enabled or not

Datasource

Environment variable ARLAS Server configuration variable Default Description
ARLAS_ELASTIC_NODES elastic.elastic-nodes localhost:9200 comma separated list of elasticsearch nodes as host:port values
ARLAS_ELASTIC_INDEX arlas-index .arlas name of the index that is used for storing ARLAS configuration
ARLAS_ELASTIC_ENABLE_SSL elastic.elastic-enable-ssl false use SSL to connect to elasticsearch
ARLAS_ELASTIC_IGNORE_CERTS elastic.elastic-ignore-certs true do not validate SSL certificate if set to true
ARLAS_ELASTIC_CREDENTIALS elastic.elastic-credentials user:password credentials to connect to elasticsearch
ARLAS_ELASTIC_SOCKET_TIMEOUT elastic.elastic-socket-timeout 30000 connection timeout for the elastic client
ARLAS_ELASTIC_MAX_PRECISON_THRESHOLD elastic.elastic-max-precision-threshold 3000 precision threshold for cardinality requests in elastic

Note

(*) Note that the IP addresses the sniffer connects to are the ones declared as the publish address in those node’s Elasticsearch config.

Important

elastic-host and elastic-port configuration variables do not longer exist in 10.6.0. You can use elastic-nodes instead.

Collection Cache & Disovery

Environment variable ARLAS Server configuration variable Default Description
ARLAS_CACHE_FACTORY_CLASS Cache manager class io.arlas.server.core.impl.cache.LocalCacheFactory Class to be used for the cache manager
ARLAS_CACHE_SIZE arlas-cache-size 1000 Size of the cache used for managing the collections
ARLAS_CACHE_TIMEOUT arlas-cache-timeout 60 Number of seconds for the cache used for managing the collections
ARLAS_REST_CACHE_TIMEOUT arlas-rest-cache-timeout 0 Number of seconds for the cache used for managing the REST responses
ARLAS_COLLECTION_AUTODISCOVER_SCHEDULE collection-auto-discover.schedule 0 Number of seconds between two auto discovery tasks
N/A collection-auto-discover.preferred-id-field-name id,identifier Name of the id field for auto discovery
N/A collection-auto-discover.preferred-timestamp-field-name params.startdate Name of the timestamp field for auto discovery
N/A collection-auto-discover.preferred-centroid-field-name geo_params.centroid Name of the centroid field for auto discovery
N/A collection-auto-discover.preferred-geometry-field-name geo,geo_params.geometry Name of the geometry field for auto discovery

Server

Environment variable ARLAS Server configuration variable Default Description
ARLAS_ACCESS_LOG_FILE server.requestLog.appenders.currentLogFilename arlas-access.log
ACCESS_LOG_FILE_ARCHIVE server.requestLog.appenders.archivedLogFilenamePattern arlas-access-%d.log.gz
ARLAS_APP_PATH server.applicationContextPath / Base URL path
ARLAS_PREFIX server.rootPath /arlas Base sub-path for general API, gets appended to server.applicationContextPath
ARLAS_ADMIN_PATH server.adminContextPath /admin Base sub-path for admin API, gets appended to server.applicationContextPath
ARLAS_PORT server.connector.port 9999
ARLAS_MAX_THREADS server.maxThreads 1024
ARLAS_MIN_THREADS server.minThreads 8
ARLAS_MAX_QUEUED_REQUESTS server.maxQueuedRequests 1024

URL Masking

Environment variable ARLAS Server configuration variable Default Description
ARLAS_BASE_URI arlas-base-uri None Base URI to ARLAS Server. If not set, the real base URI is exposed

OGC

Environment variable ARLAS OGC Server configuration variable Default Description
ARLAS_OGC_SERVICE_PROVIDER_NAME arlas-ogc.serviceProviderName OrganisationName Name of the organization responsible for the establishment, management, maintenance and distribution of the WFS & CSW services
ARLAS_OGC_SERVICE_PROVIDER_SITE arlas-ogc.serviceProviderSite OrganisationWebSite A link to the site of the WFS & CSW service provider
ARLAS_OGC_SERVICE_PROVIDER_ROLE arlas-ogc.serviceProviderRole pointOfContact Function performed by the party responsible for the WFS & CSW services
ARLAS_OGC_SERVICE_CONTACT_NAME arlas-ogc.serviceContactIndividualName John Doe The primary contact person for the WFS & CSW services provider
ARLAS_OGC_SERVICE_CONTACT_MAIL arlas-ogc.serviceContactMail j.doe@mail.com Email of the person/organization responsible for WFS & CSW services
ARLAS_OGC_SERVICE_CONTACT_CITY arlas-ogc.serviceContactAdressCity Toulouse City of the organization responsible for WFS & CSW services
ARLAS_OGC_SERVICE_CONTACT_CODE arlas-ogc.serviceContactAdressPostalCode 31000 Postal code of the organization responsible for WFS & CSW services
ARLAS_OGC_SERVICE_CONTACT_COUNTRY arlas-ogc.serviceContactAdressCountry France Country of the organization responsible for WFS & CSW services
ARLAS_OGC_QUERYMAXFEATURE arlas-ogc.queryMaxFeature 1000 Maximum number of features returned by OGC queries

WFS

Environment variable ARLAS WFS Server configuration variable Default Description
ARLAS_WFS_FEATURE_NAMESPACE arlas-wfs.featureNamespace arlas Namespace of WFS features

CSW

Environment variable ARLAS CSW Server configuration variable Default Description
ARLAS_CSW_TITLE arlas-csw.serviceIdentificationTitle Discovery Service - CSW Title of the CSW service. It's returned in the GetCapabilities Response
ARLAS_CSW_ABSTRACT arlas-csw.serviceIdentificationAbstract Discovery Service - CSW Description of the CSW service. It's returned in the GetCapabilities Response
ARLAS_CSW_LANGUAGE arlas-csw.serviceIdentificationLanguage eng Language of the CSW title and description
ARLAS_CSW_OPENSEARCH_DESCRIPTION arlas-csw.openSearchDescription Geo-BigData Collection Catalog Opensearch description of CSW
ARLAS_CSW_OPENSEARCH_SHORTNAME arlas-csw.openSearchShortName Geo-BigData Collection Catalog Opensearch short name for CSW

STAC

Environment variable ARLAS INSPIRE Server configuration variable Default Description
ARLAS_SERVICE_STAC_ENABLE arlas_service_stac_enabled true Whether to activate STAC compliant response elements
ARLAS_STAC_VERSION arlas_stac.stac_version 1.0.0 STAC version compliancy
ARLAS_STAC_TYPE arlas_stac.type Catalog STAC type
ARLAS_STAC_ID arlas_stac.id arlas STAC id
ARLAS_STAC_TITLE arlas_stac.title Arlas Exploration STAC Title
ARLAS_STAC_DESCRIPTION arlas_stac.description Catalog for Arlas Exploration items STAC description

INSPIRE

Environment variable ARLAS INSPIRE Server configuration variable Default Description
ARLAS_INSPIRE_ENABLED arlas-inspire.enabled false Whether to activate INSPIRE compliant response elements
ARLAS_INSPIRE_SERVICES_DATE_OF_CREATION arlas-inspire.services_date_of_creation 2018-11-16 Date of creation of WFS & CSW services. It must be in YYYY-MM-DD format
ARLAS_INSPIRE_ACCESS_AND_USE_CONDITIONS arlas-inspire.access_and_use_conditions no conditons apply Conditions applied to access and use CSW and WFS services. If no conditions apply to the access and use of the resource, no conditions apply shall be used. If conditions are unknown, conditions unknown shall be used. This element shall also provide information on any fees necessary to access and use the resource, if applicable, or refer to a uniform resource locator (URL) where information on fees is available.
ARLAS_INSPIRE_PUBLIC_ACCESS_LIMITATIONS arlas-inspire.public_access_limitations no limitations apply Limitations applied to access CSW. When Member States limit public access to CSW under Article 13 of Directive 2007/2/EC, this metadata element shall provide information on the limitations and the reasons for them.

Logging

Environment variable ARLAS Server configuration variable Default
ARLAS_LOGGING_LEVEL logging.level INFO
ARLAS_LOGGING_CONSOLE_LEVEL logging.appenders[type: console].threshold INFO
ARLAS_LOGGING_FILE logging.appenders[type: file].currentLogFilename arlas.log
ARLAS_LOGGING_FILE_LEVEL logging.appenders[type: file].threshold INFO
ARLAS_LOGGING_FILE_ARCHIVE logging.appenders[type: file].archive true
ARLAS_LOGGING_FILE_ARCHIVE_FILE_PATTERN logging.appenders[type: file].archivedLogFilenamePattern arlas-%d.log
ARLAS_LOGGING_FILE_ARCHIVE_FILE_COUNT logging.appenders[type: file].archivedFileCount 5

JAVA

Environment variable Description
ARLAS_XMX Java Maximum Heap Size

Helm configuration

Helm is a package management system for kubernetes applications. Its packaging format is called charts. A Helm chart is implemented for arlas-server.

A Helm chart comes with a set of default values. In our case, they are found in file packaging/helm/arlas-server/values.yaml.

When installing the chart, a user can pass its own configuration value (see this section of the official documentation):

helm install -f my_values.yaml packaging/helm/arlas-server

Helm will perform a merge between the two configuration sets, with priority to the user values in case of conflict.

All supported configuration values can be found in packaging/helm/arlas-server/values.yaml:

Key Default value Description
adminPath /admin Base path of the administration API.
affinity {} Allows to declare preferences for the type of node on which arlas-server is to run (more info here).
containerPort 9999 Port on which the arlas-server application will listen inside its container.
deployment.name arlas-server
deployment.labels Additional labels for the deployment.
environmentVariables YAML map of environment variables to be passed to the container.
image.repository gisaia/arlas-server
image.pullPolicy Always See field imagePullPolicy in kubernetes container's resource definition
imagePullSecrets Array of kubernetes secrets to use for authentication to private docker registries (more info in the official documentation page).
namespace default Kubernetes namespace where to install the Chart's components.
nodeSelector {} See here for official kubernetes documentation about nodeSelector.
replicaCount 1
revisionHistoryLimit See here.
resources {} Resource requests & limits for the pod, see here.
service.type ClusterIP See here.
service.port 9999 Port on which arlas-server will be reachable through the service.
tolerations {} Allow to have kubernetes worker nodes repelling arlas-server ("opposite" of affinity, see here for more info).