Application Configuration

Applications are registered with io.Connect via JSON definition files. These can be loaded locally, from io.Manager, or from an FDC3 App Directory REST endpoint.

Basic App Definition

app-definition.json
{
  "name": "client-portfolio",
  "type": "window",
  "title": "Client Portfolio",
  "details": {
    "url": "http://localhost:3002",
    "width": 800,
    "height": 600,
    "channelSelector": {
      "enabled": true,
      "type": "single"
    }
  },
  "intents": [
    {
      "name": "ViewPortfolio",
      "displayName": "View Portfolio",
      "contexts": ["fdc3.contact"]
    }
  ]
}

Application Types

TypeDescriptionPlatform
windowStandard web application loaded by URLBoth
exeNative OS executableDesktop
nodeNode.js scriptDesktop
citrixCitrix Virtual AppDesktop
clickonce.NET ClickOnce deploymentDesktop
workspacesWorkspaces App (system)Desktop

Key Properties

runPriority

Controls the boot sequence of applications:

  • "core" — starts with the platform
  • "pre-sso" — starts before SSO authentication
  • "post-sso" — starts after SSO authentication
  • "user" — launched manually by the user (default)

preloadScripts

Inject JavaScript into the web app before it loads:

Preload scripts
{
  "details": {
    "preloadScripts": [
      "https://cdn.example.com/analytics.js"
    ]
  }
}

saveInLayout

Control what persists when a global layout is saved:

Layout persistence
{
  "details": {
    "saveInLayout": {
      "url": true,
      "context": true,
      "nativeCommand": false
    }
  }
}

trackingType (Native Apps)

For native executables, determines how the platform tracks the application:

  • "Process" — track by OS process ID
  • "AGM" — track by Interop (AGM) connection
See the full configuration reference at docs.interop.io.