Endpoint and Data Element Overrides
Endpoint and Data Element overrides may also be specified via <appSettings/> in the .config file of any application consuming irSDK.
Note: If the Rule Execution Service’s .config file contains overrides, any overrides passed in the request will still take precedence over the <appSettings/> overrides.
See the Runtime Overrides (https://github.com/InRule/Samples/tree/master/Developer%20Samples/RuntimeOverrides) developer samples for additional information.
AppSettings Key |
Description |
inrule:runtime:overrides:<endpoint-name>:DatabaseConnection:ConnectionString |
(string) Database connection string. |
inrule:runtime:overrides:<endpoint-name>:SendMailServer:ServerAddress |
(string) Mail server host name. |
inrule:runtime:overrides:<endpoint-name>:WebService:WsdlUri |
(string) Web service WSDL URI. |
inrule:runtime:overrides:<endpoint-name>:WebService:ServiceUriOverride |
(string) Web service SOAP end point URI. |
inrule:runtime:overrides:<endpoint-name>:WebService:WebServiceMaxReceivedMessageSize |
(integer) Web service client max received message size in bytes. (max 2147483647) |
inrule:runtime:overrides:<endpoint-name>:XmlDocumentPath:XmlPath |
(string) XML document file path on Runtime Service. |
inrule:runtime:overrides:<endpoint-name>:XmlSchema:XsdPath |
(string) XML schema path or URL. |
inrule:runtime:overrides:<endpoint-name>:XmlSchema:EnableXsdValidation |
(boolean) Whether to validate XML Entity state against XSD. (true or false) |
inrule:runtime:overrides:<endpoint-name>:RestService:RestServiceRootUrl |
(string) REST service root URL. |
inrule:runtime:overrides:<endpoint-name>:RestService:AuthenticationType |
(string) REST service authentication type. (None, Basic, NTLM, Kerberos, Custom) |
inrule:runtime:overrides:<endpoint-name>:RestService:RestServiceUserName |
(string) REST service authentication username. |
inrule:runtime:overrides:<endpoint-name>:RestService:RestServicePassword |
(string) REST service authentication password. |
inrule:runtime:overrides:<endpoint-name>:RestService:RestServiceDomain |
(string) REST service authentication domain. |
inrule:runtime:overrides:<endpoint-name>:RestService:RestServiceX509CertificatePath |
(string) REST service X509 client certificate path on Runtime Service. |
inrule:runtime:overrides:<endpoint-name>:RestService:RestServiceX509CertificatePassword |
(string) REST service X509 client certificate password. |
inrule:runtime:overrides:<endpoint-name>:RestService:RestServiceAllowUntrustedCertificates |
(boolean) Whether to allow REST service certificates not signed by trusted CA. (true or false) |
inrule:runtime:overrides:<dataElement-name>:SqlQuery:Query |
(string) SQL query text. |
inrule:runtime:overrides:<dataElement-name>:InlineTable:TableSettings |
(string) XML serialized string of TableSettings object. (see 1.) |
inrule:runtime:overrides:<dataElement-name>:InlineValueList:ValueListItems |
(string) XML serialized string of ValueListItem collection (see 2.) |
inrule:runtime:overrides:<dataElement-name>:InlineXmlDocument:InlineXml |
(string) XML document. |
inrule:runtime:overrides:<dataelement-name>:RestOperation:UriTemplate |
(string) REST operation URI template |
inrule:runtime:overrides:<dataelement-name>:RestOperation:Body |
(string) REST operation body |
inrule:runtime:overrides:<dataelement-name>:RestOperation:Headers:<header-name> |
(string) REST operation header |
1. The following C# code can be used with irSDK to create the XML serialized TableSettings from a DataTable:
TableSettings tableSettings = new TableSettings();
tableSettings.InlineDataTable.Columns.Add(new DataColumn("Column1", typeof(string)));
tableSettings.InlineDataTable.Columns.Add(new DataColumn("Column2", typeof(int)));
tableSettings.InlineDataTable.Rows.Add("One", 1);
tableSettings.InlineDataTable.Rows.Add("Two", 2);
StringBuilder sb = new StringBuilder();
using (XmlWriter writer = XmlWriter.Create(sb))
{
XmlSerializer xs = new XmlSerializer(typeof(TableSettings));
xs.Serialize(writer, tableSettings);
}
string serializedTableSettings = sb.ToString();
2. There is no irSDK data structure that can serialize the ValueListItems. The XML should be structured as follows:
<ValueListItems>
<ValueListItem>
<DisplayText>value one</DisplayText>
<Value>value1</Value>
</ValueListItem>
<ValueListItem>
<DisplayText>value two</DisplayText>
<Value>value2</Value>
</ValueListItem>
</ValueListItems>
Example:
<appSettings>
<add key="inrule:runtime:overrides:DatabaseConnection1:DatabaseConnection:ConnectionString" value="Data Source = MyDbHost;Initial Catalog = Customer;Integrated Security = SSPI;" />
<add key="inrule:runtime:overrides:SendMailServer1:SendMailServer:ServerAddress" value="smtp.mycorp.com" />
<add key="inrule:runtime:overrides:XmlSchema1:XmlSchema:EnableXsdValidation" value="true" />
</appSettings>
Configuration Builders
<appSettings/> may be overridden by mechanisms other than the XML in the .config file.
For example, system Environment variables matching the <appSettings/> keys may be used to take precedence over what is contained in the file.
For this functionality, Configuration Builders must be configured in the .config file.
<configSections>
<section name="inrule.logging" type="InRule.Repository.Logging.Configuration.LoggingSectionHandler, InRule.Repository" />
<section name="inrule.repository" type="InRule.Repository.Configuration.RepositoryConfigSectionHandler, InRule.Repository" />
<section name="inrule.runtime" type="InRule.Runtime.Configuration.RuntimeConfigSectionHandler, InRule.Runtime" />
<section name="inrule.runtime.service" type="InRule.Runtime.Service.Configuration.RuntimeServiceConfigSectionHandler, InRule.Runtime.Service" />
<section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
restartOnExternalChanges="false"
requirePermission="false" />
</configSections>
<configBuilders>
<builders>
<add name="Environment"
mode="Greedy"
name="inrule:runtime:overrides"
type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Environment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</builders>
</configBuilders>
<appSettings configBuilders="Environment">
</appSettings>
Comments
0 comments
Please sign in to leave a comment.