at.inlay.component
Schema Diff
+9 -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
65
"updatedAt": {
66
66
"type": "string",
67
67
"format": "datetime",
68
68
"description": "Last update timestamp. Set by the publish flow to bust cached responses."
69
69
},
70
70
"description": {
71
-
"type": "string"
71
+
"type": "string",
72
+
"maxLength": 10000,
73
+
"maxGraphemes": 1000
72
74
}
73
75
}
74
76
},
75
77
"description": "Component record - declares an implementation of a type"
76
78
},
77
-
"import": {
78
-
"type": "object",
79
-
"required": [
80
-
"types",
81
-
"pack"
82
-
],
83
-
"properties": {
84
-
"pack": {
85
-
"type": "string",
86
-
"format": "at-uri",
87
-
"description": "Pack to resolve from"
88
-
},
89
-
"types": {
90
-
"type": "string",
91
-
"description": "Type pattern to match (glob like com.alice.* or concrete like com.alice.Avatar)"
92
-
}
93
-
}
94
-
},
95
79
"viewRecord": {
96
80
"type": "object",
97
81
"properties": {
98
82
"collection": {
99
83
"type": "string",
100
84
"format": "nsid",
101
85
"description": "The collection this component views. Omit for any-collection."
102
86
}
103
87
},
104
88
"description": "Component is a view for individual records of a collection. Omit collection for a generic record view."
105
89
},
106
90
"acceptsEntry": {
107
91
"type": "object",
108
92
"required": [
109
93
"type",
110
94
"prop"
111
95
],
112
96
"properties": {
113
97
"prop": {
114
98
"type": "string",
99
+
"maxLength": 256,
115
100
"description": "Prop to bind matched data to."
116
101
},
117
102
"type": {
118
103
"type": "string",
104
+
"maxLength": 128,
119
105
"description": "Lexicon field type.",
120
106
"knownValues": [
121
107
"string",
122
108
"integer",
123
109
"boolean",
124
110
"blob",
125
111
"cid-link",
126
112
"bytes"
127
113
]
128
114
},
129
115
"format": {
130
116
"type": "string",
117
+
"maxLength": 64,
131
118
"description": "String format constraint. Only applies when type is 'string'.",
132
119
"knownValues": [
133
120
"at-uri",
134
121
"did",
135
122
"datetime",
136
123
"uri",
137
124
"handle",
138
125
"at-identifier",
139
126
"nsid",
140
127
"cid",
141
128
"language",
142
129
"record-key",
143
130
"tid"
144
131
]
145
132
},
146
133
"collection": {
147
134
"type": "string",
148
135
"format": "nsid",
149
136
"description": "For at-uri strings, restricts to this collection."
150
137
}
151
138
},
152
139
"description": "Declares a data type this component can handle, routed to a specific prop."
153
140
},
154
141
"bodyExternal": {
155
142
"type": "object",
156
143
"required": [
157
144
"did"
158
145
],
159
146
"properties": {
160
147
"did": {
161
148
"type": "string",
162
149
"format": "did",
163
150
"description": "DID of the service hosting this component"
164
151
}
165
152
},
166
153
"description": "Component rendered by calling a remote XRPC endpoint"
167
154
},
168
155
"bodyTemplate": {
169
156
"type": "object",
170
157
"required": [
171
158
"node"
172
159
],
173
160
"properties": {
174
161
"node": {
175
162
"type": "unknown",
176
163
"description": "Serialized element tree with bindings"
177
164
}
178
165
},
179
166
"description": "Component rendered by the host from a serialized element tree"
180
167
},
181
168
"viewIdentity": {
182
169
"type": "object",
183
170
"properties": {},
184
171
"description": "Component is a view for an identity (person/DID)."
185
172
},
186
173
"viewCollection": {
187
174
"type": "object",
188
175
"properties": {
189
176
"collection": {
190
177
"type": "string",
191
178
"format": "nsid",
192
179
"description": "The collection this component lists. Omit for any-collection."
193
180
}
194
181
},
195
182
"description": "Component is a view for a collection listing. Omit collection for a generic collection view."
196
183
}
197
184
},
198
185
"$type": "com.atproto.lexicon.schema",
199
186
"lexicon": 1
200
187
}