Skip to content
Accquix Register
Esc
↑↓navigate↵open⌘Jpreview
On this page

Configuration

Every command of the accquix-register binary and every REGISTER_* environment variable, with its default, for serve, sync, migrate and demo.

Configuration comes from environment variables only. Every secret NAME can instead be given as NAME_FILE, a path to a file holding the value; setting both is an error.

Commands

Command What it does
migrate [up] Applies the embedded schema migrations.
migrate status Lists the migrations and whether each is applied.
migrate down-to N Rolls back to version N (0 = empty schema). For development.
sync [--source rpo|fs|all] One sync pass (default all).
sync --every 1h Repeats the pass until stopped. A failed pass is logged; the schedule continues.
sync --unblock --source rpo / fs:<list> Restores a source after a validation block.
serve The HTTP API.
suppress --subject <IČO> [--reason TEXT] Records an objection: keeps a subject out of name search. Prints the objection’s number.
suppress --undo --id N Revokes one objection, and says whether another still hides the subject.
suppress --list [--id N] Prints every objection with its number; with --id, the records it covers and why.
suppress --release --id N --record R Excludes one record from an objection (a wrong link); --unrelease withdraws it.
suppress --export --output FILE [--overwrite] Writes the backup of the objections. Keep the file private.
suppress --restore FILE Puts a backup back (- reads standard input) and confirms the installation.
suppress --init-empty Confirms a new installation with no objections to restore.
mcp --url URL MCP over stdio for a local AI client; forwards to the REST API at URL. See AI agents (MCP).
mcp-tools Prints the MCP tool list.
demo Migrates, then loads fictional subjects into a new, empty database and marks it as a demo for good; sync then refuses it. See Quick start.
openapi Prints the OpenAPI 3.1 document.
version Prints the version.

Exit codes: 0 success (also when another sync holds the lock), 1 failure (including a blocked source), 2 a command-line mistake.

Database

Variable Default Meaning
REGISTER_DATABASE_URL (secret) — PostgreSQL connection string; used by serve.
REGISTER_MIGRATE_DATABASE_URL (secret) REGISTER_DATABASE_URL Used by migrate, for example with a DDL role.
REGISTER_SYNC_DATABASE_URL (secret) REGISTER_DATABASE_URL Used by sync. A direct connection, not a pooler.
REGISTER_OPERATOR_DATABASE_URL (secret) REGISTER_SYNC_DATABASE_URL Used by suppress: the role that may change objections. A direct connection.
REGISTER_DB_ROLE_API, _SYNC, _OPERATOR — Names of the database roles; migrate grants each exactly the table rights it needs. Unset: nothing is granted.
REGISTER_LOG_LEVEL info debug, info, warn, error. Logs never contain names, queries or identifiers.

Sync

Variable Default Meaning
REGISTER_RPO_BUCKET_URL the official bucket Base URL of the RPO bulk files.
REGISTER_FS_BASE_URL https://report.financnasprava.sk Base URL of the list exports.
REGISTER_WORK_DIR <temp>/accquix-register Downloads in progress.
REGISTER_DOWNLOAD_CONCURRENCY 6 Parallel snapshot downloads.
REGISTER_RPO_PART_RECORDS 100000 Records in every snapshot part except the last.
REGISTER_RPO_DAILY_MAX_RECORDS 20000 A larger daily file is rejected.
REGISTER_RPO_SNAPSHOT_MIN_RATIO 0.98 A smaller new snapshot blocks absence marking.
REGISTER_ABSENCE_MAX_RATIO 0.005 RPO: absence marking above this share of active records is blocked.
REGISTER_RPO_DATE_SKEW_DAYS 1 RPO: a file whose exportDate is further than this from the date in its name is rejected; a date after tomorrow always is.
REGISTER_RPO_BOOTSTRAP_MIN_RECORDS 2200000 RPO: a first snapshot with fewer records is not published.
REGISTER_RPO_SNAPSHOT_SETTLE 2h RPO: a snapshot is used only when its newest file has been in the bucket this long.
REGISTER_FS_SKIP_MIN_ROWS false Drops the row floors of the lists (ds_dphs 100 000, ds_dsrdp 500 000, ds_iz_ran 200 000, ds_dphv 10 000, ds_dphz 1 000, ds_dpho 300).
REGISTER_FS_MAX_DROP per list Overrides the drop threshold of every list (defaults: 0.03 for ds_dsrdp, ds_dphs, ds_iz_ran; 0.20 for the small lists).

API

Variable Default Meaning
REGISTER_LISTEN :8080 Listen address.
REGISTER_API_KEYS (secret) — name:sha256hex,…: hashes of the keys.
REGISTER_ALLOW_ANONYMOUS false Serve without keys; disables the natural-person DIČ lookup.
REGISTER_SEARCH_FUZZY true Enables mode=fuzzy.
REGISTER_MCP false Serves the read-only MCP endpoint /mcp for AI agents.
REGISTER_MCP_ALLOWED_ORIGINS — Browser origins allowed to call /mcp, comma-separated. Empty refuses all.
REGISTER_MCP_KEY (secret) — For mcp --url: the API key sent to the instance.
REGISTER_RATE_PER_SECOND / REGISTER_RATE_BURST 20 / 40 Token bucket per caller, per instance.
REGISTER_FUZZY_EVERY 5s One fuzzy search per caller per interval (burst 2).
REGISTER_FUZZY_CONCURRENCY 1 Fuzzy searches at once, per instance.
REGISTER_FUZZY_TIMEOUT 2s Timeout of a fuzzy search.
REGISTER_QUERY_TIMEOUT 3s Timeout of a default search or lookup.
REGISTER_MAX_IN_FLIGHT the pool size Data requests the instance runs at once. Beyond that a request waits REGISTER_ADMIT_WAIT, then gets 503 with reason: overloaded, so an overloaded instance keeps serving at its capacity.
REGISTER_ADMIT_WAIT 250ms How long a request waits for a free slot.
REGISTER_SEARCH_WORD_STEP_MAX / REGISTER_SEARCH_WORD_CAP 1000 / 1000 The adaptive word step of the default search.