From
bafyreicmkzd6mjahy3ewmc37lotqrnmzule7jlas3x3ivjy57l3xkptl24
indexed 2026-06-21 00:58 UTC
View this version
To
bafyreief4sigs6725bfu2ngpkyhe6n3rnlz7dqpwkjc6vldquryt6qlh6q
indexed 2026-10-29 21:53 UTC
View this version
Compatibility
backward compatible Backward compatible. 2 non-breaking changes.
Non-breaking changes (2)
- AddedVertex AddedVertex { vertex_id: "dev.cocore.devicePair.confirm:output.returnUrl" }
- AddedEdge AddedEdge { src: "dev.cocore.devicePair.confirm:output", tgt: "dev.cocore.devicePair.confirm:output.returnUrl", kind: "prop", name: Some("returnUrl") }
Migration guidance
Added
AddedVertex { vertex_id: "dev.cocore.devicePair.confirm:output.returnUrl" }
Notes
- Non-breaking: AddedEdge { src: "dev.cocore.devicePair.confirm:output", tgt: "dev.cocore.devicePair.confirm:output.returnUrl", kind: "prop", name: Some("returnUrl") }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {5
"description": "Approve or deny a pending device-pairing attempt, identified by the `userCode` the device displayed. Called from the verification UI by a signed-in user. Approving requires the provider `session` to grant to the device.",5
"description": "Approve or deny a pending device-pairing attempt, identified by the `userCode` the device displayed. Called from the verification UI by a signed-in user. Approving requires the provider `session` to grant to the device. When the requester supplied an allowlisted `returnUrl` at `start`, an approval echoes it back so the verification UI can send the browser there.",66
"errors": [77
{88
"description": "Missing `userCode`, an invalid `decision`, or `approve` without a `session`.",99
"name": "InvalidRequest"1010
},1111
{1212
"description": "No pairing attempt matches the `userCode`.",1313
"name": "NotFound"1414
},1515
{1616
"description": "The pairing attempt could not be approved in its current state.",1717
"name": "Conflict"18
},19
{20
"description": "Too many confirm attempts from this client; retry later.",21
"name": "RateLimited"1822
}1923
],2024
"input": {2125
"encoding": "application/json",2226
"schema": {2327
"properties": {2428
"decision": {2529
"enum": [2630
"approve",2731
"deny"2832
],2933
"type": "string"3034
},3135
"session": {3236
"description": "Provider session to grant to the device; required when `decision` is `approve`.",3337
"type": "unknown"3438
},3539
"userCode": {3640
"description": "The code the device displayed (case-insensitive).",3741
"type": "string"3842
}3943
},4044
"required": [4145
"userCode",4246
"decision"4347
],4448
"type": "object"4549
}4650
},4751
"output": {4852
"encoding": "application/json",4953
"schema": {5054
"properties": {5155
"ok": {5256
"type": "boolean"5357
},58
"returnUrl": {59
"description": "Present on approval when the requester asked to be returned to an allowlisted URL.",60
"format": "uri",61
"type": "string"62
},5463
"status": {5564
"type": "string"5665
}5766
},5867
"required": [5968
"ok",6069
"status"6170
],6271
"type": "object"6372
}6473
},6574
"type": "procedure"6675
}6776
},6877
"id": "dev.cocore.devicePair.confirm",6978
"lexicon": 17079
}