Posudamarket · pm-app

pm-gateway

Единственный вход в Paloma365 для приложений pm-app: чтение с кэшем, запись через очередь без дублей.

v0.1.0 Paloma подключена Cloudflare Worker

Состояние

Маршруты

GET/healthбез токена · последний тик крона, подзапросы, ошибка
GET/meтокен Supabase → claims pm_person, pm_admin, pm_fn
GET/paloma/items?q=функция scanner · поиск по названию или штрихкоду
GET/paloma/items/:barcodeфункция scanner · карточка (s_items + s_shtrih)
GET/paloma/stock/:barcodeфункция scanner · остатки по складам (get_data)
GET/catalog/groupsбез токена · дерево групп и число товаров (кэш D1)
GET/catalog/list?group=&after=без токена · товары группы, «Показать ещё»
GET/catalog/search?q=&after=без токена · поиск по началу слов и по коду
GET/catalog/item/:id · /code/:code · /items?ids=без токена · карточка, сканер, корзина
POST/paloma/write{ kind, payload, idem: "SA:<uuid>" } → очередь · cash_outcome: shop.expense или money.cash

Как это работает

Приложение шлёт JWT Supabase. Шлюз проверяет подпись по JWKS проекта и смотрит функции сотрудника (pm_fn) — доступ дают функции, а не роль. Логин Paloma знает только шлюз.

Запись в Paloma — только через очередь: ключ SA:<uuid> попадает в примечание документа, повтор задания второй документ не создаёт.

Проверить /health

Секреты — только wrangler secret put. Значения логина и пароля на этом экране не показываются.