# this file contains generic properties  for local development
# which are not specific to the docker-compose environment ( i.e. hostnames, ports, etc )
WHISK_VERSION_NAME="local"
CONFIG_whisk_info_date="09/01/2016"
CONFIG_whisk_info_buildNo="latest"
WHISK_LOGS_DIR="/logs"

SERVICE_CHECK_HTTP=/ping
SERVICE_CHECK_TIMEOUT=2s
SERVICE_CHECK_INTERVAL=15s

DB_PREFIX=local_

CONFIG_whisk_couchdb_databases_WhiskAuth=local_subjects
CONFIG_whisk_couchdb_databases_WhiskEntity=local_whisks
CONFIG_whisk_db_actionsDdoc=whisks.v2.1.0
CONFIG_whisk_couchdb_databases_WhiskActivation=local_activations
CONFIG_whisk_db_activationsDdoc=whisks.v2.1.0
CONFIG_whisk_db_activationsFilterDdoc=whisks-filters.v2.1.0

KAFKA_DEFAULT_REPLICATION_FACTOR=1
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
KAFKA_BROKER_ID=0
KAFKA_HEAP_OPTS=-Xmx512m -Xms512m
KAFKA_ADVERTISED_PORT=9092
KAFKA_TOPICS_COMPLETED_RETENTION_MS=300000
KAFKA_TOPICS_COMPLETED_RETENTION_BYTES=104857600
KAFKA_TOPICS_COMPLETED_SEGMENT_BYTES=536870912
KAFKA_REPLICATIONFACTOR=1

LIMITS_ACTIONS_INVOKES_PERMINUTE=60000
LIMITS_ACTIONS_INVOKES_CONCURRENT=5000
LIMITS_TRIGGERS_FIRES_PERMINUTE=60000
LIMITS_ACTIONS_INVOKES_CONCURRENTINSYSTEM=5000
LIMITS_ACTIONS_SEQUENCE_MAXLENGTH=20

CONFIG_whisk_loadbalancer_blackboxFraction=0.1
CONFIG_kamon_statsd_port=8125
CONFIG_whisk_loadbalancer_invokerUserMemory=1024m
CONFIG_whisk_containerPool_userMemory=1024m

CONTROLLER_BLACKBOXFRACTION=0.10
CONTROLLER_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1098
CONTROLLER_HA=False
CONTROLLER_INSTANCES=1
CONTROLLER_LOCALBOOKKEEPING=true

METRICS_KAMON=False
METRICS_LOG=True
CONFIG_kamon_statsd_port=8125

LOADBALANCER_ACTIVATIONCOUNTBEFORENEXTINVOKER=10
LOADBALANCER_USERMEMORY=1024m

INVOKER_USE_RUNC=False
INVOKER_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1098
INVOKER_INSTANCES=1

AKKA_CLUSTER_HOST=localhost
AKKA_CLUSTER_SEED_NODES=[]
AKKA_CLUSTER_BIND_PORT=5221

WHISK_SYSTEM_KEY=whisk.system
RUNTIMES_MANIFEST={"runtimes":{"nodejs":[{"kind":"nodejs","image":{"prefix":"openwhisk","name":"nodejsaction","tag":"latest"},"deprecated":true},{"kind":"nodejs:6","default":true,"image":{"prefix":"openwhisk","name":"nodejs6action","tag":"latest"},"deprecated":false,"stemCells":[{"count":2,"memory":"256 MB"}]},{"kind":"nodejs:8","default":false,"image":{"prefix":"openwhisk","name":"action-nodejs-v8","tag":"latest"},"deprecated":false}],"python":[{"kind":"python","image":{"prefix":"openwhisk","name":"python2action","tag":"latest"},"deprecated":false},{"kind":"python:2","default":true,"image":{"prefix":"openwhisk","name":"python2action","tag":"latest"},"deprecated":false},{"kind":"python:3","image":{"prefix":"openwhisk","name":"python3action","tag":"latest"},"deprecated":false}],"swift":[{"kind":"swift:3.1.1","image":{"prefix":"openwhisk","name":"action-swift-v3.1.1","tag":"latest"},"deprecated":false},{"kind":"swift:4.1","default":true,"image":{"prefix":"openwhisk","name":"action-swift-v4.1","tag":"latest"},"deprecated":false}],"java":[{"kind":"java","default":true,"image":{"prefix":"openwhisk","name":"java8action","tag":"latest"},"deprecated":false,"attached":{"attachmentName":"jarfile","attachmentType":"application/java-archive"},"sentinelledLogs":false,"requireMain":true}],"php":[{"kind":"php:7.1","default":true,"deprecated":false,"image":{"prefix":"openwhisk","name":"action-php-v7.1","tag":"latest"}}],"ruby":[{"kind":"ruby:2.5","default":true,"deprecated":false,"image":{"prefix":"openwhisk","name":"action-ruby-v2.5","tag":"latest"}}]},"blackboxes":[{"prefix":"openwhisk","name":"dockerskeleton","tag":"latest"}]}
