List Facilities
The facilities a fulfillment screen may name — under fulfillment:read.
ISS-122. Sam, a Fulfillment Technician: "The Shipping Tab doesn't show a list of available facilities, even when typing it out." The Shipping wizard's step-2 picker fetched GET /api/orgs/facilities, which is gated on orgs:read — a key no fulfillment role holds. Migration 0053 binds the technician role exactly fulfillment:read + fulfillment:write, and docs/01_decisions/ROOST_V2_ROLE_FUNCTION_MAPPING.md gives the Fulfillment bundle no orgs/facilities grant at all. So every technician got a 403, useFacilities.ts swallowed it as a best-effort enrichment failure, and the picker stayed empty forever — for the only people who work that page. Typing changed nothing, because the filter runs over an empty list.
A manager holding orgs:read saw a full list at the same time, which is how ISS-64 ("all facilities are showing in the List") and this could both be true of one dropdown.
Same move migration 0150 made for parcel search: the key that opens a screen is that screen's own key, never a second module's. Widening orgs:read onto the floor would hand the warehouse every organization, contact and contract to fix a dropdown.
"Contracted" is still decided in exactly one place — orgs/service.py's list_facilities, off BILLING_ELIGIBLE_STAGES plus a facility code — and nothing is re-derived here.
Request
- Base URL: https://api.pigeonly.com (the document declares no server; this is the origin it was published from)
- URL: https://api.pigeonly.com/api/fulfillment/facilities
- Auth: none declared
Query parameters
Response
Successful Response
Changes
No recorded changes to this operation across all 1 revision of this API.