app.chronosky.schedule.updatePost
Schema Diff
+49 -1
Compatibility Analysis
Breaking Changes Detected
12 breaking changes, 24 non-breaking changes.
Breaking Changes (12)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed", src: "app.chronosky.schedule.updatePost#imagesEmbed", tgt: "app.chronosky.schedule.updatePost#imagesEmbed.images", kind: "prop", name: Some("images") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.updatePost#imageRef", src: "app.chronosky.schedule.updatePost#imageRef", tgt: "app.chronosky.schedule.updatePost#imageRef.alt", kind: "prop", name: Some("alt") }
- RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant0", kind: "variant", name: Some("app.bsky.embed.images") }
- RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant1", kind: "variant", name: Some("app.bsky.embed.external") }
- RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant2", kind: "variant", name: Some("app.bsky.embed.record") }
- RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant3", kind: "variant", name: Some("app.bsky.embed.video") }
- RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant4", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
- RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant0", tgt: "app.bsky.embed.images", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant1", tgt: "app.bsky.embed.external", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant2", tgt: "app.bsky.embed.record", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant3", tgt: "app.bsky.embed.video", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant4", tgt: "app.bsky.embed.recordWithMedia", kind: "ref", name: None }
Non-Breaking Changes (24)
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef.alt" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef.cid" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef.image" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed.images" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed.images:items" }
- AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost:input.embed:variant5" }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost#imageRef", tgt: "app.chronosky.schedule.updatePost#imageRef.cid", kind: "prop", name: Some("cid") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost#imageRef", tgt: "app.chronosky.schedule.updatePost#imageRef.image", kind: "prop", name: Some("image") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost#imagesEmbed.images", tgt: "app.chronosky.schedule.updatePost#imagesEmbed.images:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost#imagesEmbed.images:items", tgt: "app.chronosky.schedule.updatePost#imageRef", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant0", kind: "variant", name: Some("#imagesEmbed") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant1", kind: "variant", name: Some("app.bsky.embed.images") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant2", kind: "variant", name: Some("app.bsky.embed.external") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant3", kind: "variant", name: Some("app.bsky.embed.record") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant4", kind: "variant", name: Some("app.bsky.embed.video") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant5", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant0", tgt: "app.chronosky.schedule.updatePost#imagesEmbed", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant1", tgt: "app.bsky.embed.images", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant2", tgt: "app.bsky.embed.external", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant3", tgt: "app.bsky.embed.record", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant4", tgt: "app.bsky.embed.video", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant5", tgt: "app.bsky.embed.recordWithMedia", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef" }AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef.alt" }AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef.cid" }AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef.image" }AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed" }AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed.images" }AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed.images:items" }AddedVertex { vertex_id: "app.chronosky.schedule.updatePost:input.embed:variant5" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed", src: "app.chronosky.schedule.updatePost#imagesEmbed", tgt: "app.chronosky.schedule.updatePost#imagesEmbed.images", kind: "prop", name: Some("images") }
- Breaking: RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.updatePost#imageRef", src: "app.chronosky.schedule.updatePost#imageRef", tgt: "app.chronosky.schedule.updatePost#imageRef.alt", kind: "prop", name: Some("alt") }
- Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant0", kind: "variant", name: Some("app.bsky.embed.images") }
- Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant1", kind: "variant", name: Some("app.bsky.embed.external") }
- Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant2", kind: "variant", name: Some("app.bsky.embed.record") }
- Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant3", kind: "variant", name: Some("app.bsky.embed.video") }
- Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant4", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
- Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant0", tgt: "app.bsky.embed.images", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant1", tgt: "app.bsky.embed.external", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant2", tgt: "app.bsky.embed.record", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant3", tgt: "app.bsky.embed.video", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant4", tgt: "app.bsky.embed.recordWithMedia", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost#imageRef", tgt: "app.chronosky.schedule.updatePost#imageRef.cid", kind: "prop", name: Some("cid") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost#imageRef", tgt: "app.chronosky.schedule.updatePost#imageRef.image", kind: "prop", name: Some("image") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost#imagesEmbed.images", tgt: "app.chronosky.schedule.updatePost#imagesEmbed.images:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost#imagesEmbed.images:items", tgt: "app.chronosky.schedule.updatePost#imageRef", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant0", kind: "variant", name: Some("#imagesEmbed") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant1", kind: "variant", name: Some("app.bsky.embed.images") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant2", kind: "variant", name: Some("app.bsky.embed.external") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant3", kind: "variant", name: Some("app.bsky.embed.record") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant4", kind: "variant", name: Some("app.bsky.embed.video") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant5", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant0", tgt: "app.chronosky.schedule.updatePost#imagesEmbed", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant1", tgt: "app.bsky.embed.images", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant2", tgt: "app.bsky.embed.external", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant3", tgt: "app.bsky.embed.record", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant4", tgt: "app.bsky.embed.video", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant5", tgt: "app.bsky.embed.recordWithMedia", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
+
"imageRef": {
5
+
"description": "Image reference that supports both new blob uploads and existing image CID references.",
6
+
"properties": {
7
+
"alt": {
8
+
"description": "Alt text for the image.",
9
+
"maxLength": 1000,
10
+
"type": "string"
11
+
},
12
+
"cid": {
13
+
"description": "CID of an image blob. Can reference an existing image in the post or a newly uploaded image via media.uploadBlob.",
14
+
"maxLength": 200,
15
+
"type": "string"
16
+
},
17
+
"image": {
18
+
"accept": [
19
+
"image/jpeg",
20
+
"image/png",
21
+
"image/webp",
22
+
"image/gif"
23
+
],
24
+
"description": "New image blob (for newly uploaded images).",
25
+
"maxSize": 1000000,
26
+
"type": "blob"
27
+
}
28
+
},
29
+
"required": [
30
+
"alt"
31
+
],
32
+
"type": "object"
33
+
},
34
+
"imagesEmbed": {
35
+
"description": "Images embed that supports CID references for existing images.",
36
+
"properties": {
37
+
"images": {
38
+
"items": {
39
+
"ref": "#imageRef",
40
+
"type": "ref"
41
+
},
42
+
"maxLength": 4,
43
+
"type": "array"
44
+
}
45
+
},
46
+
"required": [
47
+
"images"
48
+
],
49
+
"type": "object"
50
+
},
4
51
"main": {
5
52
"description": "Update a scheduled post. Only PENDING posts can be updated.",
6
53
"errors": [
7
54
{
8
55
"name": "PostNotFound"
9
56
},
10
57
{
11
58
"name": "PostNotPending"
12
59
},
13
60
{
14
61
"name": "NoFieldsProvided"
15
62
}
16
63
],
17
64
"input": {
18
65
"encoding": "application/json",
19
66
"schema": {
20
67
"properties": {
21
68
"disableQuotePosts": {
22
69
"description": "Whether to disable quote posts",
23
70
"type": "boolean"
24
71
},
25
72
"embed": {
26
-
"description": "Embedded content (images, external links, records).",
73
+
"description": "Embedded content (images, external links, records). Use #imagesEmbed to reference existing images by CID.",
27
74
"refs": [
75
+
"#imagesEmbed",
28
76
"app.bsky.embed.images",
29
77
"app.bsky.embed.external",
30
78
"app.bsky.embed.record",
31
79
"app.bsky.embed.video",
32
80
"app.bsky.embed.recordWithMedia"
33
81
],
34
82
"type": "union"
35
83
},
36
84
"facets": {
37
85
"description": "Rich text facets (links, mentions, tags).",
38
86
"items": {
39
87
"ref": "app.bsky.richtext.facet",
40
88
"type": "ref"
41
89
},
42
90
"type": "array"
43
91
},
44
92
"id": {
45
93
"description": "Post ID to update.",
46
94
"maxLength": 100,
47
95
"type": "string"
48
96
},
49
97
"labels": {
50
98
"description": "Self-applied content labels for content warnings (AT Protocol standard).",
51
99
"ref": "com.atproto.label.defs#selfLabels",
52
100
"type": "ref"
53
101
},
54
102
"langs": {
55
103
"description": "Language codes (ISO 639-1).",
56
104
"items": {
57
105
"format": "language",
58
106
"type": "string"
59
107
},
60
108
"maxLength": 3,
61
109
"type": "array"
62
110
},
63
111
"scheduledAt": {
64
112
"description": "New scheduled publication datetime (ISO 8601).",
65
113
"format": "datetime",
66
114
"maxLength": 100,
67
115
"type": "string"
68
116
},
69
117
"text": {
70
118
"description": "New post text content.",
71
119
"maxGraphemes": 300,
72
120
"maxLength": 3000,
73
121
"type": "string"
74
122
},
75
123
"threadgateRules": {
76
124
"description": "Thread gate rules to control who can reply",
77
125
"items": {
78
126
"refs": [
79
127
"app.bsky.feed.threadgate#mentionRule",
80
128
"app.bsky.feed.threadgate#followerRule",
81
129
"app.bsky.feed.threadgate#followingRule",
82
130
"app.bsky.feed.threadgate#listRule"
83
131
],
84
132
"type": "union"
85
133
},
86
134
"maxLength": 5,
87
135
"type": "array"
88
136
}
89
137
},
90
138
"required": [
91
139
"id"
92
140
],
93
141
"type": "object"
94
142
}
95
143
},
96
144
"output": {
97
145
"encoding": "application/json",
98
146
"schema": {
99
147
"properties": {
100
148
"post": {
101
149
"ref": "app.chronosky.schedule.listPosts#scheduledPost",
102
150
"type": "ref"
103
151
}
104
152
},
105
153
"required": [
106
154
"post"
107
155
],
108
156
"type": "object"
109
157
}
110
158
},
111
159
"type": "procedure"
112
160
}
113
161
},
114
162
"id": "app.chronosky.schedule.updatePost",
115
163
"lexicon": 1
116
164
}