Link related items
Items are often part of a larger thing, depend on another, or succeed an older version. OpenCatalogi stores these connections as typed relations between items — bidirectional, audit-logged, queryable from the search facets.
Goal
By the end you will have added one typed relation between two items and confirmed it shows on both the source and the target item's Related tab.
Prerequisites
- Two items in catalogues you can write to (see Publish an item).
- A rough idea of what relation type to use — the publication schema decides which types are allowed. Defaults are part-of, depends-on, implements, succeeds, related-to.
Steps
-
Open the source item's detail page and switch to the Related tab. The tab shows the existing relations grouped by type; on a new item the list is empty. Click Add relation.

-
The dialog asks for relation type (a dropdown of the schema-allowed types), the target item (a typeahead search across every item you can read — local + federated), and an optional note. Pick depends-on and start typing the target item's title.

-
Select the target from the typeahead dropdown. The dialog confirms the relation summary — this item depends-on target item — with a Save button. Click it.

-
The dialog closes and the relation appears in the source's Related tab under the depends-on heading. Click the target item link to jump to its detail page. Its Related tab carries the inverse relation — this item is depended on by source item — automatically.

-
Both items' Audit tabs log a
relation_addedentry. Removing the relation (the × next to the row on either side) writes arelation_removedentry and clears the inverse.
Verification
The source item's Related tab lists the new relation under the right heading, the target item's Related tab lists the inverse relation, both items' Audit tabs log a relation_added entry within a second of the save, and Search finds the connection — filter by related-to facet.
Common issues
| Symptom | Fix |
|---|---|
| Typeahead finds nothing for a target you know exists | The target is in a catalogue you can't read (private), or in a federated catalogue that isn't yet synced — see Subscribe to a federated catalogue. |
| Relation type dropdown is empty | The publication schema doesn't define any relation types — open the schema in OpenRegister and add at least one relations property. |
| Inverse relation doesn't show on the target | The inverse indexer is asynchronous; refresh after 30 s. Persistent absence means the indexer is stalled (admin runs occ opencatalogi:reindex-relations). |
Reference
- View a component in detail — the full Related tab tour.
- Search across catalogues — relations expose as facets on the search side.