com.getorbyt.getServiceInfo

getorbyt.com

Schema Diff

+39 -0

From

CID
bafyreihmh6bcwbh...
Indexed At
2026-09-01 05:23 UTC
View this version

To

CID
bafyreicz4ovlij3...
Indexed At
2026-09-24 19:31 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 13 non-breaking changes.

Breaking Changes (1)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.getorbyt.getServiceInfo#providers", src: "com.getorbyt.getServiceInfo#providers", tgt: "com.getorbyt.getServiceInfo#providers.network", kind: "prop", name: Some("network") }
Non-Breaking Changes (13)
  • AddedVertex AddedVertex { vertex_id: "com.getorbyt.getServiceInfo#providers" }
  • AddedVertex AddedVertex { vertex_id: "com.getorbyt.getServiceInfo#providers.appView" }
  • AddedVertex AddedVertex { vertex_id: "com.getorbyt.getServiceInfo#providers.chat" }
  • AddedVertex AddedVertex { vertex_id: "com.getorbyt.getServiceInfo#providers.discoveryFeed" }
  • AddedVertex AddedVertex { vertex_id: "com.getorbyt.getServiceInfo#providers.discoveryFeedService" }
  • AddedVertex AddedVertex { vertex_id: "com.getorbyt.getServiceInfo#providers.network" }
  • AddedVertex AddedVertex { vertex_id: "com.getorbyt.getServiceInfo:output.providers" }
  • AddedEdge AddedEdge { src: "com.getorbyt.getServiceInfo#providers", tgt: "com.getorbyt.getServiceInfo#providers.appView", kind: "prop", name: Some("appView") }
  • AddedEdge AddedEdge { src: "com.getorbyt.getServiceInfo#providers", tgt: "com.getorbyt.getServiceInfo#providers.chat", kind: "prop", name: Some("chat") }
  • AddedEdge AddedEdge { src: "com.getorbyt.getServiceInfo#providers", tgt: "com.getorbyt.getServiceInfo#providers.discoveryFeed", kind: "prop", name: Some("discoveryFeed") }
  • AddedEdge AddedEdge { src: "com.getorbyt.getServiceInfo#providers", tgt: "com.getorbyt.getServiceInfo#providers.discoveryFeedService", kind: "prop", name: Some("discoveryFeedService") }
  • AddedEdge AddedEdge { src: "com.getorbyt.getServiceInfo:output", tgt: "com.getorbyt.getServiceInfo:output.providers", kind: "prop", name: Some("providers") }
  • AddedEdge AddedEdge { src: "com.getorbyt.getServiceInfo:output.providers", tgt: "com.getorbyt.getServiceInfo#providers", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.getorbyt.getServiceInfo#providers" }
  • AddedVertex { vertex_id: "com.getorbyt.getServiceInfo#providers.appView" }
  • AddedVertex { vertex_id: "com.getorbyt.getServiceInfo#providers.chat" }
  • AddedVertex { vertex_id: "com.getorbyt.getServiceInfo#providers.discoveryFeed" }
  • AddedVertex { vertex_id: "com.getorbyt.getServiceInfo#providers.discoveryFeedService" }
  • AddedVertex { vertex_id: "com.getorbyt.getServiceInfo#providers.network" }
  • AddedVertex { vertex_id: "com.getorbyt.getServiceInfo:output.providers" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "com.getorbyt.getServiceInfo#providers", src: "com.getorbyt.getServiceInfo#providers", tgt: "com.getorbyt.getServiceInfo#providers.network", kind: "prop", name: Some("network") }
  • Non-breaking: AddedEdge { src: "com.getorbyt.getServiceInfo#providers", tgt: "com.getorbyt.getServiceInfo#providers.appView", kind: "prop", name: Some("appView") }
  • Non-breaking: AddedEdge { src: "com.getorbyt.getServiceInfo#providers", tgt: "com.getorbyt.getServiceInfo#providers.chat", kind: "prop", name: Some("chat") }
  • Non-breaking: AddedEdge { src: "com.getorbyt.getServiceInfo#providers", tgt: "com.getorbyt.getServiceInfo#providers.discoveryFeed", kind: "prop", name: Some("discoveryFeed") }
  • Non-breaking: AddedEdge { src: "com.getorbyt.getServiceInfo#providers", tgt: "com.getorbyt.getServiceInfo#providers.discoveryFeedService", kind: "prop", name: Some("discoveryFeedService") }
  • Non-breaking: AddedEdge { src: "com.getorbyt.getServiceInfo:output", tgt: "com.getorbyt.getServiceInfo:output.providers", kind: "prop", name: Some("providers") }
  • Non-breaking: AddedEdge { src: "com.getorbyt.getServiceInfo:output.providers", tgt: "com.getorbyt.getServiceInfo#providers", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "What this deployment of the Orbyt service can currently do, for clients that cannot be upgraded in step with it. Clients feature-detect against `capabilities` rather than comparing version numbers: only one version of this service is ever live, while many client builds run for months. Every field is optional and the whole call is optional — a client that cannot reach it, or reads an older service that does not serve it, must behave exactly as it did before. Unauthenticated.",
6 6
      "output": {
7 7
        "encoding": "application/json",
8 8
        "schema": {
9 9
          "properties": {
10 10
            "capabilities": {
11 11
              "description": "Behaviours this deployment supports, as opaque identifiers a client tests for membership of. Deliberately not `knownValues`: the whole point is that a client meets identifiers it has never heard of and ignores them. Removing one is how a feature is turned off in already-installed clients.",
12 12
              "items": {
13 13
                "maxLength": 64,
14 14
                "type": "string"
15 15
              },
16 16
              "maxLength": 128,
17 17
              "type": "array"
18 18
            },
19 19
            "minimumClient": {
20 20
              "description": "The oldest client version this service still answers correctly for the requested platform, as a semantic version. Advisory: this service does not refuse older clients, it tells them. A client below it should prompt for an update.",
21 21
              "maxLength": 32,
22 22
              "type": "string"
23 23
            },
24 24
            "notices": {
25 25
              "description": "Messages for the viewer, such as a degraded subsystem or a scheduled maintenance window.",
26 26
              "items": {
27 27
                "ref": "#notice",
28 28
                "type": "ref"
29 29
              },
30 30
              "maxLength": 8,
31 31
              "type": "array"
32 32
            },
33 +
            "providers": {
34 +
              "description": "Which external services this deployment is attached to, so a client can aim `atproto-proxy` at them without a release. Absent from an older service; a client that finds it absent keeps its built-in defaults.",
35 +
              "ref": "#providers",
36 +
              "type": "ref"
37 +
            },
33 38
            "recommendedClient": {
34 39
              "description": "The newest released client version for the requested platform, so a client can offer a soft update prompt without a separate service.",
35 40
              "maxLength": 32,
36 41
              "type": "string"
37 42
            }
38 43
          },
39 44
          "required": [
40 45
            "capabilities"
41 46
          ],
42 47
          "type": "object"
43 48
        }
44 49
      },
45 50
      "parameters": {
46 51
        "properties": {
47 52
          "platform": {
48 53
            "description": "Which client is asking, so version advice can be answered for it. An unknown or absent platform is answered without version advice rather than refused.",
49 54
            "knownValues": [
50 55
              "ios",
51 56
              "web"
52 57
            ],
53 58
            "type": "string"
54 59
          }
55 60
        },
56 61
        "type": "params"
57 62
      },
58 63
      "type": "query"
59 64
    },
60 65
    "notice": {
61 66
      "description": "One operator message. `id` is stable so a client can remember that this viewer has already dismissed it.",
62 67
      "properties": {
63 68
        "id": {
64 69
          "maxLength": 64,
65 70
          "type": "string"
66 71
        },
67 72
        "message": {
68 73
          "maxLength": 1000,
69 74
          "type": "string"
70 75
        },
71 76
        "severity": {
72 77
          "description": "Absent means info. A severity this client does not recognise must be presented as info rather than dropped or treated as blocking.",
73 78
          "knownValues": [
74 79
            "info",
75 80
            "warning",
76 81
            "blocking"
77 82
          ],
78 83
          "type": "string"
79 84
        },
80 85
        "url": {
81 86
          "format": "uri",
82 87
          "type": "string"
83 88
        }
84 89
      },
85 90
      "required": [
86 91
        "id",
87 92
        "message"
88 93
      ],
89 94
      "type": "object"
95 +
    },
96 +
    "providers": {
97 +
      "description": "Service identities only, never operational endpoints. Each service field is absent when this deployment has none; for `appView` that means standard social reads are unavailable and the client should not attempt them.",
98 +
      "properties": {
99 +
        "appView": {
100 +
          "description": "Service DID with fragment answering `app.bsky.*` reads, e.g. `did:web:api.bsky.app#bsky_appview`.",
101 +
          "maxLength": 256,
102 +
          "type": "string"
103 +
        },
104 +
        "chat": {
105 +
          "description": "Service DID with fragment for chat.",
106 +
          "maxLength": 256,
107 +
          "type": "string"
108 +
        },
109 +
        "discoveryFeed": {
110 +
          "description": "The feed generator behind Your Mix.",
111 +
          "format": "at-uri",
112 +
          "type": "string"
113 +
        },
114 +
        "discoveryFeedService": {
115 +
          "description": "Service DID with fragment for `discoveryFeed`.",
116 +
          "maxLength": 256,
117 +
          "type": "string"
118 +
        },
119 +
        "network": {
120 +
          "description": "A stable label for the connected network, such as `bluesky`.",
121 +
          "maxLength": 32,
122 +
          "type": "string"
123 +
        }
124 +
      },
125 +
      "required": [
126 +
        "network"
127 +
      ],
128 +
      "type": "object"
90 129
    }
91 130
  },
92 131
  "id": "com.getorbyt.getServiceInfo",
93 132
  "lexicon": 1
94 133
}

Compare Other Versions

Lexicon Garden

@