app.bsky.ageassurance.defs
Schema Diff
+12 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "app.bsky.ageassurance.defs#configRegion.platforms" }
- AddedVertex AddedVertex { vertex_id: "app.bsky.ageassurance.defs#configRegion.platforms:items" }
- AddedEdge AddedEdge { src: "app.bsky.ageassurance.defs#configRegion", tgt: "app.bsky.ageassurance.defs#configRegion.platforms", kind: "prop", name: Some("platforms") }
- AddedEdge AddedEdge { src: "app.bsky.ageassurance.defs#configRegion.platforms", tgt: "app.bsky.ageassurance.defs#configRegion.platforms:items", kind: "items", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.bsky.ageassurance.defs#configRegion.platforms" }AddedVertex { vertex_id: "app.bsky.ageassurance.defs#configRegion.platforms:items" }
Additional Notes
- Non-breaking: AddedEdge { src: "app.bsky.ageassurance.defs#configRegion", tgt: "app.bsky.ageassurance.defs#configRegion.platforms", kind: "prop", name: Some("platforms") }
- Non-breaking: AddedEdge { src: "app.bsky.ageassurance.defs#configRegion.platforms", tgt: "app.bsky.ageassurance.defs#configRegion.platforms:items", kind: "items", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"access": {
5
5
"description": "The access level granted based on Age Assurance data we've processed.",
6
6
"knownValues": [
7
7
"unknown",
8
8
"none",
9
9
"safe",
10
10
"full"
11
11
],
12
12
"type": "string"
13
13
},
14
14
"config": {
15
15
"description": "",
16
16
"properties": {
17
17
"regions": {
18
18
"description": "The per-region Age Assurance configuration.",
19
19
"items": {
20
20
"ref": "app.bsky.ageassurance.defs#configRegion",
21
21
"type": "ref"
22
22
},
23
23
"type": "array"
24
24
}
25
25
},
26
26
"required": [
27
27
"regions"
28
28
],
29
29
"type": "object"
30
30
},
31
31
"configRegion": {
32
32
"description": "The Age Assurance configuration for a specific region.",
33
33
"properties": {
34
34
"additionalVerificationMethods": {
35
35
"description": "Verification methods permitted in this region in addition to the third-party (KWS) flow, which is always supported. `device` permits using the native on-device age APIs (e.g. Apple Declared Age Range, Google Play Age Signals).",
36
36
"items": {
37
37
"knownValues": [
38
38
"device"
39
39
],
40
40
"type": "string"
41
41
},
42
42
"type": "array"
43
43
},
44
44
"countryCode": {
45
45
"description": "The ISO 3166-1 alpha-2 country code this configuration applies to.",
46
46
"type": "string"
47
47
},
48
48
"minAccessAge": {
49
49
"description": "The minimum age (as a whole integer) required to use Bluesky in this region.",
50
50
"type": "integer"
51
51
},
52
+
"platforms": {
53
+
"description": "The platforms this configuration applies to. If omitted, the configuration applies to all platforms.",
54
+
"items": {
55
+
"knownValues": [
56
+
"web",
57
+
"ios",
58
+
"android"
59
+
],
60
+
"type": "string"
61
+
},
62
+
"type": "array"
63
+
},
52
64
"regionCode": {
53
65
"description": "The ISO 3166-2 region code this configuration applies to. If omitted, the configuration applies to the entire country.",
54
66
"type": "string"
55
67
},
56
68
"rules": {
57
69
"description": "The ordered list of Age Assurance rules that apply to this region. Rules should be applied in order, and the first matching rule determines the access level granted. The rules array should always include a default rule as the last item.",
58
70
"items": {
59
71
"refs": [
60
72
"#configRegionRuleDefault",
61
73
"#configRegionRuleIfDeclaredOverAge",
62
74
"#configRegionRuleIfDeclaredUnderAge",
63
75
"#configRegionRuleIfAssuredOverAge",
64
76
"#configRegionRuleIfAssuredUnderAge",
65
77
"#configRegionRuleIfAccountNewerThan",
66
78
"#configRegionRuleIfAccountOlderThan"
67
79
],
68
80
"type": "union"
69
81
},
70
82
"type": "array"
71
83
}
72
84
},
73
85
"required": [
74
86
"countryCode",
75
87
"minAccessAge",
76
88
"rules"
77
89
],
78
90
"type": "object"
79
91
},
80
92
"configRegionRuleDefault": {
81
93
"description": "Age Assurance rule that applies by default.",
82
94
"properties": {
83
95
"access": {
84
96
"ref": "app.bsky.ageassurance.defs#access",
85
97
"type": "ref"
86
98
}
87
99
},
88
100
"required": [
89
101
"access"
90
102
],
91
103
"type": "object"
92
104
},
93
105
"configRegionRuleIfAccountNewerThan": {
94
106
"description": "Age Assurance rule that applies if the account is equal-to or newer than a certain date.",
95
107
"properties": {
96
108
"access": {
97
109
"ref": "app.bsky.ageassurance.defs#access",
98
110
"type": "ref"
99
111
},
100
112
"date": {
101
113
"description": "The date threshold as a datetime string.",
102
114
"format": "datetime",
103
115
"type": "string"
104
116
}
105
117
},
106
118
"required": [
107
119
"date",
108
120
"access"
109
121
],
110
122
"type": "object"
111
123
},
112
124
"configRegionRuleIfAccountOlderThan": {
113
125
"description": "Age Assurance rule that applies if the account is older than a certain date.",
114
126
"properties": {
115
127
"access": {
116
128
"ref": "app.bsky.ageassurance.defs#access",
117
129
"type": "ref"
118
130
},
119
131
"date": {
120
132
"description": "The date threshold as a datetime string.",
121
133
"format": "datetime",
122
134
"type": "string"
123
135
}
124
136
},
125
137
"required": [
126
138
"date",
127
139
"access"
128
140
],
129
141
"type": "object"
130
142
},
131
143
"configRegionRuleIfAssuredOverAge": {
132
144
"description": "Age Assurance rule that applies if the user has been assured to be equal-to or over a certain age.",
133
145
"properties": {
134
146
"access": {
135
147
"ref": "app.bsky.ageassurance.defs#access",
136
148
"type": "ref"
137
149
},
138
150
"age": {
139
151
"description": "The age threshold as a whole integer.",
140
152
"type": "integer"
141
153
}
142
154
},
143
155
"required": [
144
156
"age",
145
157
"access"
146
158
],
147
159
"type": "object"
148
160
},
149
161
"configRegionRuleIfAssuredUnderAge": {
150
162
"description": "Age Assurance rule that applies if the user has been assured to be under a certain age.",
151
163
"properties": {
152
164
"access": {
153
165
"ref": "app.bsky.ageassurance.defs#access",
154
166
"type": "ref"
155
167
},
156
168
"age": {
157
169
"description": "The age threshold as a whole integer.",
158
170
"type": "integer"
159
171
}
160
172
},
161
173
"required": [
162
174
"age",
163
175
"access"
164
176
],
165
177
"type": "object"
166
178
},
167
179
"configRegionRuleIfDeclaredOverAge": {
168
180
"description": "Age Assurance rule that applies if the user has declared themselves equal-to or over a certain age.",
169
181
"properties": {
170
182
"access": {
171
183
"ref": "app.bsky.ageassurance.defs#access",
172
184
"type": "ref"
173
185
},
174
186
"age": {
175
187
"description": "The age threshold as a whole integer.",
176
188
"type": "integer"
177
189
}
178
190
},
179
191
"required": [
180
192
"age",
181
193
"access"
182
194
],
183
195
"type": "object"
184
196
},
185
197
"configRegionRuleIfDeclaredUnderAge": {
186
198
"description": "Age Assurance rule that applies if the user has declared themselves under a certain age.",
187
199
"properties": {
188
200
"access": {
189
201
"ref": "app.bsky.ageassurance.defs#access",
190
202
"type": "ref"
191
203
},
192
204
"age": {
193
205
"description": "The age threshold as a whole integer.",
194
206
"type": "integer"
195
207
}
196
208
},
197
209
"required": [
198
210
"age",
199
211
"access"
200
212
],
201
213
"type": "object"
202
214
},
203
215
"event": {
204
216
"description": "Object used to store Age Assurance data in stash.",
205
217
"properties": {
206
218
"access": {
207
219
"description": "The access level granted based on Age Assurance data we've processed.",
208
220
"knownValues": [
209
221
"unknown",
210
222
"none",
211
223
"safe",
212
224
"full"
213
225
],
214
226
"type": "string"
215
227
},
216
228
"attemptId": {
217
229
"description": "The unique identifier for this instance of the Age Assurance flow, in UUID format.",
218
230
"type": "string"
219
231
},
220
232
"completeIp": {
221
233
"description": "The IP address used when completing the Age Assurance flow.",
222
234
"type": "string"
223
235
},
224
236
"completeUa": {
225
237
"description": "The user agent used when completing the Age Assurance flow.",
226
238
"type": "string"
227
239
},
228
240
"countryCode": {
229
241
"description": "The ISO 3166-1 alpha-2 country code provided when beginning the Age Assurance flow.",
230
242
"type": "string"
231
243
},
232
244
"createdAt": {
233
245
"description": "The date and time of this write operation.",
234
246
"format": "datetime",
235
247
"type": "string"
236
248
},
237
249
"email": {
238
250
"description": "The email used for Age Assurance.",
239
251
"type": "string"
240
252
},
241
253
"initIp": {
242
254
"description": "The IP address used when initiating the Age Assurance flow.",
243
255
"type": "string"
244
256
},
245
257
"initUa": {
246
258
"description": "The user agent used when initiating the Age Assurance flow.",
247
259
"type": "string"
248
260
},
249
261
"regionCode": {
250
262
"description": "The ISO 3166-2 region code provided when beginning the Age Assurance flow.",
251
263
"type": "string"
252
264
},
253
265
"status": {
254
266
"description": "The status of the Age Assurance process.",
255
267
"knownValues": [
256
268
"unknown",
257
269
"pending",
258
270
"assured",
259
271
"blocked"
260
272
],
261
273
"type": "string"
262
274
}
263
275
},
264
276
"required": [
265
277
"createdAt",
266
278
"status",
267
279
"access",
268
280
"attemptId",
269
281
"countryCode"
270
282
],
271
283
"type": "object"
272
284
},
273
285
"state": {
274
286
"description": "The user's computed Age Assurance state.",
275
287
"properties": {
276
288
"access": {
277
289
"ref": "app.bsky.ageassurance.defs#access",
278
290
"type": "ref"
279
291
},
280
292
"lastInitiatedAt": {
281
293
"description": "The timestamp when this state was last updated.",
282
294
"format": "datetime",
283
295
"type": "string"
284
296
},
285
297
"status": {
286
298
"ref": "app.bsky.ageassurance.defs#status",
287
299
"type": "ref"
288
300
}
289
301
},
290
302
"required": [
291
303
"status",
292
304
"access"
293
305
],
294
306
"type": "object"
295
307
},
296
308
"stateMetadata": {
297
309
"description": "Additional metadata needed to compute Age Assurance state client-side.",
298
310
"properties": {
299
311
"accountCreatedAt": {
300
312
"description": "The account creation timestamp.",
301
313
"format": "datetime",
302
314
"type": "string"
303
315
}
304
316
},
305
317
"required": [],
306
318
"type": "object"
307
319
},
308
320
"status": {
309
321
"description": "The status of the Age Assurance process.",
310
322
"knownValues": [
311
323
"unknown",
312
324
"pending",
313
325
"assured",
314
326
"blocked"
315
327
],
316
328
"type": "string"
317
329
}
318
330
},
319
331
"id": "app.bsky.ageassurance.defs",
320
332
"lexicon": 1
321
333
}