Headless Raspberry-Pi-Scanner — Speisekammer per eigenständigem Gerät befüllen #196
Labels
No labels
priority/could
priority/must
priority/should
priority/wont
status/blocked
status/claimed
status/done-migrated
type/bug
type/feature
type/infra
type/tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
robert/todo#196
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Story: Headless Raspberry-Pi-Scanner — Speisekammer per eigenständigem Gerät befüllen
As a Nutzer, der einen Barcode-Scanner an einen headless Raspberry Pi anschließt (kein Display, kein Browser),
I want to dass der Pi eigenständig über die Backend-API Produkte in der Speisekammer ein-/auschecken kann,
so that ich Wareneingang/-ausgang direkt am Regal erfassen kann, ohne ein Gerät mit Browser und Kamera-Scan-Modal (#171) offen zu halten.
Background
Es existiert bereits ein browserbasierter Hardware-Scanner-Modus (#171, HID-Tastatur-Emulation auf einer dauerhaft offenen Seite) und ein bestehender Command
ScanPantryProductBarcodeCommand(#94/#104), der Barcode -> Check-in/Check-out/Neuanlage abbildet. Für den Pi wird kein Browser-Frontend benötigt — der Pi soll den Command direkt über eine authentifizierte HTTP-API ansteuern. Es existiert bereits ein API-Key-Mechanismus für externe, nicht-interaktive Clients (X-Api-Key-Header, gebaut für die Rezept-App-Integration #98), der aktuell aber nur zwei Routen erlaubt (ApiKeyAuthenticationMiddleware-Allowlist).Diese Story ist als Architektur-/Spec-Story gedacht: Vor der Implementierung müssen Architect, Backend und Security sich auf einen Vertrag einigen (Auth, Routing, Verhalten bei unbekanntem Barcode ohne UI, Netzwerkerreichbarkeit), bevor Code geschrieben wird.
Acceptance criteria:
ScanPantryProductBarcodeCommandwiederverwendet wird oder ein dedizierter Command/Endpoint für Geräte-Clients eingeführt wird.X-Api-Key-Route-Allowlist (ApiKeyAuthenticationMiddleware) um die gewählte Route erweitert, inkl. eigener Rate-Limit-Policy (analog zurecipe-integration).Out of scope for this story:
Open questions:
Blocked by: Freigabe durch den Menschen. Dieses Issue wird von der autonomen Schleife nicht aufgegriffen, bis das Label status/blocked wieder entfernt wird.