Repository navigation
FIG-47098: Document ITBM person_list read/write for v3 authors - #291
Open
birocorneliu wants to merge 2 commits into
Open
birocorneliu wants to merge 2 commits into
birocorneliu wants to merge 2 commits into
Conversation
- New v3 schemas: PersonListEntry (GET shape: merged with the user,
masked emails, has_account, no empty values), PersonListEntryCreate
(write rules: user_id entries and overrides, typed entries and exact
matching, limits, 422 paths), PersonListAffiliation and
PersonListAuthorsCreator.
- Item and collection authors endpoints (v3): read and change the
authors person_list field; POST appends, PUT replaces, DELETE removes
the entry for a user_id; 422 with the entry path.
- fields descriptions: person_list fields use PersonListEntry instead
of the legacy {id, url_name, is_active, ...} author shape.
- Author search (v3): users with an account only.
- The request schemas carry no enum/length constraints, so figcore's
422 with the offending path is what clients get.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
birocorneliu
requested review from
adienasoaie,
bogdan7g,
ropa1295,
sorinb-figshare and
teodoragrosu
as code owners
November 5, 2026 10:24
is_corresponding, affiliations and contributors are stored as sent on each entry, so leaving them out removes them; only the user override keys (first_name, last_name, email, orcid_id) keep their stored value. The affiliations description said the opposite. Also say that POST error paths index the sent list, and restore the standard uri format on the authors Location headers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Jira: https://digital-science.atlassian.net/browse/FIG-47098
Summary
Documents the v3 contract for ITBM person_list fields (
authors,supervisors, custom person lists) introduced by FIG-47085: the GET shape, the write rules enforced by figcore'sPersonListProcessor, and the reworked v3 authors endpoints. v3 overlay only; the v2 spec (swagger.json) is unchanged.Changes
components/v3.0/inclusions.yaml: new schemasPersonListEntry: GET shape (type,user_id, read-onlyhas_account, merged names/ORCID, masked email,affiliations/is_correspondingfor people,name/ror_id/contributorsfor organizations; empty values left out). It's the write format, so a GET → PUT round trip is a no-op.PersonListEntryCreate: write rules (entries withuser_idand overrides; typed entries and exact matching; limits; 422 paths).PersonListAffiliation,PersonListAuthorsCreator.components/v3.0/overrides.yaml: thefieldsdescriptions (item and collection, public and private) point person_list fields toPersonListEntryinstead of the legacy{id, url_name, is_active, ...}author shape.paths/v3.0/inclusions.yaml:/account/items/{item_id}/authors[/{author_id}]: rewritten. The endpoints read and change the item'sauthorsfield; POST appends, PUT replaces, DELETE removes the entry for auser_id; 422 with the entry path./account/collections/{collection_id}/authors[/{author_id}]: the same, as v3 overrides of the v2 paths./account/authors/search: v3 override, users with an account only (no ghost users, no organizations).docs/versions/swagger_v3.0.json: regenerated withmake docs.Testing
make docs(merge + bundles): onlyswagger_v3.0.jsonchanges;swagger.json(v2) is identical.openapi-spec-validatoronswagger_v3.0.json: valid.Notes
api_docssubmodule to it.nullable, but noenum/ length /readOnlyconstraints. apiv1 validates requests against this spec, so such constraints would turn figcore's 422 (with the offending path, e.g.authors[0].type) into a generic 400. A wrong JSON type (e.g.is_corresponding: "yes") is still a 400 from request validation, as for every v3 body.🤖 Generated with Claude Code