ai.newnal.illi.account.parent.signIn
Schema Diff
+2 -2
Compatibility Analysis
Backward Compatible
No changes detected.
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
-
"description": "Sign a parent account in to ILLI from the device without a screen: the device presents the parent's scoped deviceApp app password (which it keeps) and its attestation; the Service Agent Node opens the delegated session, joins the account to the service sphere on first use and returns the device-app session. Used at first connection and at every re-login (D-62).",
5
+
"description": "Sign a parent account in to ILLI from the device without a screen: the device presents the parent's scoped deviceApp app password (which it keeps) and its attestation; the Service Agent Node opens the delegated session, joins the account to the service sphere on first use and returns the device-app session. Used at first connection and at every re-login.",
6
6
"errors": [
7
7
{
8
8
"name": "InvalidAppPassword"
9
9
},
10
10
{
11
11
"name": "WrongScope"
12
12
},
13
13
{
14
14
"name": "InvalidAttestation"
15
15
},
16
16
{
17
17
"name": "DeviceRevoked"
18
18
},
19
19
{
20
20
"name": "ParentLimitReached"
21
21
},
22
22
{
23
23
"name": "ParentAlreadyLinked"
24
24
},
25
25
{
26
26
"name": "RateLimitExceeded"
27
27
}
28
28
],
29
29
"input": {
30
30
"encoding": "application/json",
31
31
"schema": {
32
32
"properties": {
33
33
"appPassword": {
34
34
"type": "string"
35
35
},
36
36
"attestation": {
37
-
"description": "Device attestation (D-63): production = an Android key-attestation statement whose certificate chain roots at Newnal's RKP CA and whose challenge is the nonce from account.getAttestationNonce, encoded as described in dev-spec 06 ยง4; PoC = mock:device:<secret>.",
37
+
"description": "Device attestation: production = an Android key-attestation statement whose certificate chain roots at Newnal's RKP CA and whose challenge is the nonce from account.getAttestationNonce, as a compact JWS with the x5c certificate chain; PoC = mock:device:<secret>.",
38
38
"type": "string"
39
39
},
40
40
"deviceId": {
41
41
"maxLength": 64,
42
42
"type": "string"
43
43
},
44
44
"did": {
45
45
"format": "did",
46
46
"type": "string"
47
47
},
48
48
"slot": {
49
49
"maximum": 2,
50
50
"minimum": 1,
51
51
"type": "integer"
52
52
}
53
53
},
54
54
"required": [
55
55
"deviceId",
56
56
"did",
57
57
"appPassword",
58
58
"attestation"
59
59
],
60
60
"type": "object"
61
61
}
62
62
},
63
63
"output": {
64
64
"encoding": "application/json",
65
65
"schema": {
66
66
"properties": {
67
67
"deviceStatus": {
68
68
"knownValues": [
69
69
"registered",
70
70
"awaitingLink",
71
71
"active",
72
72
"unlinked",
73
73
"retired"
74
74
],
75
75
"type": "string"
76
76
},
77
77
"did": {
78
78
"format": "did",
79
79
"type": "string"
80
80
},
81
81
"expiresAt": {
82
82
"format": "datetime",
83
83
"type": "string"
84
84
},
85
85
"handle": {
86
86
"format": "handle",
87
87
"type": "string"
88
88
},
89
89
"token": {
90
90
"description": "The device-app session token for native clients; web clients receive it as the illi_session cookie.",
91
91
"type": "string"
92
92
}
93
93
},
94
94
"required": [
95
95
"did",
96
96
"handle"
97
97
],
98
98
"type": "object"
99
99
}
100
100
},
101
101
"type": "procedure"
102
102
}
103
103
},
104
104
"id": "ai.newnal.illi.account.parent.signIn",
105
105
"lexicon": 1
106
106
}