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

---

airavata_django_extra_dependencies:
  - "git+https://github.com/GeoGateway/geogateway-django-app.git@master#egg=geogateway_django_app"

# No symlink, user_data_dir is same as real_user_data_dir
user_data_dir: "{{ real_user_data_dir }}"
#airavata_django_git_branch: "simccs"
vhost_servername: "beta.geogateway.scigap.org"
vhost_ssl: true
# tus isn't setup yet
tusd_vhost_servername:
# sudo certbot --apache certonly -d django.simccs.scigap.org
ssl_certificate_file: "/etc/letsencrypt/live/beta.geogateway.scigap.org/cert.pem"
ssl_certificate_chain_file: "/etc/letsencrypt/live/beta.geogateway.scigap.org/fullchain.pem"
ssl_certificate_key_file: "/etc/letsencrypt/live/beta.geogateway.scigap.org/privkey.pem"

django_extra_settings:
  LOGIN_REDIRECT_URL: "/geogateway_django_app/"

## Keycloak related variables
tenant_domain: "beta-geo"
oauth_client_key: "{{ vault_oauth_client_key }}"
oauth_client_secret: "{{ vault_oauth_client_secret }}"

auth_options:
  password:
    name: "Beta GEO"
  external:
    - name: "Existing Institute Login"
      idp_alias: "cilogon"

gateway_id: "beta-geo"
experiment_data_dir: "{{ user_data_dir }}/django-geo"
# gateway_data_store_ssh_public_key: "TODO"

portal_email_host: "smtp.gmail.com"
portal_email_port: 587
portal_email_tls: true
portal_email_username: "pga.airavata@gmail.com"
portal_email_password: "{{ vault_portal_email_password }}"
admin_emails: "[('SGRC', 'sgg@iu.edu')]"
portal_server_email: "{{ portal_email_username }}"
portal_title: "Beta GEO Gateway"
...
