Zum Inhalt

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.