site.standard.document

standard.site

Schema Diff

+41 -0

From

CID
bafyreifzalrdier...
Indexed At
2026-02-20 20:46 UTC
View this version

To

CID
bafyreifylc5lfr4...
Indexed At
2026-04-19 21:11 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 19 non-breaking changes.

Breaking Changes (1)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "site.standard.document#contributor", src: "site.standard.document#contributor", tgt: "site.standard.document#contributor.did", kind: "prop", name: Some("did") }
Non-Breaking Changes (19)
  • AddedVertex AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }
  • AddedVertex AddedVertex { vertex_id: "site.standard.document#contributor" }
  • AddedVertex AddedVertex { vertex_id: "site.standard.document#contributor.did" }
  • AddedVertex AddedVertex { vertex_id: "site.standard.document#contributor.displayName" }
  • AddedVertex AddedVertex { vertex_id: "site.standard.document#contributor.role" }
  • AddedVertex AddedVertex { vertex_id: "site.standard.document:body.contributors" }
  • AddedVertex AddedVertex { vertex_id: "site.standard.document:body.contributors:items" }
  • AddedVertex AddedVertex { vertex_id: "site.standard.document:body.labels" }
  • AddedVertex AddedVertex { vertex_id: "site.standard.document:body.labels:variant0" }
  • AddedVertex AddedVertex { vertex_id: "site.standard.document:body.links" }
  • AddedEdge AddedEdge { src: "site.standard.document#contributor", tgt: "site.standard.document#contributor.displayName", kind: "prop", name: Some("displayName") }
  • AddedEdge AddedEdge { src: "site.standard.document#contributor", tgt: "site.standard.document#contributor.role", kind: "prop", name: Some("role") }
  • AddedEdge AddedEdge { src: "site.standard.document:body", tgt: "site.standard.document:body.contributors", kind: "prop", name: Some("contributors") }
  • AddedEdge AddedEdge { src: "site.standard.document:body", tgt: "site.standard.document:body.labels", kind: "prop", name: Some("labels") }
  • AddedEdge AddedEdge { src: "site.standard.document:body", tgt: "site.standard.document:body.links", kind: "prop", name: Some("links") }
  • AddedEdge AddedEdge { src: "site.standard.document:body.contributors", tgt: "site.standard.document:body.contributors:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "site.standard.document:body.contributors:items", tgt: "site.standard.document#contributor", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "site.standard.document:body.labels", tgt: "site.standard.document:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
  • AddedEdge AddedEdge { src: "site.standard.document:body.labels:variant0", tgt: "com.atproto.label.defs#selfLabels", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }
  • AddedVertex { vertex_id: "site.standard.document#contributor" }
  • AddedVertex { vertex_id: "site.standard.document#contributor.did" }
  • AddedVertex { vertex_id: "site.standard.document#contributor.displayName" }
  • AddedVertex { vertex_id: "site.standard.document#contributor.role" }
  • AddedVertex { vertex_id: "site.standard.document:body.contributors" }
  • AddedVertex { vertex_id: "site.standard.document:body.contributors:items" }
  • AddedVertex { vertex_id: "site.standard.document:body.labels" }
  • AddedVertex { vertex_id: "site.standard.document:body.labels:variant0" }
  • AddedVertex { vertex_id: "site.standard.document:body.links" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "site.standard.document#contributor", src: "site.standard.document#contributor", tgt: "site.standard.document#contributor.did", kind: "prop", name: Some("did") }
  • Non-breaking: AddedEdge { src: "site.standard.document#contributor", tgt: "site.standard.document#contributor.displayName", kind: "prop", name: Some("displayName") }
  • Non-breaking: AddedEdge { src: "site.standard.document#contributor", tgt: "site.standard.document#contributor.role", kind: "prop", name: Some("role") }
  • Non-breaking: AddedEdge { src: "site.standard.document:body", tgt: "site.standard.document:body.contributors", kind: "prop", name: Some("contributors") }
  • Non-breaking: AddedEdge { src: "site.standard.document:body", tgt: "site.standard.document:body.labels", kind: "prop", name: Some("labels") }
  • Non-breaking: AddedEdge { src: "site.standard.document:body", tgt: "site.standard.document:body.links", kind: "prop", name: Some("links") }
  • Non-breaking: AddedEdge { src: "site.standard.document:body.contributors", tgt: "site.standard.document:body.contributors:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "site.standard.document:body.contributors:items", tgt: "site.standard.document#contributor", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "site.standard.document:body.labels", tgt: "site.standard.document:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
  • Non-breaking: AddedEdge { src: "site.standard.document:body.labels:variant0", tgt: "com.atproto.label.defs#selfLabels", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 +
    "contributor": {
5 +
      "properties": {
6 +
        "did": {
7 +
          "format": "did",
8 +
          "type": "string"
9 +
        },
10 +
        "displayName": {
11 +
          "maxGraphemes": 100,
12 +
          "maxLength": 1000,
13 +
          "type": "string"
14 +
        },
15 +
        "role": {
16 +
          "maxGraphemes": 100,
17 +
          "maxLength": 1000,
18 +
          "type": "string"
19 +
        }
20 +
      },
21 +
      "required": [
22 +
        "did"
23 +
      ],
24 +
      "type": "object"
25 +
    },
4 26
    "main": {
5 27
      "description": "A document record representing a published article, blog post, or other content. Documents can belong to a publication or exist independently.",
6 28
      "key": "tid",
7 29
      "record": {
8 30
        "properties": {
9 31
          "bskyPostRef": {
10 32
            "description": "Strong reference to a Bluesky post. Useful to keep track of comments off-platform.",
11 33
            "ref": "com.atproto.repo.strongRef",
12 34
            "type": "ref"
13 35
          },
14 36
          "content": {
15 37
            "closed": false,
16 38
            "description": "Open union used to define the record's content. Each entry must specify a $type and may be extended with other lexicons to support additional content formats.",
17 39
            "refs": [],
18 40
            "type": "union"
19 41
          },
42 +
          "contributors": {
43 +
            "items": {
44 +
              "ref": "#contributor",
45 +
              "type": "ref"
46 +
            },
47 +
            "type": "array"
48 +
          },
20 49
          "coverImage": {
21 50
            "accept": [
22 51
              "image/*"
23 52
            ],
24 53
            "description": "Image to used for thumbnail or cover image. Less than 1MB is size.",
25 54
            "maxSize": 1000000,
26 55
            "type": "blob"
27 56
          },
28 57
          "description": {
29 58
            "description": "A brief description or excerpt from the document.",
30 59
            "maxGraphemes": 3000,
31 60
            "maxLength": 30000,
32 61
            "type": "string"
33 62
          },
63 +
          "labels": {
64 +
            "description": "Self-label values for this post. Effectively content warnings.",
65 +
            "refs": [
66 +
              "com.atproto.label.defs#selfLabels"
67 +
            ],
68 +
            "type": "union"
69 +
          },
70 +
          "links": {
71 +
            "description": "Array of values describing relationships between this document and external resources",
72 +
            "refs": [],
73 +
            "type": "union"
74 +
          },
34 75
          "path": {
35 76
            "description": "Combine with site or publication url to construct a canonical URL to the document. Prepend with a leading slash.",
36 77
            "type": "string"
37 78
          },
38 79
          "publishedAt": {
39 80
            "description": "Timestamp of the documents publish time.",
40 81
            "format": "datetime",
41 82
            "type": "string"
42 83
          },
43 84
          "site": {
44 85
            "description": "Points to a publication record (at://) or a publication url (https://) for loose documents. Avoid trailing slashes.",
45 86
            "format": "uri",
46 87
            "type": "string"
47 88
          },
48 89
          "tags": {
49 90
            "description": "Array of strings used to tag or categorize the document. Avoid prepending tags with hashtags.",
50 91
            "items": {
51 92
              "maxGraphemes": 128,
52 93
              "maxLength": 1280,
53 94
              "type": "string"
54 95
            },
55 96
            "type": "array"
56 97
          },
57 98
          "textContent": {
58 99
            "description": "Plaintext representation of the documents contents. Should not contain markdown or other formatting.",
59 100
            "type": "string"
60 101
          },
61 102
          "title": {
62 103
            "description": "Title of the document.",
63 104
            "maxGraphemes": 500,
64 105
            "maxLength": 5000,
65 106
            "type": "string"
66 107
          },
67 108
          "updatedAt": {
68 109
            "description": "Timestamp of the documents last edit.",
69 110
            "format": "datetime",
70 111
            "type": "string"
71 112
          }
72 113
        },
73 114
        "required": [
74 115
          "site",
75 116
          "title",
76 117
          "publishedAt"
77 118
        ],
78 119
        "type": "object"
79 120
      },
80 121
      "type": "record"
81 122
    }
82 123
  },
83 124
  "id": "site.standard.document",
84 125
  "lexicon": 1
85 126
}

Compare Other Versions

Lexicon Garden

@