org.duckdns.uan1.actor.profile

atclip.bsky.social

Schema Diff

+24 -4

From

CID
bafyreihsf4pbejt...
Indexed At
2026-10-23 14:19 UTC
View this version

To

CID
bafyreien4dz4ohd...
Indexed At
2026-10-23 14:56 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 16 non-breaking changes.

Non-Breaking Changes (16)
  • AddedVertex AddedVertex { vertex_id: "org.duckdns.uan1.actor.profile:body.gender" }
  • AddedVertex AddedVertex { vertex_id: "org.duckdns.uan1.actor.profile:body.relationship" }
  • AddedVertex AddedVertex { vertex_id: "org.duckdns.uan1.actor.profile:body.school" }
  • AddedVertex AddedVertex { vertex_id: "org.duckdns.uan1.actor.profile:body.work" }
  • AddedEdge AddedEdge { src: "org.duckdns.uan1.actor.profile:body", tgt: "org.duckdns.uan1.actor.profile:body.gender", kind: "prop", name: Some("gender") }
  • AddedEdge AddedEdge { src: "org.duckdns.uan1.actor.profile:body", tgt: "org.duckdns.uan1.actor.profile:body.relationship", kind: "prop", name: Some("relationship") }
  • AddedEdge AddedEdge { src: "org.duckdns.uan1.actor.profile:body", tgt: "org.duckdns.uan1.actor.profile:body.school", kind: "prop", name: Some("school") }
  • AddedEdge AddedEdge { src: "org.duckdns.uan1.actor.profile:body", tgt: "org.duckdns.uan1.actor.profile:body.work", kind: "prop", name: Some("work") }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.bio", sort: "maxLength", old_value: "2560", new_value: "20000" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.bio", sort: "maxGraphemes", old_value: "256", new_value: "2000" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.location", sort: "maxLength", old_value: "640", new_value: "1280" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.location", sort: "maxGraphemes", old_value: "64", new_value: "128" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.hometown", sort: "maxGraphemes", old_value: "64", new_value: "128" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.hometown", sort: "maxLength", old_value: "640", new_value: "1280" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.displayName", sort: "maxLength", old_value: "640", new_value: "800" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.displayName", sort: "maxGraphemes", old_value: "64", new_value: "80" }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "org.duckdns.uan1.actor.profile:body.gender" }
  • AddedVertex { vertex_id: "org.duckdns.uan1.actor.profile:body.relationship" }
  • AddedVertex { vertex_id: "org.duckdns.uan1.actor.profile:body.school" }
  • AddedVertex { vertex_id: "org.duckdns.uan1.actor.profile:body.work" }

Constraint Changes

  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.displayName", sort: "maxLength", old_value: "640", new_value: "800" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.displayName", sort: "maxGraphemes", old_value: "64", new_value: "80" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.hometown", sort: "maxGraphemes", old_value: "64", new_value: "128" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.hometown", sort: "maxLength", old_value: "640", new_value: "1280" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.bio", sort: "maxLength", old_value: "2560", new_value: "20000" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.bio", sort: "maxGraphemes", old_value: "256", new_value: "2000" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.location", sort: "maxLength", old_value: "640", new_value: "1280" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.duckdns.uan1.actor.profile:body.location", sort: "maxGraphemes", old_value: "64", new_value: "128" }

Additional Notes

  • Non-breaking: AddedEdge { src: "org.duckdns.uan1.actor.profile:body", tgt: "org.duckdns.uan1.actor.profile:body.gender", kind: "prop", name: Some("gender") }
  • Non-breaking: AddedEdge { src: "org.duckdns.uan1.actor.profile:body", tgt: "org.duckdns.uan1.actor.profile:body.relationship", kind: "prop", name: Some("relationship") }
  • Non-breaking: AddedEdge { src: "org.duckdns.uan1.actor.profile:body", tgt: "org.duckdns.uan1.actor.profile:body.school", kind: "prop", name: Some("school") }
  • Non-breaking: AddedEdge { src: "org.duckdns.uan1.actor.profile:body", tgt: "org.duckdns.uan1.actor.profile:body.work", kind: "prop", name: Some("work") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "Profile fields for one audience; the AppView merges the copies the viewer can read.",
6 6
      "key": "literal:self",
7 7
      "record": {
8 8
        "properties": {
9 9
          "avatar": {
10 10
            "accept": [
11 11
              "image/png",
12 12
              "image/jpeg",
13 13
              "image/webp"
14 14
            ],
15 15
            "maxSize": 1000000,
16 16
            "type": "blob"
17 17
          },
18 18
          "bio": {
19 -
            "maxGraphemes": 256,
20 -
            "maxLength": 2560,
19 +
            "maxGraphemes": 2000,
20 +
            "maxLength": 20000,
21 21
            "type": "string"
22 22
          },
23 23
          "birthday": {
24 24
            "description": "YYYY-MM-DD or --MM-DD.",
25 25
            "maxLength": 10,
26 26
            "type": "string"
27 27
          },
28 28
          "createdAt": {
29 29
            "format": "datetime",
30 30
            "type": "string"
31 31
          },
32 32
          "displayName": {
33 +
            "maxGraphemes": 80,
34 +
            "maxLength": 800,
35 +
            "type": "string"
36 +
          },
37 +
          "gender": {
33 38
            "maxGraphemes": 64,
34 39
            "maxLength": 640,
35 40
            "type": "string"
36 41
          },
37 42
          "hometown": {
38 -
            "maxGraphemes": 64,
39 -
            "maxLength": 640,
43 +
            "maxGraphemes": 128,
44 +
            "maxLength": 1280,
40 45
            "type": "string"
41 46
          },
42 47
          "location": {
48 +
            "maxGraphemes": 128,
49 +
            "maxLength": 1280,
50 +
            "type": "string"
51 +
          },
52 +
          "relationship": {
43 53
            "maxGraphemes": 64,
44 54
            "maxLength": 640,
45 55
            "type": "string"
46 56
          },
57 +
          "school": {
58 +
            "maxGraphemes": 128,
59 +
            "maxLength": 1280,
60 +
            "type": "string"
61 +
          },
47 62
          "website": {
48 63
            "format": "uri",
49 64
            "type": "string"
65 +
          },
66 +
          "work": {
67 +
            "maxGraphemes": 128,
68 +
            "maxLength": 1280,
69 +
            "type": "string"
50 70
          }
51 71
        },
52 72
        "type": "object"
53 73
      },
54 74
      "type": "record"
55 75
    }
56 76
  },
57 77
  "id": "org.duckdns.uan1.actor.profile",
58 78
  "lexicon": 1
59 79
}

Compare Other Versions

Lexicon Garden

@