app.certified.badge.definition

certified.app

Schema Diff

+20 -3

From

CID
bafyreidbmjx5j3o...
Indexed At
2026-02-18 18:01 UTC
View this version

To

CID
bafyreihn2uiblsg...
Indexed At
2026-07-26 20:06 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

6 breaking changes, 4 non-breaking changes.

Breaking Changes (6)
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "app.certified.badge.definition:body", src: "app.certified.badge.definition:body", tgt: "app.certified.badge.definition:body.icon", kind: "prop", name: Some("icon") }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.certified.badge.definition:body.description", sort: "maxLength", value: "5000" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.certified.badge.definition:body.description", sort: "maxGraphemes", value: "500" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.certified.badge.definition:body.badgeType", sort: "knownValues", value: "[\"endorsement\",\"verification\",\"participation\",\"certification\",\"affiliation\",\"recognition\"]" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.certified.badge.definition:body.badgeType", sort: "maxLength", value: "100" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.certified.badge.definition:body.title", sort: "maxLength", value: "256" }
Non-Breaking Changes (4)
  • AddedVertex AddedVertex { vertex_id: "app.certified.badge.definition:body.signatures" }
  • AddedVertex AddedVertex { vertex_id: "app.certified.signature.defs#list" }
  • AddedEdge AddedEdge { src: "app.certified.badge.definition:body", tgt: "app.certified.badge.definition:body.signatures", kind: "prop", name: Some("signatures") }
  • AddedEdge AddedEdge { src: "app.certified.badge.definition:body.signatures", tgt: "app.certified.signature.defs#list", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.certified.badge.definition:body.signatures" }
  • AddedVertex { vertex_id: "app.certified.signature.defs#list" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "app.certified.badge.definition:body.description", sort: "maxLength", value: "5000" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.certified.badge.definition:body.description", sort: "maxGraphemes", value: "500" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.certified.badge.definition:body.badgeType", sort: "maxLength", value: "100" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.certified.badge.definition:body.badgeType", sort: "knownValues", value: "[\"endorsement\",\"verification\",\"participation\",\"certification\",\"affiliation\",\"recognition\"]" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.certified.badge.definition:body.title", sort: "maxLength", value: "256" }

Additional Notes

  • Breaking: RequiredEdgeRemoved { vertex_id: "app.certified.badge.definition:body", src: "app.certified.badge.definition:body", tgt: "app.certified.badge.definition:body.icon", kind: "prop", name: Some("icon") }
  • Non-breaking: AddedEdge { src: "app.certified.badge.definition:body", tgt: "app.certified.badge.definition:body.signatures", kind: "prop", name: Some("signatures") }
  • Non-breaking: AddedEdge { src: "app.certified.badge.definition:body.signatures", tgt: "app.certified.signature.defs#list", kind: "ref", name: None }
1 1
{
2 2
  "id": "app.certified.badge.definition",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "title",
11 11
          "badgeType",
12 -
          "icon",
13 12
          "createdAt"
14 13
        ],
15 14
        "properties": {
16 15
          "icon": {
17 16
            "type": "blob",
18 17
            "accept": [
19 18
              "image/png",
20 19
              "image/jpeg",
21 20
              "image/webp",
22 21
              "image/svg+xml"
23 22
            ],
24 23
            "maxSize": 1048576,
25 24
            "description": "Icon representing the badge, stored as a blob for compact visual display."
26 25
          },
27 26
          "title": {
28 27
            "type": "string",
28 +
            "maxLength": 256,
29 29
            "description": "Human-readable title of the badge."
30 30
          },
31 31
          "badgeType": {
32 32
            "type": "string",
33 -
            "description": "Category of the badge (e.g. endorsement, participation, affiliation)."
33 +
            "maxLength": 100,
34 +
            "description": "Category of the badge. Values beyond the known set are permitted.",
35 +
            "knownValues": [
36 +
              "endorsement",
37 +
              "verification",
38 +
              "participation",
39 +
              "certification",
40 +
              "affiliation",
41 +
              "recognition"
42 +
            ]
34 43
          },
35 44
          "createdAt": {
36 45
            "type": "string",
37 46
            "format": "datetime",
38 47
            "description": "Client-declared timestamp when this record was originally created"
39 48
          },
49 +
          "signatures": {
50 +
            "ref": "app.certified.signature.defs#list",
51 +
            "type": "ref",
52 +
            "description": "Optional cryptographic signatures attesting to this record's content."
53 +
          },
40 54
          "description": {
41 55
            "type": "string",
42 -
            "description": "Optional short statement describing what the badge represents."
56 +
            "maxLength": 5000,
57 +
            "description": "Optional short statement describing what the badge represents.",
58 +
            "maxGraphemes": 500
43 59
          },
44 60
          "allowedIssuers": {
45 61
            "type": "array",
46 62
            "items": {
47 63
              "ref": "app.certified.defs#did",
48 64
              "type": "ref"
49 65
            },
66 +
            "maxLength": 100,
50 67
            "description": "Optional allowlist of DIDs allowed to issue this badge. If omitted, anyone may issue it."
51 68
          }
52 69
        }
53 70
      },
54 71
      "description": "Defines a badge that can be awarded via badge award records to users, projects, or activity claims."
55 72
    }
56 73
  },
57 74
  "$type": "com.atproto.lexicon.schema",
58 75
  "lexicon": 1
59 76
}

Compare Other Versions

Lexicon Garden

@