#
#
# 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: "rnamake.js2.scigap.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"

real_user_data_dir: "/media/volume/sdb/gateway-user-data"

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

auth_options:
  password:
    name: "RNAMake"
    hidden: true
  external:
    - name: "Existing Institute Login"
      idp_alias: "cilogon"

gateway_id: "rnamake"
experiment_data_dir: "{{ user_data_dir }}/django-rnamake"
# 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 }}"
portal_server_email: "{{ portal_email_username }}"
admin_emails: "[('SGRC', 'sgrc-iu-group@iu.edu')]"
portal_title: "Dev RNAMake Gateway"
...
