at.inlay.component
Schema Diff
+14 -22
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
}