app.bivri.feed.artworkV2

lexicons.bivri.app

Schema Diff

+5 -0

From

CID
bafyreie4qkssd54...
Indexed At
2026-09-07 07:09 UTC
View this version

To

CID
bafyreia5dac4x26...
Indexed At
2026-09-14 08:55 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 4 non-breaking changes.

Non-Breaking Changes (4)
  • AddedVertex AddedVertex { vertex_id: "app.bivri.feed.artworkV2:body.aiProtection" }
  • AddedVertex AddedVertex { vertex_id: "app.bivri.feed.defs#aiProtection" }
  • AddedEdge AddedEdge { src: "app.bivri.feed.artworkV2:body", tgt: "app.bivri.feed.artworkV2:body.aiProtection", kind: "prop", name: Some("aiProtection") }
  • AddedEdge AddedEdge { src: "app.bivri.feed.artworkV2:body.aiProtection", tgt: "app.bivri.feed.defs#aiProtection", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.bivri.feed.artworkV2:body.aiProtection" }
  • AddedVertex { vertex_id: "app.bivri.feed.defs#aiProtection" }

Additional Notes

  • Non-breaking: AddedEdge { src: "app.bivri.feed.artworkV2:body", tgt: "app.bivri.feed.artworkV2:body.aiProtection", kind: "prop", name: Some("aiProtection") }
  • Non-breaking: AddedEdge { src: "app.bivri.feed.artworkV2:body.aiProtection", tgt: "app.bivri.feed.defs#aiProtection", kind: "ref", name: None }
1 1
{
2 2
  "id": "app.bivri.feed.artworkV2",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "title",
11 11
          "media",
12 12
          "createdAt"
13 13
        ],
14 14
        "properties": {
15 15
          "tags": {
16 16
            "type": "array",
17 17
            "items": {
18 18
              "type": "string",
19 19
              "maxLength": 640,
20 20
              "minLength": 1,
21 21
              "maxGraphemes": 64
22 22
            },
23 23
            "maxLength": 8,
24 24
            "description": "Author-chosen tags used for discovery and search."
25 25
          },
26 26
          "langs": {
27 27
            "type": "array",
28 28
            "items": {
29 29
              "type": "string",
30 30
              "format": "language"
31 31
            },
32 32
            "maxLength": 3,
33 33
            "description": "Human languages of the artwork's title and description."
34 34
          },
35 35
          "media": {
36 36
            "type": "array",
37 37
            "items": {
38 38
              "ref": "#mediaItem",
39 39
              "type": "ref"
40 40
            },
41 41
            "maxLength": 50,
42 42
            "minLength": 1,
43 43
            "description": "Images making up the artwork, in display order. At least one is required."
44 44
          },
45 45
          "title": {
46 46
            "type": "string",
47 47
            "maxLength": 500,
48 48
            "minLength": 1,
49 49
            "description": "Title of the artwork.",
50 50
            "maxGraphemes": 50
51 51
          },
52 52
          "labels": {
53 53
            "refs": [
54 54
              "com.atproto.label.defs#selfLabels"
55 55
            ],
56 56
            "type": "union",
57 57
            "description": "Self-label values the author declared on this artwork, such as a spoiler warning. These are author metadata, not platform moderation decisions."
58 58
          },
59 59
          "createdAt": {
60 60
            "type": "string",
61 61
            "format": "datetime",
62 62
            "description": "Client-declared timestamp of when the artwork was published."
63 63
          },
64 64
          "updatedAt": {
65 65
            "type": "string",
66 66
            "format": "datetime",
67 67
            "description": "Client-declared timestamp of the last edit to this record."
68 68
          },
69 69
          "description": {
70 70
            "type": "string",
71 71
            "maxLength": 3000,
72 72
            "description": "Free-form description of the artwork.",
73 73
            "maxGraphemes": 300
74 +
          },
75 +
          "aiProtection": {
76 +
            "ref": "app.bivri.feed.defs#aiProtection",
77 +
            "type": "ref",
78 +
            "description": "Public metadata stating that the published images were processed by the named protection provider."
74 79
          }
75 80
        }
76 81
      }
77 82
    },
78 83
    "mediaItem": {
79 84
      "type": "object",
80 85
      "required": [
81 86
        "blob",
82 87
        "alt"
83 88
      ],
84 89
      "properties": {
85 90
        "alt": {
86 91
          "type": "string",
87 92
          "description": "Alternative text describing the image for members who cannot see it."
88 93
        },
89 94
        "blob": {
90 95
          "type": "blob",
91 96
          "accept": [
92 97
            "image/jpeg",
93 98
            "image/png",
94 99
            "image/gif",
95 100
            "image/webp"
96 101
          ],
97 102
          "maxSize": 50000000,
98 103
          "description": "Image blob for this item. The write methods accept JPEG, PNG, GIF and WebP."
99 104
        },
100 105
        "aspectRatio": {
101 106
          "ref": "app.bivri.feed.defs#aspectRatio",
102 107
          "type": "ref"
103 108
        }
104 109
      }
105 110
    }
106 111
  },
107 112
  "$type": "com.atproto.lexicon.schema",
108 113
  "lexicon": 1,
109 114
  "description": "Artwork record supporting JPEG, PNG, GIF and WebP originals. Earlier app.bivri.feed.artwork records retain their original schema and identity."
110 115
}

Compare Other Versions

Lexicon Garden

@