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

---
#gateway_data_store_resource_id: "js-168-166.jetstream-cloud.org_e86fd426-201a-461a-a0b4-4368af59ca28"
#gateway_data_store_hostname: "js-168-166.jetstream-cloud.org"

airavata_django_extra_dependencies:
  # Production server has gdal library 3.4 installed
  - name: "GDAL<3.5"
  - name: "git+https://github.com/Global-Flood-Assessment/global-floods-django-app.git#egg=global_floods_django_app"
    editable: true

vhost_servername: "global-floods-monitoring.scigap.org"
vhost_ssl: True
vhost_redirects:
  - from: "^/$"
    to: "/global_floods_django_app"
    regex: true
ssl_certificate_file: "/etc/letsencrypt/live/global-floods-monitoring.scigap.org/cert.pem"
ssl_certificate_chain_file: "/etc/letsencrypt/live/global-floods-monitoring.scigap.org/fullchain.pem"
ssl_certificate_key_file: "/etc/letsencrypt/live/global-floods-monitoring.scigap.org/privkey.pem"


## Keycloak related variables
tenant_domain: "global-flood"
oauth_client_key: "{{ vault_oauth_client_key }}"
oauth_client_secret: "{{ vault_oauth_client_secret }}"

auth_options:
  password:
    name: "Global Floods Assessment Gateway"
  external:
    - name: "Existing Institution Credentials"
      idp_alias: "cilogon"
      logo: "images/cilogon-logo-24x24-b.png"

gateway_id: "global-flood"
experiment_data_dir: "{{ user_data_dir }}/global-flood"
gateway_data_store_ssh_public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPuGmLPwwXu15TCdLwsE9dFoWJu1kzQzdLukslMKjVCf05Fe+MyCP7EG5n1psGigSORGm0bo/9t9fPQGyPRUR2jIBI5lR2bE5JJ8XNotf+Gdv45FXhXHTIPSeb1bAymEQVghALxqeYOWnnP+6aL61Zy6nAokMJdkdRXFRxr0paYLbH3oaCAVdp2ggMXP+KMvkKHjMSa9aZFK/V/YrIRONKDrdK+DV7D0xk4XGplRAsw8UpS8GJipfq8uTM23Tr/UMCYUCbW8qqf0HYFohY+51lT/1JjYb+cBWjy1iuNGVQVnQsuNSOoDnW1C07V6VFzwKZJOv+rYhw6iL5rcq3fzDD"
django_user_data_archive_max_age_days: 180

admin_emails: "[('Rob Quick', 'rquick@iu.edu'),('Wang Jun','wang208@iu.edu'),('Eroma Abeysinghe','eroma@gatech.edu')]"
portal_title: "Global Floods Assessment Gateway"

#django_google_analytics_tracking_id: "UA-66348921-1"

django_extra_settings:
  DATABASES['default']['ENGINE']: "django.contrib.gis.db.backends.mysql"

...
