Bereiche & Berechtigungen
Integrations-JWTs enthalten ein scopes-Array. Jede v2-Route erfordert einen bestimmten Bereich; fehlender Bereich liefert 403 insufficient_scope.
Standard-Bereiche
Alle per API-Schlüssel ausgestellten Tokens enthalten:
| Bereich |
Zugriff |
orders.read |
Bestellungen auflisten und abrufen |
orders.write |
Bestellungen anlegen, aktualisieren, Status patchen |
order_requests.write |
Bestellanfragen einreichen (v2) |
prescriptions.read |
Rezepte auflisten und abrufen |
prescriptions.write |
Rezepte einreichen |
products.read |
Shops und Shop-Produkte auflisten |
products.write |
Bestand erweitern, Produkt aktualisieren, Shop-Zuordnung, Overrides |
inventory.read |
Bestand, Log, Historie |
inventory.write |
Bestand anpassen |
reports.read |
Statistiken, Produktperformance, Umsatz, PharmaOne-Gebühren |
Beispiel dekodiertes JWT:
{
"org_id": "org1",
"scopes": [
"orders.read",
"orders.write",
"order_requests.write",
"prescriptions.read",
"prescriptions.write",
"products.read",
"products.write",
"inventory.read",
"inventory.write",
"reports.read"
],
"iss": "pharmaone-integration",
"sub": "integration"
}
Bereich-zu-Route-Matrix
Bestellungen
| Route |
Bereich |
GET /orders, GET /orders/{id} |
orders.read |
POST /orders, PUT /orders/{id}, PATCH /orders/{id}/status |
orders.write |
Bestellanfragen
| Route |
Bereich |
POST /order-requests |
order_requests.write |
Rezepte
| Route |
Bereich |
GET /prescriptions, GET /prescriptions/{id} |
prescriptions.read |
POST /prescriptions |
prescriptions.write |
Produkte & Shops
| Route |
Bereich |
GET /shops, GET /products |
products.read |
POST /products/add-to-inventory, PUT /products/{id} |
products.write |
POST /shops/attach-product, detach-product, product-overrides |
products.write |
Bestand
| Route |
Bereich |
GET /inventory, GET /inventory/{id}/log, GET /inventory/{id}/history |
inventory.read |
POST /inventory/adjust |
inventory.write |
Berichte
| Route |
Bereich |
Alle GET /reports/* |
reports.read |
Antwort bei unzureichendem Bereich
{
"error": "insufficient_scope",
"message": "Missing scope: inventory.write"
}
Zukunft: granulare Schlüssel
Derzeit erhalten alle Integrations-Schlüssel den vollen Standard-Bereichssatz. Eine Reduktion pro Schlüssel kann später ergänzt werden; planen Sie Integrationen konzeptionell nur mit benötigten Bereichen.