id.sifa.profile.position
Schema Diff
+20 -1
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 6 non-breaking changes.
Breaking Changes (1)
- ConstraintTightened ConstraintTightened { vertex_id: "id.sifa.profile.position:body.employmentType", sort: "knownValues", old_value: "[\"id.sifa.defs#fullTime\",\"id.sifa.defs#partTime\",\"id.sifa.defs#temporary\",\"id.sifa.defs#seasonal\",\"id.sifa.defs#contract\",\"id.sifa.defs#freelance\",\"id.sifa.defs#selfEmployed\",\"id.sifa.defs#independentWork\",\"id.sifa.defs#internship\",\"id.sifa.defs#apprenticeship\",\"id.sifa.defs#fellowship\",\"id.sifa.defs#trainee\",\"id.sifa.defs#volunteer\"]", new_value: "[\"id.sifa.defs#fullTime\",\"id.sifa.defs#partTime\",\"id.sifa.defs#temporary\",\"id.sifa.defs#seasonal\",\"id.sifa.defs#contract\",\"id.sifa.defs#freelance\",\"id.sifa.defs#selfEmployed\",\"id.sifa.defs#independentWork\",\"id.sifa.defs#internship\",\"id.sifa.defs#apprenticeship\",\"id.sifa.defs#fellowship\",\"id.sifa.defs#trainee\",\"id.sifa.defs#volunteer\",\"id.sifa.defs#boardMember\",\"id.sifa.defs#boardObserver\",\"id.sifa.defs#advisor\"]" }
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.position:body.onBehalfOf" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.position:body.onBehalfOfDid" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.position:body.onBehalfOfEntityRef" }
- AddedEdge AddedEdge { src: "id.sifa.profile.position:body", tgt: "id.sifa.profile.position:body.onBehalfOf", kind: "prop", name: Some("onBehalfOf") }
- AddedEdge AddedEdge { src: "id.sifa.profile.position:body", tgt: "id.sifa.profile.position:body.onBehalfOfDid", kind: "prop", name: Some("onBehalfOfDid") }
- AddedEdge AddedEdge { src: "id.sifa.profile.position:body", tgt: "id.sifa.profile.position:body.onBehalfOfEntityRef", kind: "prop", name: Some("onBehalfOfEntityRef") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "id.sifa.profile.position:body.onBehalfOf" }AddedVertex { vertex_id: "id.sifa.profile.position:body.onBehalfOfDid" }AddedVertex { vertex_id: "id.sifa.profile.position:body.onBehalfOfEntityRef" }
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "id.sifa.profile.position:body.employmentType", sort: "knownValues", old_value: "[\"id.sifa.defs#fullTime\",\"id.sifa.defs#partTime\",\"id.sifa.defs#temporary\",\"id.sifa.defs#seasonal\",\"id.sifa.defs#contract\",\"id.sifa.defs#freelance\",\"id.sifa.defs#selfEmployed\",\"id.sifa.defs#independentWork\",\"id.sifa.defs#internship\",\"id.sifa.defs#apprenticeship\",\"id.sifa.defs#fellowship\",\"id.sifa.defs#trainee\",\"id.sifa.defs#volunteer\"]", new_value: "[\"id.sifa.defs#fullTime\",\"id.sifa.defs#partTime\",\"id.sifa.defs#temporary\",\"id.sifa.defs#seasonal\",\"id.sifa.defs#contract\",\"id.sifa.defs#freelance\",\"id.sifa.defs#selfEmployed\",\"id.sifa.defs#independentWork\",\"id.sifa.defs#internship\",\"id.sifa.defs#apprenticeship\",\"id.sifa.defs#fellowship\",\"id.sifa.defs#trainee\",\"id.sifa.defs#volunteer\",\"id.sifa.defs#boardMember\",\"id.sifa.defs#boardObserver\",\"id.sifa.defs#advisor\"]" }
Additional Notes
- Non-breaking: AddedEdge { src: "id.sifa.profile.position:body", tgt: "id.sifa.profile.position:body.onBehalfOf", kind: "prop", name: Some("onBehalfOf") }
- Non-breaking: AddedEdge { src: "id.sifa.profile.position:body", tgt: "id.sifa.profile.position:body.onBehalfOfDid", kind: "prop", name: Some("onBehalfOfDid") }
- Non-breaking: AddedEdge { src: "id.sifa.profile.position:body", tgt: "id.sifa.profile.position:body.onBehalfOfEntityRef", kind: "prop", name: Some("onBehalfOfEntityRef") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "Record representing a single work position or role.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"company": {
10
10
"description": "Company or organization name. Optional: omit for self-employed, freelance, contract, or independent work that has no separately named or registered entity.",
11
11
"maxGraphemes": 256,
12
12
"maxLength": 2560,
13
13
"minLength": 1,
14
14
"type": "string"
15
15
},
16
16
"companyDid": {
17
17
"description": "DID of the company's ATproto account, if one exists. Enables verified company linking.",
18
18
"format": "did",
19
19
"type": "string"
20
20
},
21
21
"createdAt": {
22
22
"description": "Client-declared timestamp when this record was originally created.",
23
23
"format": "datetime",
24
24
"type": "string"
25
25
},
26
26
"description": {
27
27
"description": "Description of responsibilities, achievements, and duties.",
28
28
"maxGraphemes": 5000,
29
29
"maxLength": 50000,
30
30
"type": "string"
31
31
},
32
32
"employmentType": {
33
33
"description": "Type of employment (full-time, part-time, contract, etc.).",
34
34
"knownValues": [
35
35
"id.sifa.defs#fullTime",
36
36
"id.sifa.defs#partTime",
37
37
"id.sifa.defs#temporary",
38
38
"id.sifa.defs#seasonal",
39
39
"id.sifa.defs#contract",
40
40
"id.sifa.defs#freelance",
41
41
"id.sifa.defs#selfEmployed",
42
42
"id.sifa.defs#independentWork",
43
43
"id.sifa.defs#internship",
44
44
"id.sifa.defs#apprenticeship",
45
45
"id.sifa.defs#fellowship",
46
46
"id.sifa.defs#trainee",
47
-
"id.sifa.defs#volunteer"
47
+
"id.sifa.defs#volunteer",
48
+
"id.sifa.defs#boardMember",
49
+
"id.sifa.defs#boardObserver",
50
+
"id.sifa.defs#advisor"
48
51
],
49
52
"type": "string"
50
53
},
51
54
"endedAt": {
52
55
"description": "End date of the position in YYYY-MM or YYYY-MM-DD format. Omit if this is a current position.",
53
56
"type": "string"
54
57
},
55
58
"entityRef": {
56
59
"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 org claims an ATproto account. Absent for free-text or independent/self-employed positions.",
57
60
"format": "uri",
58
61
"type": "string"
59
62
},
60
63
"isPrimary": {
61
64
"description": "Whether this is the user's primary current position, displayed on the identity card.",
62
65
"type": "boolean"
63
66
},
64
67
"labels": {
65
68
"description": "Self-label values for this position record.",
66
69
"refs": [
67
70
"com.atproto.label.defs#selfLabels"
68
71
],
69
72
"type": "union"
70
73
},
71
74
"location": {
72
75
"description": "Work location. Sifa enforces ISO 3166-1 alpha-2 country codes at the app layer.",
73
76
"ref": "community.lexicon.location.address",
74
77
"type": "ref"
75
78
},
79
+
"onBehalfOf": {
80
+
"description": "Name of the party this role is held on behalf of, when the person represents someone else — most often a fund whose board seat this is. A disclosure, not a role type. Omit for independent seats.",
81
+
"maxGraphemes": 256,
82
+
"maxLength": 2560,
83
+
"type": "string"
84
+
},
85
+
"onBehalfOfDid": {
86
+
"description": "DID of the represented party's ATproto account, if one exists. May resolve to an organization or to a person (e.g. a family-office principal).",
87
+
"format": "did",
88
+
"type": "string"
89
+
},
90
+
"onBehalfOfEntityRef": {
91
+
"description": "Portable, app-neutral identifier for the represented party selected from a resolver dropdown: a Wikidata Q-ID URI, a ROR URI, or an LEI URI. Absent for free-text entries.",
92
+
"format": "uri",
93
+
"type": "string"
94
+
},
76
95
"skills": {
77
96
"description": "Skills used in this position. Each entry is a URI reference to an id.sifa.profile.skill record owned by the same DID.",
78
97
"items": {
79
98
"ref": "id.sifa.defs#skillRef",
80
99
"type": "ref"
81
100
},
82
101
"maxLength": 50,
83
102
"type": "array"
84
103
},
85
104
"startedAt": {
86
105
"description": "Start date of the position in YYYY-MM or YYYY-MM-DD format.",
87
106
"type": "string"
88
107
},
89
108
"title": {
90
109
"description": "Job title or role name.",
91
110
"maxGraphemes": 256,
92
111
"maxLength": 2560,
93
112
"minLength": 1,
94
113
"type": "string"
95
114
},
96
115
"workplaceType": {
97
116
"description": "Workplace arrangement (on-site, remote, hybrid).",
98
117
"knownValues": [
99
118
"id.sifa.defs#onSite",
100
119
"id.sifa.defs#remote",
101
120
"id.sifa.defs#hybrid"
102
121
],
103
122
"type": "string"
104
123
}
105
124
},
106
125
"required": [
107
126
"title",
108
127
"startedAt",
109
128
"createdAt"
110
129
],
111
130
"type": "object"
112
131
},
113
132
"type": "record"
114
133
}
115
134
},
116
135
"description": "A work experience entry in the user's professional profile.",
117
136
"id": "id.sifa.profile.position",
118
137
"lexicon": 1
119
138
}