app.atmobb.forum.profile
Schema Diff
+9 -1
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.profile:body.hideDefaultStamps" }
- AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.profile:body.hideProfileSkins" }
- AddedEdge AddedEdge { src: "app.atmobb.forum.profile:body", tgt: "app.atmobb.forum.profile:body.hideDefaultStamps", kind: "prop", name: Some("hideDefaultStamps") }
- AddedEdge AddedEdge { src: "app.atmobb.forum.profile:body", tgt: "app.atmobb.forum.profile:body.hideProfileSkins", kind: "prop", name: Some("hideProfileSkins") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.atmobb.forum.profile:body.hideDefaultStamps" }AddedVertex { vertex_id: "app.atmobb.forum.profile:body.hideProfileSkins" }
Additional Notes
- Non-breaking: AddedEdge { src: "app.atmobb.forum.profile:body", tgt: "app.atmobb.forum.profile:body.hideDefaultStamps", kind: "prop", name: Some("hideDefaultStamps") }
- Non-breaking: AddedEdge { src: "app.atmobb.forum.profile:body", tgt: "app.atmobb.forum.profile:body.hideProfileSkins", kind: "prop", name: Some("hideProfileSkins") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"font": {
5
5
"properties": {
6
6
"family": {
7
7
"maxGraphemes": 64,
8
8
"maxLength": 640,
9
9
"type": "string"
10
10
},
11
11
"source": {
12
12
"accept": [
13
13
"font/woff",
14
14
"font/woff2"
15
15
],
16
16
"maxSize": 2000000,
17
17
"type": "blob"
18
18
},
19
19
"style": {
20
20
"knownValues": [
21
21
"normal",
22
22
"italic"
23
23
],
24
24
"maxLength": 16,
25
25
"type": "string"
26
26
},
27
27
"weight": {
28
28
"maximum": 900,
29
29
"minimum": 100,
30
30
"type": "integer"
31
31
}
32
32
},
33
33
"required": [
34
34
"family",
35
35
"weight",
36
36
"style",
37
37
"source"
38
38
],
39
39
"type": "object"
40
40
},
41
41
"homepage": {
42
42
"properties": {
43
43
"featuredThreads": {
44
44
"items": {
45
45
"format": "at-uri",
46
46
"type": "string"
47
47
},
48
48
"maxLength": 3,
49
49
"type": "array"
50
50
},
51
51
"layout": {
52
52
"knownValues": [
53
53
"boards",
54
54
"latest",
55
55
"categories-latest"
56
56
],
57
57
"maxLength": 32,
58
58
"type": "string"
59
59
},
60
60
"sidebar": {
61
61
"type": "boolean"
62
62
},
63
63
"welcome": {
64
64
"knownValues": [
65
65
"classic",
66
66
"compact",
67
67
"hidden"
68
68
],
69
69
"maxLength": 32,
70
70
"type": "string"
71
71
}
72
72
},
73
73
"type": "object"
74
74
},
75
75
"main": {
76
76
"description": "A forum's identity and configuration. Lives in the forum account's repo; the forum's DID is the forum's identity.",
77
77
"key": "literal:self",
78
78
"record": {
79
79
"properties": {
80
80
"avatar": {
81
81
"accept": [
82
82
"image/png",
83
83
"image/jpeg",
84
84
"image/webp"
85
85
],
86
86
"maxSize": 1000000,
87
87
"type": "blob"
88
88
},
89
89
"banner": {
90
90
"accept": [
91
91
"image/png",
92
92
"image/jpeg",
93
93
"image/webp"
94
94
],
95
95
"maxSize": 2000000,
96
96
"type": "blob"
97
97
},
98
98
"createdAt": {
99
99
"format": "datetime",
100
100
"type": "string"
101
101
},
102
102
"customCss": {
103
103
"description": "Forum-owned CSS applied to public pages. Admin pages deliberately ignore it so a broken stylesheet can always be repaired.",
104
104
"maxLength": 100000,
105
105
"type": "string"
106
106
},
107
107
"customFonts": {
108
108
"description": "Forum-owned webfont faces available to customCss.",
109
109
"items": {
110
110
"ref": "#font",
111
111
"type": "ref"
112
112
},
113
113
"maxLength": 12,
114
114
"type": "array"
115
115
},
116
116
"description": {
117
117
"maxGraphemes": 1000,
118
118
"maxLength": 10000,
119
119
"type": "string"
120
120
},
121
121
"favicon": {
122
122
"accept": [
123
123
"image/png",
124
124
"image/jpeg",
125
125
"image/webp"
126
126
],
127
127
"description": "Forum-owned browser icon.",
128
128
"maxSize": 1000000,
129
129
"type": "blob"
130
130
},
131
131
"hideCredit": {
132
132
"description": "Hide the 'powered by atmobb' badge in the page footer. Absent means shown.",
133
133
"type": "boolean"
134
134
},
135
+
"hideDefaultStamps": {
136
+
"description": "Hide the board and arrival default stamps on member rails. The 'here since' line always shows. Absent means shown.",
137
+
"type": "boolean"
138
+
},
139
+
"hideProfileSkins": {
140
+
"description": "Show every member profile page in the forum's own colors, ignoring members' profile skins. Banner patterns and headlines still show. Absent means skins show.",
141
+
"type": "boolean"
142
+
},
135
143
"homepage": {
136
144
"description": "Optional forum homepage presentation. Absent values retain the classic board index.",
137
145
"ref": "#homepage",
138
146
"type": "ref"
139
147
},
140
148
"intro": {
141
149
"description": "Rich welcome shown in the home page hero under the description. Absent means the hero shows the name and description only.",
142
150
"items": {
143
151
"refs": [
144
152
"app.atmobb.richtext.block#text",
145
153
"app.atmobb.richtext.block#quote",
146
154
"app.atmobb.richtext.block#code"
147
155
],
148
156
"type": "union"
149
157
},
150
158
"maxLength": 50,
151
159
"type": "array"
152
160
},
153
161
"links": {
154
162
"items": {
155
163
"format": "uri",
156
164
"type": "string"
157
165
},
158
166
"maxLength": 20,
159
167
"type": "array"
160
168
},
161
169
"membership": {
162
170
"description": "How people join. Absent means open: declaring membership is joining.",
163
171
"ref": "#membership",
164
172
"type": "ref"
165
173
},
166
174
"name": {
167
175
"maxGraphemes": 100,
168
176
"maxLength": 1000,
169
177
"type": "string"
170
178
},
171
179
"ogImage": {
172
180
"accept": [
173
181
"image/png"
174
182
],
175
183
"description": "Forum-owned 1200 by 630 PNG used as the forum landing page's social preview image.",
176
184
"maxSize": 2000000,
177
185
"type": "blob"
178
186
},
179
187
"ogTheme": {
180
188
"description": "Visual preset used by the generated forum landing page social preview.",
181
189
"knownValues": [
182
190
"classic",
183
191
"midnight",
184
192
"ocean",
185
193
"forest",
186
194
"plum"
187
195
],
188
196
"maxLength": 32,
189
197
"type": "string"
190
198
},
191
199
"ranks": {
192
-
"description": "Post-count rank ladder, ordered ascending by minPosts. Ranks are computed by appviews from indexed post counts.",
200
+
"description": "Deprecated and no longer rendered: post-count ranks gave way to stamps (app.atmobb.forum.stamp). Kept so older records still validate.",
193
201
"items": {
194
202
"ref": "#rank",
195
203
"type": "ref"
196
204
},
197
205
"maxLength": 50,
198
206
"type": "array"
199
207
},
200
208
"rules": {
201
209
"items": {
202
210
"refs": [
203
211
"app.atmobb.richtext.block#text",
204
212
"app.atmobb.richtext.block#quote",
205
213
"app.atmobb.richtext.block#code"
206
214
],
207
215
"type": "union"
208
216
},
209
217
"maxLength": 50,
210
218
"type": "array"
211
219
},
212
220
"theme": {
213
221
"description": "Built-in color theme preset. Absent means the classic atmobb skin. Custom CSS loads after the preset and may override it.",
214
222
"knownValues": [
215
223
"classic",
216
224
"sky",
217
225
"bubblegum",
218
226
"midnight",
219
227
"forest"
220
228
],
221
229
"maxLength": 32,
222
230
"type": "string"
223
231
}
224
232
},
225
233
"required": [
226
234
"name"
227
235
],
228
236
"type": "object"
229
237
},
230
238
"type": "record"
231
239
},
232
240
"membership": {
233
241
"description": "Join policy for a forum. In the apply and invite modes only accounts the forum has accepted (an acceptMember moderation action) may post; reading stays public.",
234
242
"properties": {
235
243
"gatedSince": {
236
244
"description": "When the forum last entered a gated mode. Posts written while the forum was open are served regardless of membership.",
237
245
"format": "datetime",
238
246
"type": "string"
239
247
},
240
248
"inviteCap": {
241
249
"description": "Open invites an ordinary member may hold at once. 0 means only staff mint invites.",
242
250
"maximum": 100,
243
251
"minimum": 0,
244
252
"type": "integer"
245
253
},
246
254
"inviteDays": {
247
255
"description": "Days before an unredeemed invite expires.",
248
256
"maximum": 365,
249
257
"minimum": 1,
250
258
"type": "integer"
251
259
},
252
260
"mode": {
253
261
"knownValues": [
254
262
"open",
255
263
"apply",
256
264
"invite"
257
265
],
258
266
"maxLength": 32,
259
267
"type": "string"
260
268
},
261
269
"prompt": {
262
270
"description": "The one question shown on the application form in apply mode.",
263
271
"maxGraphemes": 300,
264
272
"maxLength": 3000,
265
273
"type": "string"
266
274
}
267
275
},
268
276
"type": "object"
269
277
},
270
278
"rank": {
271
279
"properties": {
272
280
"minPosts": {
273
281
"minimum": 0,
274
282
"type": "integer"
275
283
},
276
284
"title": {
277
285
"maxGraphemes": 64,
278
286
"maxLength": 640,
279
287
"type": "string"
280
288
}
281
289
},
282
290
"required": [
283
291
"title",
284
292
"minPosts"
285
293
],
286
294
"type": "object"
287
295
}
288
296
},
289
297
"id": "app.atmobb.forum.profile",
290
298
"lexicon": 1
291
299
}