# IODesktopObject

**Kind**: interface | **Module**: [io.Connect Desktop](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/index.md)

**Source**: https://docs.interop.io/desktop/reference/javascript/io.connect desktop/iodesktopobject/index.html

Object injected by the io.Connect Desktop preload script, containing
desktop-specific APIs and properties. Available on the global `window`
object as `iodesktop` (and, for backwards compatibility, `glueDesktop`).

## Properties

- **`addCloseHandler`** (`(callback: IODesktopHandler, windowId?: string) => void`, required)
  Register a handler to be called when the window is about to close
- **`appInstanceId`** (`string`, required)
  Instance of the application running in the window
- **`application`** (`string`, required)
- **`applicationName`** (`string`, required)
  Name of the application running in the window
- **`appName`** (`string`, required)
  Name of the application running in the window
- **`authDone`** (`(auth: IOConnectDesktop.AuthInfo) => void`, optional)
  Complete authentication with auth info
- **`autoInited`** (`IOConnectDesktop.API | Error`, optional)
  Auto-initialized Glue instance or error
- **`autoInjected`** (`boolean`, optional)
  Whether Glue was auto-injected
- **`autoInjectedFdc3`** (`boolean`, optional)
  Whether FDC3 was auto-injected
- **`build`** (`string`, optional)
  Build identifier
- **`chromium`** (`string`, optional)
  Chromium version
- **`clearAuthCache`** (`() => Promise<void>`, optional) *(since io.Connect Desktop 10.4, @interopio/desktop 6.22.0)*
  Clear the HTTP authentication cache
- **`clearCache`** (`() => Promise<void>`, optional)
  Clear browser cache
- **`clearHostResolverCache`** (`() => Promise<void>`, optional)
  Clear DNS resolver cache
- **`clearStorageData`** (`(options?: { origin?: string; storages?: string[]; quotas?: string[] }) => Promise<void>`, optional) *(since io.Connect Desktop 10.4, @interopio/desktop 6.22.0)*
  Clear storage data (cookies, local storage, cache, etc.)
- **`consoleLogLevel`** (`IOConnectCore.Logger.LogLevel | undefined`, required)
- **`context`** (`Record<string, unknown>`, optional)
  Window context -- arbitrary app data
- **`cookies`** (`IOConnectDesktop.CookiesManager`, optional)
  Cookie management
- **`customHeaders`** (`IOConnectDesktop.CustomHeadersManager`, optional)
  Custom request headers management
- **`downloads`** (`IOConnectDesktop.DownloadsManager`, optional)
  Download manager
- **`electron`** (`string`, optional)
  Electron version
- **`env`** (`{ env: string; machineName: string; region: string; windowsUserDomain: string; windowsUserId: string; windowsUserName: string; }`, required)
- **`fdc3InitsGlue`** (`boolean`, optional)
  Whether FDC3 initializes Glue
- **`getAuth`** (`() => Promise<IOConnectDesktop.AuthInfo>`, optional)
  Get authentication info (requires allowAuthInfo in app settings)
- **`getConfigs`** (`(params: { timeout: number }) => Promise<IOConnectDesktop.Endpoints>`, optional)
  Get endpoint configurations
- **`getError`** (`() => Promise<{ error: Error; url: string }>`, optional)
  Get the last navigation error
- **`getGWInfo`** (`() => Promise<IOConnectDesktop.GWInfo>`, optional)
  Get gateway connection info
- **`getGWToken`** (`() => Promise<string>`, required)
- **`getMetricsPublishingEnabled`** (`() => boolean`, required)
- **`getPath`** (`(name: string) => Promise<string>`, optional) *(since io.Connect Desktop 9.7.1, @interopio/desktop 6.10.0)*
  Get a system path by name
- **`getProxySettings`** (`() => Promise<IOConnectDesktop.ProxyConfig>`, optional)
  Get proxy settings
- **`getSid`** (`() => string`, optional)
  Get the session ID
- **`glue42StartTime`** (`Date`, optional)
  Desktop start time
- **`gwURL`** (`string`, required)
- **`hideWindow`** (`(id?: string) => Promise<void>`, optional)
  Hide a window by ID
- **`initialChannel`** (`string`, optional)
  Initial channel ID
- **`injectFdc3`** (`{ autoInject: boolean; autoInit?: object | boolean; version?: string; }`, optional)
  FDC3 auto-inject configuration
- **`injectGlue`** (`{ autoInject: boolean; autoInit?: IOConnectDesktop.Config | boolean; version?: string; }`, optional)
  Auto-inject configuration
- **`insights`** (`IOInsights.Settings`, optional)
- **`isAdvancedMode`** (`boolean`, optional)
  Whether advanced mode is enabled
- **`metrics`** (`{ pagePerformanceMetrics: { enabled: boolean; initialPublishTimeout: number; publishInterval: number; } }`, optional)
- **`monitors`** (`IOConnectDesktop.Display[]`, optional)
  Connected monitors
- **`node`** (`string`, optional)
  Node.js version
- **`os`** (`{ getVersion(): string; getProcesses(): Promise<{ pid: number; name: string; startTime: string | null }[]>; }`, optional)
  OS information (requires allowOSInfo in app settings)
- **`pid`** (`number`, required)
- **`preloadScripts`** (`{ importAsBase64?: boolean;[key: string]: unknown }[]`, optional)
  Preload scripts
- **`preloadScriptsContent`** (`{ base64?: string; url?: string; error?: string }[]`, optional)
  Preload scripts content (base64)
- **`propagationInfo`** (`IOInsights.PropagationInfo`, optional)
- **`refresh`** (`(ignoreCache: boolean) => void`, optional)
  Refresh the window
- **`regeneratePreloads`** (`() => void`, optional)
  Regenerate preload scripts
- **`session`** (`string`, optional)
  Session token
- **`setProxySettings`** (`(config: IOConnectDesktop.ProxyConfig) => void`, optional)
  Set proxy settings (requires allowProxySettingManipulation in app settings)
- **`settings`** (`{ sfMode?: boolean; registerHtmlContainer?: boolean; zoom?: { enabled?: boolean; mouseWheelZoom?: boolean; factors?: number[]; defaultFactor?: number; mode?: "domain" | "window"; }; crashConfig?: { enabled?: boolean; folderPath?: string; companyName?: string; productName?: string; output?: { type?: "local" | "server" | "backtrace"; serverUrl?: string; }; }; metricsPublishingEnabled?: boolean; nameLookup?: { enabled: boolean; retrieved: boolean; retrieveMethod: string }; allowOSInfo?: boolean; allowAuthInfo?: boolean; allowProxySettingManipulation?: boolean; useBase64PreloadScripts?: boolean; workspacesPlacement?: IOConnectDesktop.WorkspacesPlacementConfig; }`, optional)
  Window settings
- **`showWindow`** (`(id?: string) => Promise<void>`, optional)
  Show a window by ID
- **`sid`** (`string`, required)
  Session identifier
- **`theme`** (`string`, optional)
  Current theme
- **`uiVersion`** (`string`, optional)
  UI version string
- **`updatePerfData`** (`(perf: object) => void`, required)
- **`user`** (`string`, required)
  User identifier
- **`version`** (`string`, optional)
  Desktop version string
- **`versionNum`** (`number`, optional)
  Desktop version as a number (e.g. 31200)
- **`windowId`** (`string`, required)
  Id of the window

## Related types

- [API](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/api/index.md)
- [AuthInfo](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/authinfo/index.md)
- [Config](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/config/index.md)
- [CookiesManager](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/cookiesmanager/index.md)
- [CustomHeadersManager](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/customheadersmanager/index.md)
- [Display](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/display/index.md)
- [DownloadsManager](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/downloadsmanager/index.md)
- [Endpoints](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/endpoints/index.md)
- [GWInfo](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/gwinfo/index.md)
- [LogLevel](https://docs.interop.io/desktop/reference/javascript/logger/loglevel/index.md)
- [Logger](https://docs.interop.io/desktop/reference/javascript/insights/logger/index.md)
- [PropagationInfo](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/propagationinfo/index.md)
- [ProxyConfig](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/proxyconfig/index.md)
- [Settings](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/settings/index.md)
- [WorkspacesPlacementConfig](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/workspacesplacementconfig/index.md)
