app.bsky.feed.post
Schema Diff
+1 -0
Compatibility Analysis
Breaking Changes Detected
3 breaking changes, 5 non-breaking changes.
Breaking Changes (3)
- RemovedEdge RemovedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant2", kind: "variant", name: Some("app.bsky.embed.external") }
- RemovedEdge RemovedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant3", kind: "variant", name: Some("app.bsky.embed.record") }
- RemovedEdge RemovedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant4", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
Non-Breaking Changes (5)
- AddedVertex AddedVertex { vertex_id: "app.bsky.feed.post:body.embed:variant5" }
- AddedEdge AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant2", kind: "variant", name: Some("app.bsky.embed.gallery") }
- AddedEdge AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant3", kind: "variant", name: Some("app.bsky.embed.external") }
- AddedEdge AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant4", kind: "variant", name: Some("app.bsky.embed.record") }
- AddedEdge AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant5", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.bsky.feed.post:body.embed:variant5" }
Additional Notes
- Breaking: RemovedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant2", kind: "variant", name: Some("app.bsky.embed.external") }
- Breaking: RemovedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant3", kind: "variant", name: Some("app.bsky.embed.record") }
- Breaking: RemovedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant4", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
- Non-breaking: AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant2", kind: "variant", name: Some("app.bsky.embed.gallery") }
- Non-breaking: AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant3", kind: "variant", name: Some("app.bsky.embed.external") }
- Non-breaking: AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant4", kind: "variant", name: Some("app.bsky.embed.record") }
- Non-breaking: AddedEdge { src: "app.bsky.feed.post:body.embed", tgt: "app.bsky.feed.post:body.embed:variant5", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
1
1
{
2
2
"id": "app.bsky.feed.post",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"text",
11
11
"createdAt"
12
12
],
13
13
"properties": {
14
14
"tags": {
15
15
"type": "array",
16
16
"items": {
17
17
"type": "string",
18
18
"maxLength": 640,
19
19
"maxGraphemes": 64
20
20
},
21
21
"maxLength": 8,
22
22
"description": "Additional hashtags, in addition to any included in post text and facets."
23
23
},
24
24
"text": {
25
25
"type": "string",
26
26
"maxLength": 3000,
27
27
"description": "The primary post content. May be an empty string, if there are embeds.",
28
28
"maxGraphemes": 300
29
29
},
30
30
"embed": {
31
31
"refs": [
32
32
"app.bsky.embed.images",
33
33
"app.bsky.embed.video",
34
+
"app.bsky.embed.gallery",
34
35
"app.bsky.embed.external",
35
36
"app.bsky.embed.record",
36
37
"app.bsky.embed.recordWithMedia"
37
38
],
38
39
"type": "union"
39
40
},
40
41
"langs": {
41
42
"type": "array",
42
43
"items": {
43
44
"type": "string",
44
45
"format": "language"
45
46
},
46
47
"maxLength": 3,
47
48
"description": "Indicates human language of post primary text content."
48
49
},
49
50
"reply": {
50
51
"ref": "#replyRef",
51
52
"type": "ref"
52
53
},
53
54
"facets": {
54
55
"type": "array",
55
56
"items": {
56
57
"ref": "app.bsky.richtext.facet",
57
58
"type": "ref"
58
59
},
59
60
"description": "Annotations of text (mentions, URLs, hashtags, etc)"
60
61
},
61
62
"labels": {
62
63
"refs": [
63
64
"com.atproto.label.defs#selfLabels"
64
65
],
65
66
"type": "union",
66
67
"description": "Self-label values for this post. Effectively content warnings."
67
68
},
68
69
"entities": {
69
70
"type": "array",
70
71
"items": {
71
72
"ref": "#entity",
72
73
"type": "ref"
73
74
},
74
75
"description": "DEPRECATED: replaced by app.bsky.richtext.facet."
75
76
},
76
77
"createdAt": {
77
78
"type": "string",
78
79
"format": "datetime",
79
80
"description": "Client-declared timestamp when this post was originally created."
80
81
}
81
82
}
82
83
},
83
84
"description": "Record containing a Bluesky post."
84
85
},
85
86
"entity": {
86
87
"type": "object",
87
88
"required": [
88
89
"index",
89
90
"type",
90
91
"value"
91
92
],
92
93
"properties": {
93
94
"type": {
94
95
"type": "string",
95
96
"description": "Expected values are 'mention' and 'link'."
96
97
},
97
98
"index": {
98
99
"ref": "#textSlice",
99
100
"type": "ref"
100
101
},
101
102
"value": {
102
103
"type": "string"
103
104
}
104
105
},
105
106
"description": "Deprecated: use facets instead."
106
107
},
107
108
"replyRef": {
108
109
"type": "object",
109
110
"required": [
110
111
"root",
111
112
"parent"
112
113
],
113
114
"properties": {
114
115
"root": {
115
116
"ref": "com.atproto.repo.strongRef",
116
117
"type": "ref"
117
118
},
118
119
"parent": {
119
120
"ref": "com.atproto.repo.strongRef",
120
121
"type": "ref"
121
122
}
122
123
}
123
124
},
124
125
"textSlice": {
125
126
"type": "object",
126
127
"required": [
127
128
"start",
128
129
"end"
129
130
],
130
131
"properties": {
131
132
"end": {
132
133
"type": "integer",
133
134
"minimum": 0
134
135
},
135
136
"start": {
136
137
"type": "integer",
137
138
"minimum": 0
138
139
}
139
140
},
140
141
"description": "Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings."
141
142
}
142
143
},
143
144
"$type": "com.atproto.lexicon.schema",
144
145
"lexicon": 1
145
146
}