Key concepts
How a worker connects
The connection is established once at startup and then kept alive for the lifetime of the process:- The worker starts and reads its connection settings.
- It authenticates to the platform with the workspace API key.
- It registers with the platform and starts pulling scan jobs.
- It executes each job’s steps, reporting progress and results back.
- The platform’s job registry tracks the job through each stage: waiting, running, and then finished successfully, failed, or cancelled.
A worker that cannot connect is almost always a credential problem: an invalid, revoked, or missing workspace API key. Check the worker logs first — they name the failing request and the platform’s response.
Connect a worker
Prerequisites
- A running platform that the worker can reach.
- A workspace API key. Generate or copy one from Settings → API Keys — see API keys.
Always use a real workspace API key. A worker running with a placeholder value cannot connect to your workspace.
Step-by-step
1
Generate or obtain a workspace API key
Open Settings → API Keys in the Console. If no key exists yet, click Rotate to create one and copy it immediately — the key is shown once and cannot be retrieved later. Treat it like a password.
2
Configure the connection settings on the worker host
Set the worker’s connection settings — at minimum the workspace API key. The remaining settings have sensible defaults for a standard deployment.
3
Start the worker
Run the worker in the way that fits your environment — as a container, a system service, or the local CLI.
4
Verify the worker appears as connected
Open Management → Workers in the Console and switch to the Workspace tab. The worker should appear with a green connected status badge. If it does not, follow the troubleshooting steps below.
Run a worker with Docker Compose
The simplest path is the worker service shipped in the platform’s Docker Compose deployment. Configure the workspace API key and the connection settings for the platform, then start the worker service. The stack mounts a shared tools folder where the scanning tools are installed once and cached, so tool installation does not repeat for every job.Run a worker from the Console
On the Workers page, use the Connect worker button. It shows a ready-to-run command for your environment, pre-filled with the workspace API key and the host you are browsing from. Options are available for running from source (DevMode), on Linux, and on Windows.Worker scope
Each worker operates under a scope that determines which jobs it may pull: The Workers page shows workers under Global and Workspace tabs. A worker bound to a workspace serves that workspace’s jobs; a Global worker has access to jobs from any workspace.Scaling workers
Workers scale horizontally without shared state — add instances and the platform distributes jobs among whoever is ready.- Run more instances. Launch additional worker instances using the same workspace API key. Each pulls the next available job when it has capacity.
- Allow more parallel jobs on powerful hosts. The default concurrency setting bounds how many jobs one worker executes at once. Treat it as a per-host budget: raise it when the host has spare CPU and memory, lower it when jobs share tools or targets and you see timeouts.
- Prefer more instances over extreme concurrency. More instances spread load across machines; a very high concurrency value saturates one machine.
Connection settings
Workers authenticate with the workspace API key and read a small set of connection settings that point them at the platform and control how many jobs they run in parallel. The defaults match a standard deployment; change them only when your setup differs.Troubleshooting
Jobs stay stuck in the waiting stage
Jobs stay stuck in the waiting stage
A job only leaves the waiting stage when a connected worker picks it up. If jobs accumulate, check that at least one worker shows a connected status on the Workers page, then check the worker logs for registration errors. See Jobs for the full lifecycle.
The worker shows no connected status after starting
The worker shows no connected status after starting
Confirm the API key is valid and belongs to the workspace: rotate it in Settings → API Keys if in doubt, update the worker’s connection settings, and restart the worker. Then check that the worker can reach the platform from its host.
The API key was rotated — the worker stopped pulling jobs
The API key was rotated — the worker stopped pulling jobs
Rotation invalidates the previous key immediately, so the worker’s connection is rejected. Update the worker’s connection settings with the new key and restart the worker. Rotate keys on a schedule and update every worker (and other API consumers) before the old key is needed again.
The worker cannot reach the platform
The worker cannot reach the platform
Verify network connectivity from the worker host to the platform. In a Docker Compose deployment, the worker must be on the same network as the platform service.
Related
API keys
Generate and rotate the workspace API key that workers authenticate with
Jobs
Watch jobs move from waiting to finished in the registry
Tools
The scanning tools workers execute per job category
