Upsert Feedback
Insert or update one feedback row, keyed by its anchor tuple.
The request schema validates that the aspect is valid for the scope and that the sentiment/category combination is coherent (reports carry a category and no sentiment; every other aspect carries a 3-point sentiment).
Authorizations
A personal access token (haico_pat_...), created under Profile → API keys. Send it as Authorization: Bearer <key>. The browser session JWT is also accepted but is an internal mechanism and is not part of the public contract.
Body
Upsert payload for one piece of user feedback.
Only the structural shape is validated here (the presentation vocabulary —
dimension aspects, report categories, reason tags — is owned by the
frontend, so it can evolve without a backend change). The rules are:
the scope must be known; the aspect must be a well-formed slug; a report
carries a category and no sentiment; every other aspect carries a
3-point sentiment and an optional category.
1 - 255x >= 0244016642000scope='artifact' only: which artifact this rates (0/None = live document)