ShelfDB's RPC layer is designed for trusted local clients, not for untrusted networks.
Important warning
The server and client protocol uses Python object deserialization and can transport Python callables. That is powerful for a Python-native developer workflow, but it is unsafe to expose to untrusted users or the public internet.
Safe usage model
Good uses include:
- local development on your own machine
- communication between trusted local processes
- controlled internal tooling where every client is trusted
Unsafe usage model
Do not treat ShelfDB like a hardened public database server.
Avoid:
- exposing the RPC port to the internet
- accepting requests from unknown users or machines
- placing the server behind a public API without an additional secure boundary
Practical guidance
- Prefer embedded mode unless you specifically need a separate server process.
- If you use server mode, keep it on trusted networks only.
- Prefer loopback or Unix sockets for local development.
- Review your deployment carefully before enabling remote access.
If you need a database service for untrusted clients, ShelfDB is not the right tool for that job.