The Links API manages the links that represent the relationships between Fusion objects. You can see these links in the Object Explorer by pressing CMD-K or CTRL-K from any screen in the Fusion UI. You can also export and import links using the Objects API. Links are structured as a tuple of (subject, object, linkType). An example would be (foo, bar, dependsOn), which would read as “foo dependsOn bar”. The possible values of linkType are as follows:
Link typeExample JSON
inContextOf

The subject exists in the context of the object, which is an app. In this example, the “Movie_Search” app is the context for a parser with the same name: {"subject": "parser:Movie_Search","object": "app:Movie_Search","linkType": "inContextOf","originator": "unspecified"}

hasContext

The subject is an app that contains the object. In this example, an index profile exists in the context of the “Movie_Search” app: {"subject": "app:Movie_Search","object": "index-profile:Movie_Search","linkType": "hasContext","originator": "unspecified"}

dependsOn

The subject depends on the object. In this example, a datasource called “web_pokeapi_co-default” depends on a parser by the same name: {"subject": "datasource:web_pokeapi_co-default","object": "parser:web_pokeapi_co-default","linkType": "dependsOn"}

supports

The subject is depended on by the object (the reverse of dependsOn). In this example, a parser called “web_pokeapi_co-default” supports a datasource by the same name: {"subject": "parser:web_pokeapi_co-default","object": "datasource:web_pokeapi_co-default","linkType": "supports"}

isPartOf

The subject is part of the object, where the object is a group. In this example, an aggregation called “click-signals-default” is part of a group called “signals-object-group-default”: {"subject": "aggregation:click-signals-default","object": "group:signals-object-group-default","linkType": "isPartOf"}

hasPart

The subject is a group, of which the object is a member (the reverse of isPartOf). In this example, a group called “signals-object-group-default” has an aggregation “click-signals-default”: {"subject": "group:signals-object-group-default","object": "aggregation:click-signals-default","linkType": "hasPart"}

relatesTo

The subject relates to the object. This is a uni‑directional relationship that associates two objects that have none of the relationships described above. For example, when recommendations are enabled for the default collection, Fusion creates a group which relates to the default collection: {"subject": "group:recommendations-default","object": "collection:default","linkType": "relatesTo"}

With the exception of the relatesTo link type, links are reversible:
  • inContextOf is the reverse of hasContext (and vice versa).
  • dependsOn is the reverse of supports (and vice versa).
  • isPartOf is the reverse of hasPart (and vice versa).
For example, here is the group of links for the signals-default collection:
[
  {
    "subject": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
    "object": "collection:default_signals_aggr",
    "linkType": "hasPart"
  },
  {
    "subject": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
    "object": "spark:default_click_signals_aggregation",
    "linkType": "hasPart"
  },
  {
    "subject": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
    "object": "collection:default",
    "linkType": "relatesTo"
  },
  {
    "subject": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
    "object": "collection:default_signals",
    "linkType": "hasPart"
  }
]
When we request the links for one of the hasPart objects shown above, we get the reverse representation:
GET https://FUSION_HOST:8764/api/links?subject=collection:default_signals_aggr

[
  {
    "subject": "collection:default_signals_aggr",
    "object": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
    "linkType": "isPartOf"
  }
]

Examples

Get links to the default collection:
curl https://FUSION_HOST:8764/api/links?subject=collection:default
Output:
[ { "subject": "collection:default", "object": "index-pipeline:default", "linkType": "supports" } ]
Create a new link:
curl -X PUT https://FUSION_HOST:8764/api/links -H 'content-type: application/json' -d '{"linkType": "supports", "object": "index-pipeline:default", "subject": "collection:default"}'
Output:
{ "subject" : "collection:default", "object" : "index-pipeline:default", "linkType" : "supports" }
Delete a link:
curl -X DELETE https://FUSION_HOST:8764/api/links?subject=collection:default