Skip to content

DNA-side AYON Ynput Production Tracking Integration #216

Description

@camerontarget14

Summary

DNA supports multiple production tracking systems through the prodtrack provider abstraction (backend/src/dna/prodtrack_providers/), with ShotGrid as the reference implementation and ftrack in progress (#200, #207). AYON by Ynput (the successor to OpenPype) is an open-source pipeline platform with growing adoption among small and mid-size studios and an open REST/GraphQL API, which makes it a natural third provider and a good fit for DNA's open-source audience.

Details

  • Goal - A studio running AYON can use DNA end to end: log in, browse projects and review playlists, see versions with their context, publish notes and status changes back to AYON, and (where supported) publish transcripts. Same UI, same workflow, no ShotGrid dependency.
  • Mapping DNA abstractions to AYON entities - Identify how each DNA concept maps onto AYON's model and where the fit is imperfect:
    • Project → AYON project
    • Version → AYON version (under a product, under a folder), including the context DNA shows next to a note (shot/asset, task, status, thumbnail, reviewable media)
    • Playlist → the closest AYON concept for a set of versions under review (entity lists / review sessions, or a convention such as tags or a folder, to be decided); whether DNA needs to create playlists or only read them
    • Note → an AYON activity/comment on a version, including author attribution, mentions, and attachments
    • Version status → AYON version status, mapped through the project's anatomy/status definitions rather than a hard-coded list
    • User → AYON user looked up by email, matching the login pattern used for ShotGrid
    • Transcript publishing → whether there is a sensible AYON target (an activity with an attachment, a custom attribute, or out of scope for v1)
  • Provider - Spin up prodtrack_providers/ayon.py following the patterns in the ShotGrid provider and the ftrack work, using the official ayon-python-api or the REST API directly. Configuration via env (AYON_SERVER_URL, AYON_API_KEY, and a sudo/impersonation strategy so notes are attributed to the right user), selected with PRODTRACK_PROVIDER=ayon.
  • IDs - AYON entity IDs are UUIDs, not integers. This provider depends on Convert data type for IDs from Ints to Strings #208 (convert IDs from ints to strings) or must carry a translation layer until that lands.
  • Login - A login provider for AYON (username/password → token, or API-key-backed email lookup), optional if it is not straightforward; otherwise the existing email-based flow against the AYON user list.
  • Bootstrap - Add AYON as an option in bootstrap.sh alongside ShotGrid, mock, and ftrack, including a documented way to point at a local AYON server for development.
  • Events (optional, later) - AYON exposes a server event stream; once DNA has a generic inbound external-events interface, AYON status or review events could feed it. Out of scope for the initial provider.
  • Questions a plan should answer
    • Which AYON concept DNA treats as a playlist, and whether DNA should support creating them
    • Minimum AYON server version and which addons (e.g. the review addon) are assumed
    • How attribution works when DNA publishes on behalf of a user with a service API key
    • Where reviewable media and thumbnails come from for the version list
    • What the mock/testing story is (recorded fixtures vs. a disposable AYON server in CI)

Acceptance criteria

  • A written mapping between DNA abstractions and AYON entities is agreed on, including the playlist decision
  • PRODTRACK_PROVIDER=ayon implements the ProdtrackProviderBase interface with the same test coverage expectations as the ShotGrid provider
  • A user can log in, browse projects, open a playlist, and see versions with context against a real AYON server
  • Notes published from DNA appear as comments on the correct AYON version with the correct author
  • Version status changes from DNA are reflected in AYON using the project's own status definitions
  • String IDs from AYON flow through storage, API, and frontend without truncation or casting (depends on Convert data type for IDs from Ints to Strings #208)
  • AYON is selectable in bootstrap.sh and documented in the backend README alongside the other providers
  • Existing ShotGrid, mock, and ftrack workflows are unaffected

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions