#
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

###########################################################################
#
#  This properties file provides configuration for all Airavata Services:
#  API Server, Registry, Workflow Interpreter, GFac, Orchestrator
#
###########################################################################

###########################################################################
#  API Server Registry Configuration
###########################################################################

#for derby [AiravataJPARegistry]
#registry.jdbc.driver=org.apache.derby.jdbc.ClientDriver
#registry.jdbc.url=jdbc:derby:experiment_catalog;create=true;user=root;password=root
# MariaDB database configuration
registry.jdbc.driver=org.mariadb.jdbc.Driver
registry.jdbc.url=jdbc:mariadb://localhost:3306/experiment_catalog
registry.jdbc.user=root
registry.jdbc.password=
#FIXME: Probably the following property should be removed.
start.derby.server.mode=false
validationQuery=SELECT 1 from CONFIGURATION
cache.enable=false
jpa.cache.size=-1
#jpa.connection.properties=MaxActive=10,MaxIdle=5,MinIdle=2,MaxWait=60000,testWhileIdle=true,testOnBorrow=true
enable.sharing=true

# Properties for default user mode
default.registry.user=root
default.registry.password=
default.registry.password.hash.method=
default.registry.gateway=default
super.tenant.gatewayId=default

# Properties for cluster status monitoring
# cluster status monitoring job repeat time in seconds
cluster.status.monitoring.enable=false
cluster.status.monitoring.repeat.time=18000

###########################################################################
#  Application Catalog DB Configuration
###########################################################################
#for derby [AiravataJPARegistry]
#appcatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver
#appcatalog.jdbc.url=jdbc:derby:app_catalog;create=true;user=root;password=root
# MariaDB database configuration
appcatalog.jdbc.driver=org.mariadb.jdbc.Driver
appcatalog.jdbc.url=jdbc:mariadb://localhost:3306/app_catalog
appcatalog.jdbc.user=root
appcatalog.jdbc.password=
appcatalog.validationQuery=SELECT 1 from CONFIGURATION

##########################################################################
#  Replica Catalog DB Configuration
###########################################################################
#for derby [AiravataJPARegistry]
#replicacatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver
#replicacatalog.jdbc.url=jdbc:derby:replica_catalog;create=true;user=root;password=root
# MariaDB database configuration
replicacatalog.jdbc.driver=org.mariadb.jdbc.Driver
replicacatalog.jdbc.url=jdbc:mariadb://localhost:3306/replica_catalog
replicacatalog.jdbc.user=root
replicacatalog.jdbc.password=
replicacatalog.validationQuery=SELECT 1 from CONFIGURATION

###########################################################################
#  Workflow Catalog DB Configuration
###########################################################################
#for derby [AiravataJPARegistry]
#workflowcatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver
#workflowcatalog.jdbc.url=jdbc:derby:workflow_catalog;create=true;user=root;password=root
# MariaDB database configuration
workflowcatalog.jdbc.driver=org.mariadb.jdbc.Driver
workflowcatalog.jdbc.url=jdbc:mariadb://localhost:3306/replica_catalog
workflowcatalog.jdbc.user=root
workflowcatalog.jdbc.password=
workflowcatalog.validationQuery=SELECT 1 from CONFIGURATION

###########################################################################
#  Sharing Catalog DB Configuration
###########################################################################
#for derby [AiravataJPARegistry]
#sharingcatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver
#sharingcatalog.jdbc.url=jdbc:derby:sharing_catalog;create=true;user=root;password=root
# MariaDB database configuration
sharingcatalog.jdbc.driver=org.mariadb.jdbc.Driver
sharingcatalog.jdbc.url=jdbc:mariadb://localhost:3306/sharing_catalog
sharingcatalog.jdbc.user=root
sharingcatalog.jdbc.password=
sharingcatalog.validationQuery=SELECT 1 from CONFIGURATION

###########################################################################
#  Sharing Registry Server Configuration
###########################################################################
sharing_server=org.apache.airavata.sharing.registry.server.SharingRegistryServer
sharing.registry.server.host=localhost
sharing.registry.server.port=7878

###########################################################################
#  User Profile MongoDB Configuration
###########################################################################
userprofile.mongodb.host=localhost
userprofile.mongodb.port=27017


###########################################################################
#  Server module Configuration
###########################################################################
#credential store server should be started before API server
#This is obsolete property with new script files.
#servers=credentialstore,apiserver,orchestrator


###########################################################################
#  API Server Configurations
###########################################################################
apiserver=org.apache.airavata.api.server.AiravataAPIServer
apiserver.name=apiserver-node0
apiserver.host=localhost
apiserver.port=8930
apiserver.min.threads=50

###########################################################################
#  Orchestrator Server Configurations
###########################################################################
orchestrator=org.apache.airavata.orchestrator.server.OrchestratorServer
orchestrator.server.name=orchestrator-node0
orchestrator.server.host=localhost
orchestrator.server.port=8940
orchestrator.server.min.threads=50
job.validators=org.apache.airavata.orchestrator.core.validator.impl.BatchQueueValidator,org.apache.airavata.orchestrator.core.validator.impl.ExperimentStatusValidator
submitter.interval=10000
threadpool.size=10
start.submitter=true
embedded.mode=true
enable.validation=true

###########################################################################
#  Registry Server Configurations
###########################################################################
regserver=org.apache.airavata.registry.api.service.RegistryAPIServer
regserver.server.name=regserver-node0
regserver.server.host=localhost
regserver.server.port=8970
regserver.server.min.threads=50

###########################################################################
#  GFac Server Configurations
###########################################################################
gfac=org.apache.airavata.gfac.server.GfacServer
gfac.server.name=gfac-node0
gfac.server.host=localhost
gfac.server.port=8950
gfac.thread.pool.size=50
host.scheduler=org.apache.airavata.gfac.impl.DefaultHostScheduler



###########################################################################
# Airavata Workflow Interpreter Configurations
###########################################################################
workflowserver=org.apache.airavata.api.server.WorkflowServer
enactment.thread.pool.size=10

#to define custom workflow parser user following property
#workflow.parser=org.apache.airavata.workflow.core.parser.AiravataWorkflowBuilder



###########################################################################
#  Job Scheduler can send informative email messages to you about the status of your job.
# Specify a string which consists of either the single character "n" (no mail), or one or more
#  of the characters "a" (send mail when job is aborted), "b" (send mail when job begins),
# and "e" (send mail when job terminates).  The default is "a" if not specified.
###########################################################################

job.notification.enable=true
#Provide comma separated email ids as a string if more than one
job.notification.emailids=
job.notification.flags=abe

###########################################################################
# Credential Store module Configuration
###########################################################################
credential.store.keystore.url=/home/airavata/develop-deployment/keystores/airavata_sym.jks
credential.store.keystore.alias=airavata
credential.store.keystore.password=airavata
credential.store.jdbc.url=jdbc:mariadb://localhost:3306/credential_store
credential.store.jdbc.user=root
credential.store.jdbc.password=
credential.store.jdbc.driver=org.mariadb.jdbc.Driver
#credential.store.jdbc.driver=org.apache.derby.jdbc.ClientDriver
#credential.store.jdbc.url=jdbc:derby:credential_store;create=true;user=root;password=root
credential.store.server.host=localhost
credential.store.server.port=8960
credentialstore=org.apache.airavata.credential.store.server.CredentialStoreServer
credential.stroe.jdbc.validationQuery=SELECT 1 from CONFIGURATION

# these properties used by credential store email notifications
email.server=smtp.googlemail.com
email.server.port=465
email.user=airavata
email.password=xxx
email.ssl=true
email.from=airavata@apache.org

# SSH PKI key pair or ssh password can be used SSH based sshKeyAuthentication is used.
# if user specify both password sshKeyAuthentication gets the higher preference

################# ---------- For ssh key pair sshKeyAuthentication ------------------- ################
#ssh.public.key=/path to public key for ssh
#ssh.private.key=/path to private key file for ssh
#ssh.keypass=passphrase for the private key
#ssh.username=username for ssh connection
## If you set "yes" for ssh.strict.hostKey.checking, then you must provide known hosts file path
#ssh.strict.hostKey.checking=yes/no
#ssh.known.hosts.file=/path to known hosts file
### Incase of password sshKeyAuthentication.
#ssh.password=Password for ssh connection

################ ---------- BES Properties ------------------- ###############
#bes.ca.cert.path=<location>/certificates/cacert.pem
#bes.ca.key.path=<location>/certificates/cakey.pem
#bes.ca.key.pass=passphrase

###########################################################################
# Monitoring module Configuration
###########################################################################

#This will be the primary monitoring tool which runs in airavata, in future there will be multiple monitoring
#mechanisms and one would be able to start a monitor
monitors=org.apache.airavata.gfac.monitor.impl.pull.qstat.QstatMonitor,org.apache.airavata.gfac.monitor.impl.LocalJobMonitor

#These properties will used to enable email base monitoring
email.based.monitor.host=imap.gmail.com
email.based.monitor.address=gw56jobs@scigap.org
email.based.monitor.password=XseDe2015
email.based.monitor.folder.name=INBOX
# either imaps or pop3
email.based.monitor.store.protocol=imaps
#These property will be used to query the email server periodically. value in milliseconds(ms).
email.based.monitoring.period=10000

###########################################################################
# AMQP Notification Configuration
###########################################################################
#for simple scenarios we can use the guest user
rabbitmq.broker.url=amqp://localhost:5672
#for production scenarios, give url as amqp://userName:password@hostName:portNumber/virtualHost, create user, virtualhost
# and give permissions, refer: http://blog.dtzq.com/2012/06/rabbitmq-users-and-virtual-hosts.html
#rabbitmq.broker.url=amqp://airavata:airavata@localhost:5672/develop
rabbitmq.status.exchange.name=status_exchange
rabbitmq.process.exchange.name=process_exchange
rabbitmq.experiment.exchange.name=experiment_exchange
durable.queue=false
prefetch.count=200
process.launch.queue.name=process.launch.queue
experiment.launch..queue.name=experiment.launch.queue

###########################################################################
# Zookeeper Server Configuration
###########################################################################
embedded.zk=true
zookeeper.server.connection=localhost:2181
zookeeper.timeout=30000

########################################################################
## API Security Configuration
########################################################################
api.secured=false
security.manager.class=org.apache.airavata.service.security.KeyCloakSecurityManager
### TLS related configuration ####
TLS.enabled=true
TLS.api.server.port=9930
TLS.client.timeout=10000
#### keystore configuration ####
keystore.path=/home/airavata/develop-deployment/keystores/airavata.jks
keystore.password=airavata
#### trust store configuration ####
trust.store=/home/airavata/develop-deployment/keystores/client_truststore.jks
trust.store.password=airavata
#### authorization cache related configuration ####
authz.cache.enabled=true
authz.cache.manager.class=org.apache.airavata.service.security.authzcache.DefaultAuthzCacheManager
in.memory.cache.size=1000

# Kafka Logging related configuration
isRunningOnAws=false
kafka.broker.list=localhost:9092
kafka.topic.prefix=local
enable.kafka.logging=false

###########################################################################
# Profile Service Configuration
###########################################################################
profile.service.server.host=localhost
profile.service.server.port=8962
profile_service=org.apache.airavata.service.profile.server.ProfileServiceServer
# MariaDB properties
profile.service.jdbc.url=jdbc:mariadb://localhost:3306/profile_service
profile.service.jdbc.user=root
profile.service.jdbc.password=
profile.service.jdbc.driver=org.mariadb.jdbc.Driver
#profile.service.jdbc.driver=org.apache.derby.jdbc.ClientDriver
#profile.service.jdbc.url=jdbc:derby:profile_service;create=true;user=root;password=root
profile.service.validationQuery=SELECT 1

###########################################################################
# Iam Admin services Configuration
###########################################################################
iam.server.url=https://iamdev.scigap.org/auth
new.gateway.admin.temp.password=Password@123
iam.server.super.admin.username=admin
iam.server.super.admin.password=Kintetsu-Sambreville-Gameleira
