Is your feature request related to a problem? Please describe.
I’m integrating an ESP32-based NFC reader with Spoolman, similar to Filaman, but for reading bambu NFC tags. The device has to call GET /api/v1/external/filament and then filter the full response locally. The external filament list is large (several MB), which causes very long latency on embedded hardware (up to a few minutes) and high memory usage.
Describe the solution you'd like
Add server-side filtering to GET /api/v1/external/filament so clients can request a smaller subset. The most useful filters would be:
manufacturer=...
id=...
material=...
name=...
color_hex=... and/or color_hexes=...
weight=... (optional)
diameter=... (optional)
This would allow the NFC reader to derive an external filament ID or prefix (e.g., bambulab_pla_aurorapurple) and retrieve the matching entry without downloading the full dataset.
Describe alternatives you've considered
Client-side filtering works on desktops, but it’s too slow and memory-hungry for small devices. I’ve also experimented with caching and local compact indexes, but those add complexity and require periodic syncing. Server-side filtering would be the cleanest and most efficient.
Additional context
This is for Bambu NFC spool auto-registration into spoolman; we derive an external filament ID prefix from the RFID, then look up the external filament entry. Server-side filtering would make this near-instant and far less resource intensive on the ESP32.
Is your feature request related to a problem? Please describe.
I’m integrating an ESP32-based NFC reader with Spoolman, similar to Filaman, but for reading bambu NFC tags. The device has to call GET /api/v1/external/filament and then filter the full response locally. The external filament list is large (several MB), which causes very long latency on embedded hardware (up to a few minutes) and high memory usage.
Describe the solution you'd like
Add server-side filtering to GET /api/v1/external/filament so clients can request a smaller subset. The most useful filters would be:
manufacturer=...id=...material=...name=...color_hex=...and/orcolor_hexes=...weight=...(optional)diameter=...(optional)This would allow the NFC reader to derive an external filament ID or prefix (e.g., bambulab_pla_aurorapurple) and retrieve the matching entry without downloading the full dataset.
Describe alternatives you've considered
Client-side filtering works on desktops, but it’s too slow and memory-hungry for small devices. I’ve also experimented with caching and local compact indexes, but those add complexity and require periodic syncing. Server-side filtering would be the cleanest and most efficient.
Additional context
This is for Bambu NFC spool auto-registration into spoolman; we derive an external filament ID prefix from the RFID, then look up the external filament entry. Server-side filtering would make this near-instant and far less resource intensive on the ESP32.