# Scripts

Organized by concern. Default server URL is `http://localhost:1902`; override with `BASE_URL`.

## Layout

| Directory | Purpose |
|-----------|--------|
| **api/** | Server API tests and examples |
| **config/** | Server/config operations (settings, parser configs) |
| **auth/** | Auth token (for remote/protected APIs) |
| **seed/** | Dev seed data (e.g. trackers) |

## API (`api/`)

- **smoke_test.sh** – Full smoke test: gateways, zones, trackerzones, trackers (list, update, delete). Requires `jq`.
  ```bash
  ./scripts/api/smoke_test.sh
  BASE_URL=http://host:1902 ./scripts/api/smoke_test.sh
  ```
- **tracks.sh** – Tracks query examples (getTracks with limit, from, to). Optional first arg: tracker UUID.
  ```bash
  ./scripts/api/tracks.sh
  ./scripts/api/tracks.sh <tracker-uuid>
  ```

## Config (`config/`)

- **settings.sh** – PATCH `/reslevis/settings` (algorithm, thresholds, etc.).
- **add_parser.sh** – POST `/configs/beacons` to add a decoder/parser config (e.g. Eddystone).

## Auth (`auth/`)

- **token.sh** – Get OAuth token from auth server. Set env: `CLIENT_SECRET`, `USERNAME`, `PASSWORD`; optional `AUTH_URL`, `CLIENT_ID`, `AUDIENCE`. Prints token to stdout.
  ```bash
  export CLIENT_SECRET=... USERNAME=... PASSWORD=...
  TOKEN=$(./scripts/auth/token.sh)
  curl -H "Authorization: Bearer $TOKEN" "$BASE_URL/reslevis/getTrackers"
  ```

## Seed (`seed/`)

- **seed_trackers.sh** – POST multiple trackers for dev (same payloads as former bulk seed).
  ```bash
  ./scripts/seed/seed_trackers.sh
  ```

## Shared

- **_common.sh** – Sourced by other scripts; sets `BASE_URL` (default `http://localhost:1902`). Do not run directly.
