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