Add mapbox feedback list/get - #49
mattpodwysocki wants to merge 1 commit into
Conversation
fde2abd to
edb5d60
Compare
1397a9c to
dd59c43
Compare
|
On creating feedback: this hit the same registration wall other disabled operations here already document (tokens:write, fonts:metadata) and that's been raised with the owning team before. A |
dd59c43 to
6290389
Compare
46f5033 to
6290389
Compare
|
@mattpodwysocki Heads-up: I retargeted this PR to I also reviewed it against the Feedback API docs and the live API, and pushed fixes (still one commit,
693 tests, fmt and clippy clean; single-value filters, I've approved, but since I also committed to this PR, it may need an approval from another owner too — could you find one? |
Reads the feedback end users submit from apps built with Mapbox: filterable, sortable, paginated. Hand-authored into custom-openapi/, like search, since openapi-specs has no spec for this API. feedback create, the write side, is declared in the spec but never reaches the command surface: confirmed directly against production that a POST /oauth/register requesting user-feedback:write silently drops it from the granted scope, the same unregistrable shape UNSUPPORTED_OPERATIONS already documents for accounts create-token/update-token/delete-token. Named the disabled operation createFeedbackItem rather than the shorter create: the withheld-operation guard in generate_skills.rs checks the bare command word against every generated file's text, and a bare "create" collides with the exposed, unrelated `styles create`. Since the operation is never reachable either way, the internal name doesn't affect anything user-facing. Puts the "ISO 8601" format note at the end of each *_before/*_after description, so --help doesn't truncate them to that leading sentence. Each filter takes one value for now. The API takes several values only as a repeated parameter (status=a&status=b); a comma-separated value gets a 400 from status and silently matches nothing for feedback_id and category, verified against production. The command builder can't repeat a query parameter yet; that belongs in its own PR. docs/commands.md's counts go from 33 operations across 10 groups to 35 across 11. Smoke-tested against production: list with single-value --status/ --category filters, --order, the pagination cursor, and get by id, all return the documented shape. Confirmed create is absent from --help and errors as an unrecognized subcommand rather than reaching the API. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6290389 to
f5863c9
Compare
What
mapbox feedback list/get: the feedback end users submit from apps built with Mapbox, filterable by id, status, category, a free-text search phrase, trace id, or a time window; sortable; paginated. Hand-authored intocustom-openapi/, likesearch, since openapi-specs has no spec for this API.feedback createis declared in the spec but never reaches the command surface. Confirmed directly against production: aPOST /oauth/registerrequestinguser-feedback:writesilently drops it from the granted scope, the same unregistrable shapeUNSUPPORTED_OPERATIONSalready documents foraccounts create-token/update-token/delete-token. Nomapbox auth logintoken can ever carry it.Based directly on
main; it no longer depends on #43/#44/#45/#48.Worth a reviewer's eye
Naming the disabled operation. It's
createFeedbackItemrather thancreate: the withheld-operation guard ingenerate_skills.rschecks the bare command word against every generated file's text, and a barecreatecollides with the unrelatedstyles create. Caught by that guard failing, not by inspection.Each filter takes one value for now. The API takes several values only as a repeated parameter (
status=a&status=b); the command builder can't repeat a query parameter yet, so multi-value filters are left for a separate PR.Verification
Smoke-tested against production:
listwith single-value--status/--categoryfilters,--orderand the pagination cursor, andgetby id, both return the documented shape.createis absent from--helpand errors as an unrecognized subcommand rather than reaching the API.693 tests,
cargo fmtandcargo clippy --all-targets -- -D warningsclean.🤖 Generated with Claude Code