#
#
# 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.
#

---
user: "pga"
group: "pga"
gateway_data_store_hostname: "pgadev.scigap.org"
gateway_data_store_resource_id: "pgadev.scigap.org_7ddf28fd-d503-4ff8-bbc5-3279a7c3b99e"
django_wsgi_processes: 2
doc_root_dir: "/var/www/portals/django-{{gateway_id}}"
admin_emails: "[('SGRC Group', 'sgrc-iu-group@iu.edu')]"
django_error_emails: "[('Marcus Christie', 'machrist@iu.edu'), ('Eroma Abeysinghe', 'eabeysin@iu.edu')]"
django_database_name: "django_{{ inventory_hostname }}"
db_server: "localhost"
django_hidden_airavata_apps: "['django_airavata_dataparsers']"
# django_tus_endpoint: "https://tus.dev.scigap.org/files/"
airavata_django_git_branch: "RPID+SEAGrid"
api_server_host: "localhost"
profile_service_host: "localhost"
