com.suibari.nagi.registerPushSubscription
Schema Diff
+27 -13
Compatibility Analysis
Breaking Changes Detected
8 breaking changes, 8 non-breaking changes.
Breaking Changes (8)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.suibari.nagi.registerPushSubscription#pushKeys", src: "com.suibari.nagi.registerPushSubscription#pushKeys", tgt: "com.suibari.nagi.registerPushSubscription#pushKeys.p256dh", kind: "prop", name: Some("p256dh") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.suibari.nagi.registerPushSubscription#pushKeys", src: "com.suibari.nagi.registerPushSubscription#pushKeys", tgt: "com.suibari.nagi.registerPushSubscription#pushKeys.auth", kind: "prop", name: Some("auth") }
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "com.suibari.nagi.registerPushSubscription:input.keys", src: "com.suibari.nagi.registerPushSubscription:input.keys", tgt: "com.suibari.nagi.registerPushSubscription:input.keys.auth", kind: "prop", name: Some("auth") }
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "com.suibari.nagi.registerPushSubscription:input.keys", src: "com.suibari.nagi.registerPushSubscription:input.keys", tgt: "com.suibari.nagi.registerPushSubscription:input.keys.p256dh", kind: "prop", name: Some("p256dh") }
- RemovedVertex RemovedVertex { vertex_id: "com.suibari.nagi.registerPushSubscription:input.keys.auth" }
- RemovedVertex RemovedVertex { vertex_id: "com.suibari.nagi.registerPushSubscription:input.keys.p256dh" }
- KindChanged KindChanged { vertex_id: "com.suibari.nagi.registerPushSubscription:input.keys", old_kind: "object", new_kind: "ref" }
- ConstraintAdded ConstraintAdded { vertex_id: "com.suibari.nagi.registerPushSubscription:input.keys", sort: "ref", value: "#pushKeys" }
Non-Breaking Changes (8)
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.registerPushSubscription#pushKeys" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.registerPushSubscription#pushKeys.auth" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.registerPushSubscription#pushKeys.p256dh" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.registerPushSubscription:input.capability" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.registerPushSubscription:input.installationId" }
- AddedEdge AddedEdge { src: "com.suibari.nagi.registerPushSubscription:input", tgt: "com.suibari.nagi.registerPushSubscription:input.capability", kind: "prop", name: Some("capability") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.registerPushSubscription:input", tgt: "com.suibari.nagi.registerPushSubscription:input.installationId", kind: "prop", name: Some("installationId") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.registerPushSubscription:input.keys", tgt: "com.suibari.nagi.registerPushSubscription#pushKeys", kind: "ref", name: None }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "com.suibari.nagi.registerPushSubscription:input.keys.auth" }RemovedVertex { vertex_id: "com.suibari.nagi.registerPushSubscription:input.keys.p256dh" }
Added Elements
AddedVertex { vertex_id: "com.suibari.nagi.registerPushSubscription#pushKeys" }AddedVertex { vertex_id: "com.suibari.nagi.registerPushSubscription#pushKeys.auth" }AddedVertex { vertex_id: "com.suibari.nagi.registerPushSubscription#pushKeys.p256dh" }AddedVertex { vertex_id: "com.suibari.nagi.registerPushSubscription:input.capability" }AddedVertex { vertex_id: "com.suibari.nagi.registerPushSubscription:input.installationId" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "com.suibari.nagi.registerPushSubscription:input.keys", sort: "ref", value: "#pushKeys" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "com.suibari.nagi.registerPushSubscription#pushKeys", src: "com.suibari.nagi.registerPushSubscription#pushKeys", tgt: "com.suibari.nagi.registerPushSubscription#pushKeys.p256dh", kind: "prop", name: Some("p256dh") }
- Breaking: RequiredEdgeAdded { vertex_id: "com.suibari.nagi.registerPushSubscription#pushKeys", src: "com.suibari.nagi.registerPushSubscription#pushKeys", tgt: "com.suibari.nagi.registerPushSubscription#pushKeys.auth", kind: "prop", name: Some("auth") }
- Breaking: RequiredEdgeRemoved { vertex_id: "com.suibari.nagi.registerPushSubscription:input.keys", src: "com.suibari.nagi.registerPushSubscription:input.keys", tgt: "com.suibari.nagi.registerPushSubscription:input.keys.auth", kind: "prop", name: Some("auth") }
- Breaking: RequiredEdgeRemoved { vertex_id: "com.suibari.nagi.registerPushSubscription:input.keys", src: "com.suibari.nagi.registerPushSubscription:input.keys", tgt: "com.suibari.nagi.registerPushSubscription:input.keys.p256dh", kind: "prop", name: Some("p256dh") }
- Breaking: KindChanged { vertex_id: "com.suibari.nagi.registerPushSubscription:input.keys", old_kind: "object", new_kind: "ref" }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.registerPushSubscription:input", tgt: "com.suibari.nagi.registerPushSubscription:input.capability", kind: "prop", name: Some("capability") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.registerPushSubscription:input", tgt: "com.suibari.nagi.registerPushSubscription:input.installationId", kind: "prop", name: Some("installationId") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.registerPushSubscription:input.keys", tgt: "com.suibari.nagi.registerPushSubscription#pushKeys", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"errors": [
6
6
{
7
7
"name": "AuthRequired"
8
8
}
9
9
],
10
10
"input": {
11
11
"encoding": "application/json",
12
12
"schema": {
13
13
"properties": {
14
+
"capability": {
15
+
"maxLength": 128,
16
+
"minLength": 32,
17
+
"type": "string"
18
+
},
14
19
"endpoint": {
15
20
"format": "uri",
16
21
"type": "string"
17
22
},
23
+
"installationId": {
24
+
"maxLength": 36,
25
+
"minLength": 36,
26
+
"type": "string"
27
+
},
18
28
"keys": {
19
-
"properties": {
20
-
"auth": {
21
-
"type": "string"
22
-
},
23
-
"p256dh": {
24
-
"type": "string"
25
-
}
26
-
},
27
-
"required": [
28
-
"p256dh",
29
-
"auth"
30
-
],
31
-
"type": "object"
29
+
"ref": "#pushKeys",
30
+
"type": "ref"
32
31
}
33
32
},
34
33
"required": [
35
34
"endpoint",
36
35
"keys"
37
36
],
38
37
"type": "object"
39
38
}
40
39
},
41
40
"output": {
42
41
"encoding": "application/json",
43
42
"schema": {
44
43
"properties": {
45
44
"registered": {
46
45
"type": "boolean"
47
46
}
48
47
},
49
48
"required": [
50
49
"registered"
51
50
],
52
51
"type": "object"
53
52
}
54
53
},
55
54
"type": "procedure"
55
+
},
56
+
"pushKeys": {
57
+
"properties": {
58
+
"auth": {
59
+
"type": "string"
60
+
},
61
+
"p256dh": {
62
+
"type": "string"
63
+
}
64
+
},
65
+
"required": [
66
+
"p256dh",
67
+
"auth"
68
+
],
69
+
"type": "object"
56
70
}
57
71
},
58
72
"id": "com.suibari.nagi.registerPushSubscription",
59
73
"lexicon": 1
60
74
}