Новая настройка app_settings.indicator_mode (color | accessible), переключается на /setup. В режиме accessible сигналы, которые раньше держались только на цвете, переходят на форму/текст: - качество цены (0-9) — 5-ступенчатый signal-meter вместо градиентной точки/числа; единый модуль web/static/price-quality.js, ветвление по window.QF_INDICATOR_MODE; - вкладка «Ценообразование»: ведущая колонка-meter вместо заливки строк, пометка W вместо амбер-подсветки world-цен, ⚠ вместо красного «загрязнённого» итога. - GET/PUT /api/settings/ui (без рестарта), регистрируется в обоих наборах роутов. /setup переустроен: две колонки одной высоты, кнопка «Вернуться в приложение», исправлен <title>. Документация: bible-local 02/03/04 + decisions/2026-08-31-accessible-indicator-mode.md Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LbRvQgPZpM4SJTaX3iLrXk
6.2 KiB
6.2 KiB
04 - API
Public web routes
| Route | Purpose |
|---|---|
/ |
configurator |
/configs |
configuration list |
/configs/:uuid/revisions |
revision history page |
/projects |
project list |
/projects/:uuid |
project detail |
/pricelists |
pricelist list |
/pricelists/:id |
pricelist detail |
/partnumber-books |
partnumber book page |
/setup |
DB setup page |
Setup and health
| Method | Path | Purpose |
|---|---|---|
GET |
/health |
process health |
GET |
/setup |
setup page |
POST |
/setup |
save tested DB settings |
POST |
/setup/test |
test DB connection |
GET |
/setup/status |
setup status |
GET |
/api/db-status |
current DB/sync status |
GET |
/api/current-user |
local user identity |
GET |
/api/ping |
lightweight API ping |
POST /api/restart exists only in debug mode.
Settings
| Method | Path | Purpose |
|---|---|---|
GET |
/api/settings/ui |
read per-client UI display preferences → { "indicator_mode": "color" | "accessible" } |
PUT |
/api/settings/ui |
set indicator_mode (body { "indicator_mode": ... }); 422 on an unknown value |
Stored in app_settings (SQLite); no restart. Registered in both the normal and the setup-mode
route sets. Consumed by web/static/price-quality.js and the pricing tab via a
window.QF_INDICATOR_MODE global that base.html renders from the same setting.
Reference data
| Method | Path | Purpose |
|---|---|---|
GET |
/api/components |
list component metadata |
GET |
/api/components/:lot_name |
one component |
GET |
/api/categories |
list categories |
GET |
/api/pricelists |
list local pricelists |
GET |
/api/pricelists/latest |
latest pricelist by source |
GET |
/api/pricelists/:id |
pricelist header |
GET |
/api/pricelists/:id/items |
pricelist rows |
GET |
/api/pricelists/:id/lots |
lot names in a pricelist |
GET |
/api/partnumber-books |
local partnumber books |
GET |
/api/partnumber-books/:id |
book items by server_id |
Quote and export
| Method | Path | Purpose |
|---|---|---|
POST |
/api/quote/validate |
validate config items |
POST |
/api/quote/calculate |
calculate quote totals |
POST |
/api/quote/price-levels |
resolve estimate/warehouse/competitor prices (falls back to world source per column, see decisions/2026-07-10-world-pricelist-fallback.md) |
POST |
/api/export/csv |
export a single configuration |
GET |
/api/configs/:uuid/export |
export a stored configuration |
GET |
/api/projects/:uuid/export |
legacy project BOM export |
POST |
/api/projects/:uuid/export |
pricing-tab project export |
Configurations
| Method | Path | Purpose |
|---|---|---|
GET |
/api/configs |
list configurations |
POST |
/api/configs/import |
import configurations from server |
POST |
/api/configs |
create configuration |
POST |
/api/configs/preview-article |
preview article |
GET |
/api/configs/:uuid |
get configuration |
PUT |
/api/configs/:uuid |
update configuration |
DELETE |
/api/configs/:uuid |
archive configuration |
POST |
/api/configs/:uuid/reactivate |
reactivate configuration |
PATCH |
/api/configs/:uuid/rename |
rename configuration |
POST |
/api/configs/:uuid/clone |
clone configuration |
POST |
/api/configs/:uuid/refresh-prices |
refresh prices |
PATCH |
/api/configs/:uuid/project |
move configuration to project |
GET |
/api/configs/:uuid/versions |
list revisions |
GET |
/api/configs/:uuid/versions/:version |
get one revision |
POST |
/api/configs/:uuid/rollback |
rollback by creating a new head revision |
PATCH |
/api/configs/:uuid/server-count |
update server count |
GET |
/api/configs/:uuid/vendor-spec |
read vendor BOM |
PUT |
/api/configs/:uuid/vendor-spec |
replace vendor BOM |
POST |
/api/configs/:uuid/vendor-spec/resolve |
resolve PN -> LOT |
POST |
/api/configs/:uuid/vendor-spec/apply |
apply BOM to cart |
PUT |
/api/configs/:uuid/rental |
persist Аренда tab state (per-lot New/БУ, weeks, uplift %, annual support) |
POST |
/api/configs/:uuid/rental/calculate |
compute rental/paid-testing pricing without persisting |
Projects
| Method | Path | Purpose |
|---|---|---|
GET |
/api/projects |
paginated project list |
GET |
/api/projects/all |
lightweight list for dropdowns |
POST |
/api/projects |
create project |
GET |
/api/projects/:uuid |
get project |
PUT |
/api/projects/:uuid |
update project |
POST |
/api/projects/:uuid/archive |
archive project |
POST |
/api/projects/:uuid/reactivate |
reactivate project |
DELETE |
/api/projects/:uuid |
delete project variant only |
GET |
/api/projects/:uuid/configs |
list project configurations |
PATCH |
/api/projects/:uuid/configs/reorder |
persist line order |
POST |
/api/projects/:uuid/configs |
create configuration inside project |
POST |
/api/projects/:uuid/configs/:config_uuid/clone |
clone config into project |
POST |
/api/projects/:uuid/vendor-import |
import CFXML workspace into project |
Vendor import contract:
- multipart field name is
file; - file limit is
1 GiB; - oversized payloads are rejected before XML parsing.
Sync
| Method | Path | Purpose |
|---|---|---|
GET |
/api/sync/status |
sync status |
GET |
/api/sync/readiness |
sync readiness |
GET |
/api/sync/info |
sync modal data |
GET |
/api/sync/users-status |
remote user status |
GET |
/api/sync/pending/count |
pending queue count |
GET |
/api/sync/pending |
pending queue rows |
POST |
/api/sync/components |
pull components |
POST |
/api/sync/pricelists |
pull pricelists |
POST |
/api/sync/partnumber-books |
pull partnumber books |
POST |
/api/sync/partnumber-seen |
report unresolved vendor PN |
POST |
/api/sync/all |
push and pull full sync |
POST |
/api/sync/push |
push pending changes |
POST |
/api/sync/repair |
repair broken pending rows |
When readiness is blocked, sync write endpoints return 423 Locked.