app.chronosky.schedule.listPosts
Schema Diff
+48 -2
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 15 non-breaking changes.
Breaking Changes (2)
- RemovedEdge RemovedEdge { src: "app.chronosky.schedule.listPosts#scheduledPost.embed", tgt: "app.chronosky.schedule.listPosts#scheduledPost.embed:variant1", kind: "variant", name: Some("app.bsky.embed.images#view") }
- ConstraintAdded ConstraintAdded { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.cid", sort: "maxLength", value: "200" }
Non-Breaking Changes (15)
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageView" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageView.images" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageView.images:items" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.alt" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.cid" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.fullsize" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.thumb" }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.listPosts#imageView", tgt: "app.chronosky.schedule.listPosts#imageView.images", kind: "prop", name: Some("images") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.listPosts#imageView.images", tgt: "app.chronosky.schedule.listPosts#imageView.images:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.alt", kind: "prop", name: Some("alt") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.cid", kind: "prop", name: Some("cid") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.fullsize", kind: "prop", name: Some("fullsize") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.thumb", kind: "prop", name: Some("thumb") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.listPosts#scheduledPost.embed", tgt: "app.chronosky.schedule.listPosts#scheduledPost.embed:variant1", kind: "variant", name: Some("#imageView") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageView" }AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageView.images" }AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageView.images:items" }AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage" }AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.alt" }AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.cid" }AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.fullsize" }AddedVertex { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.thumb" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "app.chronosky.schedule.listPosts#imageViewImage.cid", sort: "maxLength", value: "200" }
Additional Notes
- Breaking: RemovedEdge { src: "app.chronosky.schedule.listPosts#scheduledPost.embed", tgt: "app.chronosky.schedule.listPosts#scheduledPost.embed:variant1", kind: "variant", name: Some("app.bsky.embed.images#view") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.listPosts#imageView", tgt: "app.chronosky.schedule.listPosts#imageView.images", kind: "prop", name: Some("images") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.listPosts#imageView.images", tgt: "app.chronosky.schedule.listPosts#imageView.images:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.alt", kind: "prop", name: Some("alt") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.cid", kind: "prop", name: Some("cid") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.fullsize", kind: "prop", name: Some("fullsize") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.listPosts#imageViewImage", tgt: "app.chronosky.schedule.listPosts#imageViewImage.thumb", kind: "prop", name: Some("thumb") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.listPosts#scheduledPost.embed", tgt: "app.chronosky.schedule.listPosts#scheduledPost.embed:variant1", kind: "variant", name: Some("#imageView") }
1
1
{
2
2
"id": "app.chronosky.schedule.listPosts",
3
3
"defs": {
4
4
"main": {
5
5
"type": "query",
6
6
"output": {
7
7
"schema": {
8
8
"type": "object",
9
9
"required": [
10
10
"posts",
11
11
"pagination"
12
12
],
13
13
"properties": {
14
14
"posts": {
15
15
"type": "array",
16
16
"items": {
17
17
"ref": "#scheduledPost",
18
18
"type": "ref"
19
19
}
20
20
},
21
21
"pagination": {
22
22
"ref": "#pagination",
23
23
"type": "ref"
24
24
}
25
25
}
26
26
},
27
27
"encoding": "application/json"
28
28
},
29
29
"parameters": {
30
30
"type": "params",
31
31
"properties": {
32
32
"page": {
33
33
"type": "integer",
34
34
"default": 1,
35
35
"minimum": 1,
36
36
"description": "Page number (1-indexed)."
37
37
},
38
38
"limit": {
39
39
"type": "integer",
40
40
"default": 20,
41
41
"maximum": 100,
42
42
"minimum": 1,
43
43
"description": "Number of parent posts per page. Thread posts always include all children regardless of limit (e.g., limit=100 returns up to 100 parent posts plus all their children)."
44
44
},
45
45
"status": {
46
46
"enum": [
47
47
"PENDING",
48
48
"EXECUTING",
49
49
"COMPLETED",
50
50
"FAILED",
51
51
"CANCELLED"
52
52
],
53
53
"type": "string",
54
54
"maxLength": 20,
55
55
"description": "Filter by post status."
56
56
}
57
57
}
58
58
},
59
59
"description": "List scheduled posts for the authenticated user with pagination and filtering."
60
60
},
61
+
"imageView": {
62
+
"type": "object",
63
+
"required": [
64
+
"images"
65
+
],
66
+
"properties": {
67
+
"images": {
68
+
"type": "array",
69
+
"items": {
70
+
"ref": "#imageViewImage",
71
+
"type": "ref"
72
+
},
73
+
"maxLength": 4,
74
+
"description": "List of image views with CID references."
75
+
}
76
+
},
77
+
"description": "Image embed view with CID references. Similar to app.bsky.embed.images#view but includes cid on each image."
78
+
},
61
79
"pagination": {
62
80
"type": "object",
63
81
"required": [
64
82
"page",
65
83
"limit",
66
84
"total",
67
85
"totalPages"
68
86
],
69
87
"properties": {
70
88
"page": {
71
89
"type": "integer",
72
90
"minimum": 1,
73
91
"description": "Current page number."
74
92
},
75
93
"limit": {
76
94
"type": "integer",
77
95
"minimum": 1,
78
96
"description": "Posts per page."
79
97
},
80
98
"total": {
81
99
"type": "integer",
82
100
"minimum": 0,
83
101
"description": "Total number of posts."
84
102
},
85
103
"totalPages": {
86
104
"type": "integer",
87
105
"minimum": 0,
88
106
"description": "Total number of pages."
89
107
}
90
108
},
91
109
"description": "Pagination information."
92
110
},
93
111
"scheduledPost": {
94
112
"type": "object",
95
113
"required": [
96
114
"id",
97
115
"userId",
98
116
"text",
99
117
"scheduledAt",
100
118
"status",
101
119
"createdAt",
102
120
"updatedAt",
103
121
"retryCount",
104
122
"langs"
105
123
],
106
124
"properties": {
107
125
"id": {
108
126
"type": "string",
109
127
"maxLength": 100,
110
128
"description": "Post ID."
111
129
},
112
130
"text": {
113
131
"type": "string",
114
132
"maxLength": 3000,
115
133
"description": "Post content text (app.bsky.feed.post#text). May be empty if embeds are present.",
116
134
"maxGraphemes": 300
117
135
},
118
136
"atUri": {
119
137
"type": "string",
120
138
"maxLength": 500,
121
139
"description": "AT Protocol post URI (at://did:plc:.../app.bsky.feed.post/...). Present after successful execution."
122
140
},
123
141
"embed": {
124
142
"refs": [
125
143
"app.bsky.embed.images",
126
-
"app.bsky.embed.images#view",
144
+
"#imageView",
127
145
"app.bsky.embed.external",
128
146
"app.bsky.embed.record",
129
147
"app.bsky.embed.video",
130
148
"app.bsky.embed.recordWithMedia"
131
149
],
132
150
"type": "union",
133
-
"description": "Embedded content such as images, external links, or quoted posts (app.bsky.embed.*). For image embeds, may be returned as app.bsky.embed.images#view with thumb/fullsize URLs."
151
+
"description": "Embedded content such as images, external links, or quoted posts. For image embeds, returned as #imageView with thumb/fullsize URLs and CID references."
134
152
},
135
153
"langs": {
136
154
"type": "array",
137
155
"items": {
138
156
"type": "string",
139
157
"format": "language"
140
158
},
141
159
"maxLength": 3,
142
160
"description": "Language codes for post content (app.bsky.feed.post#langs). ISO 639-1 or 639-3 codes."
143
161
},
144
162
"atRkey": {
145
163
"type": "string",
146
164
"maxLength": 100,
147
165
"description": "AT Protocol record key. Present after successful execution."
148
166
},
149
167
"facets": {
150
168
"type": "array",
151
169
"items": {
152
170
"ref": "app.bsky.richtext.facet",
153
171
"type": "ref"
154
172
},
155
173
"description": "Rich text facets for mentions, links, and hashtags (app.bsky.richtext.facet)."
156
174
},
157
175
"labels": {
158
176
"ref": "com.atproto.label.defs#selfLabels",
159
177
"type": "ref",
160
178
"description": "Self-applied content labels for content warnings (AT Protocol standard)."
161
179
},
162
180
"status": {
163
181
"enum": [
164
182
"PENDING",
165
183
"EXECUTING",
166
184
"COMPLETED",
167
185
"FAILED",
168
186
"CANCELLED"
169
187
],
170
188
"type": "string",
171
189
"maxLength": 20,
172
190
"description": "Post status."
173
191
},
174
192
"userId": {
175
193
"type": "string",
176
194
"maxLength": 200,
177
195
"description": "User ID who created this post."
178
196
},
179
197
"children": {
180
198
"type": "array",
181
199
"items": {
182
200
"ref": "#scheduledPost",
183
201
"type": "ref"
184
202
},
185
203
"description": "Child posts in thread. Only present for parent posts with children."
186
204
},
187
205
"errorMsg": {
188
206
"type": "string",
189
207
"maxLength": 2000,
190
208
"description": "Error message if execution failed. Present only when status is FAILED."
191
209
},
192
210
"createdAt": {
193
211
"type": "string",
194
212
"format": "datetime",
195
213
"maxLength": 100,
196
214
"description": "Post creation datetime (ISO 8601)."
197
215
},
198
216
"updatedAt": {
199
217
"type": "string",
200
218
"format": "datetime",
201
219
"maxLength": 100,
202
220
"description": "Post last update datetime (ISO 8601)."
203
221
},
204
222
"executedAt": {
205
223
"type": "string",
206
224
"format": "datetime",
207
225
"maxLength": 100,
208
226
"description": "Execution completion datetime (ISO 8601). Present only when status is COMPLETED or FAILED."
209
227
},
210
228
"retryCount": {
211
229
"type": "integer",
212
230
"minimum": 0,
213
231
"description": "Number of execution retry attempts."
214
232
},
215
233
"postgateCid": {
216
234
"type": "string",
217
235
"maxLength": 100,
218
236
"description": "CID for postgate record. Present after successful execution with postgate settings."
219
237
},
220
238
"postgateUri": {
221
239
"type": "string",
222
240
"maxLength": 500,
223
241
"description": "AT Protocol URI for postgate record. Present after successful execution with postgate settings."
224
242
},
225
243
"scheduledAt": {
226
244
"type": "string",
227
245
"format": "datetime",
228
246
"maxLength": 100,
229
247
"description": "Scheduled publication datetime (ISO 8601)."
230
248
},
231
249
"threadDepth": {
232
250
"type": "integer",
233
251
"minimum": 0,
234
252
"description": "Thread depth level (0 for root post, 1 for direct reply, etc.)."
235
253
},
236
254
"parentPostId": {
237
255
"type": "string",
238
256
"maxLength": 100,
239
257
"description": "Parent post ID for thread posts. Null for root posts."
240
258
},
241
259
"threadgateCid": {
242
260
"type": "string",
243
261
"maxLength": 100,
244
262
"description": "CID for threadgate record. Present after successful execution with threadgate rules."
245
263
},
246
264
"threadgateUri": {
247
265
"type": "string",
248
266
"maxLength": 500,
249
267
"description": "AT Protocol URI for threadgate record. Present after successful execution with threadgate rules."
250
268
},
251
269
"threadPosition": {
252
270
"type": "integer",
253
271
"minimum": 0,
254
272
"description": "Position in thread (0-indexed). 0 for parent post, 1+ for children."
255
273
},
256
274
"threadgateRules": {
257
275
"type": "array",
258
276
"items": {
259
277
"refs": [
260
278
"app.bsky.feed.threadgate#mentionRule",
261
279
"app.bsky.feed.threadgate#followerRule",
262
280
"app.bsky.feed.threadgate#followingRule",
263
281
"app.bsky.feed.threadgate#listRule"
264
282
],
265
283
"type": "union"
266
284
},
267
285
"maxLength": 5,
268
286
"description": "Reply restriction rules (app.bsky.feed.threadgate). Defines who can reply to this post."
269
287
},
270
288
"postgateDisableEmbedding": {
271
289
"type": "boolean",
272
290
"description": "Whether to disable quote posts and embeds for this post (app.bsky.feed.postgate)."
273
291
}
274
292
},
275
293
"description": "Scheduled post object with AT Protocol standard fields."
294
+
},
295
+
"imageViewImage": {
296
+
"type": "object",
297
+
"required": [
298
+
"thumb",
299
+
"fullsize",
300
+
"alt"
301
+
],
302
+
"properties": {
303
+
"alt": {
304
+
"type": "string",
305
+
"description": "Alt text for the image."
306
+
},
307
+
"cid": {
308
+
"type": "string",
309
+
"maxLength": 200,
310
+
"description": "CID of the image blob. Use this value with updatePost#imagesEmbed to reference this image without re-uploading."
311
+
},
312
+
"thumb": {
313
+
"type": "string",
314
+
"description": "Thumbnail URL for the image."
315
+
},
316
+
"fullsize": {
317
+
"type": "string",
318
+
"description": "Full-size URL for the image."
319
+
}
320
+
},
321
+
"description": "Image view with CID for referencing in updatePost. Extends app.bsky.embed.images#viewImage with cid field."
276
322
}
277
323
},
278
324
"$type": "com.atproto.lexicon.schema",
279
325
"lexicon": 1
280
326
}