at.inlay.component

inlay.at

Schema Diff

+14 -22

From

CID
bafyreibhmkvmsk6...
Indexed At
2026-02-13 13:44 UTC
View this version

To

CID
bafyreie34glisqg...
Indexed At
2026-02-15 21:43 UTC
View this version
1 1
{
2 2
  "id": "at.inlay.component",
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
          "type"
11 11
        ],
12 12
        "properties": {
13 13
          "via": {
14 14
            "refs": [
15 15
              "at.inlay.defs#viaValtown"
16 16
            ],
17 17
            "type": "union",
18 18
            "description": "Platform-managed deployment metadata"
19 19
          },
20 20
          "body": {
21 21
            "refs": [
22 22
              "#bodyExternal",
23 23
              "#bodyTemplate"
24 24
            ],
25 25
            "type": "union",
26 26
            "description": "How this component is rendered. Omit for primitives rendered by the host."
27 27
          },
28 28
          "type": {
29 29
            "type": "string",
30 30
            "format": "nsid",
31 31
            "description": "NSID this component implements (also the XRPC procedure)"
32 32
          },
33 33
          "view": {
34 34
            "type": "array",
35 35
            "items": {
36 36
              "refs": [
37 37
                "#viewRecord",
38 38
                "#viewCollection",
39 39
                "#viewIdentity"
40 40
              ],
41 41
              "type": "union"
42 42
            },
43 43
            "description": "What kinds of pages this component is a view for"
44 44
          },
45 45
          "accepts": {
46 46
            "type": "array",
47 47
            "items": {
48 48
              "ref": "#acceptsEntry",
49 49
              "type": "ref"
50 50
            },
51 51
            "description": "Data types this component can render. Used for data-driven discovery."
52 52
          },
53 53
          "imports": {
54 54
            "type": "array",
55 55
            "items": {
56 -
              "ref": "#import",
57 -
              "type": "ref"
56 +
              "type": "string",
57 +
              "format": "at-uri"
58 58
            },
59 -
            "description": "Where to resolve types from"
59 +
            "description": "Ordered list of pack URIs (import stack). First pack that exports an NSID wins."
60 60
          },
61 61
          "createdAt": {
62 62
            "type": "string",
63 63
            "format": "datetime"
64 64
          },
65 +
          "updatedAt": {
66 +
            "type": "string",
67 +
            "format": "datetime",
68 +
            "description": "Last update timestamp. Set by the publish flow to bust cached responses."
69 +
          },
65 70
          "description": {
66 -
            "type": "string"
71 +
            "type": "string",
72 +
            "maxLength": 10000,
73 +
            "maxGraphemes": 1000
67 74
          }
68 75
        }
69 76
      },
70 77
      "description": "Component record - declares an implementation of a type"
71 -
    },
72 -
    "import": {
73 -
      "type": "object",
74 -
      "required": [
75 -
        "types",
76 -
        "pack"
77 -
      ],
78 -
      "properties": {
79 -
        "pack": {
80 -
          "type": "string",
81 -
          "format": "at-uri",
82 -
          "description": "Pack to resolve from"
83 -
        },
84 -
        "types": {
85 -
          "type": "string",
86 -
          "description": "Type pattern to match (glob like com.alice.* or concrete like com.alice.Avatar)"
87 -
        }
88 -
      }
89 78
    },
90 79
    "viewRecord": {
91 80
      "type": "object",
92 81
      "properties": {
93 82
        "collection": {
94 83
          "type": "string",
95 84
          "format": "nsid",
96 85
          "description": "The collection this component views. Omit for any-collection."
97 86
        }
98 87
      },
99 88
      "description": "Component is a view for individual records of a collection. Omit collection for a generic record view."
100 89
    },
101 90
    "acceptsEntry": {
102 91
      "type": "object",
103 92
      "required": [
104 93
        "type",
105 94
        "prop"
106 95
      ],
107 96
      "properties": {
108 97
        "prop": {
109 98
          "type": "string",
99 +
          "maxLength": 256,
110 100
          "description": "Prop to bind matched data to."
111 101
        },
112 102
        "type": {
113 103
          "type": "string",
104 +
          "maxLength": 128,
114 105
          "description": "Lexicon field type.",
115 106
          "knownValues": [
116 107
            "string",
117 108
            "integer",
118 109
            "boolean",
119 110
            "blob",
120 111
            "cid-link",
121 112
            "bytes"
122 113
          ]
123 114
        },
124 115
        "format": {
125 116
          "type": "string",
117 +
          "maxLength": 64,
126 118
          "description": "String format constraint. Only applies when type is 'string'.",
127 119
          "knownValues": [
128 120
            "at-uri",
129 121
            "did",
130 122
            "datetime",
131 123
            "uri",
132 124
            "handle",
133 125
            "at-identifier",
134 126
            "nsid",
135 127
            "cid",
136 128
            "language",
137 129
            "record-key",
138 130
            "tid"
139 131
          ]
140 132
        },
141 133
        "collection": {
142 134
          "type": "string",
143 135
          "format": "nsid",
144 136
          "description": "For at-uri strings, restricts to this collection."
145 137
        }
146 138
      },
147 139
      "description": "Declares a data type this component can handle, routed to a specific prop."
148 140
    },
149 141
    "bodyExternal": {
150 142
      "type": "object",
151 143
      "required": [
152 144
        "did"
153 145
      ],
154 146
      "properties": {
155 147
        "did": {
156 148
          "type": "string",
157 149
          "format": "did",
158 150
          "description": "DID of the service hosting this component"
159 151
        }
160 152
      },
161 153
      "description": "Component rendered by calling a remote XRPC endpoint"
162 154
    },
163 155
    "bodyTemplate": {
164 156
      "type": "object",
165 157
      "required": [
166 158
        "node"
167 159
      ],
168 160
      "properties": {
169 161
        "node": {
170 162
          "type": "unknown",
171 163
          "description": "Serialized element tree with bindings"
172 164
        }
173 165
      },
174 166
      "description": "Component rendered by the host from a serialized element tree"
175 167
    },
176 168
    "viewIdentity": {
177 169
      "type": "object",
178 170
      "properties": {},
179 171
      "description": "Component is a view for an identity (person/DID)."
180 172
    },
181 173
    "viewCollection": {
182 174
      "type": "object",
183 175
      "properties": {
184 176
        "collection": {
185 177
          "type": "string",
186 178
          "format": "nsid",
187 179
          "description": "The collection this component lists. Omit for any-collection."
188 180
        }
189 181
      },
190 182
      "description": "Component is a view for a collection listing. Omit collection for a generic collection view."
191 183
    }
192 184
  },
193 185
  "$type": "com.atproto.lexicon.schema",
194 186
  "lexicon": 1
195 187
}

Compare Other Versions

Lexicon Garden

@