id.sifa.profile.project
Schema Diff
+10 -1
Compatibility Analysis
Backward Compatible
Backward compatible. 6 non-breaking changes.
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "id.sifa.defs#projectMemberRef" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.project:body.members" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.project:body.members:items" }
- AddedEdge AddedEdge { src: "id.sifa.profile.project:body", tgt: "id.sifa.profile.project:body.members", kind: "prop", name: Some("members") }
- AddedEdge AddedEdge { src: "id.sifa.profile.project:body.members", tgt: "id.sifa.profile.project:body.members:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "id.sifa.profile.project:body.members:items", tgt: "id.sifa.defs#projectMemberRef", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "id.sifa.defs#projectMemberRef" }AddedVertex { vertex_id: "id.sifa.profile.project:body.members" }AddedVertex { vertex_id: "id.sifa.profile.project:body.members:items" }
Additional Notes
- Non-breaking: AddedEdge { src: "id.sifa.profile.project:body", tgt: "id.sifa.profile.project:body.members", kind: "prop", name: Some("members") }
- Non-breaking: AddedEdge { src: "id.sifa.profile.project:body.members", tgt: "id.sifa.profile.project:body.members:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "id.sifa.profile.project:body.members:items", tgt: "id.sifa.defs#projectMemberRef", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "Record representing a single project.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"createdAt": {
10
10
"description": "Client-declared timestamp when this record was originally created.",
11
11
"format": "datetime",
12
12
"type": "string"
13
13
},
14
14
"description": {
15
15
"description": "Description of the project, the user's role, and outcomes.",
16
16
"maxGraphemes": 5000,
17
17
"maxLength": 50000,
18
18
"type": "string"
19
19
},
20
20
"endedAt": {
21
21
"description": "Project end date in YYYY-MM or YYYY-MM-DD format. Omit if ongoing.",
22
22
"type": "string"
23
23
},
24
24
"labels": {
25
25
"description": "Self-label values for this project record.",
26
26
"refs": [
27
27
"com.atproto.label.defs#selfLabels"
28
28
],
29
29
"type": "union"
30
30
},
31
+
"members": {
32
+
"description": "Other people who worked on this project. Each entry is a claim by the record author and is not self-verifying: the named person supplies the other half by publishing an id.sifa.confirmation record whose subject is this record and whose relation is id.sifa.defs#projectMember. Until they do, consumers must render the entry without their display name, avatar, or profile link. Confirming never puts this record on the named person's profile: it lives in the author's repository and the author can rename it at any time. A named person who wants the project on their profile keeps their own id.sifa.profile.project record and points its projectRef here.",
33
+
"items": {
34
+
"ref": "id.sifa.defs#projectMemberRef",
35
+
"type": "ref"
36
+
},
37
+
"maxLength": 50,
38
+
"type": "array"
39
+
},
31
40
"name": {
32
41
"description": "Project name.",
33
42
"maxGraphemes": 256,
34
43
"maxLength": 2560,
35
44
"minLength": 1,
36
45
"type": "string"
37
46
},
38
47
"position": {
39
48
"description": "Reference to the associated id.sifa.profile.position record, if applicable.",
40
49
"ref": "com.atproto.repo.strongRef",
41
50
"type": "ref"
42
51
},
43
52
"projectRef": {
44
-
"description": "Reference to the first-class id.sifa.project.self record, if this personal project entry corresponds to a collaborative project.",
53
+
"description": "Reference to the same project as recorded elsewhere: another person's id.sifa.profile.project entry for the work you shared, or a first-class id.sifa.project.self record. Set when you were named as a member of someone else's entry and keep your own version of it, so consumers can tell the two describe one project instead of showing it twice.",
45
54
"ref": "com.atproto.repo.strongRef",
46
55
"type": "ref"
47
56
},
48
57
"startedAt": {
49
58
"description": "Project start date in YYYY-MM or YYYY-MM-DD format.",
50
59
"type": "string"
51
60
},
52
61
"url": {
53
62
"description": "URL of the project (website, repository, demo, etc.).",
54
63
"format": "uri",
55
64
"type": "string"
56
65
}
57
66
},
58
67
"required": [
59
68
"name",
60
69
"createdAt"
61
70
],
62
71
"type": "object"
63
72
},
64
73
"type": "record"
65
74
}
66
75
},
67
76
"description": "A project the user has worked on.",
68
77
"id": "id.sifa.profile.project",
69
78
"lexicon": 1
70
79
}