fyi.atstore.listing.detail
Schema Diff
+2 -0
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 0 non-breaking changes.
Breaking Changes (2)
- ConstraintAdded ConstraintAdded { vertex_id: "fyi.atstore.listing.detail#link.type", sort: "maxLength", value: "32" }
- ConstraintAdded ConstraintAdded { vertex_id: "fyi.atstore.listing.detail#link.url", sort: "maxLength", value: "2048" }
Migration Guidance
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "fyi.atstore.listing.detail#link.type", sort: "maxLength", value: "32" }
- ConstraintAdded ConstraintAdded { vertex_id: "fyi.atstore.listing.detail#link.url", sort: "maxLength", value: "2048" }
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
24
"other"
25
25
],
26
+
"maxLength": 32,
26
27
"type": "string"
27
28
},
28
29
"url": {
29
30
"description": "The destination URL.",
30
31
"format": "uri",
32
+
"maxLength": 2048,
31
33
"type": "string"
32
34
}
33
35
},
34
36
"required": [
35
37
"type",
36
38
"url"
37
39
],
38
40
"type": "object"
39
41
},
40
42
"main": {
41
43
"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.",
42
44
"key": "tid",
43
45
"record": {
44
46
"properties": {
45
47
"appTags": {
46
48
"items": {
47
49
"maxLength": 96,
48
50
"type": "string"
49
51
},
50
52
"maxLength": 64,
51
53
"type": "array"
52
54
},
53
55
"categorySlug": {
54
56
"description": "Browse category keys (e.g. protocol/pds). First entry is the primary category for legacy surfaces.",
55
57
"items": {
56
58
"maxLength": 256,
57
59
"type": "string"
58
60
},
59
61
"maxLength": 32,
60
62
"minLength": 1,
61
63
"type": "array"
62
64
},
63
65
"createdAt": {
64
66
"format": "datetime",
65
67
"type": "string"
66
68
},
67
69
"description": {
68
70
"maxLength": 20000,
69
71
"type": "string"
70
72
},
71
73
"externalUrl": {
72
74
"description": "Primary product or project URL.",
73
75
"format": "uri",
74
76
"maxLength": 2048,
75
77
"type": "string"
76
78
},
77
79
"heroImage": {
78
80
"accept": [
79
81
"image/png",
80
82
"image/jpeg",
81
83
"image/webp",
82
84
"image/gif",
83
85
"image/svg+xml"
84
86
],
85
87
"description": "Hero / cover image blob.",
86
88
"maxSize": 12000000,
87
89
"type": "blob"
88
90
},
89
91
"icon": {
90
92
"accept": [
91
93
"image/png",
92
94
"image/jpeg",
93
95
"image/webp",
94
96
"image/gif",
95
97
"image/svg+xml"
96
98
],
97
99
"description": "Square / app icon (uploaded to repo via com.atproto.repo.uploadBlob).",
98
100
"maxSize": 2000000,
99
101
"type": "blob"
100
102
},
101
103
"links": {
102
104
"description": "Relevant links for the app, including trust/compliance, support, and project resources.",
103
105
"items": {
104
106
"ref": "#link",
105
107
"type": "ref"
106
108
},
107
109
"maxLength": 12,
108
110
"type": "array"
109
111
},
110
112
"migratedFromAtUri": {
111
113
"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.",
112
114
"format": "at-uri",
113
115
"maxLength": 8192,
114
116
"type": "string"
115
117
},
116
118
"name": {
117
119
"maxLength": 640,
118
120
"type": "string"
119
121
},
120
122
"productAccountDid": {
121
123
"description": "Bluesky DID for the product, app, or tool (not the AT Store publisher). Handle is resolved and stored in Postgres only.",
122
124
"maxLength": 2048,
123
125
"type": "string"
124
126
},
125
127
"screenshots": {
126
128
"items": {
127
129
"accept": [
128
130
"image/png",
129
131
"image/jpeg",
130
132
"image/webp",
131
133
"image/gif",
132
134
"image/svg+xml"
133
135
],
134
136
"maxSize": 12000000,
135
137
"type": "blob"
136
138
},
137
139
"maxLength": 20,
138
140
"type": "array"
139
141
},
140
142
"slug": {
141
143
"description": "Stable URL slug; unique within the publishing account.",
142
144
"maxLength": 512,
143
145
"minLength": 1,
144
146
"type": "string"
145
147
},
146
148
"tagline": {
147
149
"maxLength": 300,
148
150
"type": "string"
149
151
},
150
152
"updatedAt": {
151
153
"format": "datetime",
152
154
"type": "string"
153
155
}
154
156
},
155
157
"required": [
156
158
"slug",
157
159
"name",
158
160
"tagline",
159
161
"externalUrl",
160
162
"icon",
161
163
"categorySlug",
162
164
"createdAt",
163
165
"updatedAt"
164
166
],
165
167
"type": "object"
166
168
},
167
169
"type": "record"
168
170
}
169
171
},
170
172
"id": "fyi.atstore.listing.detail",
171
173
"lexicon": 1
172
174
}