# auth.md

Инструкции за автентикация на агенти пред `arms-bg.com`.

**Кратко: публичният продуктов каталог не изисква автентикация.** Няма регистрация,
няма ключ, няма токен, няма церемония. Четѝ направо.

```
GET https://arms-bg.com/wp-json/wc/store/v1/products?search=opinel
```

---

## Step 1 — Discover

| Ресурс | Адрес |
|---|---|
| Описание на API (OpenAPI 3.1) | `/.well-known/openapi.json` |
| Каталог на API-тата (RFC 9727) | `/.well-known/api-catalog` |
| Умения за агенти | `/.well-known/agent-skills/index.json` |
| MCP сървър (карта) | `/.well-known/mcp/server-card.json` |
| Метаданни за защитения ресурс (RFC 9728) | `/.well-known/oauth-protected-resource` |
| Възможности (ARD) | `/.well-known/ai-catalog.json` |

Същите връзки се обявяват и през `Link` хедъри по RFC 8288 на всяка страница.

## Step 2 — Pick a method

Има точно два режима. Няма трети.

### `anonymous` — за целия публичен каталог

Не се изисква нищо. Това покрива всичко, което един агент нормално иска:
продукти, категории, марки, етикети, атрибути, наличност и цени.

### `service_auth` — само за административното API

Consumer key и secret по WooCommerce REST схемата, **издавани ръчно от администратор**
след търговска договорка. Не се издават автоматично и не се издават на агенти.

**Не се поддържат:** OAuth 2.0 authorization server, dynamic client registration,
ID-JAG identity assertions, claim ceremony, token exchange.

## Step 3 — Register

**Няма регистрация.** Не съществува `register_uri`. Не издаваме агентски идентичности,
клиентски идентификатори или credentials по автоматизиран път.

За партньорски или търговски достъп до административното API:
<https://arms-bg.com/kontakti/>

## Step 4 — Claim ceremony

Не се прилага. Няма какво да се claim-ва при анонимен достъп.

## Step 5 — Exchange the assertion

Не се прилага. Няма token exchange endpoint.

## Step 6 — Use the access_token

Не се прилага за публичния каталог — просто изпращай заявката.

За административното API (само за притежатели на ключ, издаден ръчно):
HTTP Basic с consumer key като потребител и consumer secret като парола, задължително
по HTTPS. Подробности: <https://developer.woocommerce.com/docs/apis/rest-api/>

---

## Обхват на достъпа

| Ресурс | Достъп | Автентикация |
|---|---|---|
| `/wp-json/wc/store/v1/products` | четене | няма |
| `/wp-json/wc/store/v1/products/categories` | четене | няма |
| `/wp-json/wc/store/v1/products/brands` | четене | няма |
| `/wp-json/wc/store/v1/products/tags` | четене | няма |
| `/wp-json/wc/store/v1/products/attributes` | четене | няма |
| `/wp-json/mcp/v1` (MCP, само четене) | четене | няма |
| `/sitemap_index.xml` | четене | няма |
| `/wp-json/wc/store/v1/cart`, `/checkout` | — | сесия с бисквитка и nonce; не е за автоматизация |
| `/wp-json/wc/v3/**` | четене/запис | ключ, издаден ръчно |
| `/wp-admin/**` | — | забранено в `robots.txt` |

## Errors

| Код | Значение | Какво да направиш |
|---|---|---|
| `401` | Липсва или невалиден ключ за административното API | Публичният каталог не изисква ключ — провери дали не удряш грешен endpoint |
| `403` | Ресурсът не е публичен | Спри. Няма път към него за агенти |
| `404` | Няма такъв продукт или категория | Провери slug-а през `/products?search=` |
| `429` | Ограничение на честотата (Cloudflare) | Изчакай и намали темпото |

## Revocation

Ръчно издадените ключове се отнемат от администратор без предизвестие.
Няма revocation endpoint, защото няма автоматично издаване.
Сигнали за злоупотреба: <https://arms-bg.com/kontakti/>

## Условия за ползване

- Предпочитанията за AI са в `robots.txt` чрез `Content-Signal`:
  `search=yes, ai-input=yes, ai-train=no`. Съдържанието **не** е разрешено
  за обучение на модели.
- Цитирай `permalink` на продукта като източник.
- Цените са в EUR и са моментни. Наличността се мени. Не ги представяй като гарантирани.
- Част от асортимента подлежи на възрастови и разрешителни изисквания по българското
  законодателство. Не давай съвети за придобиване — препращай към магазина.
- Общи условия: <https://arms-bg.com/obsthi-usloviya/>
- Поверителност: <https://arms-bg.com/politika-za-poveritelnost/>
