No ETA, sorry But! Working with links is very easy. Each project has it’s own link type defined in the Anatomy Settings here
ayon+anatomy+preset://_/link_types
(this is preset, but the same thing you’ll find for every project).
You can notice that there are several link types with their input type, output type and visual settings. So with REST API you need to provide this for creation:
{
"input": "string",
"output": "string",
"name": "string",
"link": "reference|folder|version",
"linkType": "reference|folder|version",
"data": { }
}
where input and output are entity IDs of the stuff you want to link together with the linkType
defined on the project. You can name your link and you can provide optional data
.
So you can create for example new type of link called taskFlow
that has input type and ouput type set to task and then you can have something listening to events setting this link on task creation (or whenever based on your setting) - ideally you can create your own addon with the setting frontend and the service processing the events and creating task links / automating status changes - and then open source it
You can have settings controling what task type should follow what task type, then the service that will go over task creation events and creating all the links if they are not yet set. After that you can create for example integrator plugin that will check those links on publish and trigger the status change, or you can do it via the service, depends on your need and the context data you need to have available.
Advantage of using links is in that it is more “static” than events and you can analyze, visualize them later, etc.
here is example how we work with them on python api level: ayon-core/client/ayon_core/plugins/publish/integrate_inputlinks.py at 283465bbb76d12b0224ef4936e7adc11698618a4 · ynput/ayon-core · GitHub
Sorry about the missing documentation - we definitely want to add it plus we’d like to use links much more in the pipeline. I think it is very powerful and versatile concept that can be at the end used from the core pipeline functionality to production tracking features.