#   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. See accompanying LICENSE file.
#   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. See accompanying LICENSE file.

#
# Usergrid configuration properties
# Loaded by Spring PropertyPlaceholderConfigurer
#

#
# Do not put installation-specific or confidential
# configuration settings here if you plan to push
# this to GitHub
#
# Put your settings in usergrid-custom-test.properties
# instead.
#

# This property is required to be set and cannot be defaulted anywhere
usergrid.cluster_name=usergrid

# Whether to user the remote Cassandra cluster or not
cassandra.use_remote=false

# URL for local testing Cassandra cluster
cassandra.local.url=localhost:9160
cassandra.url=localhost:9160

# URL for remote production  Cassandra cluster
cassandra.remote.url=

# Name of Cassandra cluster
cassandra.cluster=Test Cluster

cassandra.username=
cassandra.password=

#Properties to control the number of buckets in the index.
usergrid.index.defaultbucketsize=20
usergrid.counter.skipAggregate=true
usergrid.version.database=1.0.0
usergrid.version.schema=1.0.0
usergrid.version.properties=1.0.0
usergrid.version.build=${version}

#usergrid.auth.token_secret_salt=super secret token value

# max time to persist tokens for (milliseconds)
#usergrid.auth.token.persist.expires=0

# expiration age for oauth access tokens (milliseconds)
#usergrid.auth.token.access.expires=0

# expiration age for oauth refresh tokens (milliseconds)
#usergrid.auth.token.refresh.expires=0

# max age for offline tokens (milliseconds)
#usergrid.auth.token.offline.expires=0

# max age for email tokens (milliseconds)
#usergrid.auth.token.email.expires=0

#Read consistency level for the cassandra cluster
cassandra.readcl=QUORUM

#Write consistency level for the cassandra cluster
cassandra.writecl=QUORUM



# SysAdmin login
usergrid.sysadmin.login.name=superuser
usergrid.sysadmin.login.email=super@usergrid.com
usergrid.sysadmin.login.password=superuser
usergrid.sysadmin.login.allowed=true

usergrid.sysadmin.approve.users=false
usergrid.sysadmin.approve.organizations=false

# Where to store temporary files
usergrid.temp.files=/tmp/usergrid


#AWS_ACCESS_KEY_ID=
#AWS_ACCESS_KEY_SECRET=
#usergrid.binary.bucketname=usergrid-test-binary

# Disable Mongo API Server
usergrid.mongo.disable=false

mail.transport.protocol=
mail.smtps.host=
mail.smtps.port=
mail.smtps.auth=
mail.smtps.username=
mail.smtps.password=
mail.smtps.quitwait=


usergrid.api.url.base=http://localhost:8080/ROOT

usergrid.recaptcha.public=
usergrid.recaptcha.private=

usergrid.sysadmin.email=

usergrid.management.admin_users_require_confirmation=false
usergrid.management.admin_users_require_activation=false
usergrid.management.notify_admin_of_activation=false
usergrid.management.organizations_require_confirmation=false
usergrid.management.organizations_require_activation=false
usergrid.management.notify_sysadmin_of_new_organizations=false
usergrid.management.notify_sysadmin_of_new_admin_users=false

usergrid.setup-test-account=true
usergrid.test-account.app=test-app
usergrid.test-account.organization=test-organization
usergrid.test-account.admin-user.username=test
usergrid.test-account.admin-user.name=Test User
usergrid.test-account.admin-user.email=test@usergrid.com
usergrid.test-account.admin-user.password=test

usergrid.redirect_root=

usergrid.management.mailer=Usergrid Mailer <mailer@usergrid.com>

# email footer
usergrid.management.email.footer=\
    <p></p>\n

###############################################################################
#
# Sysadmin notifications
#

# email to sysadmin to notify new organization has been activated
usergrid.management.email.sysadmin-organization-activated=\
    <p>Organization account for ${organization_name}, owned by ${organization_owners}, \
    has been successfully activated.</p>

# email to sysadmin to notify new admin has been activated
usergrid.management.email.sysadmin-admin-activated=\
    <p>Admin user account for ${user_email}has been successfully activated.</p>


###############################################################################
#
# Organization approval flow
#

# email to sysadmin to approve and activate new organization
usergrid.management.email.sysadmin-organization-activation=\
    <p>To activate the organization account for ${organization_name}, owned by ${organization_owners}, \
    click here:</p>\n<p><a href="${activation_url}">${activation_url}</a></p>

# email to organization owner to request confirmation
usergrid.management.email.organization-confirmation=\
    <p>To confirm your organization account, click here:</p>\n\
    <p><a href="${confirmation_url}">${confirmation_url}</a></p>

# email to organization owner to notify approval is pending
usergrid.management.email.organization-activation-pending=\
    <p>Your organization account ${organization_name} is awaiting approval.</p>

# email to organization owner to notify organization is active
usergrid.management.email.organization-activated=\
    <p>Your organization account ${organization_name} has been successfully activated.</p>

###############################################################################
#
# Admin approval flow
#

# email to sysadmin to approve and activate new admin
usergrid.management.email.sysadmin-admin-activation=\
    <p>To activate the user account for ${user_email}, click here:</p>\n\
    <p><a href="${activation_url}">${activation_url}</a></p>

# email to admin user to confirm email
usergrid.management.email.admin-confirmation=\
    <p>To confirm your email address ${confirm_email}, click here:</p>\n\
    <p><a href="${confirmation_url}">${confirmation_url}</a></p>

# email to admin user to notify email has been confirmed
usergrid.management.email.admin-confirmed=\
    <p>Your email address ${confirmed_email} has been confirmed.</p>\n\
    <p>You will receive another email with your account has been activated.</p>

# email to admin to notify account is active
usergrid.management.email.admin-activated=\
    <p>Your user account has been successfully activated.</p>

# email to admin to notify account has been added to an organization
usergrid.management.email.admin-invited=\
    <p>Your user account has been added to the organization ${organization_name}.</p>

# email to admin for password reset
usergrid.management.email.admin-password-reset=\
    <p>To reset your password, click here:</p>\n\
    <p><a href="${reset_url}">${reset_url}</a></p>


###############################################################################
#
# User approval flow
#

# email to admin to approve and activate new app user
usergrid.management.email.admin-user-activation=\
    <p>To activate the user account for ${user_email}, click here:</p>\n\
    <p><a href="${activation_url}">${activation_url}</a></p>

# email to user to request activation
usergrid.management.email.user-confirmation=\
    <p>To confirm your user account, click here:</p>\n\
    <p><a href="${confirmation_url}">${confirmation_url}</a></p>

# email to user to notify account is confirmed
usergrid.management.email.user-confirmed=\
    <p>Your user account has been successfully confirmed.</p>\n\
    <p>You will receive another email with your account has been activated.</p>

# email to user to notify account is active
usergrid.management.email.user-activated=\
    <p>Your user account has been successfully activated.</p>

# email to user to reset password
usergrid.management.email.user-password-reset=\
    <p>To reset your password, click here:</p>\n\
    <p><a href="${reset_url}">${reset_url}</a></p>

# email to admin to notify new app user has been successfully activated
usergrid.management.email.admin-user-activated=\
    <p>User account for ${user_email} has been successfully activated</p>


###############################################################################
#
# email to user to recover pin
usergrid.management.email.user-pin=\
    <p>Your application pin is:</p>\n\
    <p>${pin}</p>
