Release 9.0 - 230808.9.0

This release introduces Skylark integrations as well as some new options for working with objects and relationships.

Features

Skylark Integrations

Integrations are an exciting new feature in early access that we're opening up for users to trial. Integrations is a service which receives webhooks from multiple input locations and transforms the webhooks into objects in Skylark.

Integrations are currently availabile for the following providers:

  • Bitmovin
  • Mux
  • JWPlayer
  • Livepeer
  • Cloudinary

If you're like to get started with Skylark integrations, contact our customer success team.

Relationships and external ID

It's now possible to link and unlink relationships with an object's external ID. You can continue to use the link argument as before. For example:

mutation {
  updateBrand(external_id: "my-brand-external-id", brand: {
    relationships: {
      episodes: {
        link: ["my-episode-external-id"]
      }
    }
  }) {
    uid
  }
}

Get/Delete object queries

We've added 2 new queries designed for power users. They are getObject and deleteObject. These queries allow you to get or delete an object only knowing its UID or External ID; not needed the object type.

getObject examples

This example shows how the UID and typename can be retrieved just knowing the external ID of an object:

query {
  getObject(external_id: "streamtv_star_wars_skywalker_saga", ignore_availability: true) {
    __typename
    uid
  }
}

The response fields of this query use the GraphQL ... on Syntax, like Sets and Search in Skylark.

query {
  getObject(external_id: "streamtv_star_wars_skywalker_saga", ignore_availability: true) {
    __typename
    uid
    ...on SkylarkSet {
      title
    }
  }
}

deleteObject examples

As with getObject, deleteObject allows you to delete objects from Skylark using the UID or external ID, without knowing the type. This works in the same way as the normal delete mutations.

This example deletes an entire object using the external ID:

mutation {
  deleteObject(external_id: "my-external-id") {
    uid
  }
}

And this example deletes just a translation using the UID:

mutation {
  deleteObject(uid: "01H7A4FBPKN39ZMR0CSWMHACR5", language: "fr-FR") {
    uid
    language
  }
}

For more information on the delete mutations, see our documentation.