#
#
# 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_git_branch: "simccs"
#vhost_servername: "django.interactwel.scigap.org"
vhost_servername: "interactwel.org"
vhost_server_redirect: "www.interactwel.org"
vhost_ssl: true
# sudo certbot --apache certonly -d django.simccs.scigap.org
ssl_certificate_file: "/etc/letsencrypt/live/interactwel.org/cert.pem"
ssl_certificate_chain_file: "/etc/letsencrypt/live/interactwel.org/fullchain.pem"
ssl_certificate_key_file: "/etc/letsencrypt/live/interactwel.org/privkey.pem"

interactwel_django_app_branch: "api-integration"
airavata_django_extra_dependencies:
  - git+https://github.com/InterACTWEL/interactactwel-django-app.git@{{ interactwel_django_app_branch }}#egg=interactwel-django-app

django_extra_settings:
  LOGIN_REDIRECT_URL: "/interactwel/#/dashboard"

## Keycloak related variables
tenant_domain: "interactwel"
oauth_client_key: "{{ vault_oauth_client_key }}"
oauth_client_secret: "{{ vault_oauth_client_secret }}"

auth_options:
  password:
    name: "InterACTWEL"
  external:
    - name: "CILogon"
      idp_alias: "cilogon"

gateway_id: "interactwel"
experiment_data_dir: "{{ user_data_dir }}/django-interactwel"
gateway_data_store_ssh_public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCK+P6aQeRRIUcm2oocxfCyHO9Kl9npX+Fc5f7jaEFgN3SfyYjah69yxvhVAWguRgXIG9xuKvzXmoSeNT0Yk1NoBTFHAtSUDy0KqIXkp5XK2Ocv/W2fblCx8v46amiv5VZToq+YK+P+XfmyfjNEv9WXo9vtIfj2RQlVk3g+GIcCQgkiIxl4XEh7+AknahqWEkzlGeqTBHtwyRXbhuvLf6M4vNoUhxn4aY8DOcJPZF1jnWB+ZiTiNBXRA7Hx/L78RWoHTf50KOO3LQ+AD7727kdIYWM4wVgRzY8pac5bIJ7ncyp//2GiUzSoXSbLV2vZDMz9CM0Ovfpg6P6Q2j5inS0J"
# Show the Data Parsers app option for Interactwel
django_hidden_airavata_apps: "[]"

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 }}"
portal_server_email: "{{ portal_email_username }}"
portal_title: "InterACTWEL Gateway"
...
