################################################################################
# Copyright 2017 General Electric Company
#
# Licensed 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.
#
# SPDX-License-Identifier: Apache-2.0
################################################################################

#Set default profile
spring.profiles.default=h2,public

server.port = ${ACS_LOCAL_PORT}

#This property is not being recognized by flyway in testng tests. migrations must live in default db/migrations
#flyway.locations=filesystem:db/h2

bootstrapUaaIssuerId=
uaaCheckHealthUrl=
zacCheckHealthUrl=

clientId=fake-client
clientSecret=fake-client

ACS_BASE_DOMAIN=localhost
ACS_UAA_URL=http://localhost:8080/uaa
METER_BASE_DOMAIN=https://acsUrl.com

zac.client.id=fake-client
zac.client.secret=fake-client

//fake values to load the properties during controller tests
NUREGO_USERNAME=nuregoUsername
NUREGO_PASSWORD=nuregoPassword
NUREGO_INSTANCE_ID=nuregoInstanceId
NUREGO_API_URL=https://fakeUrl.com
NUREGO_BATCH_INTERVAL_SECONDS=3600
NUREGO_BATCH_MAX_MAP_SIZE=1024

cors.xhr.allowed.headers = Origin,Accept,X-Requested-With,Content-Type,Access-Control-Request-Method, Access-Control-Request-Headers
cors.xhr.allowed.origins = ${CORS_XHR_ALLOWED_ORIGINS:}
cors.xhr.allowed.uris = ^/v2/api-docs$
cors.xhr.controlmaxage = 1728000
cors.xhr.allowed.methods = GET

ENCRYPTION_KEY=vskIfNpBoePioXtP
