#
#
# 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-scigap"
vhost_servername: "dev.scigap.org"
vhost_ssl: True
ssl_certificate_file: "/etc/letsencrypt/live/dev.scigap.org/cert.pem"
ssl_certificate_chain_file: "/etc/letsencrypt/live/dev.scigap.org/fullchain.pem"
ssl_certificate_key_file: "/etc/letsencrypt/live/dev.scigap.org/privkey.pem"

## Keycloak related variables
tenant_domain: "scigap"
admin_username: "scigap_admin"
admin_password: "{{ vault_admin_password }}"
oauth_client_key: "{{ vault_oauth_client_key }}"
oauth_client_secret: "{{ vault_oauth_client_secret }}"
oauth_grant_type: "password"
oidc_discovery_url: "https://iamdev.scigap.org/auth/realms/scigap/.well-known/openid-configuration"
oauth_callback_url: "https://{{ vhost_servername }}/callback-url"
initial_role_name: "gateway-provider"

gateway_id: "scigap"
# relative to document root dir
experiment_data_dir: "{{ user_data_dir }}/dev-scigap"
# NOTE: scigap portal doesn't make use of the gateway data store, only used to manage other gateways
gateway_data_store_resource_id: ""

## Portal related variables
super_admin_portal: "true"
admin_emails: "['sgrc-iu-group@iu.edu']"
portal_email_username: "pga.airavata@gmail.com"
portal_email_password: "{{ vault_portal_email_password }}"
portal_theme: "base"
portal_title: "SciGaP Admin Portal"
...
