pub.chive.actor.profile
Schema Diff
+4 -3
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 0 non-breaking changes.
Breaking Changes (2)
- ConstraintAdded ConstraintAdded { vertex_id: "pub.chive.actor.profile:body.orcid", sort: "maxLength", value: "19" }
- ConstraintAdded ConstraintAdded { vertex_id: "pub.chive.actor.profile:body.orcid", sort: "minLength", value: "19" }
Migration Guidance
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "pub.chive.actor.profile:body.orcid", sort: "maxLength", value: "19" }
- ConstraintAdded ConstraintAdded { vertex_id: "pub.chive.actor.profile:body.orcid", sort: "minLength", value: "19" }
1
1
{
2
2
"id": "pub.chive.actor.profile",
3
3
"defs": {
4
4
"main": {
5
-
"key": "self",
5
+
"key": "literal:self",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"properties": {
10
10
"bio": {
11
11
"type": "string",
12
12
"maxLength": 2000
13
13
},
14
14
"orcid": {
15
15
"type": "string",
16
-
"pattern": "^\\d{4}-\\d{4}-\\d{4}-\\d{3}[0-9X]$",
17
-
"description": "ORCID identifier"
16
+
"maxLength": 19,
17
+
"minLength": 19,
18
+
"description": "ORCID identifier in the form 0000-0000-0000-000X. The Lexicon spec defines no `pattern` constraint for strings, so the regular expression that used to sit here was ignored by every validator and this field accepted any string. Length is the strongest constraint the spec can express; the digit and checksum shape is enforced in application code."
18
19
},
19
20
"avatar": {
20
21
"type": "blob",
21
22
"accept": [
22
23
"image/png",
23
24
"image/jpeg"
24
25
],
25
26
"maxSize": 1048576
26
27
},
27
28
"dblpId": {
28
29
"type": "string",
29
30
"maxLength": 200,
30
31
"description": "DBLP author identifier (e.g., homepages/s/JohnSmith)"
31
32
},
32
33
"fieldUris": {
33
34
"type": "array",
34
35
"items": {
35
36
"type": "string",
36
37
"format": "at-uri"
37
38
},
38
39
"maxLength": 20,
39
40
"description": "AT-URIs of field nodes (subkind=field)"
40
41
},
41
42
"openAlexId": {
42
43
"type": "string",
43
44
"maxLength": 50,
44
45
"description": "OpenAlex author ID (e.g., A5023888391)"
45
46
},
46
47
"displayName": {
47
48
"type": "string",
48
49
"maxLength": 200
49
50
},
50
51
"affiliations": {
51
52
"type": "array",
52
53
"items": {
53
54
"ref": "pub.chive.defs#affiliation",
54
55
"type": "ref"
55
56
},
56
57
"maxLength": 10,
57
58
"description": "Current institutional affiliations with optional ROR IDs"
58
59
},
59
60
"nameVariants": {
60
61
"type": "array",
61
62
"items": {
62
63
"type": "string",
63
64
"maxLength": 200
64
65
},
65
66
"maxLength": 20,
66
67
"description": "Alternative name forms for paper matching (e.g., maiden name, transliterations, initials like 'J. Smith')"
67
68
},
68
69
"openReviewId": {
69
70
"type": "string",
70
71
"maxLength": 100,
71
72
"description": "OpenReview profile ID"
72
73
},
73
74
"arxivAuthorId": {
74
75
"type": "string",
75
76
"maxLength": 100,
76
77
"description": "arXiv author identifier"
77
78
},
78
79
"schemaRevision": {
79
80
"type": "integer",
80
81
"minimum": 1,
81
82
"description": "Schema revision this record was created with. Absent means revision 1."
82
83
},
83
84
"scopusAuthorId": {
84
85
"type": "string",
85
86
"maxLength": 50,
86
87
"description": "Scopus author ID"
87
88
},
88
89
"googleScholarId": {
89
90
"type": "string",
90
91
"maxLength": 50,
91
92
"description": "Google Scholar profile ID"
92
93
},
93
94
"researchKeywords": {
94
95
"type": "array",
95
96
"items": {
96
97
"ref": "#keyword",
97
98
"type": "ref"
98
99
},
99
100
"maxLength": 50,
100
101
"description": "Research topics and keywords with optional authority IDs"
101
102
},
102
103
"semanticScholarId": {
103
104
"type": "string",
104
105
"maxLength": 50,
105
106
"description": "Semantic Scholar author ID"
106
107
},
107
108
"previousAffiliations": {
108
109
"type": "array",
109
110
"items": {
110
111
"ref": "pub.chive.defs#affiliation",
111
112
"type": "ref"
112
113
},
113
114
"maxLength": 20,
114
115
"description": "Past institutional affiliations that may appear on older papers"
115
116
}
116
117
}
117
118
},
118
119
"description": "Chive-specific author profile"
119
120
},
120
121
"keyword": {
121
122
"type": "object",
122
123
"required": [
123
124
"label"
124
125
],
125
126
"properties": {
126
127
"label": {
127
128
"type": "string",
128
129
"maxLength": 100,
129
130
"description": "Keyword label (display fallback if no topicUri)"
130
131
},
131
132
"fastId": {
132
133
"type": "string",
133
134
"maxLength": 20,
134
135
"description": "FAST subject heading ID for legacy/external data"
135
136
},
136
137
"topicUri": {
137
138
"type": "string",
138
139
"format": "at-uri",
139
140
"description": "AT-URI of topic node (subkind=topic)"
140
141
},
141
142
"wikidataId": {
142
143
"type": "string",
143
144
"maxLength": 20,
144
145
"description": "Wikidata entity ID (e.g., Q12345) for legacy/external data"
145
146
}
146
147
},
147
148
"description": "Research keyword referencing a topic node"
148
149
}
149
150
},
150
151
"$type": "com.atproto.lexicon.schema",
151
152
"lexicon": 1,
152
153
"revision": 2
153
154
}