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

---
pga_repo: "https://github.com/apache/airavata-php-gateway.git"
user: "pga"
group: "pga"
doc_root_dir: "/var/www/portals/{{ gateway_id }}"
vhost_servername: "snowvision.scigap.org"
#vhost_serveralias: "www.mines.scigap.org"
vhost_ssl: true
# TODO: have Ansible manage these files as well
ssl_certificate_file: "/etc/letsencrypt/live/snowvision.scigap.org/cert.pem"
ssl_certificate_chain_file: "/etc/letsencrypt/live/snowvision.scigap.org/fullchain.pem"
ssl_certificate_key_file: "/etc/letsencrypt/live/snowvision.scigap.org/privkey.pem"

## Keycloak related variables
tenant_domain: "{{ gateway_id }}"
admin_username: "admin"
admin_password: "{{ vault_admin_password }}"
oauth_client_key: "{{ vault_oauth_client_key }}"
oauth_client_secret: "{{ vault_oauth_client_secret }}"
oidc_discovery_url: "https://iam.scigap.org/auth/realms/{{ tenant_domain }}/.well-known/openid-configuration"

auth_options:
  - name: "SnowVision Gateway"
    oauth_grant_type: "password"
  - name: "Existing Institute Login"
    oauth_grant_type: "authorization_code"
    oauth_authorize_url_extra_params: "kc_idp_hint=cilogon"
    logo: "/assets/cilogon-logo-24x24-b.png"
oauth_callback_url: "https://{{ vhost_servername }}/callback-url"

gateway_id: "snowvision"
# relative to document root dir
experiment_data_dir: "{{ user_data_dir }}/{{ gateway_id }}"
gateway_data_store_resource_id: "gf4.ucs.indiana.edu_61552681-96f0-462a-a36c-a62a010bffc6"
gateway_data_store_ssh_public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCovd8MvofK9SPJZiElqP4rd3xpaHZ7qXK0RFxRQxcCTcAJbDMGubZlo1+N0Io02ZIVkKfdtbee+sznpQ6ri6MMaK1xnYmfyMT5yj/pUZo+g/jIC0PMYQcHpnq49U7Fz2BBYqbc9EAAcU35X4ctof1/UwlWMFa+gegky8NngHBZmZSpgIzVb5jlgti14OD5ETVFG4YvZ2ZRhkQESSuZPFdjxiXoDqsJkF80cD+JTu5LWha1UwhAC2yrGZuI/16WABzx/zUGOS0NK0RYS/giIzVGQSYVp9S8GgZKuvJx3xk7nW6HOMbjpVeukjkWareIkVAWXgFIMptX0QRhL4mcjCIB"

## Portal related variables
super_admin_portal: "false"
admin_emails: "['sgrc-iu-group@iu.edu','smarru@iu.edu']"
portal_email_username: "pga.airavata@gmail.com"
portal_email_password: "{{ vault_portal_email_password }}"
#portal_theme: "qusp-gateway-theme"
#portal_theme_repo: "https://github.com/SciGaP/qusp-gateway-theme.git"
portal_title: "SnowVision Gateway"
...
