Last updated Jul 16, 2025

Common properties and shapes

The following properties and shapes are common to all supported Teamwork Graph object types.

1
2
  objects {}
  ├─ schemaVersion (string) [Required]
  ├─ id (string) [Required]
  ├─ updateSequenceNumber (long) [Required]
  ├─ displayName (string) [Required]
  ├─ description (string) [Optional]
  ├─ url (string) [Required]
  ├─ createdAt (string) [Required]
  └─ createdBy [Optional]
      ├─ accountId (string) [Optional]
      ├─ email (long) [Optional]
      └─ externalId (string) [Optional]
  └─ lastUpdatedAt (string) [Required]
  └─ lastUpdatedBy [Optional]
      ├─ accountId (string) [Optional]
      ├─ email (long) [Optional]
      └─ externalId (string) [Optional]
  └─ owners [] [Optional]
  └─ thumbnail [Optional]
      └─ externalUrl (string) []
  └─ parentKey
      ├─ type (string)
      └─  value (jsonNode)
  └─ containerKey
      ├─ type (string)
      └─  value (jsonNode)
  └─ permissions [] [Required]
      └─ accessControls []
         └─ principals []
            └─ type (string)
            └─ id (string)
  └─ associations [] [Optional]
      ├─ associationType (string)
      └─ values []

PropertyTypeRequiredDescription
schemaVersion

string

YesThe schema version of the object.
id

string

YesThe ID of the object in the source system.
updateSequenceNumberlongYesA sequence number to compare when writing to the database. Objects are written following a last write wins strategy, therefore an object with a greater UpdateSequenceNumber is considered a more recently updated object.
displayNamestringYesThe display name of the object.
descriptionstringNoThe description of the object.
urlstringYesThe URL from the provider which the object is accessible from.
createdAtstringYes

The date the object was created.

Format: Instant (ISO8601 / RFC3339)

createdByuserNo

The user that created the object.

See User to learn more.

lastUpdatedAtstringYes

The date the object was last updated.

Format: Instant (ISO8601 / RFC3339)

lastUpdatedByuserNo

The user that last updated the object.

See User to learn more.

ownerslist<User>NoList of users that own the object.
thumbnailthumbnailNo

The thumbnail of the object.

See Thumbnail to learn more.

parentKeyentityKeyDepends on object type

The ID of the parent object. If null, it is a standalone object.

See Entity key to learn more.

containerKeyentityKeyDepends on object type

The container identifier that this object belongs to.

See Entity key to learn more.

permissionslist<Permissions>Yes

The permissions configuration of the object.

See Permissions to learn more.

associationsassociationNo

List of objects associated with the object. Generally used to link an external object to a Atlassian object.

See Association to learn more.

When returning objects as Smart Links, permissions, associations, as well as parentKey fields are not required and will be ignored if provided.

User

An Atlassian or third-party user.

PropertyTypeRequiredDescription
accountId

string

NoThe user's Atlassian account ID.
emaillongNoThe user's email.
externalIdstringNoThe ID of the user on the external system.

If the connector utilises end-user authentication using an OAuth2 provider, the externalId field must be provided. If OAuth is not utilised, the email field is required. Both values can be supplied if available.

Example

1
2
{
  "accountId": "5b5775502abff9a219",
  "id": "WELLJST6K",
  "email": "user@email.com",
  "externalId" : "external-id-1"
}

Thumbnail

Metadata for a thumbnail. Currently only supports an external URL.

PropertyTypeRequiredDescription
externalUrl

string

YesAn external URL referencing a thumbnail.

Example

1
2
{
  "externalUrl": "https://example-file.com/file/123123"
}

Entity key

The key for a given unified object type used for describing a parent or container link.

PropertyTypeRequiredDescription
type

string

YesThe unified object type. Should always have the atlassian: prefix
value

jsonNode

YesAn object that represents the unified object ID. Most of the time this is a single attribute, entityId, but it can vary from object to object and may comprise of multiple attributes.

Examples

Generic key

1
2
{
  "type": "atlassian:document",
  "value": {
    "entityId": "a-document-id"
  }
}

Non-generic key

1
2
{
  "type": "atlassian:remote-link",
  "value": {
    "remoteLinkId": "a-remote-link-id"
  }
}

Composed key

1
2
{
  "type": "atlassian:commit",
  "value": {
    "repositoryId": "a-repository-id",
    "commitHash": "a-commit-hash"
  }
}

Permissions

Defines permissions for the users and/or groups who are allowed to access the object information.

PropertyTypeRequiredDescription
accessControls

list<AccessControl>

Yes

List of access controls.

Defines permissions for users and/or groups who are allowed to have access to the object. The relation between each access control is AND, and within each access control, the relation of each principal is OR.

See Access control to learn more.

Access control

Defines permissions for users and/or groups who are allowed to have access to the object.

PropertyTypeRequiredDescription
principals

list<Principal>

List of principals. There are 6 types of principals:
  • User
  • Group
  • Everyone
  • Atlassian workspace
  • Container
  • Must have viewed
  • Each element on the list is validated as anOR.

    User

    Grants access to specific users.

    PropertyTypeRequiredDescription
    type

    "USER"

    YesDefines the principal type as USER, granting access to specific users.
    id

    string

    YesUser external ID.

    Group

    Grants access to all users within the group.

    PropertyTypeRequiredDescription
    type

    "GROUP"

    YesDefines the principal type as GROUP, granting access to all users within the group.
    id

    string

    YesGroup external ID.

    Everyone

    Grants access to all logged in and anonymous users.

    PropertyTypeRequiredDescription
    type

    "EVERYONE"

    YesDefines the principal type as EVERYONE, granting access to all logged in and anonymous users.

    Atlassian workspace

    Grants access to anyone in the Atlassian Graph workspace.

    PropertyTypeRequiredDescription
    type

    "ATLASSIAN_WORKSPACE"

    YesDefines the principal type as WORKSPACE, granting access to anyone in the Atlassian workspace.

    Container

    Grants access to all users within the container.

    PropertyTypeRequiredDescription
    type

    "CONTAINER"

    YesDefines the principal type as CONTAINER, granting access to all users within the container.

    Must have viewed

    Grants access to all users who have viewed the object previously.

    PropertyTypeRequiredDescription
    type

    "MUST_HAVE_VIEWED"

    Defines the principal type as MUST_HAVE_VIEWED, granting access to all users who have viewed the object previously.

    View activity is tracked via activity ingestion endpoint separate to object ingestion.

    Example

    1
    2
    [
      {
        "accessControls": [
          {
            "principals": [
              {
                "type": "USER",
                "id": "WELLJST6K"
              },
              {
                "type": "GROUP",
                "id": "UJHJST6K"
              }
            ]
          }
        ]
      },
      {
        "accessControls": [
          {
            "principals": [
              {
                "type": "MUST_HAVE_VIEWED"
              }
            ]
          }
        ]
      }
    ]
    
    

    Association

    The association fields for the IngestionEntity. Used for referencing another object, such as issueKey in a pull request title or users mentioned in a message.

    Any use case beyond a simple reference should explore adding as separate field in the given object type instead. For example, if you want to track the owners of a document separately from the user who last updated the document.

    Associations use set, add, and remove, where:

    • set replaces all associations with the supplied ones. It cannot be used with add or remove.
    • add extends existing associations with the new ones supplied. It cannot be used with set.
    • remove removes from existing associations the ones supplied. It cannot be used with set.

    Associations have the following format:

    1
    2
    {
      "updateSequenceNumber": "1",
      "lastUpdatedAt": "2024-04-16T09:31:32+00:00",
      "set": [
        {
          "associationType": "...",
          "values": ["..."]
        }
      ],
      "add": [
        {
          "associationType": "...",
          "values": ["..."]
        }
      ],
      "remove": [
        {
          "associationType": "...",
          "values": ["..."]
        }
      ]
    }
    

    Association types

    There are currently only one type of association available:

    IssueIdOrKeysAssociation

    An association type referencing issues in Jira.

    PropertyTypeRequiredDescription
    associationType

    "issueIdOrKeys"

    Defines the associationType as "issueIdOrKeys".
    values

    list<String>

    List of Jira issueId or issueKeys. For example, 1001 or ABC-123.
    Example
    1
    2
    {
      "updateSequenceNumber": "999",
      "lastUpdatedAt": "2024-04-16T09:31:32+00:00",
      "add": [
        {
          "associationType": "issueIdOrKeys",
          "values": [ "TEST-1" ]
        }
      ],
      "remove": [
        {
          "associationType": "issueIdOrKeys",
          "values": [ "TEST-2" ]
        }
      ]
    }
    

    Attachment

    Defines an attachment object that is present in some object types.

    PropertyTypeRequiredDescription
    url

    string

    YesAttachment URL.
    thumbnailUrl

    string

    NoAttachment thumbnail URL.
    title

    string

    YesAttachment title.
    mimeType

    string

    NoAttachment file mime type.
    byteSize

    long

    NoSize in bytes for the attachment file.

    Example

    1
    2
    {
      "url": "https://www.somedomain.com/files/fakefile.pdf",
      "title": "Fake File",
      "mimeType": "application/pdf"
    }
    

    Rate this page: