fyi.atstore.listing.detail
Schema Diff
+3 -0
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 0 non-breaking changes.
Breaking Changes (1)
- ConstraintTightened ConstraintTightened { vertex_id: "fyi.atstore.listing.detail#link.type", sort: "knownValues", old_value: "[\"privacy\",\"terms\",\"support\",\"contact\",\"docs\",\"blog\",\"changelog\",\"source\",\"status\",\"other\"]", new_value: "[\"privacy\",\"terms\",\"support\",\"contact\",\"docs\",\"blog\",\"changelog\",\"source\",\"status\",\"community\",\"donate\",\"license\",\"other\"]" }
Migration Guidance
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "fyi.atstore.listing.detail#link.type", sort: "knownValues", old_value: "[\"privacy\",\"terms\",\"support\",\"contact\",\"docs\",\"blog\",\"changelog\",\"source\",\"status\",\"other\"]", new_value: "[\"privacy\",\"terms\",\"support\",\"contact\",\"docs\",\"blog\",\"changelog\",\"source\",\"status\",\"community\",\"donate\",\"license\",\"other\"]" }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"link": {
5
5
"properties": {
6
6
"label": {
7
7
"description": "Optional human-readable label, especially useful when type is 'other'.",
8
8
"maxGraphemes": 50,
9
9
"maxLength": 100,
10
10
"type": "string"
11
11
},
12
12
"type": {
13
13
"description": "The kind of link.",
14
14
"knownValues": [
15
15
"privacy",
16
16
"terms",
17
17
"support",
18
18
"contact",
19
19
"docs",
20
20
"blog",
21
21
"changelog",
22
22
"source",
23
23
"status",
24
+
"community",
25
+
"donate",
26
+
"license",
24
27
"other"
25
28
],
26
29
"maxLength": 32,
27
30
"type": "string"
28
31
},
29
32
"url": {
30
33
"description": "The destination URL.",
31
34
"format": "uri",
32
35
"maxLength": 2048,
33
36
"type": "string"
34
37
}
35
38
},
36
39
"required": [
37
40
"type",
38
41
"url"
39
42
],
40
43
"type": "object"
41
44
},
42
45
"main": {
43
46
"description": "Public protocol or app listing in the AT Store directory. Images are stored as repo blobs (Kitchen-style); the web app caches HTTPS URLs in Postgres separately.",
44
47
"key": "tid",
45
48
"record": {
46
49
"properties": {
47
50
"appTags": {
48
51
"items": {
49
52
"maxLength": 96,
50
53
"type": "string"
51
54
},
52
55
"maxLength": 64,
53
56
"type": "array"
54
57
},
55
58
"categorySlug": {
56
59
"description": "Browse category keys (e.g. protocol/pds). First entry is the primary category for legacy surfaces.",
57
60
"items": {
58
61
"maxLength": 256,
59
62
"type": "string"
60
63
},
61
64
"maxLength": 32,
62
65
"minLength": 1,
63
66
"type": "array"
64
67
},
65
68
"createdAt": {
66
69
"format": "datetime",
67
70
"type": "string"
68
71
},
69
72
"description": {
70
73
"maxLength": 20000,
71
74
"type": "string"
72
75
},
73
76
"externalUrl": {
74
77
"description": "Primary product or project URL.",
75
78
"format": "uri",
76
79
"maxLength": 2048,
77
80
"type": "string"
78
81
},
79
82
"heroImage": {
80
83
"accept": [
81
84
"image/png",
82
85
"image/jpeg",
83
86
"image/webp",
84
87
"image/gif",
85
88
"image/svg+xml"
86
89
],
87
90
"description": "Hero / cover image blob.",
88
91
"maxSize": 12000000,
89
92
"type": "blob"
90
93
},
91
94
"icon": {
92
95
"accept": [
93
96
"image/png",
94
97
"image/jpeg",
95
98
"image/webp",
96
99
"image/gif",
97
100
"image/svg+xml"
98
101
],
99
102
"description": "Square / app icon (uploaded to repo via com.atproto.repo.uploadBlob).",
100
103
"maxSize": 2000000,
101
104
"type": "blob"
102
105
},
103
106
"links": {
104
107
"description": "Relevant links for the app, including trust/compliance, support, and project resources.",
105
108
"items": {
106
109
"ref": "#link",
107
110
"type": "ref"
108
111
},
109
112
"maxLength": 12,
110
113
"type": "array"
111
114
},
112
115
"migratedFromAtUri": {
113
116
"description": "When this listing.detail record supersedes a prior record in another repo (e.g. moved from the AT Store publisher to a product owner PDS), the at:// URI of that prior fyi.atstore.listing.detail record.",
114
117
"format": "at-uri",
115
118
"maxLength": 8192,
116
119
"type": "string"
117
120
},
118
121
"name": {
119
122
"maxLength": 640,
120
123
"type": "string"
121
124
},
122
125
"productAccountDid": {
123
126
"description": "Bluesky DID for the product, app, or tool (not the AT Store publisher). Handle is resolved and stored in Postgres only.",
124
127
"maxLength": 2048,
125
128
"type": "string"
126
129
},
127
130
"screenshots": {
128
131
"items": {
129
132
"accept": [
130
133
"image/png",
131
134
"image/jpeg",
132
135
"image/webp",
133
136
"image/gif",
134
137
"image/svg+xml"
135
138
],
136
139
"maxSize": 12000000,
137
140
"type": "blob"
138
141
},
139
142
"maxLength": 20,
140
143
"type": "array"
141
144
},
142
145
"slug": {
143
146
"description": "Stable URL slug; unique within the publishing account.",
144
147
"maxLength": 512,
145
148
"minLength": 1,
146
149
"type": "string"
147
150
},
148
151
"tagline": {
149
152
"maxLength": 300,
150
153
"type": "string"
151
154
},
152
155
"updatedAt": {
153
156
"format": "datetime",
154
157
"type": "string"
155
158
}
156
159
},
157
160
"required": [
158
161
"slug",
159
162
"name",
160
163
"tagline",
161
164
"externalUrl",
162
165
"icon",
163
166
"categorySlug",
164
167
"createdAt",
165
168
"updatedAt"
166
169
],
167
170
"type": "object"
168
171
},
169
172
"type": "record"
170
173
}
171
174
},
172
175
"id": "fyi.atstore.listing.detail",
173
176
"lexicon": 1
174
177
}