#
#
# 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/dev-seagrid"
vhost_servername: "dev.seagrid.org"
vhost_ssl: True
# TODO: have Ansible manage these files as well
ssl_certificate_file: "/etc/letsencrypt/live/dev.seagrid.org/cert.pem"
ssl_certificate_chain_file: "/etc/letsencrypt/live/dev.seagrid.org/fullchain.pem"
ssl_certificate_key_file: "/etc/letsencrypt/live/dev.seagrid.org/privkey.pem"

## Keycloak related variables
tenant_domain: "seagrid"
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/seagrid/.well-known/openid-configuration"

auth_options:
  - name: "SEAGrid"
    oauth_grant_type: "password"
  - name: "existing accounts"
    oauth_grant_type: "authorization_code"
    oauth_authorize_url_extra_params: "kc_idp_hint=oidc"
    logo: "/assets/cilogon-logo-24x24-b.png"
oauth_callback_url: "https://{{ vhost_servername }}/callback-url"

gateway_id: "seagrid"
# relative to document root dir
experiment_data_dir: "{{ user_data_dir }}/dev-seagrid"
# TODO: Fix the data store resource id
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"
group_resource_profile_id: "6a642772-15fd-4d10-a847-8aef89b71830"

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