fyi.opensocial.site

lexicons.opensocial.fyi

Schema Diff

+4 -0

From

CID
bafyreif46eqqnlc...
Indexed At
2026-10-08 18:10 UTC
View this version

To

CID
bafyreickpwogiob...
Indexed At
2026-10-09 00:22 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@