rip.pds.admin.defs

pds.rip

Schema Diff

+5 -4

From

CID
bafyreigmvhwkpvc...
Indexed At
2026-09-24 02:18 UTC
View this version

To

CID
bafyreiatzdok5vu...
Indexed At
2026-09-24 02:27 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 2 non-breaking changes.

Breaking Changes (2)
  • RemovedVertex RemovedVertex { vertex_id: "rip.pds.admin.defs#ownerView.recentHandle" }
  • RemovedEdge RemovedEdge { src: "rip.pds.admin.defs#ownerView", tgt: "rip.pds.admin.defs#ownerView.recentHandle", kind: "prop", name: Some("recentHandle") }
Non-Breaking Changes (2)
  • AddedVertex AddedVertex { vertex_id: "rip.pds.admin.defs#ownerView.handle" }
  • AddedEdge AddedEdge { src: "rip.pds.admin.defs#ownerView", tgt: "rip.pds.admin.defs#ownerView.handle", kind: "prop", name: Some("handle") }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "rip.pds.admin.defs#ownerView.recentHandle" }

Added Elements

  • AddedVertex { vertex_id: "rip.pds.admin.defs#ownerView.handle" }

Additional Notes

  • Breaking: RemovedEdge { src: "rip.pds.admin.defs#ownerView", tgt: "rip.pds.admin.defs#ownerView.recentHandle", kind: "prop", name: Some("recentHandle") }
  • Non-breaking: AddedEdge { src: "rip.pds.admin.defs#ownerView", tgt: "rip.pds.admin.defs#ownerView.handle", kind: "prop", name: Some("handle") }
1 1
{
2 2
  "id": "rip.pds.admin.defs",
3 3
  "defs": {
4 4
    "eventView": {
5 5
      "type": "object",
6 6
      "required": [
7 7
        "id",
8 8
        "type",
9 9
        "source",
10 10
        "createdAt"
11 11
      ],
12 12
      "properties": {
13 13
        "id": {
14 14
          "type": "integer"
15 15
        },
16 16
        "did": {
17 17
          "type": "string",
18 18
          "format": "did"
19 19
        },
20 20
        "type": {
21 21
          "type": "string",
22 22
          "knownValues": [
23 23
            "account.created",
24 24
            "account.deleted",
25 25
            "account.takedown",
26 26
            "account.restored",
27 27
            "account.labeled",
28 28
            "handle.changed",
29 29
            "identity.retired"
30 30
          ]
31 31
        },
32 32
        "detail": {
33 33
          "type": "string",
34 34
          "description": "The event's payload as JSON, for anything the fields above do not carry."
35 35
        },
36 36
        "handle": {
37 37
          "type": "string",
38 38
          "description": "The handle that DID held, when it is still known."
39 39
        },
40 40
        "source": {
41 41
          "type": "string",
42 42
          "description": "What observed it.",
43 43
          "knownValues": [
44 44
            "proxy",
45 45
            "firehose",
46 46
            "scheduler",
47 47
            "admin",
48 48
            "labeler"
49 49
          ]
50 50
        },
51 51
        "createdAt": {
52 52
          "type": "string",
53 53
          "format": "datetime"
54 54
        }
55 55
      },
56 56
      "description": "One recorded lifecycle fact."
57 57
    },
58 58
    "ownerView": {
59 59
      "type": "object",
60 60
      "required": [
61 61
        "did",
62 62
        "live",
63 63
        "deleted",
64 64
        "takenDown",
65 65
        "firstSeenAt",
66 66
        "lastCreatedAt",
67 67
        "quota",
68 68
        "maxLifetimeDays"
69 69
      ],
70 70
      "properties": {
71 71
        "did": {
72 72
          "type": "string",
73 73
          "format": "did"
74 74
        },
75 75
        "live": {
76 76
          "type": "integer",
77 77
          "description": "Accounts they hold right now."
78 78
        },
79 79
        "quota": {
80 80
          "type": "integer",
81 81
          "description": "Live accounts they may hold at once, after any override. Zero means they may create nothing further."
82 82
        },
83 +
        "handle": {
84 +
          "type": "string",
85 +
          "format": "handle",
86 +
          "description": "The holder's own handle, resolved from their DID document. Not a handle they minted here. Absent when their identity could not be resolved, in which case the DID is the name."
87 +
        },
83 88
        "limits": {
84 89
          "ref": "#limitsView",
85 90
          "type": "ref",
86 91
          "description": "The override itself. Absent when the configured defaults apply untouched."
87 92
        },
88 93
        "deleted": {
89 94
          "type": "integer",
90 95
          "description": "Accounts of theirs that are gone, however they went."
91 96
        },
92 97
        "takenDown": {
93 98
          "type": "integer",
94 99
          "description": "Accounts of theirs the PDS currently considers taken down."
95 100
        },
96 101
        "firstSeenAt": {
97 102
          "type": "string",
98 103
          "format": "datetime"
99 -
        },
100 -
        "recentHandle": {
101 -
          "type": "string",
102 -
          "description": "A handle of theirs, so the row is recognisable. Not an identity: handles are recycled."
103 104
        },
104 105
        "lastCreatedAt": {
105 106
          "type": "string",
106 107
          "format": "datetime"
107 108
        },
108 109
        "maxLifetimeDays": {
109 110
          "type": "integer",
110 111
          "description": "How far an account of theirs may be extended, after any override."
111 112
        }
112 113
      },
113 114
      "description": "Someone who holds or has held accounts on this server, as an operator sees them."
114 115
    },
115 116
    "limitsView": {
116 117
      "type": "object",
117 118
      "required": [
118 119
        "createdAt",
119 120
        "updatedAt"
120 121
      ],
121 122
      "properties": {
122 123
        "note": {
123 124
          "type": "string",
124 125
          "maxLength": 500,
125 126
          "description": "Why, in the operator's own words."
126 127
        },
127 128
        "createdAt": {
128 129
          "type": "string",
129 130
          "format": "datetime"
130 131
        },
131 132
        "updatedAt": {
132 133
          "type": "string",
133 134
          "format": "datetime"
134 135
        },
135 136
        "updatedBy": {
136 137
          "type": "string",
137 138
          "format": "did"
138 139
        },
139 140
        "quotaOverride": {
140 141
          "type": "integer",
141 142
          "description": "Live accounts they may hold. Absent means the configured default."
142 143
        },
143 144
        "lifetimeDaysOverride": {
144 145
          "type": "integer",
145 146
          "description": "Maximum lifetime in days. Absent means the configured default."
146 147
        }
147 148
      },
148 149
      "description": "An operator's exception to the configured limits for one person."
149 150
    },
150 151
    "accountView": {
151 152
      "type": "object",
152 153
      "required": [
153 154
        "did",
154 155
        "handle",
155 156
        "didMethod",
156 157
        "origin",
157 158
        "createdAt"
158 159
      ],
159 160
      "properties": {
160 161
        "did": {
161 162
          "type": "string",
162 163
          "format": "did"
163 164
        },
164 165
        "handle": {
165 166
          "type": "string",
166 167
          "format": "handle"
167 168
        },
168 169
        "origin": {
169 170
          "type": "string",
170 171
          "description": "Whether this server minted the identity or it arrived by migration.",
171 172
          "knownValues": [
172 173
            "minted",
173 174
            "imported"
174 175
          ]
175 176
        },
176 177
        "status": {
177 178
          "type": "string"
178 179
        },
179 180
        "ownerDid": {
180 181
          "type": "string",
181 182
          "format": "did",
182 183
          "description": "Who asked for this account. Absent for anything created before the invite gate."
183 184
        },
184 185
        "createdAt": {
185 186
          "type": "string",
186 187
          "format": "datetime"
187 188
        },
188 189
        "deletedAt": {
189 190
          "type": "string",
190 191
          "format": "datetime"
191 192
        },
192 193
        "didMethod": {
193 194
          "type": "string",
194 195
          "knownValues": [
195 196
            "plc",
196 197
            "web"
197 198
          ]
198 199
        },
199 200
        "expiresAt": {
200 201
          "type": "string",
201 202
          "format": "datetime",
202 203
          "description": "Absent when the account never expires."
203 204
        },
204 205
        "protected": {
205 206
          "type": "boolean"
206 207
        },
207 208
        "retiredAt": {
208 209
          "type": "string",
209 210
          "format": "datetime",
210 211
          "description": "When the identity was tombstoned or unpublished."
211 212
        },
212 213
        "extensions": {
213 214
          "type": "integer"
214 215
        },
215 216
        "handleDomain": {
216 217
          "type": "string"
217 218
        }
218 219
      },
219 220
      "description": "An account as an operator sees it, which is an accountView plus who holds it."
220 221
    }
221 222
  },
222 223
  "$type": "com.atproto.lexicon.schema",
223 224
  "lexicon": 1
224 225
}

Compare Other Versions

Lexicon Garden

@