From
bafyreicvdpx2hda23uc3p72vpesbubwrksgb5te3umrzm7ayitbcw4g52a
indexed 2026-10-29 17:01 UTC
View this version
To
bafyreih3fjgfuih5jwwncw6ghbel25lfdqpanxb4kiwppxvzweuvgcz7be
indexed 2026-10-29 18:39 UTC
View this version
Compatibility
backward compatible Backward compatible. 4 non-breaking changes.
Non-breaking changes (4)
- AddedVertex AddedVertex { vertex_id: "dev.knotless.getViewer:output.reauth" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.getViewer:output.redelegate" }
- AddedEdge AddedEdge { src: "dev.knotless.getViewer:output", tgt: "dev.knotless.getViewer:output.reauth", kind: "prop", name: Some("reauth") }
- AddedEdge AddedEdge { src: "dev.knotless.getViewer:output", tgt: "dev.knotless.getViewer:output.redelegate", kind: "prop", name: Some("redelegate") }
Migration guidance
Added
AddedVertex { vertex_id: "dev.knotless.getViewer:output.reauth" }AddedVertex { vertex_id: "dev.knotless.getViewer:output.redelegate" }
Notes
- Non-breaking: AddedEdge { src: "dev.knotless.getViewer:output", tgt: "dev.knotless.getViewer:output.reauth", kind: "prop", name: Some("reauth") }
- Non-breaking: AddedEdge { src: "dev.knotless.getViewer:output", tgt: "dev.knotless.getViewer:output.redelegate", kind: "prop", name: Some("redelegate") }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {55
"description": "The account asking: by the session cookie the pages' login sets, or a service token. Nothing, for no one.",66
"output": {77
"encoding": "application/json",88
"schema": {99
"properties": {1010
"accounts": {1111
"description": "The other accounts this browser is logged in to, which it can switch to without logging in again; absent when none.",1212
"items": {1313
"ref": "dev.knotless.defs#actorView",1414
"type": "ref"1515
},1616
"type": "array"1717
},1818
"actor": {1919
"description": "The account asking; absent when no one is.",2020
"ref": "dev.knotless.defs#actorView",2121
"type": "ref"2222
},2323
"admin": {2424
"description": "Whether the account asking is one of this appview's operators, who moderate it and see how it is used; absent when not.",2525
"type": "boolean"2626
},2727
"delegated": {2828
"description": "Whether this appview's gateway writes for the account asking, which delegated writes to it: collaborators push to its repositories through it, and runners land their merge queues. Absent when not.",2929
"type": "boolean"3030
},3131
"login": {3232
"description": "Whether this appview's pages can log people in: it is an OAuth client, with a public URL.",3333
"type": "boolean"3434
},3535
"organization": {3636
"description": "Whether the account asking is an organization: it keeps a public dev.knotless.org record. Absent when not.",3737
"type": "boolean"3838
},39
"reauth": {40
"description": "Whether the account asking logged in to these pages asking for less than they ask for now, as before they came to do more: logging in again grants the rest. Absent when not.",41
"type": "boolean"42
},43
"redelegate": {44
"description": "Whether this appview's gateway writes for the account asking under a grant asking for less than it asks for now: delegating writes to it again grants the rest. Absent when not.",45
"type": "boolean"46
},3947
"spaces": {4048
"description": "Whether the account asking has a PDS with spaces, which private repositories live in; absent when no one asks, or this appview does not know yet.",4149
"type": "boolean"4250
}4351
},4452
"type": "object"4553
}4654
},4755
"type": "query"4856
}4957
},5058
"description": "Who is asking this appview, as its pages show it.",5159
"id": "dev.knotless.getViewer",5260
"lexicon": 15361
}