Logo
Logo

Security

Tokens, roles, TLS and the deployment boundaries of GenesisDB.

Tokens and roles

TokenVariableCan
AdministratorGENESISDB_AUTH_TOKENeverything, including backup, restore, audit, erase, schema registration and index rebuild
WriterGENESISDB_WRITE_TOKENread and commit
ReaderGENESISDB_READ_TOKENread

Generate each token with openssl rand -hex 32, at least 32 bytes are required. Tokens are store-wide, there are no per-subject permissions. Restart the server to rotate them. Legacy route aliases enforce the same roles.

Network

  • The server binds to 127.0.0.1 by default. Keep it on loopback or a private network.
  • Use TLS before sending bearer tokens over a network: set GENESISDB_TLS_CERT_FILE and GENESISDB_TLS_KEY_FILE, or put a TLS reverse proxy in front. TLS 1.2 is the minimum.
  • /ping and the Prometheus metrics are unauthenticated. Keep the metrics listener on a trusted network.
  • The API allows cross-origin requests without cookies. Never put an administrator token into an untrusted web page.

Files

New files and directories are created owner-only (0600 and 0700). Run GenesisDB under an unprivileged account and one process per data directory. Data is not encrypted at rest.

Limits

Nothing is capped by default. For shared or exposed deployments set the optional caps for request size, read size, concurrency and request duration, see Configuration, and add operating system or container quotas for memory, CPU and disk.

Reporting a vulnerability

Report suspected vulnerabilities privately to mail@genesisdb.io. Only the latest release receives fixes.