# Remote maven repositories to use when looking for plugins.  Comma separated
# list of URLs.
apiman.plugins.repositories=http://repository.jboss.org/nexus/content/groups/public/

# Apiman Manager logging. standard, json or a FQDN implementing IApimanLogger
apiman-manager.config.logger=standard

# ---------------------------------------------------------------------
# The following are settings for using elasticsearch for various
# apiman components.
# ---------------------------------------------------------------------
apiman.es.protocol=http
apiman.es.host=localhost
apiman.es.port=19200
apiman.es.cluster-name=apiman

# ---------------------------------------------------------------------
# Some hibernate settings only useful when JPA is the storage.type.
# ---------------------------------------------------------------------
apiman.hibernate.connection.datasource=java:jboss/datasources/apiman-manager
apiman.hibernate.dialect=io.apiman.manager.api.jpa.ApimanH2Dialect
apiman.hibernate.hbm2ddl.auto=validate

# How the API Manager UI authenticates to the API Manager REST services
apiman-manager-ui.api.authentication.type=bearerToken
apiman-manager-ui.api.authentication.token.generator=io.apiman.manager.ui.server.wildfly8.KeyCloakBearerTokenGenerator

# Security context settings.
apiman-manager.security-context.type=keycloak

# API Manager storage settings.
apiman-manager.storage.type=jpa
apiman-manager.storage.es.protocol=${apiman.es.protocol}
apiman-manager.storage.es.host=${apiman.es.host}
apiman-manager.storage.es.port=${apiman.es.port}
apiman-manager.storage.es.cluster-name=${apiman.es.cluster-name}
apiman-manager.storage.es.initialize=true

# API Manager metrics settings.
apiman-manager.metrics.type=es
apiman-manager.metrics.es.protocol=${apiman.es.protocol}
apiman-manager.metrics.es.host=${apiman.es.host}
apiman-manager.metrics.es.port=${apiman.es.port}
apiman-manager.metrics.es.cluster-name=${apiman.es.cluster-name}


# API Gateway components
apiman-gateway.registry=io.apiman.gateway.engine.ispn.InfinispanRegistry
apiman-gateway.plugin-registry=io.apiman.gateway.engine.impl.DefaultPluginRegistry
apiman-gateway.plugin-registry.pluginsDir=${jboss.server.data.dir}/apiman/plugins
apiman-gateway.plugin-registry.pluginRepositories=${apiman.plugins.repositories}
apiman-gateway.connector-factory=io.apiman.gateway.platforms.servlet.connectors.HttpConnectorFactory
apiman-gateway.policy-factory=io.apiman.gateway.engine.policy.PolicyFactoryImpl
apiman-gateway.components.ISharedStateComponent=io.apiman.gateway.engine.ispn.InfinispanSharedStateComponent
apiman-gateway.components.IRateLimiterComponent=io.apiman.gateway.engine.ispn.InfinispanRateLimiterComponent
apiman-gateway.components.IPolicyFailureFactoryComponent=io.apiman.gateway.platforms.servlet.PolicyFailureFactoryComponent
apiman-gateway.components.IBufferFactoryComponent=io.apiman.gateway.engine.impl.ByteBufferFactoryComponent
apiman-gateway.components.ICacheStoreComponent=io.apiman.gateway.engine.ispn.InfinispanCacheStoreComponent

# ---------------------------------------------------------------------
# Elasticsearch Metrics Settings
# ---------------------------------------------------------------------

apiman-gateway.metrics=io.apiman.gateway.engine.es.ESMetrics
apiman-gateway.metrics.client.type=jest
apiman-gateway.metrics.client.cluster-name=${apiman.es.cluster-name}
apiman-gateway.metrics.client.protocol=${apiman.es.protocol}
apiman-gateway.metrics.client.host=${apiman.es.host}
apiman-gateway.metrics.client.port=${apiman.es.port}
apiman-gateway.metrics.client.index=apiman_metrics

# ---------------------------------------------------------------------
# SSL/TLS settings for the gateway connector(s).
# ---------------------------------------------------------------------

# Enable devMode for HTTPS connections (gateway trusts any certificate).
# This should *NOT* be used in production mode. *Use with great care.*
apiman-gateway.connector-factory.tls.devMode=true

# Trust store contains certificate(s) trusted by gateway.
#apiman-gateway.connector-factory.tls.trustStore=<PATH_TO_TRUST_STORE>
#apiman-gateway.connector-factory.tls.trustStorePassword=<PASSWORD_IF_ANY>

# Key store contains gateway's keys (including private components: keep it safe).
#apiman-gateway.connector-factory.tls.keyStore=<PATH_TO_KEY_STORE>
#apiman-gateway.connector-factory.tls.keyStorePassword=<PASSWORD_IF_ANY> # Password on key store as a whole
#apiman-gateway.connector-factory.tls.keyPassword=<PASSWORD_IF_ANY> # Password on specific key(s)
# By default all keys can be used (will try all). If alias list provided, will only attempt to use listed keys.
#apiman-gateway.connector-factory.tls.keyAliases=<COMMA_SEPARATED_LIST>

# Allowed TLS/SSL protocols and ciphers suites as CSV. Availability will vary depending on your JVM impl.
# Uses JVM defaults depending if not explicitly provided.
# See: https://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html
#apiman-gateway.connector-factory.tls.allowedProtocols=TLSv1.2,TLSv1.1
#apiman-gateway.connector-factory.tls.allowedCiphers=TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

# Whether certificate host checks should be bypassed. *Use with great care.*
#apiman-gateway.connector-factory.tls.allowAnyHost=false

# Whether self-signed certificates should be automatically trusted. *Use with great care.*
#apiman-gateway.connector-factory.tls.allowSelfSigned=false

# ---------------------------------------------------------------------
# Registry Settings
# ---------------------------------------------------------------------

#apiman-gateway.registry=io.apiman.gateway.engine.es.ESRegistry
#apiman-gateway.registry.client.type=jest
#apiman-gateway.registry.client.cluster-name=${apiman.es.cluster-name}
#apiman-gateway.registry.client.protocol=${apiman.es.protocol}
#apiman-gateway.registry.client.host=${apiman.es.host}
#apiman-gateway.registry.client.port=${apiman.es.port}

# ---------------------------------------------------------------------
# Shared State Component Settings
# ---------------------------------------------------------------------

#apiman-gateway.components.ISharedStateComponent=io.apiman.gateway.engine.es.ESSharedStateComponent
#apiman-gateway.components.ISharedStateComponent.client.type=jest
#apiman-gateway.components.ISharedStateComponent.client.cluster-name=${apiman.es.cluster-name}
#apiman-gateway.components.ISharedStateComponent.client.protocol=${apiman.es.protocol}
#apiman-gateway.components.ISharedStateComponent.client.host=${apiman.es.host}
#apiman-gateway.components.ISharedStateComponent.client.port=${apiman.es.port}


# ---------------------------------------------------------------------
# Rate Limiter Component Settings
# ---------------------------------------------------------------------

#apiman-gateway.components.IRateLimiterComponent=io.apiman.gateway.engine.es.ESRateLimiterComponent
#apiman-gateway.components.IRateLimiterComponent.client.type=jest
#apiman-gateway.components.IRateLimiterComponent.client.cluster-name=${apiman.es.cluster-name}
#apiman-gateway.components.IRateLimiterComponent.client.protocol=${apiman.es.protocol}
#apiman-gateway.components.IRateLimiterComponent.client.host=${apiman.es.host}
#apiman-gateway.components.IRateLimiterComponent.client.port=${apiman.es.port}

# ---------------------------------------------------------------------
# Cache Store Component Settings
# ---------------------------------------------------------------------

#apiman-gateway.components.ICacheStoreComponent=io.apiman.gateway.engine.es.ESCacheStoreComponent
#apiman-gateway.components.ICacheStoreComponent.client.type=jest
#apiman-gateway.components.ICacheStoreComponent.client.cluster-name=${apiman.es.cluster-name}
#apiman-gateway.components.ICacheStoreComponent.client.protocol=${apiman.es.protocol}
#apiman-gateway.components.ICacheStoreComponent.client.host=${apiman.es.host}
#apiman-gateway.components.ICacheStoreComponent.client.port=${apiman.es.port}
