Upsert Crew Profile
Create or update a user’s crew profile (partial). All fields on the payload are optional; only those provided are written.
Authz: self OR staff (admin/office-admin/office-employee) in the same org.
Field authority: the Employment block (employee #, position, ship type,
contract group, payscale) is office-editable only. A self-PATCH that tries
to change those fields is rejected with 403 field_forbidden — the
frontend renders them read-only, so this only fires on a tampered or buggy
client.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
Fields the API accepts for create-or-update. Lazy provisioning: the first PATCH for a user creates the row; subsequent PATCHes update in place. All fields are optional partial updates.
Response
Successful Response
API response shape (camelCase). Same fields as the DB DTO; the response form keeps the surface stable even if internal naming evolves.