
# Configuration

fob-worker has no config file and stores no credentials. It works on the worker repo in the current directory and follows the template's layout.

## Folders

| Path | What's there |
| --- | --- |
| `src/steps/` | Your steps |
| `.orchestrator/stations/`, `.orchestrator/lines/` | Station and line files, synced with fob-orc |
| `.orchestrator/scenarios/<slug>/` | Saved test configs for `steps run` |
| `temp/` | Step outputs from local runs (`<slug>.json`) and attachment copies (`work_records/`) |
| `temp/stations/<STATION>/<bin>/` | Bins and workpieces |

`temp/` is in the template's `.gitignore`.

## Environment variables

The worker reads these from `.env` in the repo root. fob-worker loads the same `.env`, so a step you run locally sees the same variables as on the worker.

| Variable | Required by the worker | |
| --- | --- | --- |
| `ORCHESTRATOR_URL` | No | The Orchestrator: `https://orchestrator.finopsbricks.com`. Defaults to `http://localhost:3000` |
| `ORCHESTRATOR_API_KEY`, `ORCHESTRATOR_API_SECRET` | Yes | An API key from **Settings → API Keys** in the Orchestrator |
| `WORKER_LOCATION` | Yes | Which lines this worker runs: those whose `location` matches |
| `POLL_INTERVAL_MS` | No | How often the worker asks for work, in milliseconds (default 2000) |

Add your steps' own settings, such as API keys for the systems they call, to the same `.env` and read them with `process.env` in your step.

fob-worker itself uses none of the Orchestrator variables except `WORKER_LOCATION`, which `steps run` passes to your step as `context.org_id`.

## Check what fob-worker sees

```bash
fob-worker config show
```

```text
Paths:
stepsDir   src/steps/
tempDir    temp

Environment Variables:
ORCHESTRATOR_URL         https://orchestrator.finopsbricks.com
WORKER_LOCATION          acme
ORCHESTRATOR_API_KEY     *** (set)
ORCHESTRATOR_API_SECRET  *** (set)
```

Keys and secrets are never printed, only whether they're set. Variables that aren't set are left out.

## Debug output

`DEBUG=1` prints the stack trace when a command fails:

```bash
DEBUG=1 fob-worker steps run IN1_01_check --empty
```
