GetConnectSettings API¶
Returns what this infoRouter instance can ask the infoRouter Connect AI service for: the capabilities the service offers, whether each one is usable right now, and the rules infoRouter applies to them.
Written for a caller building a UI — deciding which AI actions to offer, and what to say about the ones it cannot. Read it once when the UI loads rather than per document: it asks the Connect service a question of its own.
Endpoint¶
Methods¶
- GET
/srv.asmx/GetConnectSettings?AuthenticationTicket=... - POST
/srv.asmx/GetConnectSettings(form data) - SOAP Action:
http://tempuri.org/GetConnectSettings
Parameters¶
| Parameter | Type | Required | Description |
|---|---|---|---|
AuthenticationTicket |
string | Yes | Authentication ticket obtained from AuthenticateUser. |
Response¶
<response success="true" error="">
<ConnectSettings configured="true" reachable="true" provisioned="true" scrubPii="true"
maxKeywordCount="10" storeOcrText="true"
>
<SupportedExtensions>pdf,docx,xlsx,pptx,html,htm,txt,md,csv</SupportedExtensions>
<Service aiReady="true" scrubbingReady="true" ocrAvailable="true"
documentTypeReady="true" documentTypes="3" typesVersion="393781196">
<TranslateLanguages>
<Language code="en" name="English" />
<Language code="tr" name="Turkish" />
</TranslateLanguages>
</Service>
<Capabilities>
<Capability key="summarize" usable="true" enabledOnService="true"
ready="true" operation="Analyze" />
<Capability key="translate" usable="true" enabledOnService="true"
ready="true" />
</Capabilities>
</ConnectSettings>
</response>
<ConnectSettings>¶
| Attribute | Description |
|---|---|
configured |
False when this instance has no Connect service configured at all. Everything below is then empty. |
reachable |
Whether the service answered. False leaves <Capabilities> empty and puts the reason in error. Also false, without the service being asked, when the licence does not allow Connect or the maintenance contract has ended; error says so. |
provisioned |
False when the service answers but has not been set up yet. |
scrubPii |
Whether documents are scrubbed of personal data on the way out by default. |
maxKeywordCount |
How many keywords are asked for when a request does not say. |
storeOcrText |
Whether text read out of a scan is kept on the document. |
Both confidence thresholds were removed in 9.0. infoRouter no longer keeps a threshold of its own for either document type matching or extracted field values.
The service decides how sure a document type match must be, in its own control panel, and reports the number it is using as
documentTypeThresholdon the<Service>element below. infoRouter used to keep a second threshold beside it, which could silently override that panel.Extracted field values have no threshold at all now: whatever Connect finds is written, however unsure it was, because a value a person is going to review is worth more than the blank it would otherwise leave. How sure it was is reported per document as AIExtractConfidence.
<SupportedExtensions> is the comma separated list of file types the service is expected to be able to read here. A document of any other type is refused before a call is made — except OCR, which exists for exactly the file types this list leaves out.
<Service>¶
What the service reports about itself. All of it can change without anybody touching a setting.
| Attribute | Description |
|---|---|
aiReady |
The AI side reports itself ready. |
scrubbingReady |
PII scrubbing can run. A request that needs scrubbing fails without it. |
ocrAvailable |
The scanned document OCR fallback is usable. |
documentTypeReady |
A document type list has been pushed and stored. |
documentTypes |
How many types the service holds. |
typesVersion |
The version of that list, as the service reports it. |
documentTypeThreshold |
How sure the service must be before it returns a document type match, as it reports it. 0 where the service did not answer. Reported, not set here - it is configured in the service's own control panel. |
<TranslateLanguages> lists what the service can translate between, each with the code a request sends. Absent when translation is not offered.
<Capability>¶
One row per thing the service knows how to do. Read usable to decide whether to offer it; the other three say which of the three separate things is missing, which is what an administrator needs to fix it.
| Attribute | Description |
|---|---|
key |
The service's own name: summarize, document_type, keywords, profile, extract_data, translate, extract_text, redaction. |
usable |
True only when both of the below are true. |
enabledOnService |
An administrator has left it switched on at the Connect service. |
ready |
The service has a usable model behind it. True for capabilities that call no model. |
operation |
The operation infoRouter queues for it. Absent where infoRouter has none. |
Label it yourself. The row carries no display name on purpose: what to call a capability in front of a user is infoRouter's business, in infoRouter's languages, and a service's English label cannot be translated for you.
Two keys map to the same operation. Asking infoRouter which type a document is runs a profile call, which carries the match — so document_type and profile both report operation="Profile" and rise and fall together.
translate and redaction carry no operation: they are the service's own endpoints and nothing in infoRouter asks for them yet. They still report whether the service offers them, so a UI can know what is coming.
Behavior¶
- Anonymous callers are refused. Nothing secret is in the report, but what an instance is configured to do is not for a caller who has not signed in.
- A service that does not answer still produces a report.
reachable="false",errorsays why, and everything this instance decides for itself is still there. A caller can tell "the service says no" from "the service said nothing". - Nothing secret is included — not the service token, not the address Connect answers on.
- It is a read. Nothing is queued, and no AI call is made or paid for.
Required Permissions¶
Any signed-in user. Anonymous access is refused.
Example¶
Request (GET)¶
Request (SOAP)¶
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://tempuri.org/">
<soap:Body>
<tns:GetConnectSettings>
<tns:AuthenticationTicket>3f2504e0-4f89-11d3-9a0c-0305e82c3301</tns:AuthenticationTicket>
</tns:GetConnectSettings>
</soap:Body>
</soap:Envelope>
JavaScript¶
Every call answers XML with HTTP 200, success or not, so success is the thing to branch on and
errorCode is the number to report.
async function call(action, params) {
const response = await fetch(`/srv.asmx/${action}?${new URLSearchParams(params)}`);
const root = new DOMParser()
.parseFromString(await response.text(), 'text/xml')
.documentElement;
if (root.getAttribute('success') !== 'true') {
throw new Error(`${root.getAttribute('errorCode')}: ${root.getAttribute('error')}`);
}
return root;
}
Reports what the infoRouter Connect AI service is configured for and what it can currently do. Read this before offering an AI feature, rather than calling the feature and handling the failure.
const root = await call('GetConnectSettings', { authenticationTicket: ticket });
const settings = root.querySelector('ConnectSettings');
if (settings.getAttribute('reachable') !== 'true') return; // service is down
const usable = new Set(
[...settings.querySelectorAll('Capability')]
.filter(c => c.getAttribute('usable') === 'true')
.map(c => c.getAttribute('key'))
);
if (usable.has('summarize')) { /* offer summarising */ }
A <Capability> says three separate things: enabledOnService is whether the service offers it,
ready whether it is provisioned, and usable whether both hold - branch on usable.
<SupportedExtensions> lists the file types the service will read at all.
Notes¶
- Cache it. The report changes when an administrator changes something, not between two documents.
- A capability being
usableis not a promise that a particular document can be processed: the file still has to be one the service can read. See<SupportedExtensions>. - Ask for the work itself with GetConnectProfile, which reports per answer what became of the request.
Error Codes¶
The errorCode values this operation returns, checked against a running server:
errorCode |
When |
|---|---|
4010 |
the ticket is expired or unknown, or there is no ticket at all |
| Error | errorcode |
Description |
|---|---|---|
[900] Authentication failed |
4010 |
Invalid or missing authentication ticket. |
[901] Session expired or Invalid ticket |
4010 |
The ticket has expired or does not exist. |
| Insufficient rights. Anonymous users cannot perform this action. | 4010 |
The caller has not signed in. |
Related APIs¶
- GetConnectProfile - Ask the service to produce content for a document
- SetFolderAIPreferences - Have content produced automatically on upload
- GetLogs - Read the daily record of the calls made to the service