Integration Server Configurations¶
All the server-level configurations of your Micro Integrator instance can be applied using a single configuration file, which is the deployment.toml
file (stored in the MI_HOME/conf
directory).
The complete list of configuration parameters that you can use in the deployment.toml
file are listed below along with descriptions. You can also see the documentation on product installation and setup for details on applying product configurations to your Micro Integrator deployment.
Instructions for use¶
To update the product configurations:
- Open the
deployment.toml
file (stored in theMI_HOME/conf
directory). - Select the required configuration headers and parameters from the list given below and apply them to the
deployment.toml
file.
The default deployment.toml
file of the Micro Integrator is as follows:
[server]
hostname = "localhost"
[keystore.primary]
file_name = "wso2carbon.jks"
password = "wso2carbon"
alias = "wso2carbon"
key_password = "wso2carbon"
[truststore]
file_name = "client-truststore.jks"
password = "wso2carbon"
alias = "symmetric.key.value"
algorithm = "AES"
Deployment¶
[server]
hostname="localhost"
node_ip="127.0.0.1"
enable_mtom=false
enable_swa=false
[server]
Required
This configuration header is required for configuring the deployment parameters that are used for identifying a Micro Integrator server node. You need to update these values when you deploy WSO2 Micro Integrator. The required and optional parameters for this configuration are listed below.
hostname
string Required
"localhost"
"127.0.0.1","localhost","<any-ip-address>"
The hostname of the Micro Integrator instance.
offset
integer
0
Port offset allows you to run multiple WSO2 products, multiple instances of a WSO2 product, or multiple WSO2 product clusters on the same server or virtual machine (VM). Port offset defines the number by which all ports defined in the runtime such as the HTTP/S ports will be offset. For example, if the default HTTP port is 9443 and the port offset is 1, the effective HTTP port will be 9444. Therefore, for each additional WSO2 product instance, set the port offset to a unique value so that they can all run on the same server without any port conflicts.
enable_mtom
boolean Required
false
"true" or "false"
Use this paramater to enable MTOM (Message Transmission Optimization Mechanism) for the product server.
enable_swa
boolean Required
"true" or "false"
Use this paramater to enable SwA (SOAP with Attachments) for the product server. When SwA is enabled, the Micro Integrator will process the files attached to SOAP messages.
userAgent
string Required
WSO2 ${product.key} ${product.version}
serverDetails
string Required
WSO2 ${product.key} ${product.version}
serverDetails
string Required
WSO2 ${product.key} ${product.version}
synapse_config_file_path
string Required
repository/deployment/server/synapse-configs
Service Catalog Client¶
[[service_catalog]]
apim_host = "https://localhost:9443"
enable = true
username = "$secret{username}"
password = "$secret{password}"
[[service_catalog]]
Required
This cofiguration header is required if you want the Micro Integrator to publish integation services to the Service Catalog in the API Publisher. This allows you to generate an API proxy for the integrations deployed in the Micro Integrator.
apim_host
string Required
"https://127.0.0.1:9443"
"https://{hostname/ip}:{port}"
The hostname of the API Manager runtime. Be sure to replace {hostname/ip} and {port} with the relevant values.
enable
boolean Required
false
The service catalog client in the Micro Integrator is enabled when this parameter is set to 'true'.
username
string Required
admin
-
The user name for signing in to the API Manager runtime.
password
string Required
admin
-
The user password for signing in to the API Manager runtime.
Micro Integrator Dashboard¶
[dashboard_config]
dashboard_url = "https://localhost:9743/dashboard/api/"
heartbeat_interval = 5
group_id = "mi_dev"
node_id = "dev_node_2"
[dashboard_config]
Required
This configuration header is required for the Micro Integrator server to connect with the dashboard server.
dashboard_url
string Required
"https://localhost:9743/dashboard/api/"
https://{hostname/ip}:{port}/dashboard/api/
The URL to access the dashboard server. Be sure to replace {hostname/ip} and {port} with the relevant values from your environment.
heartbeat_interval
integer
5
The time interval (in seconds) between two consecutive heartbeats that are sent from the Micro Integrator to the dashboard server.
group_id
string Required
default
-
The server group to which the Micro Integrator instance belongs. Specify the same group ID in all the Micro Integrator servers that should belong to a single group. By default, a 'group_id' named 'default' is assinged to every Micro Integrator server that connects to the dashboard. When you sign in to the dashboard, you can view data per server group.
node_id
string Required
A random UUID or the node ID used for cluster coordination.
-
The dashboard identifies the Micro Integrator node by this ID. If you have already specified a node ID when you set up the Micro Integrator cluster, the same node ID applies here by default. However, if a node ID is not defined in your clustering configurations, a random uuid is used here by default.
Primary keystore¶
[keystore.primary]
file_name = "wso2carbon.jks"
type = "JKS"
password = "wso2carbon"
alias = "wso2carbon"
key_password = "wso2carbon"
[keystore.primary]
Required
This configuration header is required for configuring the parameters that connect the Micro Integrator to the primary keystore. This keystore is used for SSL handshaking (when the server communicates with another server) and for encrypting plain text information in configuration files. By default, this keystore is also used for encrypted data in internal datastores, unless you have configured a separate keystore for internal data encryption.
file_name
string Required
wso2carbon.jks
-
The name of the keystore file that is used for SSL communication and for encrypting/decrypting data in configuration files.
type
string Required
JKS
"JKS"
The type of the keystore file.
password
string Required
wso2carbon
The password of the keystore file that is used for SSL communication and for encrypting/decrypting data in configuration files. The keystore password is used when accessing the keys in the keystore.
alias
string Required
wso2carbon
The alias of the public key corresponding to the private key that is included in the keystore. The public key is used for encrypting data in the Micro Integrator server, which only the corresponding private key can decrypt. The public key is embedded in a digital certificate, and this certificate can be shared over the internet by storing it in a separate trust store file.
key_password
string Required
wso2carbon
The password of the private key that is included in the keystore. The private key is used to decrypt the data that has been encrypted using the keystore's public key.
Internal keystore¶
[keystore.primary]
file_name = "wso2carbon.jks"
type = "JKS"
password = "wso2carbon"
alias = "wso2carbon"
key_password = "wso2carbon"
[keystore.internal]
Required
This configuration header is required for configuring the parameters that connect the Micro Integrator to the keystore used for encrypting/decrypting data in internal data stores. You may sometimes choose to configure a separate keystore for this purpose because the primary keystore needs to renew certificates frequently. However, for encrypting information in internal data stores, the keystore certificates should not be changed frequently because the data that is already encrypted will become unusable every time the certificate changes. Read more about configuring the internal keystore.
file_name
string Required
wso2carbon.jks
-
The name of the keystore file that is used for data encryption/decryption in internal data stores. By default, the keystore file of the primary keystore is enabled for this purpose.
type
string Required
JKS
"JKS"
The type of the keystore file. By default, the keystore type of the primary keystore is enabled for this purpose.
password
string Required
wso2carbon
The password of the keystore file that is used for data encryption/decryption in internal data stores. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.
alias
string Required
wso2carbon
The alias of the public key corresponding to the private key that is included in the keystore. The public key is used for encrypting data in the Micro Integrator server, which only the corresponding private key can decrypt. The public key is embedded in a digital certificate, and this certificate can be shared over the internet by storing it in a separate trust store file. By default, the alias of the primary keystore is enabled for this purpose.
key_password
string Required
wso2carbon
The password of the private key that is included in the keystore. The private key is used to decrypt the data that has been encrypted using the keystore's public key. By default, the public key password of the primary keystore is enabled for this purpose.
System Parameters¶
[system.parameter]
org.wso2.SecureVaultPasswordRegEx = "any_valid_regex"
[system.parameter]
Required
This configuration header is required for configuring system parameters for the server.
org.wso2.SecureVaultPasswordRegEx
string
^[\S]{5,30}$
regex value
A regex pattern that specifies the password length and character composition for passwords in a synapse configuration.
Truststore¶
[truststore]
file_name="wso2truststore.jks"
type="JKS"
password="wso2carbon"
alias="symmetric.key.value"
[truststore]
Required
This configuration header is required for configuring the parameters that connect the Micro Integrator to the keystore file (trust store) that is used to store the digital certificates that the server trusts for SSL communication. Read more about configuring the truststore.
file_name
string Required
wso2truststore.jks
-
The name of the keystore file that is used for storing the trusted digital certificates. The product is shipped with a default trust store (wso2truststore.jks), which contains the self-signed digital certificate of the default keystore.
type
string Required
JKS
"JKS"
The type of the keystore file that is used as the trust store.
password
string Required
wso2carbon
The password of the keystore file that is used as the trust store.
alias
string Required
symmetric.key.value
The alias is the password of the digital certificate (which holds the public key) that is included in the trustore.
Default File-based User Store¶
[internal_apis.file_user_store]
enable = true
[[internal_apis.users]]
user.name = "user-1"
user.password = "pwd-1"
user.is_admin = true
[[internal_apis.users]]
user.name = "user-2"
user.password = "pwd-2"
[internal_apis.file_user_store]
Required
This configuration header is required for disabling the default file-based user store of the Micro Integrator's Management API. Read more about configuring user stores.
enable
integer
true
"true" or "false"
Set this paramter to 'false' if you want to disable the default file-based user store. This allows you to use an external user store for user authentication in the Management API.
[[internal_apis.users]]
Required
This configuration header is required for defining the user name and password for the Management API. Reuse this header when you want to add more users. The user credentials are stored in the default file-based user store of the Management API. Read more about configuring user stores.
user.name
string
admin
-
Enter a user name. Note that this will overwrite the default 'admin' user that is stored in the user store.
user.password
string
admin
-
Enter a password for the user specified by 'user.name'. Note that this will overwrite the default 'admin' password that is stored in the user store.
user.is_admin
boolean
false
"true" or "false"
Specifies whether or not the user has admin privileges.
External User Store¶
[user_store]
type = "read_only_ldap"
class = "org.wso2.micro.integrator.security.user.core.ldap.ReadOnlyLDAPUserStoreManager"
connection_url = "ldap://localhost:10389"
connection_name = "uid=admin,ou=system"
connection_password = "admin"
anonymous_bind = false
user_search_base = "ou=Users,dc=wso2,dc=org"
user_name_attribute = "uid"
user_name_search_filter = "(&(objectClass=person)(uid=?))"
user_name_list_filter = "(objectClass=person)"
read_groups = true
group_search_base = "ou=Groups,dc=wso2,dc=org"
group_name_attribute = "cn"
group_name_search_filter = "(&(objectClass=groupOfNames)(cn=?))"
group_name_list_filter = "(objectClass=groupOfNames)"
membership_attribute = "member"
back_links_enabled = false
username_java_regex = "[a-zA-Z0-9._\\-|//]{3,30}$"
rolename_java_regex = "[a-zA-Z0-9._\\-|//]{3,30}$"
password_java_regex = "^[\\S]{5,30}$"
scim_enabled = false
password_hash_method = "PLAIN_TEXT"
multi_attribute_separator = ","
max_user_name_list_length = 100
max_role_name_list_length = 100
user_roles_cache_enabled = true
connection_pooling_enabled = true
ldap_connection_timeout = 5000
read_timeout = ''
retry_attempts = ''
connection_retry_delay = "120000"
[user_store]
Required
This configuration header is required for conencting the Micro Integrator to an external user store.
type
string Required
"read_only_ldap"
"read_only_ldap", "read_write_ldap", "database"
This parameter specifies the type of user store. The following options are available: <ul><li>read_only_ldap: The Micro Integrator connects to a read-only LDAP. </li><li>read_write_ldap: The Micro Integrator connects to an LDAP with write permissions.</li><li>database: The Micro Integrator connects to an RDBMS user store.</li></ul> When you set this parameter, all of the remaining parameters (listed below) are inferred with default values. You can override the defaults by giving specific values to these parameters.
class
string
org.wso2.micro.integrator.security.user.core.ldap.ReadOnlyLDAPUserStoreManager
-
The implementation class that enables the read-only LDAP user store. If the type parameter is not used, you need to specify a value for this parameter.
read_only
boolean Required
true
"true" or "false"
Specifies whether or not the user store is read only.
connection_url
string Required
ldap://localhost:10389
-
The URL for connecting to the LDAP. Override the default URL for your setup. If you are connecting over ldaps (secured LDAP), you need to import the certificate of the user store to the truststore (wso2truststore.jks by default). See the instructions on how to add certificates to the truststore.
connection_name
string Required
uid=admin,ou=system
-
The username used to connect to the user store and perform various operations. This user does not need to be an administrator in the user store. However, the user requires permission to read the user list and user attributes, and to perform search operations on the user store. The value you specify is used as the DN (Distinguish Name) attribute of the user who has sufficient permissions to perform operations on users and roles in LDAP.
connection_password
string Required
admin
Password for the connection user name.
user_search_base
string
ou=system
-
The DN of the context or object under which the user entries are stored in the user store. When the user store searches for users, it will start from this location of the directory.
user_name_attribute
string
uid
-
The attribute used for uniquely identifying a user entry. Users can be authenticated using their email address, UID, etc. The name of the attribute is considered as the username. Note that the email address is considered as a special case in WSO2 products. Read more about using the email address as user name.
user_name_search_filter
string
(&(objectClass=person)(uid=?))
-
Filtering criteria used to search for a particular user entry.
user_name_list_filter
string
(objectClass=person)
-
Filtering criteria for searching user entries in the user store. This query or filter is used when doing search operations on users with different search attributes. According to the default configuration, the search operation only provides the objects created from the person object class.
read_groups
boolean
true
"true" or "false"
This indicates whether groups should be read from the user store. If this is set to 'false', none of the groups in the user store can be read, and the following group configurations are NOT mandatory: 'group_search_base', 'group_name_list_filter', or 'group_name_attribute'.
group_search_base
string
ou=system
-
The DN of the context or object under which the group entries are stored in the user store. When the user store searches for groups, it will start from this location of the directory.
group_name_attribute
string
cn
-
The attribute used for uniquely identifying a group entry. This attribute is to be treated as the group name.
group_name_search_filter
string
(&(objectClass=groupOfNames)(cn=?))
-
The filtering criteria used to search for a particular group entry.
group_name_list_filter
string
(objectClass=groupOfNames)
-
The filtering criteria for searching group entries in the user store. This query or filter is used when doing search operations on groups with different search attributes.
membership_attribute
string
member
-
Defines the attribute that contains the distinguished names (DN) of user objects that are in a group.
back_links_enabled
string
member
-
Defines whether the backlink support is enabled.
username_java_regex
string
[a-zA-Z0-9._\-|//]{3,30}$
-
The regular expression used by the back-end components for username validation. By default, a length of 3 to 30 allowed for strings with non-empty characters. You can provide ranges of alphabets, numbers, and also ranges of ASCII values in the RegEx properties.
rolename_java_regex
string
[a-zA-Z0-9._\-|//]{3,30}$
-
The regular expression used by the back-end components for role name validation. By default, a length of 3 to 30 allowed for strings with non-empty characters. You can provide ranges of alphabets, numbers, and also ranges of ASCII values in the RegEx properties.
password_java_regex
string
^[\S]{5,30}$
-
The regular expression used by the back-end components for password validation. By default, a length of 3 to 30 allowed for strings with non-empty characters. You can provide ranges of alphabets, numbers, and also ranges of ASCII values in the RegEx properties.
scim_enabled
boolean
true
"true" or "false"
The regular expression used by the back-end components for password validation. By default, a length of 3 to 30 allowed for strings with non-empty characters. You can provide ranges of alphabets, numbers, and also ranges of ASCII values in the RegEx properties.
password_hash_method
string
PLAIN_TEXT
"SHA", "MD5", "PLAIN_TEXT"
Specifies the password hashing algorithm used for hashing the password before storing in the user store. You can use the SHA digest method (SHA-1, SHA-256), the MD 5 digest method, or plain text passwords.
multi_attribute_separator
string
,
-
This parameter is used to define a character to separate multiple attributes. This ensures that it will not appear as part of a claim value. Normally ',' is used to separate multiple attributes, but you can define ',,,', '...', or a similar character sequence.
max_user_name_list_length
integer
100
-
Controls the number of users listed in the user store. This is useful when you have a large number of users and you don't want to list them all. Setting this property to 0 displays all users. In some user stores, there are policies to limit the number of records that can be returned from the query. Setting the value to 0 will list the maximum results returned by the user store. To increase that value, you need to set it at the user store level. Active directory has the 'MaxPageSize' property with the default value set to 1000.
max_role_name_list_length
integer
100
-
Controls the number of roles listed in the user store. This is useful when you have a large number of roles and you don't want to list them all. Setting this property to 0 displays all roles. In some user stores, there are policies to limit the number of records that can be returned from the query. Setting the value to 0 will list the maximum results returned by the user store. To increase that value, you need to set it at the user store level. Active directory has the 'MaxPageSize' property with the default value set to 1000.
user_roles_cache_enabled
boolean
true
"true" or "false"
This parameter indicates whether the list of roles for a user should be cached. Set this to 'false' if the user roles are changed by external means and the changes should be instantly reflected in the product instance.
connection_pooling_enabled
boolean
true
"true" or "false"
Define whether LDAP connection pooling is enabled. The connection performance will improve when this parameter is enabled.
ldap_connection_timeout
integer
5000
-
This is the connection timeout period (in milliseconds) when the initial connection is created.
read_timeout
integer
-
-
The value for this parameter is the read timeout in milliseconds for LDAP operations. If the LDAP provider cannot get an LDAP response within that period, it aborts the read attempt. The integer should be greater than zero. An integer less than or equal to zero means no read timeout is specified, which is equivalent to waiting for the response infinitely until it is received.
retry_attempts
integer
-
-
Retry the authentication request if a timeout happened.
Database Connection¶
[[datasource]]
id = "WSO2_CARBON_DB"
url= "jdbc:h2:./repository/database/WSO2CARBON_DB;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=60000"
username="username"
password="password"
driver="org.h2.Driver"
pool_options.maxActive=50
pool_options.maxWait = 60000
pool_options.testOnBorrow = true
[[datasource]]
Required
This configuration header is required for connecting to a database from the Micro Integrator. Databases are only required if you are connecting the Micro Integrator to an RDBMS user store.
id
string Required
-
-
The name of the database.
url
string Required
-
-
The connection URL for your database. Note that the URL depends on the type of database you use.
username
string Required
-
-
The user name for connecting to the database.
password
string Required
-
-
The password for connecting to the database.
driver
string Required
-
-
The driver class of your database.
pool_options.maxActive
integer
50
-
The maximum number of active connections that can be allocated from this pool at the same time. If you set this value too low, the response times for some requests might slow down as they have to wait for connections to get free. A value too high might cause too much memory/resource utilization and the system may slow down or be unresponsive.
pool_options.maxWait
integer
60000
-
Maximum number of milliseconds that the pool waits (when there are no available connections) for a connection to be returned before throwing an exception.
pool_options.testOnBorrow
boolean
true
"true" or "false"
Used to indicate if objects will be validated before being borrowed from the pool. If the object fails to validate, it will be dropped from the pool, and we will attempt to borrow another one.
pool_options.maxIdle
integer
8
-
The maximum number of connections that can remain idle in the pool, without extra ones being released. Default value is 8. Put a negative value for unlimited. Idle connections are checked periodically (if enabled) and connections that have been idle for longer than minEvictableIdleTimeMillis will be released.
pool_options.minIdle
integer
0
-
The minimum number of connections that can remain idle in the pool, without extra ones being created. The connection pool can shrink below this number if validation queries fail. Default value is 0.
pool_options.validationInterval
integer
30000
-
This parameter controls how frequently a given validation query is executed (time in milliseconds). The default value is 30000 (30 seconds). That is, if a connection is due for validation, but has been validated previously within this interval, it will not be validated again.
pool_options.validationQuery
string
Null
-
The SQL query used to validate connections from this pool before returning them to the caller. If specified, this query does not have to return any data, it just can't throw an SQLException. The default value is null. Example values are SELECT 1(mysql), select 1 from dual(oracle), SELECT 1(MS Sql Server).
pool_options.MaxPermSize
string
-
-
The memory size allocated for WSO2 Micro Integrator.
pool_options.removeAbandoned
boolean
false
"true" or "false"
If this property is set to 'true', a connection is considered abandoned and eligible for removal if it has been in use for longer than the removeAbandonedTimeout value explained below.
pool_options.removeAbandonedTimeout
boolean
false
"true" or "false"
The time in seconds that should pass before a connection that is in use can be removed. This is the time period after which the connection will be declared abandoned. This value should be set to the longest running query that the applications might have.
pool_options.logAbandoned
boolean
false
"true" or "false"
Set this property to 'true' if you wish to log when the connection was abandoned. If this option is set to 'true', a stack trace is recorded during the dataSource.getConnection call and is printed when a connection is not returned.
pool_options.initialSize
integer
0
-
The initial number of connections created when the pool is started. Default value is 0.
pool_options.defaultTransactionIsolation
string
TRANSACTION_NONE
"TRANSACTION_NONE", "TRANSACTION_UNKNOWN", "TRANSACTION_READ_COMMITTED", "TRANSACTION_READ_UNCOMMITTED", "TRANSACTION_REPEATABLE_READ", "TRANSACTION_SERIALIZABLE"
The default TransactionIsolation state of connections created by this pool.
pool_options.validationQueryTimeout
integer
-1
-
The timeout in seconds before a connection validation queries fail. This works by calling java.sql.Statement.setQueryTimeout(seconds) on the statement that executes the validationQuery . The pool itself doesn't timeout the query. It is still up to the JDBC driver to enforce query timeouts. A value less than or equal to zero will disable this feature. The default value is -1.
pool_options.timeBetweenEvictionRunsMillis
integer
5000
-
The number of milliseconds to sleep between runs of the idle connection validation/cleaner thread. This value should not be set under 1 second. It dictates how often we check for idle, abandoned connections, and how often we validate idle connections. The default value is 5000 (5 seconds).
pool_options.numTestsPerEvictionRun
integer
-
-
The number of objects to examine during each run of the idle object evictor thread.
pool_options.minEvictableIdleTimeMillis
integer
60000
-
The minimum amount of time an object may sit idle in the pool before it is eligible for eviction. The default value is 60000 (60 seconds).
pool_options.defaultCatalog
string
-
-
The default catalog of connections created by this pool.
pool_options.validatorClassName
string
-
-
The name of a class that implements the org.apache.tomcat.jdbc.pool.Validator interface and provides a no-arg constructor (may be implicit). If specified, the class will be used to create a Validator instance, which is then used instead of any validation query to validate connections. The default value is null. An example value is com.mycompany.project.SimpleValidator.
pool_options.connectionProperties
string
Null
-
The connection properties that will be sent to our JDBC driver when establishing new connections. Format of the string must be [propertyName=property;]* NOTE - The 'user' and 'password' properties will be passed explicitly, so they do not need to be included here. The default value is null.
pool_options.initSQL
string
-
-
The ability to run a SQL statement exactly once, when the connection is created.
pool_options.jdbcInterceptors
string
-
-
Flexible and pluggable interceptors to create any customizations around the pool, the query execution and the result set handling.
pool_options.abandonWhenPercentageFull
integer
0
-
Connections that have been abandoned (timed out) wont get closed and reported up unless the number of connections in use are above the percentage defined by abandonWhenPercentageFull. The value should be between 0-100. The default value is 0, which implies that connections are eligible for closure as soon as removeAbandonedTimeout has been reached.
pool_options.maxAge
integer
0
-
Time in milliseconds to keep this connection. When a connection is returned to the pool, the pool will check to see if the now - time-when-connected > maxAge has been reached, and if so, it closes the connection rather than returning it to the pool. The default value is 0, which implies that connections will be left open and no age check will be done upon returning the connection to the pool.
pool_options.suspectTimeout
integer
0
-
Timeout value in seconds. Default value is 0. Similar to to the removeAbandonedTimeout value but instead of treating the connection as abandoned, and potentially closing the connection, this simply logs the warning if logAbandoned is set to true. If this value is equal or less than 0, no suspect checking will be performed. Suspect checking only takes place if the timeout value is larger than 0 and the connection was not abandoned or if abandon check is disabled. If a connection is suspect a WARN message gets logged and a JMX notification gets sent once.
Management API - JWT Handler¶
[management_api.jwt_token_security_handler]
enable = true
token_store_config.max_size= "200"
token_store_config.clean_up_interval= "600"
token_store_config.remove_oldest_token_on_overflow= "true"
token_config.expiry= "3600"
token_config.size= "2048"
[management_api.jwt_token_security_handler]
Required
This configuration header is required for configuring the default JWT token store configurations of the Micro Integrator's Management API. Read more about securing the Management API.
enable
boolean
true
"true" or "false"
Set this paramter to 'false' if you want to disable JWT authentication for the management API.
token_store_config.max_size
integer
200
-
Number of tokens stored in the in-memory token store. User can increase or decrease this value accordingly.
token_store_config.clean_up_interval
integer
600
-
Token cleanup will be handled through a seperate thread and the frequency of the token clean up can be configured from this setting. This will clean all the expired and revoked security tokens. The thread will run only when there are tokens in the store. If it is empty, the cleanup thread will automatically stop. Interval is specified in seconds.
token_store_config.remove_oldest_token_on_overflow
boolean
true
"true" or "false"
If set to 'true', this will remove the oldest accessed token when the token store is full. If it is set to 'false', the user should either wait until other tokens expire or increase the token store max size accordingly.
token_config.expiry
integer
3600
-
This configures the expiry time of the token (specified in seconds).
token_config.size
integer
2048
-
Specifies the key size of the token.
Management API - Authorization Handler¶
[management_api.authorization_handler]
enable = false
[[management_api.authorization_handler.resources]]
path = "/users"
[[management_api.authorization_handler.resources]]
path = "/apis"
[management_api.authorization_handler]
Required
This configuration header is required for disabling authorization for the Micro Integrator's Management API. Authorization only applies when an external user store is used. Read more about securing the Management API.
enable
boolean
true
"true" or "false"
Set this paramter to 'false' if you want to disable authorization for the management API.
[[management_api.authorization_handler.resources]]
Required
This configuration header is required for enabling authorization for additional resources (other than 'users') of the Micro Integrator's Management API. Read more about securing the Management API.
path
string
/resource_name
Use this parameter to specify the resources in the management API for which you want to enable authorization.
Management API - CORS¶
[management_api.cors]
enabled = true
allowed_origins = "*"
allowed_headers = "Authorization"
[management_api.cors]
Required
This configuration header is required for configuring CORs for the Management API of the Micro Integrator. Read more about securing the Management API.
enabled
boolean
true
-
Set this paramter to 'false' if you want to disable CORs for the Management API.
allowed_origins
string
*
any string
Specify the allowed origins. By default '*' indicates that all origins are allowed.
allowed_headers
string
Authorization
-
Specify the allowed authorization headers.
Message Builders (non-blocking mode)¶
[message_builders]
application_xml = "org.apache.axis2.builder.ApplicationXMLBuilder"
form_urlencoded = "org.apache.synapse.commons.builders.XFormURLEncodedBuilder"
multipart_form_data = "org.apache.axis2.builder.MultipartFormDataBuilder"
text_plain = "org.apache.axis2.format.PlainTextBuilder"
application_json = "org.wso2.micro.integrator.core.json.JsonStreamBuilder"
json_badgerfish = "org.apache.axis2.json.JSONBadgerfishOMBuilder"
text_javascript = "org.apache.axis2.json.JSONBuilder"
octet_stream = "org.wso2.carbon.relay.BinaryRelayBuilder"
application_binary = "org.apache.axis2.format.BinaryBuilder"
[message_builders]
Required
This configuration header is required for configuring the message builder implementation that is used to build messages that are received by the Micro Integrator in the default non-blocking mode. If you are using the Micro Integrator in blocking mode, see the message builder configurations for blocking mode.
application_xml
string
org.apache.axis2.builder.ApplicationXMLBuilder
-
The message builder implementation that builds messages with the 'application_xml' content type. If required, you can change the default builder class.
form_urlencoded
string
-
org.apache.synapse.commons.builders.XFormURLEncodedBuilder
The message builder implementation that builds messages with the 'form_urlencoded' content type. If required, you can change the default builder class.
multipart_form_data
string
org.apache.axis2.builder.MultipartFormDataBuilder
-
The message builder implementation that builds messages with the 'multipart_form_data' content type. If required, you can change the default builder class.
text_plain
string
org.apache.axis2.format.PlainTextBuilder
-
The message builder implementation that builds messages with the 'text_plain' content type. If required, you can change the default builder class.
application_json
string
org.wso2.micro.integrator.core.json.JsonStreamBuilder
-
The message builder implementation that builds messages with the 'application_json' content type. If required, you can change the default builder class.
json_badgerfish
string
org.apache.axis2.json.JSONBadgerfishOMBuilder
-
The message builder implementation that builds messages with the 'json_badgerfish' content type. If required, you can change the default builder class.
text_javascript
string
org.apache.axis2.json.JSONBuilder
-
The message builder implementation that builds messages with the 'text_javascript' content type. If required, you can change the default builder class.
octet_stream
string
org.wso2.carbon.relay.BinaryRelayBuilder
-
The message builder implementation that builds messages with the 'octet_stream' content type. If required, you can change the default builder class.
application_binary
string
org.apache.axis2.format.BinaryBuilder
-
The message builder implementation that builds messages with the 'application_binary' content type. If required, you can change the default builder class.
Message Builders (blocking mode)¶
[blocking.message_builders]
application_xml = "org.apache.axis2.builder.ApplicationXMLBuilder"
form_urlencoded = "org.apache.synapse.commons.builders.XFormURLEncodedBuilder"
multipart_form_data = "org.apache.axis2.builder.MultipartFormDataBuilder"
text_plain = "org.apache.axis2.format.PlainTextBuilder"
application_json = "org.wso2.micro.integrator.core.json.JsonStreamBuilder"
json_badgerfish = "org.apache.axis2.json.JSONBadgerfishOMBuilder"
text_javascript = "org.apache.axis2.json.JSONBuilder"
octet_stream = "org.wso2.carbon.relay.BinaryRelayBuilder"
application_binary = "org.apache.axis2.format.BinaryBuilder"
[blocking.message_builders]
Required
This configuration header is required for configuring the message builder implementation that is used to build messages that are received by the Micro Integrator in blocking mode. You can use the same list of parameters that are available for message builders in non-blocking mode.
Message Formatters (non-blocking mode)¶
[message_formatters]
form_urlencoded = "org.apache.synapse.commons.formatters.XFormURLEncodedFormatter"
multipart_form_data = "org.apache.axis2.transport.http.MultipartFormDataFormatter"
application_xml = "org.apache.axis2.transport.http.ApplicationXMLFormatter"
text_xml = "org.apache.axis2.transport.http.SOAPMessageFormatter"
soap_xml = "org.apache.axis2.transport.http.SOAPMessageFormatter"
text_plain = "org.apache.axis2.format.PlainTextFormatter"
application_json = "org.wso2.micro.integrator.core.json.JsonStreamFormatter"
json_badgerfish = "org.apache.axis2.json.JSONBadgerfishMessageFormatter"
text_javascript = "org.apache.axis2.json.JSONMessageFormatter"
octet_stream = "org.wso2.carbon.relay.ExpandingMessageFormatter"
application_binary = "org.apache.axis2.format.BinaryFormatter"
[message_formatters]
Required
This configuration header is required for configuring the message formatting implementation that is used for formatting messages that are sent out of the Micro Integrator in non-blocking mode. If you are using the Micro Integrator in blocking mode, see the message formatter configurations for blocking mode.
application_xml
string
org.apache.axis2.transport.http.ApplicationXMLFormatter
-
The message formating implementation that formats messages with the 'application_xml' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.
form_urlencoded
string
-
org.apache.synapse.commons.formatters.XFormURLEncodedFormatter
The message formating implementation that formats messages with the 'form_urlencoded' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.
multipart_form_data
string
org.apache.axis2.transport.http.MultipartFormDataFormatter
-
The message formating implementation that formats messages with the 'multipart_form_data' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.
text_plain
string
org.apache.axis2.format.PlainTextFormatter
-
The message formating implementation that formats messages with the 'text_plain' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.
application_json
string
org.wso2.micro.integrator.core.json.JsonStreamFormatter
-
The message formating implementation that formats messages with the 'application_json' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.
json_badgerfish
string
org.apache.axis2.json.JSONBadgerfishMessageFormatter
-
The message formating implementation that formats messages with the 'json_badgerfish' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.
text_javascript
string
org.apache.axis2.json.JSONMessageFormatter
-
The message formating implementation that formats messages with the 'text_javascript' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.
octet_stream
string
org.wso2.carbon.relay.ExpandingMessageFormatter
-
The message formatting implementation that formats messages with the 'octet_stream' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.
application_binary
string
org.apache.axis2.format.BinaryFormatter
-
The message formating implementation that formats messages with the 'application_binary' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.
text_xml
string
org.apache.axis2.transport.http.SOAPMessageFormatter
-
The message formating implementation that formats messages with the 'text_xml' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.
soap_xml
string
org.apache.axis2.transport.http.SOAPMessageFormatter
-
The message formating implementation that formats messages with the 'soap_xml' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.
Message Formatters (blocking mode)¶
[blocking.message_formatters]
form_urlencoded = "org.apache.synapse.commons.formatters.XFormURLEncodedFormatter"
multipart_form_data = "org.apache.axis2.transport.http.MultipartFormDataFormatter"
application_xml = "org.apache.axis2.transport.http.ApplicationXMLFormatter"
text_xml = "org.apache.axis2.transport.http.SOAPMessageFormatter"
soap_xml = "org.apache.axis2.transport.http.SOAPMessageFormatter"
text_plain = "org.apache.axis2.format.PlainTextFormatter"
application_json = "org.wso2.micro.integrator.core.json.JsonStreamFormatter"
json_badgerfish = "org.apache.axis2.json.JSONBadgerfishMessageFormatter"
text_javascript = "org.apache.axis2.json.JSONMessageFormatter"
octet_stream = "org.wso2.carbon.relay.ExpandingMessageFormatter"
application_binary = "org.apache.axis2.format.BinaryFormatter"
[blocking.message_formatters]
Required
This configuration header is required for configuring the message formatter implementations that are used to format messages that are sent out from the Micro Integrator in blocking mode. You can use the same list of parameters that are available for message formatters in non-blocking mode.
Custom Message Builders (non-blocking mode)¶
[[custom_message_builders]]
content_type = "application/json/badgerfish"
class = "org.apache.axis2.json.JSONBadgerfishOMBuilder"
[[custom_message_builders]]
Required
This configuration header is required for configuring the custom message builder implementation class and the selected content types to which the builder should apply in non-blocking mode. See the instructions on configuring custom message builders and formatters.
content_type
string Required
-
-
The content types to which the custom message builder implementation should apply. You can specify the list of content types as follows: application/json/badgerfish.
class
string Required
-
-
The custom message builder implementation that should apply to the given content types.
Custom Message Builders (blocking mode)¶
[[blocking.custom_message_builders]]
content_type = "application/json/badgerfish"
class = "org.apache.axis2.json.JSONBadgerfishOMBuilder"
[[blocking.custom_message_builders]]
Required
This configuration header is required for configuring the custom message builder implementation class and the selected content types to which the builder should apply in blocking mode. See the instructions on configuring custom message builders and formatters. You can use the same list of parameters that are available for custom message builders in non-blocking mode.
Custom Message Formatters (non-blocking mode)¶
[[custom_message_formatters]]
content_type = "application/json/badgerfish"
class = "org.apache.axis2.json.JSONBadgerfishMessageFormatter"
[[custom_message_formatters]]
Required
This configuration header is required for configuring the custom message formatter implementation class and the selected content types to which the formatter should apply in non-blocking mode. See the instructions on configuring custom message builders and formatters.
content_type
string Required
-
-
The content types to which the custom message formatter implementation should apply. You can specify the list of content types as follows: application/json/badgerfish.
class
string Required
-
-
The custom message formatter implementation that should apply to the given content types.
Custom Message Formatters (blocking mode)¶
[[blocking.custom_message_formatters]]
content_type = "application/json/badgerfish"
class = "org.apache.axis2.json.JSONBadgerfishMessageFormatter"
[[blocking.custom_message_formatters]]
Required
This configuration header is required for configuring the custom message formatter implementation class and the selected content types to which the formatter should apply in blocking mode. See the instructions on configuring custom message builders and formatters. You can use the same list of parameters that are available for custom message formatters in non-blocking mode.
Server Request Processor¶
[[server.get_request_processor]]
item = "swagger.yaml"
class = "org.wso2.micro.integrator.transport.handlers.requestprocessors.swagger.format.SwaggerYamlProcessor"
[[server.get_request_processor]]
item = "swagger.json"
class = "org.wso2.micro.integrator.transport.handlers.requestprocessors.swagger.format.SwaggerJsonProcessor"
[[server.get_request_processor]]
Required
This configuration header is required for configuring the parameters that specify how special HTTP GET requests (such as '?wsdl', '?policy', etc.) are processed. This is an array-type header, which you can reuse depending on the number of processors you want to enable.
item
string Required
"swagger.yaml" and "swagger.json"
-
The item repesents the first parameter in the query string (e.g. ?wsdl), which needs special processing.
class
string Required
"org.wso2.micro.integrator.transport.handlers.requestprocessors.swagger.format.SwaggerYamlProcessor" and "org.wso2.micro.integrator.transport.handlers.requestprocessors.swagger.format.SwaggerYamlProcessor"
-
This is the class that implements the org.wso2.carbon.transport.HttpGetRequestProcessor processor. By default, the following two classes are used for handling the two default request items: org.wso2.micro.integrator.transport.handlers.requestprocessors.swagger.format.SwaggerYamlProcessor (for swagger.yaml) and org.wso2.micro.integrator.transport.handlers.requestprocessors.swagger.format.SwaggerYamlProcessor (for swagger.json).
HTTP/S transport (non-blocking mode)¶
[transport.http]
socket_timeout = "3m"
core_worker_pool_size = 400
max_worker_pool_size = 400
worker_pool_queue_length = -1
io_buffer_size = 16384
max_http_connection_per_host_port = 32767
preserve_http_user_agent = false
preserve_http_server_name = true
preserve_http_headers = ["Content-Type"]
disable_connection_keepalive = false
enable_message_size_validation = false
max_message_size_bytes = 81920
max_open_connections = -1
force_xml_validation = false
force_json_validation = false
listener.port = 8280 #inferred default: 8280
listener.wsdl_epr_prefix ="$ref{server.hostname}"
listener.bind_address = "$ref{server.hostname}"
listener.secured_port = 8243
listener.secured_wsdl_epr_prefix = "$ref{server.hostname}"
listener.secured_bind_address = "$ref{server.hostname}"
listener.secured_protocols = "TLSv1,TLSv1.1,TLSv1.2"
listener.verify_client = "require"
listener.ssl_profile.file_path = "conf/sslprofiles/listenerprofiles.xml"
listener.ssl_profile.read_interval = "1h"
listener.preferred_ciphers = "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"
listener.keystore.location ="$ref{keystore.tls.file_name}"
listener.keystore.type = "$ref{keystore.tls.type}"
listener.keystore.password = "$ref{keystore.tls.password}"
listener.keystore.key_password = "$ref{keystore.tls.key_password}"
listener.truststore.location = "$ref{truststore.file_name}"
listener.truststore.type = "$ref{truststore.type}"
listener.truststore.password = "$ref{truststore.password}"
sender.warn_on_http_500 = "*"
sender.proxy_host = "$ref{server.hostname}"
sender.proxy_port = 3128
sender.non_proxy_hosts = ["$ref{server.hostname}"]
sender.hostname_verifier = "AllowAll"
sender.keystore.location ="$ref{keystore.tls.file_name}"
sender.keystore.type = "$ref{keystore.tls.type}"
sender.keystore.password = "$ref{keystore.tls.password}"
sender.keystore.key_password = "$ref{keystore.tls.key_password}"
sender.truststore.location = "$ref{truststore.file_name}"
sender.truststore.type = "$ref{truststore.type}"
sender.truststore.password = "$ref{truststore.password}"
sender.ssl_profile.file_path = "conf/sslprofiles/senderprofiles.xml"
sender.ssl_profile.read_interval = "30s"
enable_message_size_validation = false
max_message_size_bytes = 2147483647
max_open_connections = -1
force_xml_validation = false
force_json_validation = false
[transport.http]
Required
This configuration header is required for configuring the parameters that are used for tuning the default HTTP/S passthrough transport of the Micro Integrator in non-blocking mode.
socket_timeout
integer Required
180000
-
This is the maximum period of inactivity between two consecutive data packets, specified in milliseconds.
core_worker_pool_size
integer Required
400
-
The Micro Integrator uses a thread pool executor to create threads and to handle incoming requests. This parameter controls the number of core threads used by the executor pool. If you increase this parameter value, the number of requests received that can be processed by the integrator increases, hence, the throughput also increases. The nature of the integration scenario and the number of concurrent requests received by the integrator are the main factors that helps to determine this parameter.
max_worker_pool_size
integer Required
400
-
This is the maximum number of threads in the worker thread pool. Specifying a maximum limit avoids performance degradation that can occur due to context switching. If the specified value is reached, you will see the error 'SYSTEM ALERT - HttpServerWorker threads were in BLOCKED state during last minute'. This can occur due to an extraordinarily high number of requests sent at a time when all the threads in the pool are busy, and the maximum number of threads is already reached.
worker_pool_queue_length
integer Required
-1
-
This defines the length of the queue that is used to hold runnable tasks to be executed by the worker pool. The thread pool starts queuing jobs when all the existing threads are busy, and the pool has reached the maximum number of threads. The value for this parameter should be -1 to use an unbound queue. If a bound queue is used and the queue gets filled to its capacity, any further attempts to submit jobs fail causing some messages to be dropped by Synapse.
io_buffer_size
integer Required
16384
-
This is the value of the memory buffer allocated when reading data into the memory from the underlying socket/file channels. You should leave this property set to the default value.
max_http_connection_per_host_port
integer Required
32767
-
This defines the maximum number of connections allowed per host port.
preserve_http_user_agent
boolean Required
"true" or "false"
-
If this parameter is set to true, the user-agent HTTP header of messages passing through the integrator is preserved and printed in the outgoing message.
preserve_http_headers
string Required
Content-Type
-
This parameter allows you to specify the header field/s of messages passing through the EI that need to be preserved and printed in the outgoing message such as Location, CommonsHTTPTransportSenderKeep-Alive, Date, Server, User-Agent, and Host. For example, http.headers.preserve = Location, Date, Server.
disable_connection_keepalive
boolean Required
false
"true" or "false"
If this parameter is set to true, the HTTP connections with the back end service are closed soon after the request is served. It is recommended to set this property to false so that the integrator does not have to create a new connection every time it sends a request to a back-end service. However, you may need to close connections after they are used if the back-end service does not provide sufficient support for keep-alive connections.
listener.port
integer Required
8290
-
The port on which this transport receiver should listen for incoming messages.
listener.wsdl_epr_prefix
string Required
-
-
A URL prefix which will be added to all service EPRs and EPRs in WSDLs etc.
listener.secured_port
integer Required
8253
-
The secured port on which this transport receiver should listen for incoming messages.
listener.keystore.location
string Required
MI_HOME/repository/resources/security/wso2carbon.jks
-
The path to the keystore file that is used for securing the HTTP passthrough connection. By default, the keystore file of the primary keystore is enabled for this purpose.
listener.keystore.type
string Required
JKS
"JKS"
The type of the keystore file. By default, the keystore type of the primary keystore is enabled for this purpose.
listener.keystore.password
string Required
wso2carbon
-
The password of the keystore file that is used for securing the HTTP passthrough connection. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.
listener.keystore.key_password
string Required
wso2carbon
-
The password of the private key that is used for securing the HTTP passthrough connection. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.
listener.truststore.location
string Required
MI_HOME/repository/resources/security/wso2truststore.jks
-
The path to the keystore file that is used for storing the trusted digital certificates. By default, the product's trust store is configured for this purpose.
listener.truststore.type
string Required
JKS
"JKS"
The type of the keystore file that is used as the trust store. By default, the product's trust store is configured for this purpose.
listener.truststore.password
string Required
wso2carbon
-
The password of the keystore file that is used as the trust store. By default, the product's trust store is configured for this purpose.
sender.warn_on_http_500
string Required
-
-
If the outgoing messages should be sent through an HTTP proxy server, use this parameter to specify the target proxy.
sender.proxy_host
string
-
-
If the outgoing messages should be sent through an HTTP proxy server, use this parameter to specify the target proxy.
sender.proxy_port
integer
-
-
The port through which the target proxy (specified by the 'sender.proxy_port' parameter) accepts HTTP traffic.
sender.proxy_username
string
-
-
The username for authenticating the HTTP proxy server.
sender.proxy_password
string
-
-
The password for authenticating the HTTP proxy server.
sender.secured_proxy_host
string
-
-
If the outgoing messages should be sent through an HTTPS proxy server, use this parameter to specify the target proxy.
sender.secured_proxy_port
integer
-
-
The port through which the target proxy (specified by the 'sender.secured_proxy_port' parameter) accepts HTTPS traffic.
sender.secured_proxy_username
string
-
-
The username for authenticating the HTTPS proxy server.
sender.secured_proxy_password
string
-
-
The password for authenticating the HTTPS proxy server.
sender.non_proxy_hosts
string Required
-
-
The list of hosts to which the HTTP traffic should be sent directly without going through the proxy. When trying to add multiple hostnames along with an asterisk in order to define a set of sub-domains for non-proxy hosts, you need to add a period before the asterisk when configuring proxy server.
sender.hostname_verifier
string Required
-
-
The list of hosts to which the HTTP traffic should be sent directly without going through the proxy. When trying to add multiple hostnames along with an asterisk in order to define a set of sub-domains for non-proxy hosts, you need to add a period before the asterisk when configuring proxy server.
sender.keystore.location
string Required
MI_HOME/repository/resources/security/wso2carbon.jks
-
The path to the keystore file that is used for securing the HTTP passthrough connection. By default, the keystore file of the primary keystore is enabled for this purpose.
sender.keystore.type
string Required
JKS
"JKS"
The type of the keystore file. By default, the keystore type of the primary keystore is enabled for this purpose.
sender.keystore.password
string Required
wso2carbon
-
The password of the keystore file that is used for securing the HTTP passthrough connection. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.
sender.keystore.key_password
string Required
wso2carbon
-
The password of the private key that is used for securing the HTTP passthrough connection. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.
sender.truststore.location
string Required
MI_HOME/repository/resources/security/wso2truststore.jks
-
The path to the keystore file that is used for storing the trusted digital certificates. By default, the product's trust store is configured for this purpose.
sender.truststore.type
string Required
JKS
"JKS"
The type of the keystore file that is used as the trust store. By default, the product's trust store is configured for this purpose.
sender.truststore.password
string Required
wso2carbon
-
The password of the keystore file that is used as the trust store. By default, the product's trust store is configured for this purpose.
enable_message_size_validation
boolean
false
"true" or "false"
If this property is enabled and the payload exceeds the size specified by the 'max_message_size_bytes' property, the Micro Integrator will discontinue reading the input stream. This will prevent out-of-memory issues.
max_message_size_bytes
integer
2147483647
-
If the size of the payload exceeds this value, the Micro Integrator will discontinue reading the input stream. Only applicable if the ‘enable_message_size_validation’ property is enabled.
max_open_connections
integer
-1
-
This property allows connection throttling to restrict the number of simultaneously opened connections. That is, simultaneously opened incoming connections will be restricted by the specified value. To disable throttling, delete the ‘max_open_connections’ setting or set it to -1.
force_xml_validation
boolean
false
"true" or "false"
This property validates badly formed XML messages by building the whole XML document. This validation ensures that erroneous XML messages will trigger the fault sequence in the Micro Integrator.
force_json_validation
boolean
false
"true" or "false"
This property validates JSON messages by parsing the input message. This validation ensures that erroneous JSON messages will trigger the fault sequence in the Micro Integrator.
HTTP/S Transport (blocking mode)¶
[transport.blocking.http]
listener.enable = true
listener.port = 8200
listener.hostname = ""
listener.origin_server = ""
listener.request_timeout = ""
listener.request_tcp_no_delay = ""
listener.request_core_thread_pool_size = ""
listener.request_max_thread_pool_size = ""
listener.thread_keepalive_time = ""
listener.thread_keepalive_time_unit = ""
sender.enable = true
sender.enable_client_caching = true
sender.transfer_encoding = ""
sender.default_connections_per_host = 200
sender.omit_soap12_action = true
sender.so_timeout = 60000
[transport.blocking.http]
Required
This configuration header is required for configuring the parameters that are used for configuring the default HTTP/S passthrough transport in blocking mode.
listener.enable
boolean Required
true
"true" or "false"
This parameter is used for enabling the HTTP passthrough transport listener in blocking mode.
listener.port
integer Required
8200
-
The port on which this transport receiver should listen for incoming messages.
listener.hostname
string
-
listener.origin_server
string
-
listener.request_timeout
string
-
listener.request_tcp_no_delay
string
-
listener.request_core_thread_pool_size
string
-
listener.request_max_thread_pool_size
string
-
listener.thread_keepalive_time
string
-
listener.thread_keepalive_time_unit
string
-
sender.enabled
boolean Required
true
"true" or "false"
This parameter is used for enabling the HTTP passthrough transport sender in blocking mode.
sender.enable_client_caching
boolean Required
-
"true" or "false"
This parameter is used to specify whether the HTTP client should save cache entries and the cached responses in the JVM memory or not.
sender.transfer_encoding
string Required
-
"chunked" or "true"
This parameter enables you to specify whether the data sent should be chunked. It can be used instead of the Content-Length header if you want to upload data without having to know the amount of data to be uploaded in advance.
sender.default_connections_per_host
integer Required
-
-
The maximum number of connections that will be created per host server by the client. If the backend server is slow, the connections in use at a given time will take a long time to be released and added back to the connection pool. As a result, connections may not be available for some requests. In such situations, it is recommended to increase the value for this parameter.
sender.omit_soap12_action
boolean Required
-
"true" or "false"
If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages.
sender.so_timeout
integer Required
-
60000
If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages.
sender.proxy_host
string
-
-
If the outgoing messages should be sent through an HTTP proxy server (in blocking mode), use this parameter to specify the target proxy.
sender.proxy_port
integer
-
-
The port through which the target proxy (specified by the 'sender.proxy_host' parameter) accepts HTTP traffic (in blocking mode).
sender.proxy_username
string
-
-
The username for authenticating the proxy server.
sender.proxy_password
string
-
-
The password for authenticating the proxy server.
HTTP proxy profile¶
[[transport.http.proxy_profile]]
target_hosts = ["example.com", ".*.sample.com"]
proxy_host = "localhost"
proxy_port = "3128"
proxy_username = "squidUser"
proxy_password = "password"
bypass_hosts = ["xxx.sample.com"]
[[transport.http.proxy_profile]]
Required
This configuration header is required for configuring HTTP proxy profiles when you use multiple proxy servers to route messages to different endpoints.
target_hosts
string Required
-
"*", "example.com", "<any-ip-address>"
A host name or a comma-separated list of host names for a target endpoint. Host names can be specified as regular expressions that match a pattern. When asterisks (*) is specified as the target hostname, it will match all the hosts in the profile.
proxy_host
string Required
-
-
The host name of the proxy server.
proxy_port
integer Required
-
-
The port number of the proxy server.
proxy_username
string Required
-
-
The password for authenticating the proxy server.
bypass_hosts
string Required
-
-
A host name or a comma-separated list of host names that should not be sent via the proxy server. For example, if you want all requests sent to *.sample.com to be sent via a proxy server, while you need to directly send requests to hello.sample.com (without going through the proxy server), you can add hello.sample.com as a bypass host name.
HTTP secured proxy profile¶
[[transport.http.secured_proxy_profile]]
target_hosts = ["example.com", ".*.sample.com"]
proxy_host = "localhost"
proxy_port = "3128"
proxy_username = "squidUser"
proxy_password = "password"
bypass_hosts = ["xxx.sample.com"]
[[transport.http.secured_proxy_profile]]
Required
This configuration header is required for configuring secured HTTP proxy profiles when you use multiple (secured) proxy servers to route messages to different endpoints.
target_hosts
string Required
-
"*", "example.com", "<any-ip-address>"
A host name or a comma-separated list of host names for a target endpoint. Host names can be specified as regular expressions that match a pattern. When asterisks (*) is specified as the target hostname, it will match all the hosts in the profile.
proxy_host
string Required
-
-
The host name of the proxy server.
proxy_port
integer Required
-
-
The port number of the proxy server.
proxy_username
string Required
-
-
The password for authenticating the proxy server.
proxy_password
string Required
-
-
The password for authenticating the proxy server.
bypass_hosts
string Required
-
-
A host name or a comma-separated list of host names that should not be sent via the proxy server. For example, if you want all requests sent to *.sample.com to be sent via a proxy server, while you need to directly send requests to hello.sample.com (without going through the proxy server), you can add hello.sample.com as a bypass host name.
VFS Transport¶
[transport.vfs]
listener.enable = true
listener.keystore.file_name = "$ref{keystore.tls.file_name}"
listener.keystore.type = "$ref{keystore.tls.type}"
listener.keystore.password = "$ref{keystore.tls.password}"
listener.keystore.key_password = "$ref{keystore.tls.key_password}"
listener.keystore.alias = "$ref{keystore.tls.alias}"
listener.parameter.customParameter = ""
sender.enable = true
sender.parameter.customParameter = ""
[transport.vfs]
Required
This configuration header is required for configuring how the Micro Integrator communicates through the VFS transport.
listener.enabled
boolean Required
true
"true" or "false"
The parameter for enabling the VFS transport listener.
listener.keystore.file_name
string
MI_HOME/repository/resources/security/wso2carbon.jks
-
The path to the keystore file that is used for securing a VFS connection. By default, the keystore file of the primary keystore is enabled for this purpose.
listener.keystore.type
string
JKS
"JKS"
The type of the keystore file. By default, the keystore type of the primary keystore is enabled for this purpose.
listener.keystore.password
string
wso2carbon
-
The password of the keystore file that is used for securing a VFS connection. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.
listener.keystore.alias
string
wso2carbon
-
The alias of the public key corresponding to the private key that is included in the keystore. The public key is used for encrypting data in the Micro Integrator server, which only the corresponding private key can decrypt. The public key is embedded in a digital certificate, and this certificate can be shared over the internet by storing it in a separate trust store file. By default, the alias of the primary keystore is enabled for this purpose.
listener.keystore.key_password
string
wso2carbon
-
The password of the private key that is included in the keystore. The private key is used to decrypt the data that has been encrypted using the keystore's public key. By default, the public key password of the primary keystore is enabled for this purpose.
sender.enabled
boolean Required
wso2carbon
"true" or "false"
The parameter for enabling the VFS transport sender.
MAIL Transport Listener (non-blocking mode)¶
[transport.vfs]
listener.enable = true
listener.keystore.file_name = "$ref{keystore.tls.file_name}"
listener.keystore.type = "$ref{keystore.tls.type}"
listener.keystore.password = "$ref{keystore.tls.password}"
listener.keystore.key_password = "$ref{keystore.tls.key_password}"
listener.keystore.alias = "$ref{keystore.tls.alias}"
listener.parameter.customParameter = ""
sender.enable = true
sender.parameter.customParameter = ""
[[transport.http.secured_proxy_profile]]
Required
This configuration header is required for configuring the MailTo transport listener implementation of the Micro Integrator in non-blocking mode. Note that the list of parameters given below can be used for the non-blocking transport listener as well as the blocking transport listener.
listener.enabled
boolean Required
true
"true" or "false"
The parameter for enabling the VFS transport listener.
listener.keystore.file_name
string
MI_HOME/repository/resources/security/wso2carbon.jks
-
The path to the keystore file that is used for securing a VFS connection. By default, the keystore file of the primary keystore is enabled for this purpose.
listener.keystore.type
string
JKS
"JKS"
The type of the keystore file. By default, the keystore type of the primary keystore is enabled for this purpose.
listener.keystore.password
string
wso2carbon
-
The password of the keystore file that is used for securing a VFS connection. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.
listener.keystore.alias
string
wso2carbon
-
The alias of the public key corresponding to the private key that is included in the keystore. The public key is used for encrypting data in the Micro Integrator server, which only the corresponding private key can decrypt. The public key is embedded in a digital certificate, and this certificate can be shared over the internet by storing it in a separate trust store file. By default, the alias of the primary keystore is enabled for this purpose.
listener.keystore.key_password
string
wso2carbon
-
The password of the private key that is included in the keystore. The private key is used to decrypt the data that has been encrypted using the keystore's public key. By default, the public key password of the primary keystore is enabled for this purpose.
sender.enabled
boolean Required
wso2carbon
"true" or "false"
The parameter for enabling the VFS transport sender.
MAIL Transport Listener (non-blocking mode)¶
[transport.mail.listener]
enable = true
name = "mailto"
parameter.customParameter = ""
[transport.mail.listener]
Required
This configuration header is required for configuring the MailTo transport listener implementation of the Micro Integrator in non-blocking mode. Note that the list of parameters given below can be used for the non-blocking transport listener as well as the blocking transport listener.
enabled
boolean Required
false
"true" or "false"
The parameter for enabling the MAIL transport listener in the Micro Integrator.
name
string Required
-
-
The name of the transport receiver.
MAIL Transport Listener (non-blocking mode)¶
[transport.blocking.mail.listener]
enable = true
name = "mailto"
parameter.customParameter = "value"
[transport.blocking.mail.listener]
Required
This configuration header groups the parameters that are used to configure the MailTo transport listener in blocking mode. You can use the same list of parameters that are available for the non-blocking mail sender.
MAIL Transport Sender (non-blocking mode)¶
[[transport.mail.sender]]
name = "mailto"
parameter.hostname = "smtp.gmail.com"
parameter.port = "587"
parameter.enable_tls = true
parameter.auth = true
parameter.username = "demo_user"
parameter.password = "mailpassword"
parameter.from = "[email protected]"
[[transport.mail.sender]]
Required
This configuration header groups the parameters that are used to configure the MailTo transport sender implementation of the Micro Integrator in non-blocking mode. Note that the list of parameters given below can be used for the non-blocking transport sender as well as the blocking transport sender.
name
string Required
mailto
-
The parameter for enabling the MAIL transport sender in the Micro Integrator.
parameter.hostname
string Required
smtp.gmail.com
-
The mail server that serves outgoing mails from the Micro Integrator.
parameter.port
integer Required
587
-
The port of the mail server.
parameter.enable_tls
boolean Required
false
"true" or "false"
This parameter specifies whether TLS is enabled for the MailTo transport.
parameter.username
string Required
demo_user
-
The user name of the email account (mail sender). Note that in some email service providers, the user name is the same as the email address specified for 'parameter.from'.
parameter.password
string Required
mailpassword
-
The password of the email account (mail sender).
parameter.from
The email address from which mails will be sent.
MAIL Transport Sender (blocking mode)¶
[transport.blocking.mail.listener]
enable = true
name = "mailto"
parameter.customParameter = "value"
[[transport.blocking.mail.sender]]
Required
This configuration header groups the parameters that are used to configure the MailTo transport sender in blocking mode. You can use the same list of parameters that are available for the non-blocking mail sender.
JMS Transport Listener (non-blocking mode)¶
[[transport.jms.listener]]
name = "myTopicListener"
parameter.initial_naming_factory = "org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory"
parameter.broker_name = "artemis"
parameter.provider_url = "tcp://localhost:61616"
parameter.connection_factory_name = "TopicConnectionFactory"
parameter.connection_factory_type = "topic"
parameter.cache_level = "consumer"
parameter.naming_security_principal = ""
parameter.naming_security_credential = ""
parameter.transactionality = ""
parameter.transaction_jndi_name = ""
parameter.cache_user_transaction = true
parameter.session_transaction = true
parameter.session_acknowledgement = "AUTO_ACKNOWLEDGE"
parameter.jms_spec_version = "1.1"
parameter.username = ""
parameter.password = ""
parameter.destination = ""
parameter.destination_type = "queue"
parameter.default_reply_destination = ""
parameter.default_destination_type = "queue"
parameter.message_selector = ""
parameter.subscription_durable = false
parameter.durable_subscriber_client_id = ""
parameter.durable_subscriber_name = ""
parameter.pub_sub_local = false
parameter.receive_timeout = "1000"
parameter.concurrent_consumer = 1
parameter.max_concurrent_consumer = 1
parameter.idle_task_limit = 10
parameter.max_message_per_task = -1
parameter.initial_reconnection_duration = "10000"
parameter.reconnect_progress_factor = 2
parameter.max_reconnect_duration = "3600000"
parameter.reconnect_interval = "3600000"
parameter.max_jsm_connection = 10
parameter.max_consumer_error_retrieve_before_delay = 20
parameter.consume_error_delay = "100"
parameter.consume_error_progression = "2.0"
[[transport.jms.listener]]
Required
This configuration header groups the parameters that are used to configure the JMS transport listener implementation of the Micro Integrator in non-blocking mode. Note that the list of parameters given below can be used for the non-blocking transport listener as well as the blocking transport listener.
name
string Required
-
-
The user-defined name of the JMS listener.
parameter.initial_naming_factory
string Required
-
-
JNDI initial context factory class. The class must implement the java.naming.spi.InitialContextFactory interface.
parameter.provider_url
string Required
-
-
URL of the JNDI provider.
parameter.connection_factory_name
string Required
-
-
The JNDI name of the connection factory.
parameter.cache_level
string
consumer
consumer
The cache level that should apply when JMS objects startup. When the Micro Integrator produces JMS messages, you need to specify this cache level in the deployment.toml file. If the Micro Integrator works as JMS listener, you need to specify the JMS cache level in the proxy service. See the list of service-level JMS parameters.
parameter.naming_security_principal
string
-
-
The JNDI Username.
parameter.naming_security_credential
string
-
-
The JNDI password.
parameter.transactionality
string
-
-
Preferred mode of transactionality. <b>Note</b> that JMS transactions only works with either the Callout mediator or the Call mediator in blocking mode.
parameter.transaction_jndi_name
string
-
-
JNDI name to be used to require user transaction.
parameter.cache_user_transaction
boolean
false
"true" or "false"
Specifies whether or not caching should be enabled for user transactions.
parameter.session_transaction
boolean
false
"true" or "false"
Specifies whether or not the JMS session should be transacted.
parameter.session_acknowledgement
string
AUTO_ACKNOWLEDGE
-
JMS session acknowledgment mode.
parameter.jms_spec_version
string
1.1
-
JMS API version.
parameter.username
string Required
-
-
The JMS connection username.
parameter.password
string Required
-
-
The JMS connection password.
parameter.destination
string
-
-
The JNDI name of the destination.
parameter.destination_type
string
-
"queue" or "topic"
The type of the destination.
parameter.message_selector
string
-
-
The message selector implementation.
parameter.subscription_durable
boolean
-
"true" or "false"
Specifies whether or not the connection factory is subscription durable.
parameter.durable_subscriber_client_id
string
-
-
The ClientId parameter when using durable subscriptions.
parameter.durable_subscriber_name
string Required
-
-
The name of the durable subscriber.
parameter.pub_sub_local
boolean
-
"true" or "false"
Specifies whether or not the messages should should be published by the same connection in which the messages were received.
parameter.receive_timeout
integer
1000
-
Time to wait for a JMS message during polling. Set this parameter value to a negative integer to wait indefinitely. Set to zero to prevent waiting.
parameter.concurrent_consumer
integer
1
-
The number of concurrent threads to be started to consume messages when polling.
parameter.max_concurrent_consumer
integer
1
-
The maximum number of concurrent threads to use during polling.
parameter.idle_task_limit
integer
10
-
The number of idle runs per thread before it dies out.
parameter.max_message_per_task
integer
-1
-
The maximum number of successful message receipts per thread.
parameter.initial_reconnection_duration
integer
10000
-
The initial reconnection attempts duration in milliseconds.
parameter.reconnect_progress_factor
integer
2
-
The factor by which the reconnection duration will be increased.
parameter.max_reconnect_duration
integer
3600000
-
The maximum reconnection duration in milliseconds.
parameter.reconnect_interval
integer
3600000
-
The reconnection interval in milliseconds.
parameter.max_jsm_connection
integer
10
-
The maximum cached JMS connections in the producer level.
parameter.max_consumer_error_retrieve_before_delay
integer
20
-
The number of retries on consume errors before sleep delay becomes effective.
parameter.consume_error_delay
integer
100
-
The sleep delay when a consume error is encountered (in milliseconds).
parameter.consume_error_progression
integer
2.0
-
The factor by which the consume error retry sleep will be increased.
JMS Transport Listener (blocking mode)¶
[[transport.blocking.jms.listener]]
name = "myTopicListener"
parameter.initial_naming_factory = "org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory"
parameter.provider_url = "tcp://localhost:61616"
parameter.connection_factory_name = "TopicConnectionFactory"
parameter.connection_factory_type = "topic"
parameter.cache_level = "consumer"
parameter.naming_security_principal = ""
parameter.naming_security_credential = ""
parameter.transactionality = ""
parameter.transaction_jndi_name = ""
parameter.cache_user_transaction = true
parameter.session_transaction = true
parameter.session_acknowledgement = "AUTO_ACKNOWLEDGE"
parameter.jms_spec_version = "1.1"
parameter.username = ""
parameter.password = ""
parameter.destination = ""
parameter.destination_type = "queue"
parameter.default_reply_destination = ""
parameter.default_destination_type = "queue"
parameter.message_selector = ""
parameter.subscription_durable = false
parameter.durable_subscriber_client_id = ""
parameter.durable_subscriber_name = ""
parameter.pub_sub_local = false
parameter.receive_timeout = "1000"
parameter.concurrent_consumer = 1
parameter.max_concurrent_consumer = 1
parameter.idle_task_limit = 10
parameter.max_message_per_task = -1
parameter.initial_reconnection_duration = "10000"
parameter.reconnect_progress_factor = 2
parameter.max_reconnect_duration = "3600000"
parameter.reconnect_interval = "3600000"
parameter.max_jsm_connection = 10
parameter.max_consumer_error_retrieve_before_delay = 20
parameter.consume_error_delay = "100"
parameter.consume_error_progression = "2.0"
[[transport.blocking.jms.listener]]
Required
This configuration header groups the parameters that are used to configure the JMS transport listener in blocking mode. You can use the same list of parameters that are available for the non-blocking JMS listener.
JMS Transport Sender (non-blocking mode)¶
[[transport.jms.sender]]
name = "myTopicSender"
parameter.initial_naming_factory = "org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory"
parameter.broker_name = "artemis"
parameter.provider_url = "tcp://localhost:61616"
parameter.connection_factory_name = "TopicConnectionFactory"
parameter.connection_factory_type = "topic"
parameter.cache_level = "producer"
parameter.naming_security_principal = ""
parameter.naming_security_credential = ""
parameter.transactionality = ""
parameter.transaction_jndi_name = ""
parameter.cache_user_transaction = true
parameter.session_transaction = true
parameter.session_acknowledgement = "AUTO_ACKNOWLEDGE"
parameter.jms_spec_version = "1.1"
parameter.username = ""
parameter.password = ""
parameter.destination = ""
parameter.destination_type = "queue"
parameter.default_reply_destination = ""
parameter.default_destination_type = "queue"
parameter.message_selector = ""
parameter.subscription_durable = false
parameter.durable_subscriber_client_id = ""
parameter.durable_subscriber_name = ""
parameter.pub_sub_local = false
parameter.receive_timeout = "1000"
parameter.concurrent_consumer = 1
parameter.max_concurrent_consumer = 1
parameter.idle_task_limit = 10
parameter.max_message_per_task = -1
parameter.initial_reconnection_duration = "10000"
parameter.reconnect_progress_factor = 2
parameter.max_reconnect_duration = "3600000"
parameter.reconnect_interval = "3600000"
parameter.max_jsm_connection = 10
parameter.max_consumer_error_retrieve_before_delay = 20
parameter.consume_error_delay = "100"
parameter.consume_error_progression = "2.0"
parameter.vender_class_loader = false
[[transport.jms.sender]]
Required
This configuration header groups the parameters that are used to configure the JMS transport sender implementation of the Micro Integrator in non-blocking mode.
name
string Required
-
-
The user-defined name of the JMS sender.
parameter.initial_naming_factory
string Required
-
-
JNDI initial context factory class. The class must implement the java.naming.spi.InitialContextFactory interface.
parameter.broker_name
string Required
-
-
The name of the JMS broker.
parameter.provider_url
string Required
-
-
URL of the JNDI provider.
parameter.connection_factory_name
string Required
-
-
The JNDI name of the connection factory.
parameter.cache_level
string
producer
producer
The cache level that should apply when JMS objects startup. When the Micro Integrator produces JMS messages, you need to specify this cache level in the deployment.toml file. If the Micro Integrator works as JMS listener, you need to specify the JMS cache level in the proxy service. See the list of service-level JMS parameters.
parameter.naming_security_principal
string
-
-
The JNDI Username.
parameter.naming_security_credential
string
-
-
The JNDI password.
parameter.transactionality
string
-
-
Preferred mode of transactionality. <b>Note</b> that JMS transactions only works with either the Callout mediator or the Call mediator in blocking mode.
parameter.transaction_jndi_name
string Required
-
-
JNDI name to be used to require user transaction.
parameter.cache_user_transaction
boolean
false
"true" or "false"
Specifies whether or not caching should be enabled for user transactions.
parameter.session_transaction
boolean Required
false
"true" or "false"
Specifies whether or not the JMS session should be transacted.
parameter.session_acknowledgement
string
AUTO_ACKNOWLEDGE
-
JMS session acknowledgment mode.
parameter.jms_spec_version
string
1.1
-
JMS API version.
parameter.username
string Required
-
-
The JMS connection username.
parameter.password
string Required
-
-
The JMS connection password.
parameter.destination
string
-
-
The JNDI name of the destination.
parameter.destination_type
string
-
"queue" or "topic"
The type of the destination.
parameter.default_reply_destination
string
-
-
The JNDI name of the default reply destination.
parameter.default_destination_type
string
-
"queue" or "topic"
The type of the reply destination.
parameter.message_selector
string
-
-
The message selector implementation.
parameter.subscription_durable
boolean
-
"true" or "false"
Specifies whether or not the connection factory is subscription durable.
parameter.durable_subscriber_client_id
string
-
-
The ClientId parameter when using durable subscriptions.
parameter.durable_subscriber_name
string Required
-
-
The name of the durable subscriber.
parameter.pub_sub_local
boolean Required
false
"true" or "false"
Specifies whether or not the messages should should be published by the same connection in which the messages were received.
parameter.receive_timeout
integer
1000
-
Time to wait for a JMS message during polling. Set this parameter value to a negative integer to wait indefinitely. Set to zero to prevent waiting.
parameter.concurrent_consumer
integer
1
-
The number of concurrent threads to be started to consume messages when polling.
parameter.max_concurrent_consumer