Skip to main content
The agent is configured with environment variables. It has no configuration file and no command-line flags.

Image

  • Public on GitHub Container Registry. No login needed.
  • Built for linux/amd64 and linux/arm64.
  • Runs as a non-root user (UID 10001).
  • Exposes no port.
  • There is no latest tag. Pin a version, or a digest.

Verify the signature

Each release is signed with Sigstore cosign, keyless, from the GitHub Actions workflow that builds it:

Environment variables

string
required
The database to serve, with a read-only account. Always required.
Accepted schemes: postgresql, postgres, mysql, mariadb. A driver suffix such as postgresql+asyncpg is accepted and ignored. The port defaults to 5432 for PostgreSQL and 3306 for MySQL and MariaDB. URL-encode special characters in the user name and password.The value never leaves the machine. It appears in no message and no log.
string
The single-use token from the dashboard. Required on the first start only. Once enrolled, the agent ignores it.
string
Required on the first start only. Use https://api.concatflow.com. Must be https://.
string
default:"/data"
Where the agent stores its credentials. Mount a persistent volume here.

The data directory

After enrolling, the data directory holds two files, both readable by the agent’s user only (0600): During enrollment, a third file, agent.seed, holds the private key until enrollment completes. If enrollment is interrupted, the agent reuses it on the next start, with the same token.
agent.creds grants access to your dataset’s connection. Treat the volume like a secret: do not copy it, and do not share it between agents.
Losing the volume means losing the enrollment. Revoke the old agent and enroll again with a new token.

Logs

The agent logs to standard output, one line per event:
The agent does not log queries or their results.

Exit codes

Stopping

On SIGTERM, the agent stops taking new requests and gives running ones up to 30 seconds to finish. Docker only waits 10 seconds by default. Add --stop-timeout 30 to docker run to let long queries finish.

Limits

An agent runs up to 4 queries at a time. Further queries wait their turn. For more capacity, run a second agent.