#
#
# 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"
pga_git_branch: "develop"
user: "pga"
group: "pga"
doc_root_dir: "/var/www/portals/pga-simvascular"
vhost_servername: "beta.simvascular.scigap.org"
vhost_ssl: True
# TODO: have Ansible manage these files as well
ssl_certificate_file: "/etc/letsencrypt/live/beta.simvascular.scigap.org/cert.pem"
ssl_certificate_chain_file: "/etc/letsencrypt/live/beta.simvascular.scigap.org/fullchain.pem"
ssl_certificate_key_file: "/etc/letsencrypt/live/beta.simvascular.scigap.org/privkey.pem"

## Keycloak related variables
tenant_domain: "simvascular"
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://iamdev.scigap.org/auth/realms/simvascular/.well-known/openid-configuration"

auth_options:
  - name: "SimVascular"
    oauth_grant_type: "password"
  - name: "CILogon"
    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: "simvascular"
# relative to document root dir
experiment_data_dir: "{{ user_data_dir }}/simvascular"
gateway_data_store_resource_id: "pgadev.scigap.org_7ddf28fd-d503-4ff8-bbc5-3279a7c3b99e"
gateway_data_store_ssh_public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWgLve4J9WCohF/4UnbBZsh/nRkP1aM9FmA1FjKwK2gQAnKwhU+NrbsjW38h2Hi+8s9N2oZ9cCJHrvDi2U0cMxz4exIUBcVoRhw37ThlREHADeKR1FbKw0QLhTyfJb0K+1/8GWRluiFx0vHPptJe0KTqu+RJY0NSe+d/BEuGyCZ1hR+SKNuTgcb05Ia6opbSN5D68N9biseEux60d69ARQxLw+VN3Kr/UaBNpGIAfKLlLSUQlTyPA6G6UKCcJZv+/ye10oa0SK0qtrxMpL+4VJcVx+d56U7CUFWKEgPAaQrX1qdGUNDA7HKmD+EBtzw6DJqNJ0Cue/XuPe/RT62tpf"

## Portal related variables
super_admin_portal: "false"
admin_emails: "['sgg@iu.edu','eroma.abeysinghe@gmail.com']"
portal_email_username: "pga.airavata@gmail.com"
portal_email_password: "{{ vault_portal_email_password }}"
portal_theme: "simvascular-gateway-theme"
portal_theme_repo: "https://github.com/SciGaP/simvascular-gateway-theme.git"
portal_title: "SimVascular Gateway Portal"
...
