fyi.opensocial.site
Schema Diff
+4 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 2 non-breaking changes.
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.site#channel.front" }
- AddedEdge AddedEdge { src: "fyi.opensocial.site#channel", tgt: "fyi.opensocial.site#channel.front", kind: "prop", name: Some("front") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "fyi.opensocial.site#channel.front" }
Additional Notes
- Non-breaking: AddedEdge { src: "fyi.opensocial.site#channel", tgt: "fyi.opensocial.site#channel.front", kind: "prop", name: Some("front") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"channel": {
5
5
"properties": {
6
+
"front": {
7
+
"description": "The site's front page, drawn across the whole window with nothing around it, at every path at the group's address but the channels' (/c/<channel>/<tab>). Members land in the channels at the address itself, and see it at any other of its paths. One tab at most, and one anyone may see.",
8
+
"type": "boolean"
9
+
},
6
10
"members": {
7
11
"description": "Shown to members only.",
8
12
"type": "boolean"
9
13
},
10
14
"name": {
11
15
"maxGraphemes": 64,
12
16
"maxLength": 640,
13
17
"type": "string"
14
18
},
15
19
"roles": {
16
20
"description": "Shown only to members with one of these roles, by the group's role ids: a channel for those who run part of the group. Implies members.",
17
21
"items": {
18
22
"maxLength": 128,
19
23
"type": "string"
20
24
},
21
25
"maxLength": 20,
22
26
"type": "array"
23
27
},
24
28
"slug": {
25
29
"description": "Lowercase letters, digits and dashes; its address within the site.",
26
30
"maxLength": 64,
27
31
"type": "string"
28
32
},
29
33
"tabs": {
30
34
"items": {
31
35
"ref": "#tab",
32
36
"type": "ref"
33
37
},
34
38
"maxLength": 50,
35
39
"type": "array"
36
40
}
37
41
},
38
42
"required": [
39
43
"slug",
40
44
"tabs"
41
45
],
42
46
"type": "object"
43
47
},
44
48
"file": {
45
49
"properties": {
46
50
"file": {
47
51
"maxSize": 5000000,
48
52
"type": "blob"
49
53
},
50
54
"path": {
51
55
"maxLength": 512,
52
56
"type": "string"
53
57
}
54
58
},
55
59
"required": [
56
60
"path",
57
61
"file"
58
62
],
59
63
"type": "object"
60
64
},
61
65
"main": {
62
66
"description": "A group's site, in its members space: channels of tabs, shown one at a time, each a whole HTML document drawn in a sandboxed frame. Authored by the group DID; written through putSite by whoever holds group.configure. Anyone else is handed only its public part, by the host. A group without one is shown the starter.",
63
67
"key": "literal:self",
64
68
"record": {
65
69
"properties": {
66
70
"channels": {
67
71
"items": {
68
72
"ref": "#channel",
69
73
"type": "ref"
70
74
},
71
75
"maxLength": 50,
72
76
"type": "array"
73
77
},
74
78
"files": {
75
79
"description": "Everything the site is made of, by path. A tab's page is `<channel>/<tab>.html`, or `<channel>/<tab>/index.html` with what it uses beside it; `site.css` is put in front of every tab.",
76
80
"items": {
77
81
"ref": "#file",
78
82
"type": "ref"
79
83
},
80
84
"maxLength": 500,
81
85
"type": "array"
82
86
},
83
87
"theme": {
84
88
"ref": "#theme",
85
89
"type": "ref"
86
90
},
87
91
"updatedAt": {
88
92
"format": "datetime",
89
93
"type": "string"
90
94
}
91
95
},
92
96
"required": [
93
97
"channels",
94
98
"files",
95
99
"updatedAt"
96
100
],
97
101
"type": "object"
98
102
},
99
103
"type": "record"
100
104
},
101
105
"tab": {
102
106
"properties": {
103
107
"about": {
104
108
"description": "The one thing it is for, which its page shows: an event's or a chat room's URI in one of the group's spaces, a board's space, or a member's DID. Its tab comes and goes with it.",
105
109
"maxLength": 512,
106
110
"type": "string"
107
111
},
108
112
"asGroup": {
109
113
"description": "What it writes as the group rather than as the viewer, and the kind of space each goes in.",
110
114
"items": {
111
115
"ref": "fyi.opensocial.template#asGroup",
112
116
"type": "ref"
113
117
},
114
118
"type": "array"
115
119
},
116
120
"calls": {
117
121
"description": "The host methods it may call for the viewer.",
118
122
"items": {
119
123
"format": "nsid",
120
124
"type": "string"
121
125
},
122
126
"maxLength": 50,
123
127
"type": "array"
124
128
},
125
129
"cid": {
126
130
"description": "With a template URI: that version only.",
127
131
"format": "cid",
128
132
"type": "string"
129
133
},
130
134
"labels": {
131
135
"description": "Its words for what it lets people do, by record kind or method.",
132
136
"items": {
133
137
"ref": "fyi.opensocial.template#label",
134
138
"type": "ref"
135
139
},
136
140
"type": "array"
137
141
},
138
142
"members": {
139
143
"description": "Shown to members only.",
140
144
"type": "boolean"
141
145
},
142
146
"page": {
143
147
"description": "One of the site's files to show, which tabs alike share (every event's tab, say). Read before the tab's own file and its template.",
144
148
"maxLength": 256,
145
149
"type": "string"
146
150
},
147
151
"reads": {
148
152
"description": "The collections it may read from the group, its members and its spaces.",
149
153
"items": {
150
154
"format": "nsid",
151
155
"type": "string"
152
156
},
153
157
"maxLength": 50,
154
158
"type": "array"
155
159
},
156
160
"roles": {
157
161
"description": "For members with one of these roles, by the group's role ids. Others don't see it, or its tab. Members only.",
158
162
"items": {
159
163
"maxLength": 64,
160
164
"type": "string"
161
165
},
162
166
"maxLength": 20,
163
167
"type": "array"
164
168
},
165
169
"slug": {
166
170
"maxLength": 64,
167
171
"type": "string"
168
172
},
169
173
"template": {
170
174
"description": "Drawn from a template when the site has no page of its own for it: a bundled one by name, a fyi.opensocial.template by URI, or a member's fyi.opensocial.page by its URI in the group's space for members' work. A member's page is only ever drawn for members.",
171
175
"maxLength": 512,
172
176
"type": "string"
173
177
},
174
178
"title": {
175
179
"maxGraphemes": 64,
176
180
"maxLength": 640,
177
181
"type": "string"
178
182
},
179
183
"writes": {
180
184
"description": "The collections it may write for the viewer, in their account or one of the group's spaces.",
181
185
"items": {
182
186
"format": "nsid",
183
187
"type": "string"
184
188
},
185
189
"maxLength": 50,
186
190
"type": "array"
187
191
}
188
192
},
189
193
"required": [
190
194
"slug"
191
195
],
192
196
"type": "object"
193
197
},
194
198
"theme": {
195
199
"description": "Colours, fonts and corners as CSS values, and what sits behind the tabs.",
196
200
"properties": {
197
201
"accent": {
198
202
"maxLength": 200,
199
203
"type": "string"
200
204
},
201
205
"accentInk": {
202
206
"maxLength": 200,
203
207
"type": "string"
204
208
},
205
209
"bg": {
206
210
"maxLength": 200,
207
211
"type": "string"
208
212
},
209
213
"fontBody": {
210
214
"maxLength": 200,
211
215
"type": "string"
212
216
},
213
217
"fontDisplay": {
214
218
"maxLength": 200,
215
219
"type": "string"
216
220
},
217
221
"ink": {
218
222
"maxLength": 200,
219
223
"type": "string"
220
224
},
221
225
"line": {
222
226
"maxLength": 200,
223
227
"type": "string"
224
228
},
225
229
"muted": {
226
230
"maxLength": 200,
227
231
"type": "string"
228
232
},
229
233
"radius": {
230
234
"maxLength": 200,
231
235
"type": "string"
232
236
},
233
237
"surface": {
234
238
"maxLength": 200,
235
239
"type": "string"
236
240
},
237
241
"wallpaper": {
238
242
"description": "A built-in wallpaper by name, `banner` for the group's banner, or the path of an image in the site's files.",
239
243
"maxLength": 512,
240
244
"type": "string"
241
245
}
242
246
},
243
247
"type": "object"
244
248
}
245
249
},
246
250
"id": "fyi.opensocial.site",
247
251
"lexicon": 1
248
252
}