# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

## FlowAuth settings
# Database that stores users and servers, defaults to temporary sqlite
#SQLALCHEMY_DATABASE_URI
# Flask secret key for CSRF protection
SECRET_KEY=secret
# At rest encryption of server secret keys
FLOWAUTH_FERNET_KEY="XU-J5xNOtkaUKAoqWT7_VoT3zk2OTuoqKPBN3l0pOFg="
# Creates demo data when running
DEMO_MODE=true
# Required by flask
FLASK_APP=flowauth
# Enable/disable flask debug/autoreload
FLASK_DEBUG=1
FLOWAUTH_PORT=9091
FLOWAUTH_ADMIN_PASSWORD=DUMMY_PASSWORD
FLOWAUTH_ADMIN_USERNAME=TEST_ADMIN
FLOWAUTH_LOG_LEVEL=debug
FLOWAUTH_CACHE_BACKEND=memory

## FlowAPI settings
# Shouldn't be relevant as serving now done by hypercorn?
QUART_APP="flowapi.main:create_app()"
# Shouldn't be relevant as serving now done by hypercorn?
QUART_DEBUG=1
# Error & debug log level
FLOWAPI_LOG_LEVEL=debug
# Flowmachine ZMQ host
FLOWMACHINE_HOST=localhost
FLOWAPI_PORT=9090
FLOWAPI_IDENTIFIER=TEST_SERVER


# Hostname to connect to flowdb
FLOWDB_HOST=localhost
# Port to connect to flowdb
FLOWDB_PORT=9000

## FlowMachine settings
# To avoid mpl errors
MPLBACKEND="agg"
# Password for redis
REDIS_PASSWORD=fm_redis
# Error and debugging log level
FLOWMACHINE_LOG_LEVEL=debug

# Number of connections to keep open to flowdb
#DB_CONNECTION_POOL_SIZE
# Number of connections to open in addition if needed
#DB_CONNECTION_POOL_OVERFLOW

# Hostname of redis
REDIS_HOST=localhost
# Port to connect to redis
REDIS_PORT=6379

## FlowMachine server settings
#asyncio debug mode
FLOWMACHINE_SERVER_DEBUG_MODE=false
FLOWMACHINE_SERVER_DISABLE_DEPENDENCY_CACHING=false

#Port to listen on for zmq
FLOWMACHINE_PORT=5555

## FlowDB Settings
# Superuser
POSTGRES_USER=flowdb
# Superuser password
POSTGRES_PASSWORD=flowflow
# Flowmachine user username
FLOWMACHINE_FLOWDB_USER=flowmachine
# Flowapi user username
FLOWAPI_FLOWDB_USER=flowapi
# Off by default, enables pldebugger
FLOWDB_ENABLE_POSTGRES_DEBUG_MODE=False
# Password for flowmachine user
FLOWMACHINE_FLOWDB_PASSWORD=foo
# Password for flowapi user
FLOWAPI_FLOWDB_PASSWORD=foo
# Size in bytes to limit cache to
CACHE_SIZE=100000
# Decay rate for cache records
CACHE_HALF_LIFE=10000
# Number of seconds to protect cache records from deletion
CACHE_PROTECTED_PERIOD=3600
# Max number of CPUs to use
#MAX_CPUS
# Max number of worker processes to use
#MAX_WORKERS
# Max number of worker processes to use per query
#MAX_WORKERS_PER_GATHER
# Size of postgres shared memory buffers
#SHARED_BUFFERS_SIZE
# Set the postgres 'effective_cache_size' parameter
#EFFECTIVE_CACHE_SIZE
# Enable/disable postgres JIT
#JIT
# Default stats target for tables
#STATS_TARGET

# Synthetic data settings
# Which data generator to use
SYNTHETIC_DATA_GENERATOR=sql
N_SITES=200
N_CELLS=1000
N_SUBSCRIBERS=50000
N_DAYS=60
N_CALLS=20000
N_SMS=20000
N_MDS=20000
N_TACS=10000
P_OUT_OF_AREA=0.1
P_RELOCATE=0.1
INTERACTIONS_MULTIPLIER=5
DISASTER_START=2016-02-11
DISASTER_END=2016-03-01
DISASTER_REGION_PCOD="524 4 12"
SUBSCRIBERS_SEED=12345
CALLS_SEED=22222
CELLS_SEED=99999
OUTPUT_ROOT_DIR=/docker-entrypoint-initdb.d

# Integration tests

FLOWKIT_INTEGRATION_TESTS_DISABLE_AUTOSTART_SERVERS=FALSE

# FlowETL
SQL_ALCHEMY_CONN=postgres://flowetl:flowetl@flowetl_db:5432/flowetl
FLOWETL_FERNET_KEY=ssgBqImdmQamCrM9jNhxI_IXSzvyVIfqvyzES67qqVU=
FLOWETL_PORT=8080
FLOWETL_POSTGRES_PASSWORD=flowetl
FLOWETL_POSTGRES_USER=flowetl
FLOWETL_POSTGRES_DB=flowetl
FLOWETL_POSTGRES_PORT=9001
FLOWETL_AIRFLOW_ADMIN_USERNAME=admin
FLOWETL_AIRFLOW_ADMIN_PASSWORD=password
FLOWETL_AIRFLOW_PG_POOL_SLOT_COUNT=4

HOST_DAGS_DIR=./flowetl/mounts/dags

# JWT keypair

PRIVATE_JWT_SIGNING_KEY=LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQ0KTUlJSkp3SUJBQUtDQWdFQTJVS0ZGOHNObnNMc3g3cXRTUFBjTnFyRTVMd0pPeWlLZFI2emd3NlloMk9DVHU3SQ0KNGY4b2Fpdk5KWWNuNElGMzRlUnFSemRURldaeEJwS2VKQnJHa1UyKzVCbVNneERFbEJxVWxBQ1B2eHNVV2lheQ0Kd2l3REZRdHEvakd6K3BabitCU09DK3V0VmM4alpiUWhWRVFDRi9nckk3eTZpUHBWYk01Tjkva0FPQS9kYi9ESQ0KbHRpaG9sQ1cvU3pmRzMzckx4U3phS215dm9BREl6Q01iWnJCQVJ6Y21ibzVyT1dyWEdtUldTSXhlMTRscnl1bg0KeEZIVzZNZkQ0RmhsZHV0S2RKSFBrQWp5ZDJacU03U3dUL1NGeXc2L3paeEpyeUtNbmNwbm1GZ2JpMEtwdG5CUQ0KaVpCTm5CQzlpK24wNFlqUzBtaHZkT2VTTHRiS05nUktzM0dqWWkwVXhSdy9WTXRPcGJCVStSM0dDVVFlZWE1Vw0KR3l4NmJuQmM3V3RCL014TEVNVTlRMXI1TEtwTDlNZXd3cUdzV2FGOEw5NGMvQklFek9Vdkx2bS9XYTk0QWhQQw0KT2d4cXBBM0tyait5QmdNeGp2NVdmQU53eHcxYnVIQ09INTAyME51dmF4RjVjejJVaDlQSDZma0MzaUFCenNkVg0KbGY2cVJEK2pGY2N4S0lqWU5WeXJHcmFySzJHc1k1OEJKYmJuOFp6WCtWMmtsN2FmeDJPZHJCd1dacFMySnFFNw0KWGZCOXZhR0lELzhhQ0xXN2wzRDUvVHNYTDNSMnUwaHRUNjNmMk5sc0FwWnFiRDk5WnZpbVlBWVNYL2VCRUlVVw0KK2FtQkhNaG5jRytVckIvb2ZBUkpKOFlOWHlmRDM3UzdpWlU4M2grOVU3UzN1YzR3bFUwZDh1N2dQZTBDQXdFQQ0KQVFLQ0FnQmtiR2dDd0h2eU41MmxFTGZLY2RZSGV0WDUrS1Mzc0p5WFdIS1hrS2FXWmp1MGFwRjJUVEFNSzJUdg0KQk5NODVmdFk4ZkRpTEVOK0w5VHN1ZGJaVDNzYmJQbGdqQ1Y1NmNWRHhDbUxZOXNOOWVGcGJsdlFmdkdKeDdaVA0KK3Z0N1NBeVUwa042WlJ6QS9qY1phckxCTlpKV0xBTWN5TDdjVkFJcWdnM3VJaTJrdkVpWjFvMlJsRjdhSFRBOQ0KcElFWVB4TDN0elRhbXg0aENpRHBJaWEyL3dKWmxsS3R5RE9pcEtLWjI3NHdtaXFQSU15QWRNaGVhWW5TSFl4Lw0KNWJ3NHhMZXN2RDFhRVppcDhqQUM2SEZhOCtib0hsQXdKUjYyRWwwM0Ruam1KVXZPQ2lsU1NBWWlJQTZQcGZsSA0KZEFRYVA5bGJJcVRxUDZRRmZJa0pnT0JhbzV0bUN2RVB3N3luN1pmVEdUVG5sM3JFRFZmZWIvYXJYMHVyYU5VWA0KUEZHcm9LSThkZEY1Ti9uQlFaU0pLL0pkUkMxUDBaUlM4WGlLMGNPYjh0L2F5UGF2alRlT1NWQUVKMnI3UGlKMA0KMWJ6b21MZWtDTWdrSkxhU2VQQzJkYjRVQ1NVNkhzcnRPSVFaVEJKNVcwREI4a3NZamlUWUhBaWlUaVI4aXdjbg0KeXRpMTlVYmg4OEVsajZSRHA5b0RjbHJCN21QV0JoNG9vRVI1NVVzVENPd2NZQ2VVVW1zaHNzNGV3czJ6d0crcw0KTVU5R2t3aEphWk1KQkpQdWFJNThIOFgxZHc4eDI3emlZU3BaUGtFQkxLNXVCQzk3SjZMK05qUFRjZWdWaFFocw0KVmw4OTBIQ2NuN3VJM1ZaR3IwMHBIbklDRlJhV01qaUFURURYZVNXZGZwL2lQeVlBclFLQ0FRRUE3b1hORUpaYg0KdUIvbHJpQjhOVHQ1MG0zSExwVHg1VXVnd2JGUnIzSll1L1V1VmFyUnRxRW1pWEkza05GeHMxY3pSc3NVM085Sw0KQS9wT0Y1S3BUaTU3Y3V3MVZ6UnhTZDRKR3EzbHVkeWZGUnFGYzNiRGlTMnp4TFhTK3NFRjlhUnhsbWJFMVgvVA0KZWFZNnZzandYelMycUxGOUtjSjFuM05BcHJHV01mc2o4TTdabG9qTzBaanRtZWlSN3JpTTdLQmpVTHZsdFJ1bw0KbVhvV2FXWWF5VWR2dWlxbG5CdGZIUFZSVzdRVmJuSlBDR3RJTGxtYW1lZkRJOEVscnhNMHp3cFpqNFhEK0h2Rw0KdTRoNXR5dG5qQjJNL05RTzBONC9VMUx5YnVKV2lsc1Q3dnM3SHZRS3gwTTFqenZpNVdNNlh6UzRZTnd0MmlrTA0KWWFzeEt1NnBZOXFvcHdLQ0FRRUE2UzNmS3dqSVQ4MWg3eCtEeG82OUxjd1VaeWRDekwwbXN1SVFqL3h1T0tGSw0KU1lieEswMms5M2YvMGNlRVV2dzBpUjZKOVBSYzVNRlcxZFBHdml1cVc1NW5kcHFpU2N0dWJneDVPQWQrM2FqZA0KeDlwM0FJV3cveVplMDZBMkljSjJvT1BaSHdsdjVncExnekdFZlQzQnRUOExFYjNWZTV5QW1PZFZaWDVabDVUaA0KRkhTQytHNzZWV0xjVHVMc1FlY0xVOFhqcDNwSmxPTUhWZ3oyOVg3QTlGdTQ0VnpjbWVsVS9WbTFFd1dNQ2tQaw0KUWVlSERDRnBhOFVJL2hPSjdrQklQYUdKNDBQTlFTU0VudVB1bSs3THZHSThPNGtTbFFaQjFWM3BZN3FBV3FjNA0Kb01jOGViOWpOVjd3UHpjdGhuNmlPQk11UDFsTXlyejk4Y2luUjI0alN3S0NBUUJFNzV6RngzNzRweGRkalB2NA0KOHBpUnpiSjhid1crYkc0b3JOUGI3aU5oSjBwZDdnR3dVOERzaG5zeXVxV3UzR3Z3Y084MXIxN242V2E2ZjJPNQ0KT2N2cCtnU3NrSGFSajc5MzIzeUNqQlhhSnBFZFB0emlmN2Z1Q1ZMUnNBbkY1ZUlDUXU5dWVRUW9xM2RjL253aQ0KTi96Mm9sMTNQVUY3ZFBiaGRuL2ZNQ05DRExac1FGdnR6ZElWNGxhUzlQbWR4ZmtPTTAvL1dPQVFnMjJJeHI3Rg0KSDRWVis4OWpYN0hNajhZVXgrWk54bkc3RUM2TFh0QkUzT3ZVSUpXQWxQOTFPeHVKVkhMQUZSM3B3MWJTTHBROQ0KdGFpeXhhTUdrTVVpa3QySVdKZ0VZckJQS0lMOHZqR0RSNVJxTWpld2JrNUhoOWdsL2x5dUthQ2xlTEc4SThBSA0KSVFJUEFvSUJBRzVQd1MvK3E2VDFLTXVUUVNnQ0J3VlBjcWVLTDFQa2VCWlFWRDJKMGlzQVFzQ2VFaUhHVGJDMQ0KR0ZVSjZsUEg5S0taeS9JU1dJL3YxMEM1TzJCa0QrZmYvRnBqdFRyci9vWVphSTlWSEhPSW04TWNXd2ZvTjErOQ0KcTBhNm1HRklPZzdMTzhBdkdyemRTZlA2elE3aTFHMEdNaHBta0VRMk9iQWNZSTN2UkRzdHQzMlIwUlB1akljdw0KaWNEWUlhVGJ4TVFRN2k0ZzhBWjdrTkRvdVR4U2hyNFRWbGRuTXdXdEdRUHlHSE96UUJqckhXVUFQeWRCOXptQQ0Kc1V4aHVmTDRmalNKNDAyY21kR2prUW9LRXF1NlFMQVNXU1JoS0dWUDNIMHdQR1Z0cWFNNVVOVGU3SUU4UlpiTw0KSHlJSTNJU3dDOVl6WE1HallXellFOXI2YmdpZzFoa0NnZ0VBY09WbnpBRlJNQWhyc3JBTjVjTmdabS9VWUthVA0KVXozeFBKNStLVXp2b0w4a2t0VHgyVTVRempkenVlZmxiOVVDT1AveWp6TElnUlRhTnRKdjZVODRURUNWSVQyRA0KVUtIVkdlQ0hGUE5MZU9UbE5PTVVjOFo0SGw1Tzd4MjcwQXhXTTJndXBncUVNUGIxbnJnWGF2ekNDZ2lSU2lnZQ0KbUx6a0FpOElEYzduZkxPUXBjaGVNSG02TkNBcDRRZ1pFYkRaYmp6VUdrUTlRMGNlT0wwLy9JYzIwdmQ1a2pWbw0KTjI5dnJuYStCTW0rejJ3Q2FJSFZmNWlWbzhFdGxwN2E2OEJnQkpEUVVxTzh4M1hpMWhCWkxuWlNJSEFWYjZXLw0KaGd1UmVkRlJucXQ5QWhVdVN0ZlRzUExoUDlXNGN5bDd2QzcyZ3k4K0lkbTgwTkFCaGpaUE0zelF1QT09DQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==
PUBLIC_JWT_SIGNING_KEY=LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0NCk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBMlVLRkY4c05uc0xzeDdxdFNQUGMNCk5xckU1THdKT3lpS2RSNnpndzZZaDJPQ1R1N0k0ZjhvYWl2TkpZY240SUYzNGVScVJ6ZFRGV1p4QnBLZUpCckcNCmtVMis1Qm1TZ3hERWxCcVVsQUNQdnhzVVdpYXl3aXdERlF0cS9qR3orcFpuK0JTT0MrdXRWYzhqWmJRaFZFUUMNCkYvZ3JJN3k2aVBwVmJNNU45L2tBT0EvZGIvRElsdGlob2xDVy9TemZHMzNyTHhTemFLbXl2b0FESXpDTWJackINCkFSemNtYm81ck9XclhHbVJXU0l4ZTE0bHJ5dW54RkhXNk1mRDRGaGxkdXRLZEpIUGtBanlkMlpxTTdTd1QvU0YNCnl3Ni96WnhKcnlLTW5jcG5tRmdiaTBLcHRuQlFpWkJObkJDOWkrbjA0WWpTMG1odmRPZVNMdGJLTmdSS3MzR2oNCllpMFV4UncvVk10T3BiQlUrUjNHQ1VRZWVhNVdHeXg2Ym5CYzdXdEIvTXhMRU1VOVExcjVMS3BMOU1ld3dxR3MNCldhRjhMOTRjL0JJRXpPVXZMdm0vV2E5NEFoUENPZ3hxcEEzS3JqK3lCZ014anY1V2ZBTnd4dzFidUhDT0g1MDINCjBOdXZheEY1Y3oyVWg5UEg2ZmtDM2lBQnpzZFZsZjZxUkQrakZjY3hLSWpZTlZ5ckdyYXJLMkdzWTU4QkpiYm4NCjhaelgrVjJrbDdhZngyT2RyQndXWnBTMkpxRTdYZkI5dmFHSUQvOGFDTFc3bDNENS9Uc1hMM1IydTBodFQ2M2YNCjJObHNBcFpxYkQ5OVp2aW1ZQVlTWC9lQkVJVVcrYW1CSE1obmNHK1VyQi9vZkFSSko4WU5YeWZEMzdTN2laVTgNCjNoKzlVN1MzdWM0d2xVMGQ4dTdnUGUwQ0F3RUFBUT09DQotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0=

# Worked examples
WORKED_EXAMPLES_PORT=8888

## AutoFlow settings
# Directory containing AutoFlow input files
AUTOFLOW_INPUTS_DIR=./autoflow/examples/inputs
# Directory to store AutoFlow output files
AUTOFLOW_OUTPUTS_DIR=./autoflow/examples/outputs
# Error and debugging log level
AUTOFLOW_LOG_LEVEL=DEBUG
# Path to prefect config file
PREFECT__USER_CONFIG_PATH=./autoflow/config/config.toml
# Path to asciidoc template
PREFECT__ASCIIDOC_TEMPLATE_PATH=./autoflow/config/asciidoc_extended.tpl
# FlowAPI URL
FLOWAPI_URL=http://localhost:9090
# URI of database for storing workflow run metadata
AUTOFLOW_DB_URI=sqlite:////tmp/test.db
# Password for AutoFlow database
#AUTOFLOW_DB_PASSWORD
# FlowAPI token
#FLOWAPI_TOKEN
# Path to SSL certificate for FlowAPI
#SSL_CERTIFICATE_FILE
