buzz.bookhive.book

bookhive.buzz

Schema Diff

+14 -2

From

CID
bafyreiduepslib7...
Indexed At
2026-02-18 18:43 UTC
View this version

To

CID
bafyreialscgpknm...
Indexed At
2026-03-25 09:46 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 8 non-breaking changes.

Breaking Changes (1)
  • ConstraintTightened ConstraintTightened { vertex_id: "buzz.bookhive.book:body.status", sort: "knownValues", old_value: "[\"buzz.bookhive.defs#finished\",\"buzz.bookhive.defs#reading\",\"buzz.bookhive.defs#wantToRead\",\"buzz.bookhive.defs#abandoned\",\"buzz.bookhive.defs#owned\"]", new_value: "[\"buzz.bookhive.defs#finished\",\"buzz.bookhive.defs#reading\",\"buzz.bookhive.defs#wantToRead\",\"buzz.bookhive.defs#abandoned\"]" }
Non-Breaking Changes (8)
  • AddedVertex AddedVertex { vertex_id: "buzz.bookhive.book:body.hiveBookUri" }
  • AddedVertex AddedVertex { vertex_id: "buzz.bookhive.book:body.identifiers" }
  • AddedVertex AddedVertex { vertex_id: "buzz.bookhive.book:body.owned" }
  • AddedVertex AddedVertex { vertex_id: "buzz.bookhive.defs#bookIdentifiers" }
  • AddedEdge AddedEdge { src: "buzz.bookhive.book:body", tgt: "buzz.bookhive.book:body.hiveBookUri", kind: "prop", name: Some("hiveBookUri") }
  • AddedEdge AddedEdge { src: "buzz.bookhive.book:body", tgt: "buzz.bookhive.book:body.identifiers", kind: "prop", name: Some("identifiers") }
  • AddedEdge AddedEdge { src: "buzz.bookhive.book:body", tgt: "buzz.bookhive.book:body.owned", kind: "prop", name: Some("owned") }
  • AddedEdge AddedEdge { src: "buzz.bookhive.book:body.identifiers", tgt: "buzz.bookhive.defs#bookIdentifiers", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "buzz.bookhive.book:body.hiveBookUri" }
  • AddedVertex { vertex_id: "buzz.bookhive.book:body.identifiers" }
  • AddedVertex { vertex_id: "buzz.bookhive.book:body.owned" }
  • AddedVertex { vertex_id: "buzz.bookhive.defs#bookIdentifiers" }

Constraint Changes

  • ConstraintTightened ConstraintTightened { vertex_id: "buzz.bookhive.book:body.status", sort: "knownValues", old_value: "[\"buzz.bookhive.defs#finished\",\"buzz.bookhive.defs#reading\",\"buzz.bookhive.defs#wantToRead\",\"buzz.bookhive.defs#abandoned\",\"buzz.bookhive.defs#owned\"]", new_value: "[\"buzz.bookhive.defs#finished\",\"buzz.bookhive.defs#reading\",\"buzz.bookhive.defs#wantToRead\",\"buzz.bookhive.defs#abandoned\"]" }

Additional Notes

  • Non-breaking: AddedEdge { src: "buzz.bookhive.book:body", tgt: "buzz.bookhive.book:body.hiveBookUri", kind: "prop", name: Some("hiveBookUri") }
  • Non-breaking: AddedEdge { src: "buzz.bookhive.book:body", tgt: "buzz.bookhive.book:body.identifiers", kind: "prop", name: Some("identifiers") }
  • Non-breaking: AddedEdge { src: "buzz.bookhive.book:body", tgt: "buzz.bookhive.book:body.owned", kind: "prop", name: Some("owned") }
  • Non-breaking: AddedEdge { src: "buzz.bookhive.book:body.identifiers", tgt: "buzz.bookhive.defs#bookIdentifiers", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "A book in the user's library",
6 6
      "key": "tid",
7 7
      "record": {
8 8
        "properties": {
9 9
          "authors": {
10 10
            "description": "The authors of the book (tab separated)",
11 11
            "maxLength": 2048,
12 12
            "minLength": 1,
13 13
            "type": "string"
14 14
          },
15 15
          "bookProgress": {
16 16
            "description": "Progress tracking details for the book",
17 17
            "ref": "buzz.bookhive.defs#bookProgress",
18 18
            "type": "ref"
19 19
          },
20 20
          "cover": {
21 21
            "accept": [
22 22
              "image/png",
23 23
              "image/jpeg"
24 24
            ],
25 25
            "description": "Cover image of the book",
26 26
            "maxSize": 1000000,
27 27
            "type": "blob"
28 28
          },
29 29
          "createdAt": {
30 30
            "format": "datetime",
31 31
            "type": "string"
32 32
          },
33 33
          "finishedAt": {
34 34
            "description": "The date the user finished reading the book",
35 35
            "format": "datetime",
36 36
            "type": "string"
37 37
          },
38 +
          "hiveBookUri": {
39 +
            "description": "AT-URI of the canonical catalogBook record in @bookhive.buzz",
40 +
            "type": "string"
41 +
          },
38 42
          "hiveId": {
39 43
            "description": "The book's hive id, used to correlate user's books with the hive",
40 44
            "type": "string"
41 45
          },
46 +
          "identifiers": {
47 +
            "description": "External identifiers for the book",
48 +
            "ref": "buzz.bookhive.defs#bookIdentifiers",
49 +
            "type": "ref"
50 +
          },
51 +
          "owned": {
52 +
            "description": "Whether the user owns this book",
53 +
            "type": "boolean"
54 +
          },
42 55
          "review": {
43 56
            "description": "The book's review",
44 57
            "maxGraphemes": 15000,
45 58
            "type": "string"
46 59
          },
47 60
          "stars": {
48 61
            "description": "Number of stars given to the book (1-10) which will be mapped to 1-5 stars",
49 62
            "maximum": 10,
50 63
            "minimum": 1,
51 64
            "type": "integer"
52 65
          },
53 66
          "startedAt": {
54 67
            "description": "The date the user started reading the book",
55 68
            "format": "datetime",
56 69
            "type": "string"
57 70
          },
58 71
          "status": {
59 72
            "knownValues": [
60 73
              "buzz.bookhive.defs#finished",
61 74
              "buzz.bookhive.defs#reading",
62 75
              "buzz.bookhive.defs#wantToRead",
63 -
              "buzz.bookhive.defs#abandoned",
64 -
              "buzz.bookhive.defs#owned"
76 +
              "buzz.bookhive.defs#abandoned"
65 77
            ],
66 78
            "type": "string"
67 79
          },
68 80
          "title": {
69 81
            "description": "The title of the book",
70 82
            "maxLength": 512,
71 83
            "minLength": 1,
72 84
            "type": "string"
73 85
          }
74 86
        },
75 87
        "required": [
76 88
          "title",
77 89
          "authors",
78 90
          "hiveId",
79 91
          "createdAt"
80 92
        ],
81 93
        "type": "object"
82 94
      },
83 95
      "type": "record"
84 96
    }
85 97
  },
86 98
  "id": "buzz.bookhive.book",
87 99
  "lexicon": 1
88 100
}

Compare Other Versions

Lexicon Garden

@