com.suibari.nagi.registerPushSubscription

suibari.com

Schema Diff

+27 -13

From

CID
bafyreihdcjgzvcx...
Indexed At
2026-07-22 10:50 UTC
View this version

To

CID
bafyreib7kzcxdr6...
Indexed At
2026-08-22 09:06 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@