root.elementRelationshipSet object

Describes relationships among individual app capabilities, including staticTabs, configurableTabs, composeExtensions, and bots. It's used to specify runtime dependencies to ensure that the app only launches in applicable Microsoft 365 hosts, such as Teams, Outlook, and the Microsoft 365 (Office) app. For more information, see how to specify runtime requirements in your app manifest.

Properties that reference this object type:

Syntax

{
  "oneWayDependencies": [
    {
      "element": {
        elementReference object
      },
      "dependsOn": [
        {
          elementReference object
        }
      ]
    }
  ],
  "mutualDependencies": [
    [
      {
        "name": "bots | staticTabs | composeExtensions | configurableTabs",
        "id": "{string}",
        "commandIds": [
          "{string}"
        ]
      }
    ]
  ]
}

Properties

oneWayDependencies

Defines one or more unidirectional dependency relationships among app components (each represented by a oneWayDependency object with a dependent element and a dependsOn element).

Type
Array of oneWayDependency

Required

Constraints
Minimum array items: 1.

Supported values

mutualDependencies

Defines one or more mutual dependency relationships among app capabilities (each represented by a mutualDependency array of element objects).

Use the mutualDependencies array to group app capabilities that must load together to support their intended function. Each object in the array represents a set of mutually dependent app capabilities. The following JSON snippet shows a bot, static tab, message extension, and configurable tab that are mutually dependent on each other:

"elementRelationshipSet": {
  "mutualDependencies" : [
    [
      {"name" : "bots", "id" : "bot-id"}, 
      {"name" : "staticTabs", "id" : "staticTab-id"},
      {"name" : "composeExtensions", "id" : "composeExtension-id"},
      {"name" : "configurableTabs", "id": "configurableTab-id"}
    ]
  ]
}

Note

The mutualDependencies property is a list of mutual dependency groups, and is defined in JSON as an array of arrays. The outer array defines the list of dependency groups and must have at least one item in the array. The inner array is the list of mutual dependencies for each group and must have at least two items in the array.

Type
Array of elementReference

Required

Constraints
Minimum array items: 2. Minimum array items: 1.

Supported values

Examples

{
"elementRelationshipSet": {
      "oneWayDependencies" : [
        {
          "element" : {
            "name" : "composeExtensions",
            "id" : "composeExtension-id",
            "commandIds": ["exampleCmd1", "exampleCmd2"]
          },
          "dependsOn" : [
              {"name" : "bots", "id" : "bot-id"}
          ]
        }
      ]
    }   
}