Configuration

The service allowed two variant of configuration:

  1. use the Configurator service

  2. use the configuration file

The service reads settings from the configuration file by default.

You can specify the –luna-config option for pulling settings from the Configurator service, see configurator.

Auto reload configuration

The service supports an auto-reload of configurations. You can enable this feature by specifying a config-reload option in the command line. The service periodically checks new settings. If current settings and new pulled settings are the same the service will not perform any actions. You can specify the check period in the pulling-time command line argument (10 seconds by default).

If a configuration fetching has failed, the service will work without applying any changes to the existing configurations.

If check connections with the new configuration have failed, the service will retry pulling new configuration after pulling-time seconds. The service will shut down after 10 failed attempts.

Warning

Service can work incorrectly while the new settings are being applied. It is strongly recommended not to send requests to the service when you change important settings.

During configuration reload any existing HTTP connections to the service will be closed.

Configuration file for administrator

# LUNA API configuration file

[LUNA_CONFIGURATOR]
#: [integer] load configs from LUNA Configurator
USE_CONFIGURATOR = 1
#: [string] LUNA Configurator protocol, IP address, and port
LUNA_CONFIGURATOR_ORIGIN = http://127.0.0.1:5070
#: [integer] API version of the LUNA Configurator
LUNA_CONFIGURATOR_API = 1


[INFLUX_MONITORING]

#: [integer] send data for monitoring to InfluxDB
SEND_DATA_FOR_MONITORING = 0
#: [string] InfluxDB 2.x workspace
ORGANIZATION =
#: [string] InfluxDB 2.x authentication token
TOKEN =
#: [string] InfluxDB 2.x bucket name
BUCKET = luna_monitoring
#: [string] InfluxDB IP address
HOST = 127.0.0.1
#: [integer] InfluxDB port
PORT = 8086
#: [integer] use HTTPS to connect to InfluxDB
USE_SSL = 0
#: [integer] frequency of sending monitoring data to InfluxDB (in seconds)
FLUSHING_PERIOD = 1


[LUNA_API_LOGGER]

#: [string] folder, where logs are saved (relative path begins in directory with application)
FOLDER_WITH_LOGS = ./
#: [string] level of debug print, by priority: "ERROR", "WARNING", "INFO", "DEBUG"
LOG_LEVEL = INFO
#: [string] time format used in log records: "LOCAL" or "UTC"
LOG_TIME = LOCAL
#: [integer] maximum log file size in megabytes before performing rotation (0 - without rotation)
MAX_LOG_FILE_SIZE = 1024
#: [integer] send log to stdout
LOG_TO_STDOUT = 1
#: [integer] send log to file
LOG_TO_FILE = 1
#: [integer] allow multiline stack trace in logs
MULTILINE_STACK_TRACE = 1


[LUNA_FACES_ADDRESS]

#: [string] LUNA Faces protocol, IP address, and port
ORIGIN = http://127.0.0.1:5030
#: [integer] API version of the LUNA Faces
API_VERSION = 3


[LUNA_FACES_TIMEOUTS]

#: [integer] HTTP connection timeout
CONNECT = 30
#: [integer] HTTP request timeout (total)
REQUEST = 60


[LUNA_IMAGE_STORE_FACES_SAMPLES_ADDRESS]

#: [string] LUNA Image Store protocol, IP address, and port
ORIGIN = http://127.0.0.1:5020
#: [integer] API version of the LUNA Image Store (for samples)
API_VERSION = 1
#: [string] *bucket* name, where samples will be stored
BUCKET = visionlabs-samples


[LUNA_IMAGE_STORE_FACES_SAMPLES_TIMEOUTS]

#: [integer] HTTP connection timeout
CONNECT = 30
#: [integer] HTTP request timeout (total)
REQUEST = 60


[LUNA_IMAGE_STORE_BODIES_SAMPLES_ADDRESS]

#: [string] LUNA Image Store protocol, IP address, and port
ORIGIN = http://127.0.0.1:5020
#: [integer] API version of the LUNA Image Store (for samples)
API_VERSION = 1
#: [string] *bucket* name, where samples will be stored
BUCKET = visionlabs-bodies-samples


[LUNA_IMAGE_STORE_BODIES_SAMPLES_TIMEOUTS]

#: [integer] HTTP connection timeout
CONNECT = 30
#: [integer] HTTP request timeout (total)
REQUEST = 60


[LUNA_IMAGE_STORE_IMAGES_ADDRESS]

#: LUNA Image Store protocol, IP address, and port (for origin images)
ORIGIN = http://127.0.0.1:5020
#: API version of the LUNA Image Store (for origin images)
API_VERSION = 1
#: *bucket* name, where origin images will be stored
BUCKET = visionlabs-image-origin


[LUNA_IMAGE_STORE_IMAGES_TIMEOUTS]

#: [integer] HTTP connection timeout
CONNECT = 30
#: [integer] HTTP request timeout (total)
REQUEST = 60


[LUNA_IMAGE_STORE_OBJECTS_ADDRESS]

#: LUNA Image Store protocol, IP address, and port (for objects)
ORIGIN = http://127.0.0.1:5020
#: API version of the LUNA Image Store (for objects)
API_VERSION = 1
#: *bucket* name, where objects will be stored
BUCKET = visionlabs-objects


[LUNA_IMAGE_STORE_OBJECTS_TIMEOUTS]

#: [integer] HTTP connection timeout
CONNECT = 30
#: [integer] HTTP request timeout (total)
REQUEST = 60


[LUNA_SENDER_ADDRESS]
#: LUNA Sender protocol, IP address, and port
ORIGIN = http://127.0.0.1:5080
#: API version of the LUNA Sender
API_VERSION = 2


[ADDITIONAL_SERVICES_USAGE]

#: [integer] send events to LUNA Events for storing
LUNA_EVENTS = 1
#: [integer] use LUNA Tasks
LUNA_TASKS = 1
#: [integer] use LUNA Python Matcher Proxy instead of LUNA Python Matcher
LUNA_MATCHER_PROXY = 1
#: [integer] use Liveness
LIVENESS = 0
#: [integer] use LUNA Sender
LUNA_SENDER = 1


[LUNA_EVENTS_ADDRESS]

#: [string] LUNA Events protocol, IP address, and port
ORIGIN = http://127.0.0.1:5040
#: [integer] API version of the LUNA Events
API_VERSION = 2


[LUNA_EVENTS_TIMEOUTS]

#: [integer] HTTP connection timeout
CONNECT = 30
#: [integer] HTTP request timeout (total)
REQUEST = 60


[LUNA_HANDLERS_ADDRESS]

#: [string] LUNA Handlers protocol, IP address, and port
ORIGIN = http://127.0.0.1:5090
#: [integer] API version of the LUNA Handlers
API_VERSION = 1


[LUNA_HANDLERS_TIMEOUTS]

#: [integer] HTTP connection timeout
CONNECT = 30
#: [integer] HTTP request timeout (total)
REQUEST = 60


[LUNA_PYTHON_MATCHER_ADDRESS]

#: LUNA Python Matcher protocol, IP address, and port
ORIGIN = http://127.0.0.1:5100
#: API version of the LUNA Python Matcher
API_VERSION = 1


[LUNA_PYTHON_MATCHER_TIMEOUTS]

#: CONNECT TIMEOUT
CONNECT = 30
#: REQUEST TIMEOUT (total)
REQUEST = 60


[LIVENESS_ADDRESS]

#: Liveness service protocol, IP address, and port
ORIGIN = http://127.0.0.1:8080


[LUNA_MATCHER_PROXY_ADDRESS]

#: LUNA Python Matcher Proxy protocol, IP address, and port
ORIGIN = http://127.0.0.1:5110
#: API version of the LUNA Python Matcher Proxy
API_VERSION = 1


[LUNA_PYTHON_MATCHER_PROXY_TIMEOUTS]

#: CONNECT TIMEOUT
CONNECT = 30
#: REQUEST TIMEOUT (total)
REQUEST = 60


[LUNA_TASKS_ADDRESS]

#: [string] LUNA Tasks protocol, IP address, and port
ORIGIN = http://127.0.0.1:5050
#: [integer] API version of the LUNA Tasks
API_VERSION = 2


[LUNA_TASKS_TIMEOUTS]

#: [integer] HTTP connection timeout
CONNECT = 30
#: [integer] HTTP request timeout (total)
REQUEST = 60


[LUNA_LICENSES_ADDRESS]

#: LUNA Faces protocol, IP address, and port
ORIGIN = http://127.0.0.1:5120
#: API version of the LUNA Faces
API_VERSION = 1


[LUNA_HANDLERS_LIVENESS_SETTINGS]

#: Liveness v2 probability threshold
REAL_THRESHOLD = 0.5


[LUNA_ACCOUNTS_ADDRESS]

#: [string] LUNA Accounts protocol, IP address, and port
ORIGIN = http://127.0.0.1:5170
#: [integer] API version of the LUNA Accounts
API_VERSION = 1


[LUNA_ACCOUNTS_TIMEOUTS]

#: [integer] HTTP connection timeout
CONNECT = 30
#: [integer] HTTP request timeout (total)
REQUEST = 60


[OTHER]

#: [list(string)] list of active plugins
LUNA_API_ACTIVE_PLUGINS = []
#: [integer] whether to allow Luna-Account-Id auth header
ALLOW_LUNA_ACCOUNT_AUTH_HEADER = 1
#: [string] time format used in database records: "LOCAL" or "UTC"
STORAGE_TIME = LOCAL
#: [integer] default face descriptor version
DEFAULT_FACE_DESCRIPTOR_VERSION = 59

Extended administrator configuration

Module parses a config file and sets values in the global variables.

configs.config.FETCH_EXTERNAL_IMAGE_CONCURRENCY = 10

concurrency limit for fetching

configs.config.LIVENESS_PREDICT_CONCURRENCY = 1

concurrency limit for predicting

configs.config.LIVENESS_V1_QUALITY_THRESHOLD = 0.2

liveness v1 quality threshold of “appropriate image” in the calculation of aggregate estimates