id.sifa.profile.volunteering
Schema Diff
+17 -5
Compatibility Analysis
Backward Compatible
Backward compatible. 8 non-breaking changes.
Non-Breaking Changes (8)
- AddedVertex AddedVertex { vertex_id: "id.sifa.defs#agentRef" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.volunteering:body.agentRef" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.volunteering:body.entityRef" }
- AddedEdge AddedEdge { src: "id.sifa.profile.volunteering:body", tgt: "id.sifa.profile.volunteering:body.agentRef", kind: "prop", name: Some("agentRef") }
- AddedEdge AddedEdge { src: "id.sifa.profile.volunteering:body", tgt: "id.sifa.profile.volunteering:body.entityRef", kind: "prop", name: Some("entityRef") }
- AddedEdge AddedEdge { src: "id.sifa.profile.volunteering:body.agentRef", tgt: "id.sifa.defs#agentRef", kind: "ref", name: None }
- ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.profile.volunteering:body.startedAt", sort: "format" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.profile.volunteering:body.endedAt", sort: "format" }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "id.sifa.defs#agentRef" }AddedVertex { vertex_id: "id.sifa.profile.volunteering:body.agentRef" }AddedVertex { vertex_id: "id.sifa.profile.volunteering:body.entityRef" }
Constraint Changes
- ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.profile.volunteering:body.startedAt", sort: "format" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.profile.volunteering:body.endedAt", sort: "format" }
Additional Notes
- Non-breaking: AddedEdge { src: "id.sifa.profile.volunteering:body", tgt: "id.sifa.profile.volunteering:body.agentRef", kind: "prop", name: Some("agentRef") }
- Non-breaking: AddedEdge { src: "id.sifa.profile.volunteering:body", tgt: "id.sifa.profile.volunteering:body.entityRef", kind: "prop", name: Some("entityRef") }
- Non-breaking: AddedEdge { src: "id.sifa.profile.volunteering:body.agentRef", tgt: "id.sifa.defs#agentRef", 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 volunteer role.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
+
"agentRef": {
10
+
"description": "The organization, as a single nested reference mirroring the flat organization / organizationDid / entityRef fields. Additive dual-write: the flat fields remain the source of truth for existing consumers.",
11
+
"ref": "id.sifa.defs#agentRef",
12
+
"type": "ref"
13
+
},
9
14
"cause": {
10
15
"description": "Cause area (e.g., 'Education', 'Environment', 'Health').",
11
16
"maxGraphemes": 256,
12
17
"maxLength": 2560,
13
18
"type": "string"
14
19
},
15
20
"createdAt": {
16
21
"description": "Client-declared timestamp when this record was originally created.",
17
22
"format": "datetime",
18
23
"type": "string"
19
24
},
20
25
"description": {
21
26
"description": "Description of volunteer activities and impact.",
22
27
"maxGraphemes": 5000,
23
28
"maxLength": 50000,
24
29
"type": "string"
25
30
},
26
31
"endedAt": {
27
-
"description": "End date. Omit if currently volunteering.",
28
-
"format": "datetime",
32
+
"description": "End date in YYYY-MM or YYYY-MM-DD format. Omit if currently volunteering.",
33
+
"type": "string"
34
+
},
35
+
"entityRef": {
36
+
"description": "Portable, app-neutral identifier for the organization the user selected from a resolver dropdown: a Wikidata Q-ID URI (http://www.wikidata.org/entity/Q...), a ROR URI, or an LEI URI. Enables deterministic resolution to a canonical entity even before the organization claims an ATproto account. Absent for free-text entries.",
37
+
"format": "uri",
29
38
"type": "string"
30
39
},
31
40
"organization": {
32
41
"description": "Organization name.",
33
42
"maxGraphemes": 256,
34
43
"maxLength": 2560,
35
44
"minLength": 1,
36
45
"type": "string"
37
46
},
38
47
"organizationDid": {
39
48
"description": "DID of the organization's ATproto account, if one exists.",
40
49
"format": "did",
41
50
"type": "string"
42
51
},
43
52
"role": {
44
53
"description": "Volunteer role or title.",
45
54
"maxGraphemes": 256,
46
55
"maxLength": 2560,
47
56
"type": "string"
48
57
},
49
58
"startedAt": {
50
-
"description": "Start date of the volunteer role.",
51
-
"format": "datetime",
59
+
"description": "Start date of the volunteer role in YYYY-MM or YYYY-MM-DD format.",
52
60
"type": "string"
53
61
}
54
62
},
55
63
"required": [
56
64
"organization",
57
65
"createdAt"
58
66
],
59
67
"type": "object"
60
68
},
61
-
"type": "record"
69
+
"type": "record",
70
+
"x-skos:closeMatch": [
71
+
"org:Membership",
72
+
"schema:OrganizationRole"
73
+
]
62
74
}
63
75
},
64
76
"description": "A volunteer experience entry in the user's professional profile.",
65
77
"id": "id.sifa.profile.volunteering",
66
78
"lexicon": 1
67
79
}