Skip to content

Entity lifecycle event payloads

Entity lifecycle events notify extensions that a top-level library entity was created, updated, or deleted. Every event in this family uses the common ExtensionEvent envelope and has Data = null.

{
"eventType": "video.updated",
"canonicalEventType": "video.updated",
"entityType": "video",
"entityId": 42,
"data": null
}

The event names and entity kind vary as listed below; the field types and data value do not.

CanonicalEventTypeEventTypeEntityTypeEntityId identifiesData
video.createdvideo.createdvideoCreated videonull
video.updatedvideo.updatedvideoUpdated videonull
video.deletedvideo.deletedvideoDeleted videonull
performer.createdperformer.createdperformerCreated performernull
performer.updatedperformer.updatedperformerUpdated performernull
performer.deletedperformer.deletedperformerDeleted performernull
studio.createdstudio.createdstudioCreated studionull
studio.updatedstudio.updatedstudioUpdated studionull
studio.deletedstudio.deletedstudioDeleted studionull
tag.createdtag.createdtagCreated tagnull
tag.updatedtag.updatedtagUpdated tagnull
tag.deletedtag.deletedtagDeleted tagnull
gallery.createdgallery.createdgalleryCreated gallerynull
gallery.updatedgallery.updatedgalleryUpdated gallerynull
gallery.deletedgallery.deletedgalleryDeleted gallerynull
image.createdimage.createdimageCreated imagenull
image.updatedimage.updatedimageUpdated imagenull
image.deletedimage.deletedimageDeleted imagenull
group.createdgroup.createdgroupCreated groupnull
group.updatedgroup.updatedgroupUpdated groupnull
group.deletedgroup.deletedgroupDeleted groupnull
audio.createdaudiocreatedaudioCreated audionull
audio.updatedaudioupdatedaudioUpdated audionull
audio.deletedaudiodeletedaudioDeleted audionull
text.createdtextcreatedtextCreated text documentnull
text.updatedtextupdatedtextUpdated text documentnull
text.deletedtextdeletedtextDeleted text documentnull

The audio and text EventType values are compatibility spellings. SDK lifecycle helpers route on the dotted CanonicalEventType values.

A created payload identifies an entity that has persisted and can normally be fetched immediately:

{
"eventType": "performer.created",
"canonicalEventType": "performer.created",
"entityType": "performer",
"entityId": 42,
"data": null
}

An updated payload identifies the current entity state. The notification does not say which fields or relationships changed, and an accepted no-op write can still publish it:

{
"eventType": "gallery.updated",
"canonicalEventType": "gallery.updated",
"entityType": "gallery",
"entityId": 42,
"data": null
}

Updates include supported metadata application, file changes, gallery membership and chapters, and group queries, items, ordering, snapshots, and subgroups. A bulk mutation emits one payload per entity found and accepted for mutation.

A deleted payload carries the former identifier. The entity is normally unavailable when the handler receives it:

{
"eventType": "tag.deleted",
"canonicalEventType": "tag.deleted",
"entityType": "tag",
"entityId": 42,
"data": null
}

A merge emits an updated payload for the surviving target and a deleted payload for each source that was actually removed. Missing source identifiers do not produce payloads.