# REST, status endpoint és abilities

> Az LW Scan admin REST-végpontjai, a kulcsos status endpoint válasza, az abilities, a szűrők és a HelloPack Client-ellenőrzés.

## Admin REST

Az `/wp-json/lw-scan/v1/` útvonalak a felület hátterét adják. Mind adminisztrátori jogot (`manage_options`) kér, és alkalmazásjelszóval is hívható.

| Metódus | Útvonal | Mire |
|---|---|---|
| GET | `/scan`, `/scan/status` | Futásállapot. |
| POST | `/scan/start` | Indítás: `scope` (`full`, `changed`, `db`, `path`), `path`, `heuristics`, `resume`. Válasz: `{run_id}`; ha már fut egy, 409. |
| POST | `/scan/tick` | Egy rövid lépés továbbvitele, ha az oldal nem éri el saját magát. |
| POST | `/scan/stop` | Leállítás. |
| GET | `/findings` | Találatok: `severity`, `type`, `state`, `search`, `page`, `per_page`. |
| POST | `/findings/state` | Állapotváltás: `ids`, `state` (`new`, `acknowledged`, `ignored`). |
| POST | `/findings/clear` | Összes találat törlése (futás alatt 409). |
| GET | `/health` | Állapotfelmérés. |
| POST | `/maintenance/bundle`, `/maintenance/index` | Csomagfrissítés, index újraépítése. |
| GET, POST | `/settings` | Beállítások olvasása, részleges mentése. |
| POST | `/notify/test` | Teszt e-mail. |
| GET, POST | `/status-endpoint`; POST `/status-endpoint/rotate` | A status endpoint kezelése. |

> **Mindig küldd a heuristics értéket**
>
> A `POST /scan/start` a `heuristics` értékét a mentett beállításba írja. Ha kihagyod, a heurisztika **tartósan kikapcsol**. Külső hívásnál mindig küldd: `"heuristics": true`.

```bash title="Teljes vizsgálat indítása"
curl -u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" -X POST \
  -H 'Content-Type: application/json' \
  -d '{"scope":"full","heuristics":true}' \
  https://pelda.hu/wp-json/lw-scan/v1/scan/start
```

```bash title="Új riasztások listája"
curl -u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" \
  'https://pelda.hu/wp-json/lw-scan/v1/findings?severity=alert&state=new&per_page=20'
```

```bash title="Találatok nyugtázása"
curl -u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" -X POST \
  -H 'Content-Type: application/json' \
  -d '{"ids":[12,15],"state":"acknowledged"}' \
  https://pelda.hu/wp-json/lw-scan/v1/findings/state
```

A böngészőn kívül indított vizsgálat a WP-Cron lépésein halad. Ha az oldal nem éri el saját magát, WP-CLI-vel vagy a `/scan/tick` hívogatásával vihető tovább.

## Status endpoint

`GET /wp-json/lw-scan/v1/status/<kulcs>`, bejelentkezés nélkül. A kulcsot az [Állapot fülön](https://hub.hellowp.io/hu/docs/lw-plugins/lw-scan/beallitasok/status-endpoint/) vagy a `wp lw-scan endpoint url` paranccsal kapod meg. Rossz kulcsra ugyanúgy 404-et ad, mint egy nem létező útvonalra, és a nyilvános REST-listában sem szerepel.

| Paraméter | Mit csinál |
|---|---|
| `?http_status=1` | 503-at ad, amíg az állapot `crit`. HTTP-állapotkódot figyelő monitorozóhoz. |
| `?fresh=1` | A tárolt eredmény helyett újraellenőriz. |

```bash title="Terminál"
curl -s https://pelda.hu/wp-json/lw-scan/v1/status/<kulcs>
curl -s -o /dev/null -w '%{http_code}\n' 'https://pelda.hu/wp-json/lw-scan/v1/status/<kulcs>?http_status=1'
```

A válasz mezői: `overall`, `checked_at`, `cached`, `site` (`url`, `wp`, `php`, `lw_scan`), és `checks.lw_scan` (`status`, `summary`, `details`, `checked_at`, `duration_ms`). A `status` értékei:

| Érték | Jelentés |
|---|---|
| `ok` | rendben |
| `warn` | az utolsó futás hibás, vagy két ütemezett ablakban nem volt sikeres futás |
| `crit` | van új riasztás |
| `unknown` | még nem volt vizsgálat |

Ha egy másik bővítmény bejelentkezéshez köti a REST API-t (pl. az [LW Disable REST API-letiltása](https://hub.hellowp.io/hu/docs/lw-plugins/lw-disable/beallitasok/biztonsag/)), a monitor 401-et kap.

## Abilities (az LW Site Manager mellett)

Ha az [LW Site Manager](https://hub.hellowp.io/hu/docs/lw-plugins/) is aktív, négy képesség jelenik meg „Kártevő-vizsgálat” kategóriában. Mind adminisztrátori jogot kér.

| Ability | Mire | Bemenet |
|---|---|---|
| `lw-scan/run` | vizsgálat indítása | `scope` (kötelező), `path`, `resume` |
| `lw-scan/status` | állapot | nincs |
| `lw-scan/findings` | találatok listája | `severity`, `type`, `state`, `page`, `per_page` (legfeljebb 200) |
| `lw-scan/acknowledge` | találat állapotának állítása | `ids`, `state` (kötelező) |

A WordPress Abilities REST-felületén hívhatók: `/wp-json/wp-abilities/v1/abilities/<név>/run`, olvasáshoz GET, íráshoz POST `{"input": {...}}` törzzsel. Az abilityvel indított vizsgálat nem írja át a mentett heurisztika-beállítást.

## Szűrők és akciók

Saját wp-config-konstans nincs.

| Szűrő | Mire jó |
|---|---|
| `lw_scan_options` | A beállítások felülírása az adott kérésre; nem íródik vissza az adatbázisba. |
| `lw_scan_storage_dir` | A privát tárhelymappa helye (alap: `wp-content/lw-scan`); a kizárási lista automatikusan követi. |
| `lw_scan_api_base` | A szignatúra- és adatforrás alapcíme (alap: `https://scan-data.lwplugins.com`). |

Akciók: `lw_scan_upgraded` (`$from, $to`: frissítés után egyszer), `lw_scan_phase_changed` (`$phase, $stats`: új fázis indulásakor).

## HelloPack Client

Ha a HelloPack Client telepítve van, megjelenik benne egy `lw_scan` állapot-ellenőrzés: új riasztás, sikertelen utolsó futás, leállt ütemezés. Csak olvas.
