app.winesky.imageSet
Schema Diff
+21 -17
Compatibility Analysis
Breaking Changes Detected
9 breaking changes, 4 non-breaking changes.
Breaking Changes (9)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.winesky.imageSet#strongRef", src: "app.winesky.imageSet#strongRef", tgt: "app.winesky.imageSet#strongRef.cid", kind: "prop", name: Some("cid") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.winesky.imageSet#strongRef", src: "app.winesky.imageSet#strongRef", tgt: "app.winesky.imageSet#strongRef.atUri", kind: "prop", name: Some("atUri") }
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "app.winesky.imageSet:body.parent", src: "app.winesky.imageSet:body.parent", tgt: "app.winesky.imageSet:body.parent.atUri", kind: "prop", name: Some("atUri") }
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "app.winesky.imageSet:body.parent", src: "app.winesky.imageSet:body.parent", tgt: "app.winesky.imageSet:body.parent.cid", kind: "prop", name: Some("cid") }
- RemovedVertex RemovedVertex { vertex_id: "app.winesky.imageSet:body.parent.atUri" }
- RemovedVertex RemovedVertex { vertex_id: "app.winesky.imageSet:body.parent.cid" }
- KindChanged KindChanged { vertex_id: "app.winesky.imageSet:body.parent", old_kind: "object", new_kind: "ref" }
- ConstraintTightened ConstraintTightened { vertex_id: "app.winesky.imageSet:body.origin", sort: "enum", old_value: "IDENTIFY_WINE,SOMMELIER,CSV_IMPORT,OTHER", new_value: "IDENTIFY_WINE,SEARCH,SOMMELIER,CSV_IMPORT" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.winesky.imageSet:body.parent", sort: "ref", value: "#strongRef" }
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "app.winesky.imageSet#strongRef" }
- AddedVertex AddedVertex { vertex_id: "app.winesky.imageSet#strongRef.atUri" }
- AddedVertex AddedVertex { vertex_id: "app.winesky.imageSet#strongRef.cid" }
- AddedEdge AddedEdge { src: "app.winesky.imageSet:body.parent", tgt: "app.winesky.imageSet#strongRef", kind: "ref", name: None }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "app.winesky.imageSet:body.parent.atUri" }RemovedVertex { vertex_id: "app.winesky.imageSet:body.parent.cid" }
Added Elements
AddedVertex { vertex_id: "app.winesky.imageSet#strongRef" }AddedVertex { vertex_id: "app.winesky.imageSet#strongRef.atUri" }AddedVertex { vertex_id: "app.winesky.imageSet#strongRef.cid" }
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "app.winesky.imageSet:body.origin", sort: "enum", old_value: "IDENTIFY_WINE,SOMMELIER,CSV_IMPORT,OTHER", new_value: "IDENTIFY_WINE,SEARCH,SOMMELIER,CSV_IMPORT" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.winesky.imageSet:body.parent", sort: "ref", value: "#strongRef" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "app.winesky.imageSet#strongRef", src: "app.winesky.imageSet#strongRef", tgt: "app.winesky.imageSet#strongRef.cid", kind: "prop", name: Some("cid") }
- Breaking: RequiredEdgeAdded { vertex_id: "app.winesky.imageSet#strongRef", src: "app.winesky.imageSet#strongRef", tgt: "app.winesky.imageSet#strongRef.atUri", kind: "prop", name: Some("atUri") }
- Breaking: RequiredEdgeRemoved { vertex_id: "app.winesky.imageSet:body.parent", src: "app.winesky.imageSet:body.parent", tgt: "app.winesky.imageSet:body.parent.atUri", kind: "prop", name: Some("atUri") }
- Breaking: RequiredEdgeRemoved { vertex_id: "app.winesky.imageSet:body.parent", src: "app.winesky.imageSet:body.parent", tgt: "app.winesky.imageSet:body.parent.cid", kind: "prop", name: Some("cid") }
- Breaking: KindChanged { vertex_id: "app.winesky.imageSet:body.parent", old_kind: "object", new_kind: "ref" }
- Non-breaking: AddedEdge { src: "app.winesky.imageSet:body.parent", tgt: "app.winesky.imageSet#strongRef", kind: "ref", name: None }
1
1
{
2
2
"id": "app.winesky.imageSet",
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
"origin",
11
11
"createdAt"
12
12
],
13
13
"properties": {
14
14
"images": {
15
15
"type": "array",
16
16
"items": {
17
17
"type": "blob",
18
18
"accept": [
19
19
"image/jpeg",
20
20
"image/png"
21
21
],
22
22
"maxSize": 3000000
23
23
},
24
24
"maxLength": 4,
25
25
"minLength": 1
26
26
},
27
27
"origin": {
28
28
"enum": [
29
29
"IDENTIFY_WINE",
30
+
"SEARCH",
30
31
"SOMMELIER",
31
-
"CSV_IMPORT",
32
-
"OTHER"
32
+
"CSV_IMPORT"
33
33
],
34
34
"type": "string",
35
35
"maxLength": 50
36
36
},
37
37
"parent": {
38
-
"type": "object",
39
-
"required": [
40
-
"cid",
41
-
"atUri"
42
-
],
43
-
"properties": {
44
-
"cid": {
45
-
"type": "string",
46
-
"format": "cid"
47
-
},
48
-
"atUri": {
49
-
"type": "string",
50
-
"format": "at-uri"
51
-
}
52
-
}
38
+
"ref": "#strongRef",
39
+
"type": "ref"
53
40
},
54
41
"createdAt": {
55
42
"type": "string",
56
43
"format": "datetime"
57
44
},
58
45
"description": {
59
46
"type": "string",
60
47
"maxLength": 5000
61
48
}
62
49
}
63
50
},
64
51
"description": "A set of Winesky-uploaded images"
52
+
},
53
+
"strongRef": {
54
+
"type": "object",
55
+
"required": [
56
+
"cid",
57
+
"atUri"
58
+
],
59
+
"properties": {
60
+
"cid": {
61
+
"type": "string",
62
+
"format": "cid"
63
+
},
64
+
"atUri": {
65
+
"type": "string",
66
+
"format": "at-uri"
67
+
}
68
+
}
65
69
}
66
70
},
67
71
"$type": "com.atproto.lexicon.schema",
68
72
"lexicon": 1
69
73
}