app.bivri.support.contentDefs

lexicons.bivri.app

Schema Diff

+75 -0

From

CID
bafyreig4xi3rti5...
Indexed At
2026-08-04 07:17 UTC
View this version

To

CID
bafyreicuanr65yx...
Indexed At
2026-10-13 04:49 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

7 breaking changes, 20 non-breaking changes.

Breaking Changes (7)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.bivri.support.contentDefs#bannerView", src: "app.bivri.support.contentDefs#bannerView", tgt: "app.bivri.support.contentDefs#bannerView.id", kind: "prop", name: Some("id") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.bivri.support.contentDefs#bannerView", src: "app.bivri.support.contentDefs#bannerView", tgt: "app.bivri.support.contentDefs#bannerView.summary", kind: "prop", name: Some("summary") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.bivri.support.contentDefs#bannerView", src: "app.bivri.support.contentDefs#bannerView", tgt: "app.bivri.support.contentDefs#bannerView.position", kind: "prop", name: Some("position") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.bivri.support.contentDefs#bannerView", src: "app.bivri.support.contentDefs#bannerView", tgt: "app.bivri.support.contentDefs#bannerView.title", kind: "prop", name: Some("title") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.bivri.support.contentDefs#bannerImage", src: "app.bivri.support.contentDefs#bannerImage", tgt: "app.bivri.support.contentDefs#bannerImage.alt", kind: "prop", name: Some("alt") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.bivri.support.contentDefs#bannerImage", src: "app.bivri.support.contentDefs#bannerImage", tgt: "app.bivri.support.contentDefs#bannerImage.uri", kind: "prop", name: Some("uri") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.bivri.support.contentDefs#bannerImage", src: "app.bivri.support.contentDefs#bannerImage", tgt: "app.bivri.support.contentDefs#bannerImage.src", kind: "prop", name: Some("src") }
Non-Breaking Changes (20)
  • AddedVertex AddedVertex { vertex_id: "app.bivri.support.contentDefs#announcementSummary.displayDate" }
  • AddedVertex AddedVertex { vertex_id: "app.bivri.support.contentDefs#announcementView.displayDate" }
  • AddedVertex AddedVertex { vertex_id: "app.bivri.support.contentDefs#announcementView.shareDescription" }
  • AddedVertex AddedVertex { vertex_id: "app.bivri.support.contentDefs#announcementView.shareImage" }
  • AddedVertex AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerImage" }
  • AddedVertex AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerImage.alt" }
  • AddedVertex AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerImage.src" }
  • AddedVertex AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerImage.uri" }
  • AddedVertex AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerView" }
  • AddedVertex AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerView.id" }
  • AddedVertex AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerView.image" }
  • AddedVertex AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerView.position" }
  • AddedVertex AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerView.summary" }
  • AddedVertex AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerView.title" }
  • AddedEdge AddedEdge { src: "app.bivri.support.contentDefs#announcementSummary", tgt: "app.bivri.support.contentDefs#announcementSummary.displayDate", kind: "prop", name: Some("displayDate") }
  • AddedEdge AddedEdge { src: "app.bivri.support.contentDefs#announcementView", tgt: "app.bivri.support.contentDefs#announcementView.displayDate", kind: "prop", name: Some("displayDate") }
  • AddedEdge AddedEdge { src: "app.bivri.support.contentDefs#announcementView", tgt: "app.bivri.support.contentDefs#announcementView.shareDescription", kind: "prop", name: Some("shareDescription") }
  • AddedEdge AddedEdge { src: "app.bivri.support.contentDefs#announcementView", tgt: "app.bivri.support.contentDefs#announcementView.shareImage", kind: "prop", name: Some("shareImage") }
  • AddedEdge AddedEdge { src: "app.bivri.support.contentDefs#bannerView", tgt: "app.bivri.support.contentDefs#bannerView.image", kind: "prop", name: Some("image") }
  • AddedEdge AddedEdge { src: "app.bivri.support.contentDefs#bannerView.image", tgt: "app.bivri.support.contentDefs#bannerImage", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.bivri.support.contentDefs#announcementSummary.displayDate" }
  • AddedVertex { vertex_id: "app.bivri.support.contentDefs#announcementView.displayDate" }
  • AddedVertex { vertex_id: "app.bivri.support.contentDefs#announcementView.shareDescription" }
  • AddedVertex { vertex_id: "app.bivri.support.contentDefs#announcementView.shareImage" }
  • AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerImage" }
  • AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerImage.alt" }
  • AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerImage.src" }
  • AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerImage.uri" }
  • AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerView" }
  • AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerView.id" }
  • AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerView.image" }
  • AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerView.position" }
  • AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerView.summary" }
  • AddedVertex { vertex_id: "app.bivri.support.contentDefs#bannerView.title" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "app.bivri.support.contentDefs#bannerImage", src: "app.bivri.support.contentDefs#bannerImage", tgt: "app.bivri.support.contentDefs#bannerImage.alt", kind: "prop", name: Some("alt") }
  • Breaking: RequiredEdgeAdded { vertex_id: "app.bivri.support.contentDefs#bannerImage", src: "app.bivri.support.contentDefs#bannerImage", tgt: "app.bivri.support.contentDefs#bannerImage.uri", kind: "prop", name: Some("uri") }
  • Breaking: RequiredEdgeAdded { vertex_id: "app.bivri.support.contentDefs#bannerImage", src: "app.bivri.support.contentDefs#bannerImage", tgt: "app.bivri.support.contentDefs#bannerImage.src", kind: "prop", name: Some("src") }
  • Breaking: RequiredEdgeAdded { vertex_id: "app.bivri.support.contentDefs#bannerView", src: "app.bivri.support.contentDefs#bannerView", tgt: "app.bivri.support.contentDefs#bannerView.id", kind: "prop", name: Some("id") }
  • Breaking: RequiredEdgeAdded { vertex_id: "app.bivri.support.contentDefs#bannerView", src: "app.bivri.support.contentDefs#bannerView", tgt: "app.bivri.support.contentDefs#bannerView.summary", kind: "prop", name: Some("summary") }
  • Breaking: RequiredEdgeAdded { vertex_id: "app.bivri.support.contentDefs#bannerView", src: "app.bivri.support.contentDefs#bannerView", tgt: "app.bivri.support.contentDefs#bannerView.position", kind: "prop", name: Some("position") }
  • Breaking: RequiredEdgeAdded { vertex_id: "app.bivri.support.contentDefs#bannerView", src: "app.bivri.support.contentDefs#bannerView", tgt: "app.bivri.support.contentDefs#bannerView.title", kind: "prop", name: Some("title") }
  • Non-breaking: AddedEdge { src: "app.bivri.support.contentDefs#announcementSummary", tgt: "app.bivri.support.contentDefs#announcementSummary.displayDate", kind: "prop", name: Some("displayDate") }
  • Non-breaking: AddedEdge { src: "app.bivri.support.contentDefs#announcementView", tgt: "app.bivri.support.contentDefs#announcementView.displayDate", kind: "prop", name: Some("displayDate") }
  • Non-breaking: AddedEdge { src: "app.bivri.support.contentDefs#announcementView", tgt: "app.bivri.support.contentDefs#announcementView.shareDescription", kind: "prop", name: Some("shareDescription") }
  • Non-breaking: AddedEdge { src: "app.bivri.support.contentDefs#announcementView", tgt: "app.bivri.support.contentDefs#announcementView.shareImage", kind: "prop", name: Some("shareImage") }
  • Non-breaking: AddedEdge { src: "app.bivri.support.contentDefs#bannerView", tgt: "app.bivri.support.contentDefs#bannerView.image", kind: "prop", name: Some("image") }
  • Non-breaking: AddedEdge { src: "app.bivri.support.contentDefs#bannerView.image", tgt: "app.bivri.support.contentDefs#bannerImage", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "announcementSummary": {
5 5
      "properties": {
6 6
        "categoryId": {
7 7
          "type": "string"
8 8
        },
9 9
        "categoryName": {
10 10
          "maxGraphemes": 100,
11 11
          "maxLength": 1000,
12 12
          "type": "string"
13 13
        },
14 +
        "displayDate": {
15 +
          "description": "Administrator-selected calendar date override in YYYY-MM-DD form. Absent when no override is set; use publishedAt as the publication-date default.",
16 +
          "maxLength": 10,
17 +
          "type": "string"
18 +
        },
14 19
        "id": {
15 20
          "type": "string"
16 21
        },
17 22
        "pinned": {
18 23
          "type": "boolean"
19 24
        },
20 25
        "publishedAt": {
21 26
          "format": "datetime",
22 27
          "type": "string"
23 28
        },
24 29
        "title": {
25 30
          "maxGraphemes": 200,
26 31
          "maxLength": 2000,
27 32
          "type": "string"
28 33
        }
29 34
      },
30 35
      "required": [
31 36
        "id",
32 37
        "categoryId",
33 38
        "categoryName",
34 39
        "title",
35 40
        "pinned",
36 41
        "publishedAt"
37 42
      ],
38 43
      "type": "object"
39 44
    },
40 45
    "announcementView": {
41 46
      "nullable": [
42 47
        "newer",
43 48
        "older"
44 49
      ],
45 50
      "properties": {
46 51
        "categoryId": {
47 52
          "type": "string"
48 53
        },
49 54
        "categoryName": {
50 55
          "maxGraphemes": 100,
51 56
          "maxLength": 1000,
52 57
          "type": "string"
53 58
        },
54 59
        "content": {
55 60
          "maxGraphemes": 100000,
56 61
          "maxLength": 1000000,
57 62
          "type": "string"
58 63
        },
59 64
        "contentFormat": {
60 65
          "knownValues": [
61 66
            "markdown"
62 67
          ],
63 68
          "type": "string"
64 69
        },
70 +
        "displayDate": {
71 +
          "description": "Administrator-selected calendar date override in YYYY-MM-DD form. Absent when no override is set; use publishedAt as the publication-date default.",
72 +
          "maxLength": 10,
73 +
          "type": "string"
74 +
        },
65 75
        "id": {
66 76
          "type": "string"
67 77
        },
68 78
        "newer": {
69 79
          "ref": "app.bivri.support.contentDefs#announcementSummary",
70 80
          "type": "ref"
71 81
        },
72 82
        "older": {
73 83
          "ref": "app.bivri.support.contentDefs#announcementSummary",
74 84
          "type": "ref"
75 85
        },
76 86
        "pinned": {
77 87
          "type": "boolean"
78 88
        },
79 89
        "publishedAt": {
80 90
          "format": "datetime",
81 91
          "type": "string"
82 92
        },
93 +
        "shareDescription": {
94 +
          "maxGraphemes": 300,
95 +
          "maxLength": 3000,
96 +
          "type": "string"
97 +
        },
98 +
        "shareImage": {
99 +
          "description": "Raw image reference: bivri-media:<uuid> or a site-relative /illustrations/ path ending in .png, .webp or .jpg. Resolve bivri-media:<uuid> to /img/support-media/<uuid>; resolve both paths against the Bivri member web origin, not the XRPC origin.",
100 +
          "maxLength": 512,
101 +
          "type": "string"
102 +
        },
83 103
        "title": {
84 104
          "maxGraphemes": 200,
85 105
          "maxLength": 2000,
86 106
          "type": "string"
87 107
        }
88 108
      },
89 109
      "required": [
90 110
        "id",
91 111
        "categoryId",
92 112
        "categoryName",
93 113
        "title",
94 114
        "pinned",
95 115
        "publishedAt",
96 116
        "contentFormat",
97 117
        "content",
98 118
        "newer",
99 119
        "older"
100 120
      ],
101 121
      "type": "object"
102 122
    },
123 +
    "bannerImage": {
124 +
      "properties": {
125 +
        "alt": {
126 +
          "type": "string"
127 +
        },
128 +
        "src": {
129 +
          "format": "uri",
130 +
          "type": "string"
131 +
        },
132 +
        "uri": {
133 +
          "format": "at-uri",
134 +
          "type": "string"
135 +
        }
136 +
      },
137 +
      "required": [
138 +
        "uri",
139 +
        "src",
140 +
        "alt"
141 +
      ],
142 +
      "type": "object"
143 +
    },
144 +
    "bannerView": {
145 +
      "description": "A published announcement enabled for the home banner. Its destination is /notices/{id}. Image is omitted when its Artwork is no longer servable.",
146 +
      "properties": {
147 +
        "id": {
148 +
          "type": "string"
149 +
        },
150 +
        "image": {
151 +
          "ref": "#bannerImage",
152 +
          "type": "ref"
153 +
        },
154 +
        "position": {
155 +
          "maximum": 9007199254740991,
156 +
          "minimum": 0,
157 +
          "type": "integer"
158 +
        },
159 +
        "summary": {
160 +
          "maxGraphemes": 300,
161 +
          "maxLength": 3000,
162 +
          "type": "string"
163 +
        },
164 +
        "title": {
165 +
          "maxGraphemes": 200,
166 +
          "maxLength": 2000,
167 +
          "type": "string"
168 +
        }
169 +
      },
170 +
      "required": [
171 +
        "id",
172 +
        "title",
173 +
        "summary",
174 +
        "position"
175 +
      ],
176 +
      "type": "object"
177 +
    },
103 178
    "categoryView": {
104 179
      "properties": {
105 180
        "id": {
106 181
          "type": "string"
107 182
        },
108 183
        "name": {
109 184
          "maxGraphemes": 100,
110 185
          "maxLength": 1000,
111 186
          "type": "string"
112 187
        },
113 188
        "position": {
114 189
          "minimum": 0,
115 190
          "type": "integer"
116 191
        }
117 192
      },
118 193
      "required": [
119 194
        "id",
120 195
        "name",
121 196
        "position"
122 197
      ],
123 198
      "type": "object"
124 199
    },
125 200
    "faqView": {
126 201
      "properties": {
127 202
        "answer": {
128 203
          "maxGraphemes": 100000,
129 204
          "maxLength": 1000000,
130 205
          "type": "string"
131 206
        },
132 207
        "categoryId": {
133 208
          "type": "string"
134 209
        },
135 210
        "categoryName": {
136 211
          "maxGraphemes": 100,
137 212
          "maxLength": 1000,
138 213
          "type": "string"
139 214
        },
140 215
        "contentFormat": {
141 216
          "knownValues": [
142 217
            "markdown"
143 218
          ],
144 219
          "type": "string"
145 220
        },
146 221
        "id": {
147 222
          "type": "string"
148 223
        },
149 224
        "position": {
150 225
          "minimum": 0,
151 226
          "type": "integer"
152 227
        },
153 228
        "publishedAt": {
154 229
          "format": "datetime",
155 230
          "type": "string"
156 231
        },
157 232
        "question": {
158 233
          "maxGraphemes": 500,
159 234
          "maxLength": 5000,
160 235
          "type": "string"
161 236
        }
162 237
      },
163 238
      "required": [
164 239
        "id",
165 240
        "categoryId",
166 241
        "categoryName",
167 242
        "question",
168 243
        "contentFormat",
169 244
        "answer",
170 245
        "position",
171 246
        "publishedAt"
172 247
      ],
173 248
      "type": "object"
174 249
    }
175 250
  },
176 251
  "description": "Public read types for announcements and FAQs.",
177 252
  "id": "app.bivri.support.contentDefs",
178 253
  "lexicon": 1
179 254
}

Compare Other Versions

Lexicon Garden

@