net.atview.project
Schema Diff
+62 -42
Compatibility Analysis
Breaking Changes Detected
17 breaking changes, 24 non-breaking changes.
Breaking Changes (17)
- RemovedVertex RemovedVertex { vertex_id: "net.atview.project.avatar" }
- RemovedVertex RemovedVertex { vertex_id: "net.atview.project.banner" }
- RemovedVertex RemovedVertex { vertex_id: "net.atview.project.description" }
- RemovedVertex RemovedVertex { vertex_id: "net.atview.project.displayName" }
- RemovedVertex RemovedVertex { vertex_id: "net.atview.project.handle" }
- RemovedVertex RemovedVertex { vertex_id: "net.atview.project.href" }
- RemovedEdge RemovedEdge { src: "net.atview.project", tgt: "net.atview.project.avatar", kind: "prop", name: Some("avatar") }
- RemovedEdge RemovedEdge { src: "net.atview.project", tgt: "net.atview.project.banner", kind: "prop", name: Some("banner") }
- RemovedEdge RemovedEdge { src: "net.atview.project", tgt: "net.atview.project.description", kind: "prop", name: Some("description") }
- RemovedEdge RemovedEdge { src: "net.atview.project", tgt: "net.atview.project.displayName", kind: "prop", name: Some("displayName") }
- RemovedEdge RemovedEdge { src: "net.atview.project", tgt: "net.atview.project.handle", kind: "prop", name: Some("handle") }
- RemovedEdge RemovedEdge { src: "net.atview.project", tgt: "net.atview.project.href", kind: "prop", name: Some("href") }
- KindChanged KindChanged { vertex_id: "net.atview.project", old_kind: "object", new_kind: "record" }
- ConstraintAdded ConstraintAdded { vertex_id: "net.atview.project:body.description", sort: "maxLength", value: "10000" }
- ConstraintAdded ConstraintAdded { vertex_id: "net.atview.project:body.description", sort: "maxGraphemes", value: "1000" }
- ConstraintAdded ConstraintAdded { vertex_id: "net.atview.project:body.displayName", sort: "maxLength", value: "1000" }
- ConstraintAdded ConstraintAdded { vertex_id: "net.atview.project:body.displayName", sort: "maxGraphemes", value: "100" }
Non-Breaking Changes (24)
- AddedVertex AddedVertex { vertex_id: "net.atview.project:body" }
- AddedVertex AddedVertex { vertex_id: "net.atview.project:body.avatar" }
- AddedVertex AddedVertex { vertex_id: "net.atview.project:body.banner" }
- AddedVertex AddedVertex { vertex_id: "net.atview.project:body.createdAt" }
- AddedVertex AddedVertex { vertex_id: "net.atview.project:body.description" }
- AddedVertex AddedVertex { vertex_id: "net.atview.project:body.displayName" }
- AddedVertex AddedVertex { vertex_id: "net.atview.project:body.docs" }
- AddedVertex AddedVertex { vertex_id: "net.atview.project:body.github" }
- AddedVertex AddedVertex { vertex_id: "net.atview.project:body.handle" }
- AddedVertex AddedVertex { vertex_id: "net.atview.project:body.href" }
- AddedEdge AddedEdge { src: "net.atview.project", tgt: "net.atview.project:body", kind: "record-schema", name: None }
- AddedEdge AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.avatar", kind: "prop", name: Some("avatar") }
- AddedEdge AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.banner", kind: "prop", name: Some("banner") }
- AddedEdge AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.createdAt", kind: "prop", name: Some("createdAt") }
- AddedEdge AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.description", kind: "prop", name: Some("description") }
- AddedEdge AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.displayName", kind: "prop", name: Some("displayName") }
- AddedEdge AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.docs", kind: "prop", name: Some("docs") }
- AddedEdge AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.github", kind: "prop", name: Some("github") }
- AddedEdge AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.handle", kind: "prop", name: Some("handle") }
- AddedEdge AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.href", kind: "prop", name: Some("href") }
- ConstraintRemoved ConstraintRemoved { vertex_id: "net.atview.project.displayName", sort: "maxLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "net.atview.project.displayName", sort: "maxGraphemes" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "net.atview.project.description", sort: "maxGraphemes" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "net.atview.project.description", sort: "maxLength" }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "net.atview.project.avatar" }RemovedVertex { vertex_id: "net.atview.project.banner" }RemovedVertex { vertex_id: "net.atview.project.description" }RemovedVertex { vertex_id: "net.atview.project.displayName" }RemovedVertex { vertex_id: "net.atview.project.handle" }RemovedVertex { vertex_id: "net.atview.project.href" }
Added Elements
AddedVertex { vertex_id: "net.atview.project:body" }AddedVertex { vertex_id: "net.atview.project:body.avatar" }AddedVertex { vertex_id: "net.atview.project:body.banner" }AddedVertex { vertex_id: "net.atview.project:body.createdAt" }AddedVertex { vertex_id: "net.atview.project:body.description" }AddedVertex { vertex_id: "net.atview.project:body.displayName" }AddedVertex { vertex_id: "net.atview.project:body.docs" }AddedVertex { vertex_id: "net.atview.project:body.github" }AddedVertex { vertex_id: "net.atview.project:body.handle" }AddedVertex { vertex_id: "net.atview.project:body.href" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "net.atview.project:body.description", sort: "maxGraphemes", value: "1000" }
- ConstraintAdded ConstraintAdded { vertex_id: "net.atview.project:body.description", sort: "maxLength", value: "10000" }
- ConstraintAdded ConstraintAdded { vertex_id: "net.atview.project:body.displayName", sort: "maxLength", value: "1000" }
- ConstraintAdded ConstraintAdded { vertex_id: "net.atview.project:body.displayName", sort: "maxGraphemes", value: "100" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "net.atview.project.displayName", sort: "maxLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "net.atview.project.displayName", sort: "maxGraphemes" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "net.atview.project.description", sort: "maxLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "net.atview.project.description", sort: "maxGraphemes" }
Additional Notes
- Breaking: RemovedEdge { src: "net.atview.project", tgt: "net.atview.project.avatar", kind: "prop", name: Some("avatar") }
- Breaking: RemovedEdge { src: "net.atview.project", tgt: "net.atview.project.banner", kind: "prop", name: Some("banner") }
- Breaking: RemovedEdge { src: "net.atview.project", tgt: "net.atview.project.description", kind: "prop", name: Some("description") }
- Breaking: RemovedEdge { src: "net.atview.project", tgt: "net.atview.project.displayName", kind: "prop", name: Some("displayName") }
- Breaking: RemovedEdge { src: "net.atview.project", tgt: "net.atview.project.handle", kind: "prop", name: Some("handle") }
- Breaking: RemovedEdge { src: "net.atview.project", tgt: "net.atview.project.href", kind: "prop", name: Some("href") }
- Breaking: KindChanged { vertex_id: "net.atview.project", old_kind: "object", new_kind: "record" }
- Non-breaking: AddedEdge { src: "net.atview.project", tgt: "net.atview.project:body", kind: "record-schema", name: None }
- Non-breaking: AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.avatar", kind: "prop", name: Some("avatar") }
- Non-breaking: AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.banner", kind: "prop", name: Some("banner") }
- Non-breaking: AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.createdAt", kind: "prop", name: Some("createdAt") }
- Non-breaking: AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.description", kind: "prop", name: Some("description") }
- Non-breaking: AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.displayName", kind: "prop", name: Some("displayName") }
- Non-breaking: AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.docs", kind: "prop", name: Some("docs") }
- Non-breaking: AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.github", kind: "prop", name: Some("github") }
- Non-breaking: AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.handle", kind: "prop", name: Some("handle") }
- Non-breaking: AddedEdge { src: "net.atview.project:body", tgt: "net.atview.project:body.href", kind: "prop", name: Some("href") }
1
1
{
2
2
"id": "net.atview.project",
3
3
"defs": {
4
4
"main": {
5
-
"type": "object",
6
-
"required": [
7
-
"handle"
8
-
],
9
-
"properties": {
10
-
"href": {
11
-
"type": "string",
12
-
"format": "uri",
13
-
"description": "Primary external URL for the project (e.g. project homepage)."
14
-
},
15
-
"avatar": {
16
-
"type": "blob",
17
-
"accept": [
18
-
"image/*"
19
-
],
20
-
"maxSize": 1000000,
21
-
"description": "Avatar image representing the project. Less than 1MB in size."
22
-
},
23
-
"banner": {
24
-
"type": "blob",
25
-
"accept": [
26
-
"image/*"
27
-
],
28
-
"maxSize": 1000000,
29
-
"description": "Banner image used as the project's cover. Less than 1MB in size."
30
-
},
31
-
"handle": {
32
-
"type": "string",
33
-
"format": "handle",
34
-
"description": "Canonical handle identifying the project (e.g. `myproject.example.com`)."
35
-
},
36
-
"description": {
37
-
"type": "string",
38
-
"maxLength": 10000,
39
-
"description": "Short description of the project.",
40
-
"maxGraphemes": 1000
41
-
},
42
-
"displayName": {
43
-
"type": "string",
44
-
"maxLength": 1000,
45
-
"description": "Display name of the project as shown in user interfaces.",
46
-
"maxGraphemes": 100
5
+
"key": "tid",
6
+
"type": "record",
7
+
"record": {
8
+
"type": "object",
9
+
"required": [
10
+
"createdAt",
11
+
"handle",
12
+
"displayName"
13
+
],
14
+
"properties": {
15
+
"docs": {
16
+
"type": "string",
17
+
"format": "uri",
18
+
"description": "URL of the project's documentation."
19
+
},
20
+
"href": {
21
+
"type": "string",
22
+
"format": "uri",
23
+
"description": "Primary external URL for the project (e.g. project homepage)."
24
+
},
25
+
"avatar": {
26
+
"type": "blob",
27
+
"accept": [
28
+
"image/*"
29
+
],
30
+
"maxSize": 1000000,
31
+
"description": "Avatar image representing the project. Less than 1MB in size."
32
+
},
33
+
"banner": {
34
+
"type": "blob",
35
+
"accept": [
36
+
"image/*"
37
+
],
38
+
"maxSize": 1000000,
39
+
"description": "Banner image used as the project's cover. Less than 1MB in size."
40
+
},
41
+
"github": {
42
+
"type": "string",
43
+
"format": "uri",
44
+
"description": "URL of the project's GitHub repository."
45
+
},
46
+
"handle": {
47
+
"type": "string",
48
+
"format": "handle",
49
+
"description": "Canonical handle identifying the project (e.g. `myproject.example.com`)."
50
+
},
51
+
"createdAt": {
52
+
"type": "string",
53
+
"format": "datetime"
54
+
},
55
+
"description": {
56
+
"type": "string",
57
+
"maxLength": 10000,
58
+
"description": "Short description of the project.",
59
+
"maxGraphemes": 1000
60
+
},
61
+
"displayName": {
62
+
"type": "string",
63
+
"maxLength": 1000,
64
+
"description": "Display name of the project as shown in user interfaces.",
65
+
"maxGraphemes": 100
66
+
}
47
67
}
48
68
},
49
69
"description": "Reference to a project. Identified by a handle and enriched with optional human-friendly metadata, links and visuals."
50
70
}
51
71
},
52
72
"$type": "com.atproto.lexicon.schema",
53
73
"lexicon": 1
54
74
}