From
bafyreigzzrvztlc3a6mf5hojcmm4rfp56hkryobpwss7csbzixy2ptet54
indexed 2026-08-06 10:44 UTC
View this version
To
bafyreigzzrvztlc3a6mf5hojcmm4rfp56hkryobpwss7csbzixy2ptet54
indexed 2026-08-06 10:44 UTC
View this version
Compatibility
backward compatible No changes detected.
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {55
"description": "Remove a value from the appview's denylist and rebuild the membership filter. Requires the administrative credential. A denylist with no removal path means one mistyped DID is permanent. Undeny does NOT restore rows a nuke removed; the restoration field says what brings the content back, if anything does.",66
"errors": [77
{88
"description": "The value is not on the denylist. Distinguished from success on purpose: 'it was already removed' and 'you typed it differently from the way it was stored' are otherwise indistinguishable to the caller.",99
"name": "NotDenied"1010
},1111
{1212
"description": "No administrative credential is configured, so the administrative surface does not exist.",1313
"name": "AdminDisabled"1414
}1515
],1616
"input": {1717
"encoding": "application/json",1818
"schema": {1919
"properties": {2020
"value": {2121
"description": "The value to remove. Normalized the same way it was on the way in, so a PDS endpoint written with a trailing slash still matches.",2222
"maxLength": 2048,2323
"type": "string"2424
}2525
},2626
"required": [2727
"value"2828
],2929
"type": "object"3030
}3131
},3232
"output": {3333
"encoding": "application/json",3434
"schema": {3535
"properties": {3636
"kind": {3737
"description": "The kind the entry had.",3838
"knownValues": [3939
"did",4040
"aturi",4141
"pds",4242
"cid"4343
],4444
"type": "string"4545
},4646
"restoration": {4747
"description": "How the content comes back, which depends entirely on the kind. backfillOnView: the repository has zero rows, so the next view is an ordinary first view and backfill returns the content by itself. refetchEnqueued: an aturi undeny, where the repository still has all its other rows and NOTHING would ever trigger a backfill, so a targeted com.atproto.repo.getRecord has been queued. immediate: a cid undeny, where the record was never removed and the blob returns on the next cache miss.",4848
"knownValues": [4949
"backfillOnView",5050
"refetchEnqueued",5151
"immediate"5252
],5353
"type": "string"5454
},5555
"value": {5656
"description": "The value as stored.",5757
"type": "string"5858
}5959
},6060
"required": [6161
"value",6262
"kind",6363
"restoration"6464
],6565
"type": "object"6666
}6767
},6868
"type": "procedure"6969
}7070
},7171
"id": "app.bulleted.admin.undeny",7272
"lexicon": 17373
}