Skip to content

Configuration

Jérémy edited this page Dec 8, 2022 · 9 revisions

Each service has its own JavaScript configuration files.

Default configuration can be overridden in 2 ways:

  • Providing a local.js file in service config folder.
    Settings specified in this file will override default ones (more info here).
  • Setting environment variables at runtime

Core

Configuration folder: apps/core/config

Available settings

All mandatory settings have no default value and must be provided.

Environment variable Description Default value Mandatory
 
Core server
SERVER_HOST Server host localhost
SERVER_PORT Server port 4001
SERVER_PUBLIC_URL Public URL http://localhost:4001
SERVER_WS_URL Websocket URL http://localhost:4001
API_ENDPOINT GraphlQL API endpoint graphql
SERVER_ALLOW_INTROSPECTION Allow GraphQL introspection queries true
SERVER_UPLOAD_LIMIT Upload limit 100mb
SERVER_SUPPORT_EMAIL Email shown in "contact support" links *
SERVER_ADMIN_LOGIN Admin default login *
SERVER_ADMIN_PASSWORD Admin default password *
SERVER_ADMIN_EMAIL Admin default email *
SERVER_SYSTEM_USER_EMAIL System user default email system@leav-engine.com
 
ArangoDB
ARANGO_URL ArangoDB URL, including username and password *
DB_NAME Database name *
 
Cache
DISK_CACHE_DIRECTORY Directory where disk cache will be stored /cache
 
Elastic Search
ELASTICSEARCH_URL Elastic Search URL http://elasticsearch:9200
 
Authentication
AUTH_KEY Key used to generate authentication token *
TOKEN_TTL Authentication token Time To Live 7d
AUTH_COOKIE_SAMESITE samesite settings for authentication cookies lax
AUTH_COOKIE_SECURE secure flag for authentication cookies false
AUTH_RESET_PWD_TTL "Reset password" time to live 20m
 
Sending emails
MAILER_HOST Host of server for sending emails localhost
MAILER_PORT Port of server for sending emails 587
MAILER_SECURE Use secure connection for sending emails false
MAILER_AUTH_USER Emails server username *
MAILER_AUTH_PWD Emails server password *
 
Languages
LANG_AVAILABLE Available languages ['fr', 'en']
LANG_DEFAULT Default language fr
 
Logs
LOG_LEVEL Log level (more info) info
LOG_TRANSPORT Log transport (Comma separated list of transport, including : console, file) console,file
LOG_FILE Log destination file * (if transport includes "file")
 
RabbitMQ
AMQP_HOST Host of RabbitMQ server *
AMQP_USERNAME Username of RabbitMQ server *
AMQP_PWD Password of RabbitMQ server *
AMQP_PORT Port of RabbitMQ server 5672
AMQP_EXCHANGE Exchange name where RabbitMQ messages are sent leav_core
AMQP_TYPE Type of exchange for messages routin (more info) direct
AMQP_PREFETCH Number of messages fetched simultaneously 5
 
Redis
REDIS_HOST Host of Redis server *
REDIS_PORT Port of Redis server *
REDIS_DATABASE Database number on Redis server 0
 
Files manager
FM_EVENTS_QUEUE Queue for files events files_events
FM_PREVIEW_REQUEST_QUEUE Queue for preview requests messages files_preview_request
FM_PREVIEW_RESPONSE_QUEUE Queue for preview response messages files_preview_response
FM_USER_ID ID of user used for all files related actions (eg. create records, update, ...) 2 (system user)
FM_USER_GROUPS_IDS ID of group for user used for all files related actions 1 (files admins group)
FILES_ROOT_PATHS Files root path by root key (eg. files1:/files,files2:/other_files_folder files1:/files
FILES_ORIGINALS_PREFIX Public path prefix for original files URL originals
 
Tasks manager
TM_NB_WORKERS Number of simultaneous workers Number of CPUs available
TM_ORDERS_QUEUE Queue for tasks orders (eg. creation, cancel, ...) tasks_orders
 
Debug more
DEBUG Enable debug mode false
 
Export
EXPORT_DIR Directory where export files are stored /exports
 
Import
IMPORT_DIR Directory where import files are stored /imports
IMPORT_SIZE_LIMIT Limit size (in megabytes) where the JSON file syntax is checked. This process requires a lot of memory. Setting this limit too high may make the whole process to crash if we reach memory limit 10
IMPORT_GROUP_DATA Number of elements processed simultaneously, to limit load on database server 50
 
Previews
PREVIEWS_DIRECTORY Directory where previews generated by previews generator are stored /results
 
Applications
APPLICATIONS_FOLDER Directory where applications instances (builds) are stored applications
 
DB Profiling
DB_PROFILER_ENABLE Enable database profiling. This will add a "dbProfiler" section in all API calls. Do not use in production as it slows down every calls to DB

Automate Scan

Configuration folder: apps/automate-scan/config

Available settings

All mandatory settings have no default value and must be provided.

Environment variable Description Default value Mandatory
 
Allowed/ignored files
ALLOW_FILES_LIST List of comma seperated minimatch patterns of allowed files '' (all allowed)
IGNORE_FILES_LIST List of comma seperated minimatch patterns of ignored files '' (nothing ignored)
 
Root settings
ROOT_PATH Directory to monitor *
ROOT_KEY Root key to identify events related to this directory among all events. Useful when running multiple automate scan on multiple directories. Still mandatory even with only one automate scan running *
 
Redis
REDIS_HOST Host of Redis server *
REDIS_PORT Port of Redis server *
 
RabbitMQ
AMQP_PROTOCOL Protocol for communication with RabbitMQ amqp
AMQP_HOST Host of RabbitMQ server *
AMQP_PORT Port of RabbitMQ server 5672
AMQP_USERNAME Username of RabbitMQ server *
AMQP_PWD Password of RabbitMQ server *
AMQP_QUEUE Queue for files events files_events
AMQP_EXCHANGE Exchange where messages are sent leav_core
AMQP_ROUTING_KEY Routing key of messages files.event
AMQP_TYPE Exchange type direct

Preview generator

Configuration folder: apps/preview-generator/config

Available settings

All mandatory settings have no default value and must be provided.

Environment variable Description Default value Mandatory
Paths
INPUT_ROOT_PATH Original files path *
OUTPUT_ROOT_PATH Directory where generated files are stored *
ICC_PATH Path of ICC profiles *
 
RabbitMQ
AMQP_HOST Host of RabbitMQ server *
AMQP_PORT Port of RabbitMQ server 5672
AMQP_USERNAME Username of RabbitMQ server *
AMQP_PWD Password of RabbitMQ server *
AMQP_TYPE Exchange type direct
AMQP_QUEUE_IN Queue where preview request are read files_preview_request
AMQP_EXCHANGE_IN Exchange where preview request are read leav_core
AMQP_ROUTING_KEY_IN Routing key of preview requests messages files.previewRequest
AMQP_QUEUE_OUT Queue for preview request responses files_preview_response
AMQP_EXCHANGE_OUT Exchange where preview response are sent leav_core
AMQP_ROUTING_KEY_OUT Routing key of preview response messages files.previewResponse
 
Verbose mode
VERBOSE Enable verbose mode. Will log any preview request received and generated files

Sync scan

Configuration folder: apps/sync-scan/config

Available settings

All mandatory settings have no default value and must be provided.

Env variable Description Default value Mandatory
 
Allowed/ignored files
ALLOW_FILES_LIST List of comma seperated minimatch patterns of allowed files '' (all allowed)
IGNORE_FILES_LIST List of comma seperated minimatch patterns of ignored files '' (nothing ignored)
 
GraphQL API (core)
GRAPHQL_URI URL of GraphQL API *
GRAPHQL_API_KEY API key for authentication *
GRAPHQL_TREE_ID ID of files tree to compare file system against files_tree
 
Files path
FILESYSTEM_ABSOLUTE_PATH Directory to check *
 
RabbitMQ
AMQP_PROTOCOL Protocol for communication with RabbitMQ amqp
AMQP_HOST Host of RabbitMQ server *
AMQP_PORT Port of RabbitMQ server 5672
AMQP_USERNAME Username of RabbitMQ server *
AMQP_PWD Password of RabbitMQ server *
AMQP_EXCHANGE Exchange where messages are sent leav_core
AMQP_ROUTING_KEY Routing key of messages files.event
AMQP_TYPE Exchange type direct
AMQP_ROOT_KEY Files root key files1