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

---
vhost_servername: "interactwel.org"
vhost_ssl: true
ssl_certificate_file: "/etc/letsencrypt/live/{{ vhost_servername }}/cert.pem"
ssl_certificate_chain_file: "/etc/letsencrypt/live/{{ vhost_servername }}/fullchain.pem"
ssl_certificate_key_file: "/etc/letsencrypt/live/{{ vhost_servername }}/privkey.pem"

interactwel_django_app_branch: "api-integration"
# Disable installing the interactwel app until we can fix the install
# airavata_django_extra_dependencies:
#   - name: git+https://github.com/InterACTWEL/interactactwel-django-app.git@{{ interactwel_django_app_branch }}#egg=interactwel-django-app
#     editable: true

django_extra_settings:
  LOGIN_REDIRECT_URL: "/interactwel/"

## 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_title: "InterACTWEL Gateway"
...
