#############
# Lake core #
#############

# Lake plugin dir, absolute path or relative path
PLUGIN_DIR=bin/plugins
REMOTE_PLUGIN_DIR=python/plugins

# Lake Database Connection String
DB_URL=mysql://merico:merico@mysql:3306/lake?charset=utf8mb4&parseTime=True&loc=UTC
E2E_DB_URL=mysql://merico:merico@mysql:3306/lake_test?charset=utf8mb4&parseTime=True&loc=UTC
# Silent Error Warn Info
DB_LOGGING_LEVEL=Error

# Lake REST API
PORT=8080
MODE=release

NOTIFICATION_ENDPOINT=
NOTIFICATION_SECRET=

API_TIMEOUT=120s
API_RETRY=3
API_REQUESTS_PER_HOUR=10000
PIPELINE_MAX_PARALLEL=1
#TEMPORAL_URL=temporal:7233
TEMPORAL_URL=
TEMPORAL_TASK_QUEUE=
# Debug Info Warn Error
LOGGING_LEVEL=
LOGGING_DIR=./logs
ENABLE_STACKTRACE=true
FORCE_MIGRATION=false

# Lake TAP API
TAP_PROPERTIES_DIR=

DISABLED_REMOTE_PLUGINS=

##########################
# Sensitive information encryption key
##########################
ENCRYPTION_SECRET=

##########################
# Set if skip verify and connect with out trusted certificate when use https
##########################
IN_SECURE_SKIP_VERIFY=
