Configuration
io.Connect Desktop
To configure io.Connect Desktop to connect to io.Manager, use the "server"
top-level key of the system.json
system configuration file of io.Connect Desktop located in the %LocalAppData%/interop.io/io.Connect Desktop/Desktop/config
folder. Add the following basic configuration to enable connection to io.Manager:
{
"server": {
"enabled": true,
"url": "http://localhost:4356/api"
}
}
This will add io.Manager as an additional app store and instruct it to store Layouts and app preferences. If you want io.Manager to be the only app store, set the "appStores"
top-level key in the system.json
file to an empty array.
The "server"
top-level key has the following properties:
Property | Type | Description |
---|---|---|
"cache" |
object |
Settings for persisting data received from io.Manager. Defaults to {} . Available since io.Connect Desktop 9.4. |
"clientAuth" |
"no-auth" | "negotiate" | "kerberos" |
The client authentication mechanism for the REST service. Defaults to "no-auth" . |
"enabled" |
boolean |
If true , will enable connecting to io.Manager. |
"features" |
object |
Features to be injected automatically in io.Connect Desktop. |
"fetchInterval" |
number |
Interval in seconds at which the server will be polled for new data (apps, Layouts, commands). Defaults to 30 . |
"requests" |
object |
Settings for the requests sent to io.Manager. Defaults to {} . Available since io.Connect Desktop 9.4. |
"startRetries" |
number |
Number of times io.Connect Desktop will try to reconnect to io.Manager. Defaults to 10 . |
"startRetryInterval" |
number |
Interval in seconds at which io.Connect Desktop will try to connect to io.Manager. Defaults to 10 . |
"tokenRefreshInterval" |
number |
Interval in seconds at which io.Connect Desktop will try to refresh the io.Manager token. Defaults to 3600 . |
"url" |
string |
Required. URL pointing to io.Manager. |
The "features"
object has the following properties:
Property | Type | Description |
---|---|---|
"applicationsStore" |
boolean |
If true (default), the io.Manager app store will be automatically injected. |
"layoutsStore" |
boolean |
If true (default), the io.Manager Layout store will be automatically injected. |
"commands" |
boolean |
If true (default), the io.Manager commands will be automatically injected. |
"preferencesStore" |
boolean |
If true (default), the io.Manager app preferences store will be automatically injected. |
To send client crashes to the io.Manager Server, edit the "output"
property of the "crashReporter"
top-level key in the system.json
file:
{
"crashReporter": {
"output": {
"type": "server",
"serverUrl": "http://localhost:4356/api/crashes"
}
}
}
If you want to support different environments and regions that connect to different io.Manager instances, see the Getting Started > How to > Rebrand io.Connect Desktop > Functionality > Environments & Regions section of the io.Connect Desktop documentation.
Available since io.Connect Desktop 9.4
The "cache"
object has the following properties:
Property | Type | Description |
---|---|---|
"clearOld" |
boolean |
If true , on opening a new session to io.Manager, all cache files from previous sessions will be deleted. Defaults to false . |
"enabled" |
boolean |
If true , will enable caching and persisting data from io.Manager locally (e.g., in case of connection interruptions). Defaults to false . |
"location" |
string |
Location for the persisted cache files. Defaults to "%LocalAppData%/interop.io/io.Connect Desktop/UserData/%GLUE-ENV%-%GLUE-REGION%/ioManagerCache" . |
The "requests"
object has the following properties:
Property | Type | Description |
---|---|---|
"closeSessionTimeout" |
number |
Interval in milliseconds to wait for a response to the closeSession request to io.Manager. Defaults to 10000 . |
"openSessionTimeout" |
number |
Interval in milliseconds to wait for a response to the openSession request to io.Manager before proceeding from cache. Defaults to 60000 . |
"timeout" |
number |
Interval in milliseconds to wait for a response from io.Manager. Defaults to 60000 . |
io.Connect Browser
Connecting to io.Manager from an io.Connect Browser project requires modifying the configuration for initializing the @interopio/browser-platform
library in the Main app.
To specify settings for the connection to the io.Manager, use the manager
property of the optional configuration object when initializing the @interopio/browser-platform
library. The following example demonstrates configuring the connection to io.Manager with Basic authentication:
import IOBrowserPlatform from "@interopio/browser-platform";
const config = {
licenseKey: "my-license-key",
manager: {
// URL pointing to io.Manager.
url: "https://my-io-manager.com:4242/api",
// Basic authentication.
auth: {
basic: {
username: "username",
password: "password"
}
},
fetchIntervalMS: 10000,
tokenRefreshIntervalMS: 15000
}
};
const { io } = await IOBrowserPlatform(config);
The manager
object has the following properties:
Property | Type | Description |
---|---|---|
auth |
object |
Required. User authentication configuration. |
cache |
object |
Settings for persisting data received from io.Manager. Available since io.Connect Browser 9.4. |
fetchIntervalMS |
number |
Interval in milliseconds at which a new snapshot of app definitions and Layouts will be fetched from io.Manager. Defaults to 60000 . |
getHeaders |
function |
Callback that will be invoked on every request. Returns extra headers that will be merged with the existing ones. This callback can be used as a convenient way to refresh your access tokens. For more details, see the Request Headers section. Available since io.Connect Browser 9.4. |
headers |
object |
Object containing key/value pairs of headers to be sent with every request. |
requests |
object |
Settings for the requests sent to io.Manager. Available since io.Connect Browser 9.4. |
tokenRefreshIntervalMS |
number |
Interval in milliseconds at which the session token will be refreshed. Defaults to 3600000 . |
url |
string |
Required. URL pointing to io.Manager. |
The auth
object has the following properties:
Property | Type | Description |
---|---|---|
basic |
object |
Object with required username and password properties for Basic authentication. |
username |
string |
Username for authentication. |
token |
object |
Object with an optional bearer property holding an access token for token-based authentication. Keep in mind that the token provided here can't be refreshed after it expires. To be able to refresh your access token, use the getHeaders property of the manager object. For more details, see the Request Headers section. |
Available since io.Connect Browser 9.4
The cache
object has the following properties:
Property | Type | Description |
---|---|---|
clearOld |
boolean |
If true , on opening a new session to io.Manager, all cache databases from previous sessions will be deleted. Defaults to false . |
enabled |
boolean |
If true (default), will enable caching and persisting data from io.Manager locally (e.g., in case of connection interruptions). |
The requests
object has the following properties:
Property | Type | Description |
---|---|---|
closeSessionTimeout |
number |
Interval in milliseconds to wait for a response to the closeSession request to io.Manager. Defaults to 10000 . |
openSessionTimeout |
number |
Interval in milliseconds to wait for a response to the openSession request to io.Manager before proceeding from cache. Defaults to 10000 . |
timeout |
number |
Interval in milliseconds to wait for a response from io.Manager. Defaults to 10000 . |
Request Headers
The headers
object allows you to provide additional headers that will be sent with every request to io.Manager.
// Defining additional headers that will be applied to every request sent to io.Manager.
const headers = {
HeaderName: "HeaderValue",
AnotherHeaderName: "AnotherHeaderValue"
};
const config = {
licenseKey: "my-license-key",
manager: {
url: "https://my-io-manager.com:4242/api",
// Providing additional headers.
headers
}
};
const { io } = await IOBrowserPlatform(config);
Available since io.Connect Browser 9.4
The getHeaders
property can be used to provide a callback that will be invoked on every request sent to io.Manager. This offers a convenient way to refresh your access tokens. The callback will receive as an argument an object containing all current request headers. The information about the current headers can help you determine what additional headers to apply to the request in case you need to send different headers with the different requests. The callback must return an object with key/value pairs representing the additional request headers that will be merged with the existing ones.
The following example demonstrates how to provide a callback that will obtain and add to the headers a valid access token on each request sent to io.Manager:
import IOBrowserPlatform from "@interopio/browser-platform";
// Callback for handling the request headers.
const getHeaders = async () => {
// Your custom internal logic for refreshing and retrieving the access token.
const token = await getAccessToken();
const extraHeaders = {
Authorization: `Bearer ${token}`
};
// The returned headers will be merged with the existing ones.
return extraHeaders;
};
const config = {
licenseKey: "my-license-key",
manager: {
url: "https://my-io-manager.com:4242/api",
// Providing a callback that will be invoked on every request sent to io.Manager.
getHeaders
}
};
const { io } = await IOBrowserPlatform(config);