GuidesChangelogData Inspector Library API Reference
Guides

Data Client Base Library settings

Data Client Base Library settings

The Data Client Base Library is configured via Typesafe Config. Usually this means that you provide an application.conf which contains all the application-specific settings that differ from the default settings.

The following are the relevant default configuration values for the Data Client Base Library.

com.here.platform.data.client {
  enable-instrumentation = true
    # proxy {
    #   host = "localhost"
    #   port = 1000
    #   credentials {
    #     username: "user"
    #     password: "pass"
    #   }
    # }

  request {
    defaults {
      retry-policy {
        # initial timeout between retries
        init-timeout = "10 millis"
        # max timeout between retries
        request-timeout = "30 seconds"
        # overall timeout of all retried requests
        overall-timeout = "10 minutes"
        # strategy of increasing timeouts between retries
        retry-strategy = "exponential"
        # max number of retries, 0 is infinite
        max-attempts = 5
        # http retriable errors
        http-retriable-errors = [408, 499, 500, 502, 503, 504]
      }
      # The time after which the blocking request will be failed
      blocking-timeout = "5 minutes"
    }
    # example
    # configApi {
    #   defaults { # <<< This applies for any ConfigApi call if there is no policy defined on any other lower level in ConfigApi
    #     retry-policy {
    #       init-timeout = "10 millis"
    #       request-timeout = "30 seconds"
    #       overall-timeout = "10 minutes"
    #       retry-strategy = "exponential"
    #       max-attempts = 5
    #       http-retriable-errors = [408, 500]
    #     }
    #     blocking-timeout = 1 minutes
    #   }
    #   base-url = "https://some.host.com" # <<< use specified base url instead of querying Lookup API/Service registry
    #   getCatalogs { # <<< This applies for ConfigApi.getCatalogs call
    #     retry-policy {
    #       overall-timeout = "30 minutes" # <<< all undefined values come from parent, so from ConfigApi-defaults
    #     }
    #     blocking-timeout = 30 seconds
    #   }
    # }
  }

  http {
    call-timeout = "3 minutes"
    connect-timeout = "30 seconds"
    write-timeout = "2 minutes"
    read-timeout = "2 minutes"
    # user-agent-suffix = "default"
    request-logging = "none"
    max-open-requests = 10
    max-requests-per-host = 5

    # The time after which an idle connection will be evicted (time of inactivity)
    # Must be greater than zero.
    idle-timeout = "60 seconds"

    # The maximum number of idle connections for each address.
    max-connections = 16

    # The maximum number of concurrent HTTP requests allowed per host.
    # This limits in-flight requests to the same endpoint.
    max-requests-per-host = 5

    # Whether to automatically release HTTP client resources at JVM termination
    auto-shutdown = true
  }

  endpoint-locator {
    # Determines which environment to use for the discovery service's endpoints.
    # Possible values are: 'here', 'here-dev', 'here-cn', 'here-cn-dev', 'custom'.
    # If 'custom' is specified then 'discovery-service-url' property MUST be set.
    discovery-service-env = here

    # Defines a URL for a custom discovery service endpoint.
    # discovery-service-url = "<custom discovery service URL>"
    # Retry policy for lookup service
    retry-policy {
        # max number of retries
        max-attempts = 5
        # max timeout between retries
        request-timeout = "30 seconds"
        # http retriable errors
        http-retriable-errors = [499, 500, 502, 503, 504, 429]
    }
  }
  request-signer {
    # Billing tag, if provided will be added to every outgoing request.
    # billing-tag = "example_billing_tag"

    # Define credentials which will be used to sign outgoing requests.
    # If this configuration is ommited then credentials from ~/.here/credentials.properties file will be used.
    # Otherwise only one of "file-path", "here-account", "here-token" configurations should be specified.
    # credentials {
    # Absolute path of properties file in file system. File should contain follow properties:
    #     here.token.scope
    #     here.token.endpoint.url
    #     here.client.id
    #     here.access.key.id
    #     here.access.key.secret
    # file-path = "/path/credentials.properties"

    # Settings for HERE account credentials, to sign any outgoing requests.
    # here-account {
    #   here-token-scope = "hrn:here:authorization:::project/example-project"
    #   here-token-endpoint-url = "https://account.api.here.com/oauth2/token"
    #   here-client-id = "example-client-id"
    #   here-access-key-id = "example-access-key-id"
    #   here-access-key-secret = "example-access-key-secret"
    # }

    # Settings for HERE Token credentials, to sign any outgoing requests.
    # here-token = "example-token"

    # }

    # Settings for HERE Token credentials, to sign any outgoing requests.
    # here-token = "example-token"
  }
}