# Properties read by ECOMP Framework library, ecompFW.jar

portal.api.impl.class = org.onap.portalapp.service.OnBoardingApiServiceImpl
portal.api.prefix = /api
max.idle.time = 5
user.attribute.name = user_attribute
decryption_key = ${VID_DECRYPTION_KEY}

# Log On for single sign on
ecomp_redirect_url	= ${VID_ECOMP_REDIRECT_URL}


# URL of the ECOMP Portal REST API
ecomp_rest_url = ${VID_ECOMP_REST_URL}

# UEB servers
ueb_url_list = ${VID_UEB_URL_LIST}

# ECOMP Portal listens here 
ecomp_portal_inbox_name = ${VID_ECOMP_PORTAL_INBOX_NAME}

# Replace these 3 default values with the ones for your specific App,
# as shown on the on-boarding page on the ECOMP Portal website.
ueb_app_key = ${VID_UEB_APP_KEY}
ueb_app_secret = ${VID_UEB_APP_SECRET}
ueb_app_mailbox_name = ${VID_UEB_APP_MAILBOX_NAME}
# Consumer group name for UEB topic.
# Use the special tag to generate a unique one for each sdk-app server.
ueb_app_consumer_group_name = ${VID_UEB_CONSUMER_GROUP}

ueb_listeners_enable = ${VID_UEB_LISTENERS_ENABLE}
ueb_rest_for_function_menu = true
