Content Ownership in PSPDFKit Instant

Collaboration permissions allow you to define what actions are allowed on a piece of content in a document (annotations or Instant Comments) based on who created it and what its group is. Document Engine tracks this information for all annotations and comments in every document.

Creator

Creator is an immutable property of every piece of content created with Document Engine. When you specify a user_id in the JSON Web Token (JWT) used to authenticate PSPDFKit Instant for iOS, each annotation or comment created is attributed to that user. If the JWT claims don’t include user_id, the creator of all content is set to null.

Group

The group property was introduced to allow greater flexibility when declaring permissions and managing access to content. Unlike the creator, the group of each annotation or comment is mutable, which means it can be changed either with Server APIs or PSPDFKit for Web. To find out more about the use of group with PSPDFKit for Web, refer to the group section of the content ownership guide. Please note that changing the group of an already created annotation or comment isn’t supported at the moment with the Instant iOS SDK.

Comments can have a completely different group than their root annotation.

Creator and Group in a Document Lifecycle

Apart from APIs that directly create or modify content — like the annotation creation API — other functionality provided by Server may also add and update content in the document. This is a reference for how these operations affect the ownership information of annotations and comments:

  1. When you upload a document, the creator and group of every piece of content is null.

  2. Copying a document copies the creator and group information from the original document.

  3. Creating a layer with a source_layer_name parameter copies the creator and group information from the source layer.

  4. Duplicating a page copies the creator and group information of content on that page.

  5. Importing a document by ID (and optionally layer name) copies the creator and group information from that document.