ai.newnal.illi.account.parent.startOAuth
Schema Diff
+7 -1
Compatibility Analysis
Backward Compatible
Backward compatible. 2 non-breaking changes.
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "ai.newnal.illi.account.parent.startOAuth:input.codeChallenge" }
- AddedEdge AddedEdge { src: "ai.newnal.illi.account.parent.startOAuth:input", tgt: "ai.newnal.illi.account.parent.startOAuth:input.codeChallenge", kind: "prop", name: Some("codeChallenge") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "ai.newnal.illi.account.parent.startOAuth:input.codeChallenge" }
Additional Notes
- Non-breaking: AddedEdge { src: "ai.newnal.illi.account.parent.startOAuth:input", tgt: "ai.newnal.illi.account.parent.startOAuth:input.codeChallenge", kind: "prop", name: Some("codeChallenge") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
-
"description": "Start a parent's OAuth sign-in on the device through the PDN's own page (BFF), for an existing Newnal ID whose credentials are typed on the PDN page. Device-created accounts, and existing ones whose credentials the device app takes itself (D-73), sign in with account.parent.signIn instead (D-61, D-62). client=native ends with a one-time code on the device app's App Link for account.exchangeCode instead of a cookie (D-45).",
5
+
"description": "Start a parent's OAuth sign-in on the device through the PDN's own page (BFF), for an existing Newnal ID whose credentials are typed on the PDN page. Device-created accounts, and existing ones whose credentials the device app takes itself, sign in with account.parent.signIn instead. client=native ends with a one-time code on the device app's App Link for account.exchangeCode instead of a cookie.",
6
6
"errors": [
7
7
{
8
8
"name": "ParentLimitReached"
9
9
},
10
10
{
11
11
"name": "ParentAlreadyLinked"
12
12
}
13
13
],
14
14
"input": {
15
15
"encoding": "application/json",
16
16
"schema": {
17
17
"properties": {
18
18
"client": {
19
19
"default": "web",
20
20
"description": "web (default): the callback sets the device-app cookie. native: the callback redirects to the device app's App Link with a 60-second one-time code for account.exchangeCode.",
21
21
"knownValues": [
22
22
"web",
23
23
"native"
24
24
],
25
25
"type": "string"
26
26
},
27
+
"codeChallenge": {
28
+
"description": "Required with client native: base64url(SHA-256(codeVerifier)) without padding. The one-time code the callback returns can only be exchanged with that verifier (account.exchangeCode).",
29
+
"maxLength": 43,
30
+
"minLength": 43,
31
+
"type": "string"
32
+
},
27
33
"deviceId": {
28
34
"maxLength": 64,
29
35
"type": "string"
30
36
},
31
37
"mode": {
32
38
"knownValues": [
33
39
"create",
34
40
"signIn"
35
41
],
36
42
"type": "string"
37
43
},
38
44
"slot": {
39
45
"maximum": 2,
40
46
"minimum": 1,
41
47
"type": "integer"
42
48
}
43
49
},
44
50
"required": [
45
51
"mode"
46
52
],
47
53
"type": "object"
48
54
}
49
55
},
50
56
"output": {
51
57
"encoding": "application/json",
52
58
"schema": {
53
59
"properties": {
54
60
"loginUrl": {
55
61
"format": "uri",
56
62
"type": "string"
57
63
}
58
64
},
59
65
"required": [
60
66
"loginUrl"
61
67
],
62
68
"type": "object"
63
69
}
64
70
},
65
71
"type": "procedure"
66
72
}
67
73
},
68
74
"id": "ai.newnal.illi.account.parent.startOAuth",
69
75
"lexicon": 1
70
76
}