All Downloads are FREE. Search and download functionalities are using the official Maven repository.

json.schema.entity.feed.thread.json Maven / Gradle / Ivy

{
  "$id": "https://open-metadata.org/schema/entity/feed/thread.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Thread",
  "description": "This schema defines the Thread entity. A Thread is a collection of posts made by the users. The first post that starts a thread is **about** a data asset **from** a user. Other users can respond to this post by creating new posts in the thread. Note that bot users can also interact with a thread. A post can contains links that mention Users or other Data Assets.",
  "type": "object",

  "definitions": {
    "taskType": {
      "javaType": "org.openmetadata.catalog.type.TaskType",
      "description": "Type of a task.",
      "type": "string",
      "enum": [
        "RequestDescription",
        "UpdateDescription",
        "RequestTag",
        "UpdateTag",
        "Generic"
      ],
      "javaEnums": [
        {
          "name": "RequestDescription"
        },
        {
          "name": "UpdateDescription"
        },
        {
          "name": "RequestTag"
        },
        {
          "name": "UpdateTag"
        },
        {
          "name": "Generic"
        }
      ]
    },
    "taskDetails": {
      "javaType": "org.openmetadata.catalog.type.TaskDetails",
      "description": "Details about the task. This is only applicable if thread is of type task.",
      "type": "object",
      "properties": {
        "id": {
          "description": "Unique identifier that identifies the task.",
          "type": "integer"
        },
        "type": {
          "$ref": "#/definitions/taskType"
        },
        "assignees": {
          "description": "List of users or teams the task is assigned to",
          "$ref": "../../type/entityReference.json#/definitions/entityReferenceList"
        },
        "status": {
          "$ref": "#/definitions/threadTaskStatus"
        },
        "closedBy": {
          "description": "The user that closed the task.",
          "type": "string"
        },
        "closedAt": {
          "description": "Timestamp when the task was closed in Unix epoch time milliseconds.",
          "$ref": "../../type/basic.json#/definitions/timestamp"
        },
        "oldValue": {
          "description": "The value of old object for which the task is created.",
          "type": "string"
        },
        "suggestion": {
          "description": "The suggestion object to replace the old value for which the task is created.",
          "type": "string"
        },
        "newValue": {
          "description": "The new value object that was accepted to complete the task.",
          "type": "string"
        }
      },
      "required": ["id", "assignees", "type"],
      "additionalProperties": false
    },
    "threadTaskStatus": {
      "javaType": "org.openmetadata.catalog.type.TaskStatus",
      "type": "string",
      "description": "Status of a task.",
      "enum": ["Open", "Closed"],
      "javaEnums": [
        {
          "name": "Open"
        },
        {
          "name": "Closed"
        }
      ],
      "default": "Open"
    },
    "threadType": {
      "javaType": "org.openmetadata.catalog.type.ThreadType",
      "type": "string",
      "description": "Type of thread.",
      "enum": ["Conversation", "Task", "Announcement"],
      "javaEnums": [
        {
          "name": "Conversation"
        },
        {
          "name": "Task"
        },
        {
          "name": "Announcement"
        }
      ],
      "default": "Conversation"
    },
    "post": {
      "javaType": "org.openmetadata.catalog.type.Post",
      "type": "object",
      "description": "Post within a feed.",
      "properties": {
        "id": {
          "description": "Unique identifier that identifies the post.",
          "$ref": "../../type/basic.json#/definitions/uuid"
        },
        "message": {
          "description": "Message in markdown format. See markdown support for more details.",
          "type": "string"
        },
        "postTs": {
          "description": "Timestamp of the post in Unix epoch time milliseconds.",
          "$ref": "../../type/basic.json#/definitions/timestamp"
        },
        "from": {
          "description": "Name of the User posting the message.",
          "type": "string"
        },
        "reactions": {
          "description": "Reactions for the post.",
          "$ref": "../../type/reaction.json#/definitions/reactionList"
        }
      },
      "required": ["id", "message", "from"],
      "additionalProperties": false
    }
  },
  "properties": {
    "id": {
      "description": "Unique identifier that identifies an entity instance.",
      "$ref": "../../type/basic.json#/definitions/uuid"
    },
    "type": {
      "$ref": "#/definitions/threadType"
    },
    "href": {
      "description": "Link to the resource corresponding to this entity.",
      "$ref": "../../type/basic.json#/definitions/href"
    },
    "threadTs": {
      "description": "Timestamp of the when the first post created the thread in Unix epoch time milliseconds.",
      "$ref": "../../type/basic.json#/definitions/timestamp"
    },
    "about": {
      "description": "Data asset about which this thread is created for with format <#E::{entities}::{entityName}::{field}::{fieldValue}.",
      "$ref": "../../type/basic.json#/definitions/entityLink"
    },
    "entityId": {
      "description": "Entity Id of the entity that the thread belongs to.",
      "$ref": "../../type/basic.json#/definitions/uuid"
    },
    "addressedTo": {
      "description": "User or team this thread is addressed to in format <#E::{entities}::{entityName}::{field}::{fieldValue}.",
      "$ref": "../../type/basic.json#/definitions/entityLink"
    },
    "createdBy": {
      "description": "User who created the thread.",
      "type": "string"
    },
    "updatedAt": {
      "description": "Last update time corresponding to the new version of the entity in Unix epoch time milliseconds.",
      "$ref": "../../type/basic.json#/definitions/timestamp"
    },
    "updatedBy": {
      "description": "User who made the update.",
      "type": "string"
    },
    "resolved": {
      "description": "When `true` indicates the thread has been resolved.",
      "type": "boolean",
      "default": false
    },
    "message": {
      "description": "The main message of the thread in markdown format.",
      "type": "string"
    },
    "postsCount": {
      "description": "The total count of posts in the thread.",
      "type": "integer",
      "default": 0
    },
    "posts": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/post"
      }
    },
    "reactions": {
      "description": "Reactions for the thread.",
      "$ref": "../../type/reaction.json#/definitions/reactionList"
    },
    "task": {
      "description": "Details about the task. This is only applicable if thread is of type task.",
      "$ref": "#/definitions/taskDetails"
    }
  },
  "required": ["id", "about", "message"],
  "additionalProperties": false
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy