app.bsky.embed.external

bsky-lexicons.bsky.social

Schema Diff

+127 -0

From

CID
bafyreiblxmpzgwg...
Indexed At
2026-02-18 17:48 UTC
View this version

To

CID
bafyreigwach36az...
Indexed At
2026-07-16 14:58 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

6 breaking changes, 51 non-breaking changes.

Breaking Changes (6)
  • ConstraintAdded ConstraintAdded { vertex_id: "app.bsky.embed.external#colorRGB.g", sort: "maximum", value: "255" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.bsky.embed.external#colorRGB.g", sort: "minimum", value: "0" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.bsky.embed.external#colorRGB.r", sort: "minimum", value: "0" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.bsky.embed.external#colorRGB.r", sort: "maximum", value: "255" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.bsky.embed.external#colorRGB.b", sort: "maximum", value: "255" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.bsky.embed.external#colorRGB.b", sort: "minimum", value: "0" }
Non-Breaking Changes (51)
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#colorRGB" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#colorRGB.b" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#colorRGB.g" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#colorRGB.r" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#external.associatedRefs" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#external.associatedRefs:items" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.associatedProfiles" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.associatedProfiles:items" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.associatedRefs" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.associatedRefs:items" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.createdAt" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.labels" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.labels:items" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.readingTime" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.source" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.updatedAt" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSource" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSource.description" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSource.icon" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSource.theme" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSource.title" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSource.uri" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSourceTheme" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSourceTheme.accentForegroundRGB" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSourceTheme.accentRGB" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSourceTheme.backgroundRGB" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSourceTheme.foregroundRGB" }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#colorRGB", tgt: "app.bsky.embed.external#colorRGB.b", kind: "prop", name: Some("b") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#colorRGB", tgt: "app.bsky.embed.external#colorRGB.g", kind: "prop", name: Some("g") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#colorRGB", tgt: "app.bsky.embed.external#colorRGB.r", kind: "prop", name: Some("r") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#external", tgt: "app.bsky.embed.external#external.associatedRefs", kind: "prop", name: Some("associatedRefs") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#external.associatedRefs", tgt: "app.bsky.embed.external#external.associatedRefs:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternal", tgt: "app.bsky.embed.external#viewExternal.associatedProfiles", kind: "prop", name: Some("associatedProfiles") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternal", tgt: "app.bsky.embed.external#viewExternal.associatedRefs", kind: "prop", name: Some("associatedRefs") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternal", tgt: "app.bsky.embed.external#viewExternal.createdAt", kind: "prop", name: Some("createdAt") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternal", tgt: "app.bsky.embed.external#viewExternal.labels", kind: "prop", name: Some("labels") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternal", tgt: "app.bsky.embed.external#viewExternal.readingTime", kind: "prop", name: Some("readingTime") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternal", tgt: "app.bsky.embed.external#viewExternal.source", kind: "prop", name: Some("source") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternal", tgt: "app.bsky.embed.external#viewExternal.updatedAt", kind: "prop", name: Some("updatedAt") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternal.associatedProfiles", tgt: "app.bsky.embed.external#viewExternal.associatedProfiles:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternal.associatedRefs", tgt: "app.bsky.embed.external#viewExternal.associatedRefs:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternal.labels", tgt: "app.bsky.embed.external#viewExternal.labels:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternalSource", tgt: "app.bsky.embed.external#viewExternalSource.description", kind: "prop", name: Some("description") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternalSource", tgt: "app.bsky.embed.external#viewExternalSource.icon", kind: "prop", name: Some("icon") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternalSource", tgt: "app.bsky.embed.external#viewExternalSource.theme", kind: "prop", name: Some("theme") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternalSource", tgt: "app.bsky.embed.external#viewExternalSource.title", kind: "prop", name: Some("title") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternalSource", tgt: "app.bsky.embed.external#viewExternalSource.uri", kind: "prop", name: Some("uri") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternalSourceTheme", tgt: "app.bsky.embed.external#viewExternalSourceTheme.accentForegroundRGB", kind: "prop", name: Some("accentForegroundRGB") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternalSourceTheme", tgt: "app.bsky.embed.external#viewExternalSourceTheme.accentRGB", kind: "prop", name: Some("accentRGB") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternalSourceTheme", tgt: "app.bsky.embed.external#viewExternalSourceTheme.backgroundRGB", kind: "prop", name: Some("backgroundRGB") }
  • AddedEdge AddedEdge { src: "app.bsky.embed.external#viewExternalSourceTheme", tgt: "app.bsky.embed.external#viewExternalSourceTheme.foregroundRGB", kind: "prop", name: Some("foregroundRGB") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.bsky.embed.external#colorRGB" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#colorRGB.b" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#colorRGB.g" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#colorRGB.r" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#external.associatedRefs" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#external.associatedRefs:items" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.associatedProfiles" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.associatedProfiles:items" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.associatedRefs" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.associatedRefs:items" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.createdAt" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.labels" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.labels:items" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.readingTime" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.source" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternal.updatedAt" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSource" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSource.description" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSource.icon" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSource.theme" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSource.title" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSource.uri" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSourceTheme" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSourceTheme.accentForegroundRGB" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSourceTheme.accentRGB" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSourceTheme.backgroundRGB" }
  • AddedVertex { vertex_id: "app.bsky.embed.external#viewExternalSourceTheme.foregroundRGB" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "app.bsky.embed.external#colorRGB.r", sort: "minimum", value: "0" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.bsky.embed.external#colorRGB.r", sort: "maximum", value: "255" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.bsky.embed.external#colorRGB.b", sort: "maximum", value: "255" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.bsky.embed.external#colorRGB.b", sort: "minimum", value: "0" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.bsky.embed.external#colorRGB.g", sort: "maximum", value: "255" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.bsky.embed.external#colorRGB.g", sort: "minimum", value: "0" }

Additional Notes

  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#colorRGB", tgt: "app.bsky.embed.external#colorRGB.b", kind: "prop", name: Some("b") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#colorRGB", tgt: "app.bsky.embed.external#colorRGB.g", kind: "prop", name: Some("g") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#colorRGB", tgt: "app.bsky.embed.external#colorRGB.r", kind: "prop", name: Some("r") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#external", tgt: "app.bsky.embed.external#external.associatedRefs", kind: "prop", name: Some("associatedRefs") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#external.associatedRefs", tgt: "app.bsky.embed.external#external.associatedRefs:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternal", tgt: "app.bsky.embed.external#viewExternal.associatedProfiles", kind: "prop", name: Some("associatedProfiles") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternal", tgt: "app.bsky.embed.external#viewExternal.associatedRefs", kind: "prop", name: Some("associatedRefs") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternal", tgt: "app.bsky.embed.external#viewExternal.createdAt", kind: "prop", name: Some("createdAt") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternal", tgt: "app.bsky.embed.external#viewExternal.labels", kind: "prop", name: Some("labels") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternal", tgt: "app.bsky.embed.external#viewExternal.readingTime", kind: "prop", name: Some("readingTime") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternal", tgt: "app.bsky.embed.external#viewExternal.source", kind: "prop", name: Some("source") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternal", tgt: "app.bsky.embed.external#viewExternal.updatedAt", kind: "prop", name: Some("updatedAt") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternal.associatedProfiles", tgt: "app.bsky.embed.external#viewExternal.associatedProfiles:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternal.associatedRefs", tgt: "app.bsky.embed.external#viewExternal.associatedRefs:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternal.labels", tgt: "app.bsky.embed.external#viewExternal.labels:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternalSource", tgt: "app.bsky.embed.external#viewExternalSource.description", kind: "prop", name: Some("description") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternalSource", tgt: "app.bsky.embed.external#viewExternalSource.icon", kind: "prop", name: Some("icon") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternalSource", tgt: "app.bsky.embed.external#viewExternalSource.theme", kind: "prop", name: Some("theme") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternalSource", tgt: "app.bsky.embed.external#viewExternalSource.title", kind: "prop", name: Some("title") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternalSource", tgt: "app.bsky.embed.external#viewExternalSource.uri", kind: "prop", name: Some("uri") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternalSourceTheme", tgt: "app.bsky.embed.external#viewExternalSourceTheme.accentForegroundRGB", kind: "prop", name: Some("accentForegroundRGB") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternalSourceTheme", tgt: "app.bsky.embed.external#viewExternalSourceTheme.accentRGB", kind: "prop", name: Some("accentRGB") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternalSourceTheme", tgt: "app.bsky.embed.external#viewExternalSourceTheme.backgroundRGB", kind: "prop", name: Some("backgroundRGB") }
  • Non-breaking: AddedEdge { src: "app.bsky.embed.external#viewExternalSourceTheme", tgt: "app.bsky.embed.external#viewExternalSourceTheme.foregroundRGB", kind: "prop", name: Some("foregroundRGB") }
1 1
{
2 2
  "id": "app.bsky.embed.external",
3 3
  "defs": {
4 4
    "main": {
5 5
      "type": "object",
6 6
      "required": [
7 7
        "external"
8 8
      ],
9 9
      "properties": {
10 10
        "external": {
11 11
          "ref": "#external",
12 12
          "type": "ref"
13 13
        }
14 14
      },
15 15
      "description": "A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post)."
16 16
    },
17 17
    "view": {
18 18
      "type": "object",
19 19
      "required": [
20 20
        "external"
21 21
      ],
22 22
      "properties": {
23 23
        "external": {
24 24
          "ref": "#viewExternal",
25 25
          "type": "ref"
26 26
        }
27 27
      }
28 28
    },
29 +
    "colorRGB": {
30 +
      "type": "object",
31 +
      "required": [
32 +
        "r",
33 +
        "g",
34 +
        "b"
35 +
      ],
36 +
      "properties": {
37 +
        "b": {
38 +
          "type": "integer",
39 +
          "maximum": 255,
40 +
          "minimum": 0
41 +
        },
42 +
        "g": {
43 +
          "type": "integer",
44 +
          "maximum": 255,
45 +
          "minimum": 0
46 +
        },
47 +
        "r": {
48 +
          "type": "integer",
49 +
          "maximum": 255,
50 +
          "minimum": 0
51 +
        }
52 +
      },
53 +
      "description": "RGB color definition, inspired by site.standard.theme.color#rgb"
54 +
    },
29 55
    "external": {
30 56
      "type": "object",
31 57
      "required": [
32 58
        "uri",
33 59
        "title",
34 60
        "description"
35 61
      ],
36 62
      "properties": {
37 63
        "uri": {
38 64
          "type": "string",
39 65
          "format": "uri"
40 66
        },
41 67
        "thumb": {
42 68
          "type": "blob",
43 69
          "accept": [
44 70
            "image/*"
45 71
          ],
46 72
          "maxSize": 1000000
47 73
        },
48 74
        "title": {
49 75
          "type": "string"
50 76
        },
51 77
        "description": {
52 78
          "type": "string"
79 +
        },
80 +
        "associatedRefs": {
81 +
          "type": "array",
82 +
          "items": {
83 +
            "ref": "com.atproto.repo.strongRef",
84 +
            "type": "ref"
85 +
          },
86 +
          "description": "StrongRefs (uri+cid) of the Atmosphere records that backed this view."
53 87
        }
54 88
      }
55 89
    },
56 90
    "viewExternal": {
57 91
      "type": "object",
58 92
      "required": [
59 93
        "uri",
60 94
        "title",
61 95
        "description"
62 96
      ],
63 97
      "properties": {
64 98
        "uri": {
65 99
          "type": "string",
66 100
          "format": "uri"
67 101
        },
68 102
        "thumb": {
69 103
          "type": "string",
70 104
          "format": "uri"
71 105
        },
72 106
        "title": {
73 107
          "type": "string"
74 108
        },
109 +
        "labels": {
110 +
          "type": "array",
111 +
          "items": {
112 +
            "ref": "com.atproto.label.defs#label",
113 +
            "type": "ref"
114 +
          }
115 +
        },
116 +
        "source": {
117 +
          "ref": "#viewExternalSource",
118 +
          "type": "ref"
119 +
        },
120 +
        "createdAt": {
121 +
          "type": "string",
122 +
          "format": "datetime",
123 +
          "description": "When the external content was created, if available. Example: a publication date, for an article."
124 +
        },
125 +
        "updatedAt": {
126 +
          "type": "string",
127 +
          "format": "datetime",
128 +
          "description": "When the external content was updated, if available."
129 +
        },
75 130
        "description": {
76 131
          "type": "string"
132 +
        },
133 +
        "readingTime": {
134 +
          "type": "integer",
135 +
          "description": "Estimated reading time in minutes, if applicable and available."
136 +
        },
137 +
        "associatedRefs": {
138 +
          "type": "array",
139 +
          "items": {
140 +
            "ref": "com.atproto.repo.strongRef",
141 +
            "type": "ref"
142 +
          },
143 +
          "description": "StrongRefs (uri+cid) of the Atmosphere records that backed this view."
144 +
        },
145 +
        "associatedProfiles": {
146 +
          "type": "array",
147 +
          "items": {
148 +
            "ref": "app.bsky.actor.defs#profileViewBasic",
149 +
            "type": "ref"
150 +
          },
151 +
          "description": "Profiles of the owners of the Atmosphere records that backed this view."
77 152
        }
78 153
      }
154 +
    },
155 +
    "viewExternalSource": {
156 +
      "type": "object",
157 +
      "required": [
158 +
        "uri",
159 +
        "title"
160 +
      ],
161 +
      "properties": {
162 +
        "uri": {
163 +
          "type": "string",
164 +
          "format": "uri",
165 +
          "description": "URI of the source, if available. Example: the https:// URL of a site.standard.publication record."
166 +
        },
167 +
        "icon": {
168 +
          "type": "string",
169 +
          "format": "uri",
170 +
          "description": "Fully-qualified URL where an icon representing the source can be fetched. For example, CDN location provided by the App View."
171 +
        },
172 +
        "theme": {
173 +
          "ref": "#viewExternalSourceTheme",
174 +
          "type": "ref"
175 +
        },
176 +
        "title": {
177 +
          "type": "string"
178 +
        },
179 +
        "description": {
180 +
          "type": "string"
181 +
        }
182 +
      },
183 +
      "description": "The source of an external embed, such as a standard.site publication."
184 +
    },
185 +
    "viewExternalSourceTheme": {
186 +
      "type": "object",
187 +
      "properties": {
188 +
        "accentRGB": {
189 +
          "ref": "#colorRGB",
190 +
          "type": "ref"
191 +
        },
192 +
        "backgroundRGB": {
193 +
          "ref": "#colorRGB",
194 +
          "type": "ref"
195 +
        },
196 +
        "foregroundRGB": {
197 +
          "ref": "#colorRGB",
198 +
          "type": "ref"
199 +
        },
200 +
        "accentForegroundRGB": {
201 +
          "ref": "#colorRGB",
202 +
          "type": "ref"
203 +
        }
204 +
      },
205 +
      "description": "The theme colors of an external source, such as a site.standard.publication. These colors may be used when rendering an embed from that source."
79 206
    }
80 207
  },
81 208
  "$type": "com.atproto.lexicon.schema",
82 209
  "lexicon": 1
83 210
}

Compare Other Versions

Lexicon Garden

@