fyi.atstore.listing.detail

atstore.fyi

Schema Diff

+2 -0

From

CID
bafyreietn3ivreh...
Indexed At
2026-04-27 18:13 UTC
View this version

To

CID
bafyreib2rqlirrk...
Indexed At
2026-05-02 04:06 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 0 non-breaking changes.

Breaking Changes (2)
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.atstore.listing.detail#link.type", sort: "maxLength", value: "32" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.atstore.listing.detail#link.url", sort: "maxLength", value: "2048" }

Migration Guidance

Constraint Changes

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

Compare Other Versions

Lexicon Garden

@