Skip to content

Add server-side filtering for /api/v1/external/filament #807

Description

@DanielNagy

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Feature RequestNew feature or requestansweredProblem has been addressed, issue will be closed if no new comments are made.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions