zone.stratos.actor.enrollment

lexicon.northsky.app

Schema Diff

+31 -2

From

CID
bafyreihlbxsmhea...
Indexed At
2026-03-03 21:28 UTC
View this version

To

CID
bafyreiejh64n6u3...
Indexed At
2026-03-21 15:01 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

4 breaking changes, 6 non-breaking changes.

Breaking Changes (4)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "zone.stratos.actor.enrollment:body", src: "zone.stratos.actor.enrollment:body", tgt: "zone.stratos.actor.enrollment:body.attestation", kind: "prop", name: Some("attestation") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "zone.stratos.actor.enrollment:body", src: "zone.stratos.actor.enrollment:body", tgt: "zone.stratos.actor.enrollment:body.signingKey", kind: "prop", name: Some("signingKey") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "zone.stratos.actor.enrollment#serviceAttestation", src: "zone.stratos.actor.enrollment#serviceAttestation", tgt: "zone.stratos.actor.enrollment#serviceAttestation.sig", kind: "prop", name: Some("sig") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "zone.stratos.actor.enrollment#serviceAttestation", src: "zone.stratos.actor.enrollment#serviceAttestation", tgt: "zone.stratos.actor.enrollment#serviceAttestation.signingKey", kind: "prop", name: Some("signingKey") }
Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "zone.stratos.actor.enrollment#serviceAttestation" }
  • AddedVertex AddedVertex { vertex_id: "zone.stratos.actor.enrollment#serviceAttestation.sig" }
  • AddedVertex AddedVertex { vertex_id: "zone.stratos.actor.enrollment#serviceAttestation.signingKey" }
  • AddedVertex AddedVertex { vertex_id: "zone.stratos.actor.enrollment:body.attestation" }
  • AddedVertex AddedVertex { vertex_id: "zone.stratos.actor.enrollment:body.signingKey" }
  • AddedEdge AddedEdge { src: "zone.stratos.actor.enrollment:body.attestation", tgt: "zone.stratos.actor.enrollment#serviceAttestation", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "zone.stratos.actor.enrollment#serviceAttestation" }
  • AddedVertex { vertex_id: "zone.stratos.actor.enrollment#serviceAttestation.sig" }
  • AddedVertex { vertex_id: "zone.stratos.actor.enrollment#serviceAttestation.signingKey" }
  • AddedVertex { vertex_id: "zone.stratos.actor.enrollment:body.attestation" }
  • AddedVertex { vertex_id: "zone.stratos.actor.enrollment:body.signingKey" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "zone.stratos.actor.enrollment:body", src: "zone.stratos.actor.enrollment:body", tgt: "zone.stratos.actor.enrollment:body.attestation", kind: "prop", name: Some("attestation") }
  • Breaking: RequiredEdgeAdded { vertex_id: "zone.stratos.actor.enrollment:body", src: "zone.stratos.actor.enrollment:body", tgt: "zone.stratos.actor.enrollment:body.signingKey", kind: "prop", name: Some("signingKey") }
  • Breaking: RequiredEdgeAdded { vertex_id: "zone.stratos.actor.enrollment#serviceAttestation", src: "zone.stratos.actor.enrollment#serviceAttestation", tgt: "zone.stratos.actor.enrollment#serviceAttestation.sig", kind: "prop", name: Some("sig") }
  • Breaking: RequiredEdgeAdded { vertex_id: "zone.stratos.actor.enrollment#serviceAttestation", src: "zone.stratos.actor.enrollment#serviceAttestation", tgt: "zone.stratos.actor.enrollment#serviceAttestation.signingKey", kind: "prop", name: Some("signingKey") }
  • Non-breaking: AddedEdge { src: "zone.stratos.actor.enrollment:body.attestation", tgt: "zone.stratos.actor.enrollment#serviceAttestation", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 -
      "description": "A profile record indicating the user is enrolled in a Stratos service. Published to the user's PDS during OAuth enrollment for endpoint discovery by AppViews.",
6 -
      "key": "literal:self",
5 +
      "description": "A record indicating the user is enrolled in a Stratos service. Published to the user's PDS during OAuth enrollment for endpoint discovery by AppViews. Multiple enrollment records are supported — one per Stratos service.",
6 +
      "key": "any",
7 7
      "record": {
8 8
        "properties": {
9 +
          "attestation": {
10 +
            "description": "Service attestation vouching for the user's enrollment, boundaries, and signing key.",
11 +
            "ref": "#serviceAttestation",
12 +
            "type": "ref"
13 +
          },
9 14
          "boundaries": {
10 15
            "description": "List of boundaries the user has access to on this Stratos service.",
11 16
            "items": {
12 17
              "ref": "zone.stratos.boundary.defs#Domain",
13 18
              "type": "ref"
14 19
            },
15 20
            "maxLength": 50,
16 21
            "type": "array"
17 22
          },
18 23
          "createdAt": {
19 24
            "description": "Timestamp when the enrollment was created.",
20 25
            "format": "datetime",
21 26
            "type": "string"
22 27
          },
23 28
          "service": {
24 29
            "description": "The Stratos service endpoint URL where this user's private data is stored.",
25 30
            "format": "uri",
26 31
            "type": "string"
32 +
          },
33 +
          "signingKey": {
34 +
            "description": "The user's P-256 public key as a did:key string, generated by the Stratos service for user-level record signing.",
35 +
            "type": "string"
27 36
          }
28 37
        },
29 38
        "required": [
30 39
          "service",
40 +
          "signingKey",
41 +
          "attestation",
31 42
          "createdAt"
32 43
        ],
33 44
        "type": "object"
34 45
      },
35 46
      "type": "record"
47 +
    },
48 +
    "serviceAttestation": {
49 +
      "description": "An attestation signed by the Stratos service key. The signed payload is DAG-CBOR encoded {boundaries, did, signingKey} with sorted keys.",
50 +
      "properties": {
51 +
        "sig": {
52 +
          "description": "Raw signature bytes of the DAG-CBOR encoded attestation payload, signed by the service key.",
53 +
          "type": "bytes"
54 +
        },
55 +
        "signingKey": {
56 +
          "description": "The Stratos service's public key as a did:key string, used to verify the attestation signature.",
57 +
          "type": "string"
58 +
        }
59 +
      },
60 +
      "required": [
61 +
        "sig",
62 +
        "signingKey"
63 +
      ],
64 +
      "type": "object"
36 65
    }
37 66
  },
38 67
  "id": "zone.stratos.actor.enrollment",
39 68
  "lexicon": 1
40 69
}

Compare Other Versions

Lexicon Garden

@