Safety guard
Опасные действия заблокированы прямым выполнением
Изменение цен, публикация карточек, массовые операции и внешние AI-вызовы должны идти через preview, approve, apply job и audit log.
Issue #114 · операторское рабочее место
Единый frontend теперь показывает все ключевые модули: каталог, Product Workspace, книги и карточки, цены, конкурентов, остатки, аналитику, МойСклад, Ozon, WB, AI, сайты, jobs и настройки. Неготовые backend endpoint не скрываются: они помечены как backend pending и объясняют, что нужно подключить.
Каждая карточка имеет count/status, severity, объяснение и CTA. Когда backend будет готов, count можно заменить живыми данными.
Нужно видеть draft/needs_review/failed по Ozon и WB, validation errors и поля без источника.
Публикация карточек невозможна без approved status и audit log.
Для WB нужны subjectID, required charcID, изображения и status check task.
Pricing Engine может рекомендовать цену, но apply идёт только через preview → approve → job.
Нельзя снижать цены ниже min_allowed; нужны себестоимость, комиссии и тарифы.
Без purchase_price нет финальной рекомендации цены и контроля прибыльности.
Нужны avg_daily_sales, available_stock, days_left, lead time и target stock days.
Отрицательные остатки и расхождения складов должны идти в очередь исправления.
Товары могут быть без связи, с дублями ISBN/EAN или конфликтами marketplace IDs.
401/403/429/5xx и validation errors должны быть видны без секретов и PII.
Секреты показываются только masked; отсутствующие ключи блокируют sync/test connection.
Фоновые задачи должны показывать попытки, ошибку, retryable и safe retry action.
Fallback-вызовы должны иметь privacy_level, task_type, стоимость и source trace.
ISBN, обязательные поля, риск-флаги, габариты и карточная готовность требуют отдельного экрана.
Safety guard
Изменение цен, публикация карточек, массовые операции и внешние AI-вызовы должны идти через preview, approve, apply job и audit log.
Быстро найди экран по задаче: ISBN, WB, approve, jobs, маржа, карточки, AI.
Модуль доступен для работы
Есть основа, нужны данные и доработка
Интерфейс-заготовка под следующий этап
Опасные действия только через preview, approve и audit
UI показывает будущий сценарий, backend endpoint ещё нужно подключить
Sidebar и dashboard строятся из единого registry, а не из разрозненных hardcoded ссылок.
Главный рабочий стол: карточки, цены, остатки, интеграции, jobs, secrets и AI usage, требующие внимания сегодня.
Единый каталог товаров, ISBN/EAN, артикулы, штрихкоды, источники, цены, остатки и готовность к маркетплейсам.
Центральная карточка товара: МойСклад, Ozon, WB, книга, цены, конкуренты, аналитика, история и audit.
Операционный экран связки карточек Ozon/WB с товарами МойСклад: candidates, auto-linked, needs-review, orphan, manual approve/reject и feedback.
Единый workspace для Ozon/WB category mapping, attribute mapping, dictionary values, assistant suggestions, readiness validation, assortment preview и export draft preview.
Очередь конфликтов Product Identity: один ISBN у нескольких товаров, orphan-карточки Ozon/WB, разные издания.
Проверки ISBN/EAN, дублей, обязательных книжных полей, 18+/ИНАГЕНТ/ЗАПРЕЩЕНА, веса, габаритов и себестоимости.
Рабочий контур русских книг: book_work/book_edition, источники, candidates, обложки, JSON Schema и review.
Pipeline: ISBN → источники → LLM JSON normalization → JSON Schema → confidence → manual review.
Кандидаты книжных изданий по ISBN, названию, автору, издательству, году, серии, страницам и обложке.
Черновики карточек Ozon/WB, validation errors, warnings, изображения и approve перед публикацией.
Черновики карточек Ozon: category attributes, ISBN/ISSN, автор на обложке, ТН ВЭД, изображения, validation.
Черновики карточек WB: subjectID, characteristics[], required charcID, фото, размеры и ошибки карточек.
Единая очередь ошибок публикации и валидации карточек Ozon/WB с raw response preview без секретов.
Себестоимость + расходы + комиссии + логистика + налоги + реклама + маржа → min_allowed/target/recommended.
Очередь рекомендаций: missing cost, below min, negative margin, needs approval, competitor position.
Безопасный workflow применения цен: preview → approve → apply job → status check → audit log.
Конкуренты только Ozon/WB: matching по ISBN/EAN, ручные ссылки, price snapshots и market position.
Кандидаты и подтверждённые конкуренты Ozon с историей цен и статусом matching.
Безопасный AI-assisted coding workflow: task metadata, masked patch previews, sandbox checklist, check runs, draft PR policy and manual merge only.
LLMOps dashboard for provider/model/privacy metadata, prompt templates, operator feedback, sanitized eval runs, schema success, errors and fallback rate.
Кандидаты и подтверждённые конкуренты Wildberries с nmID, price, discount и stock статусом.
Единый взгляд на остатки МойСклад/Ozon/WB, резервы, доступность, отрицательные остатки и расхождения.
Скорость продаж, days_left, lead time, страховой остаток и рекомендуемый дозаказ по книгам.
Сверка МойСклад ↔ Ozon ↔ WB по остаткам, резервам, товарам без карточек и orphan-карточкам.
Товары с высоким остатком и низкими продажами, кандидаты на распродажу или снятие с FBO.
Единый BI-центр продаж, остатков, маржи, финансов, API health и AI usage.
Единая read-only аналитика WB/Ozon/МойСклад: качество, дозаказ, маржа, продажи, остатки, финансы и каталог.
Операционная аналитика: остатки, оборачиваемость, рекомендации и AI summary.
Шаблоны руководящих дашбордов: продажи, прибыль, остатки, карточки, API, AI usage.
Продажи по дням, SKU, маркетплейсам, авторам, издательствам, сериям и статусам заказов.
Маржинальность WB/Ozon из unified analytics: выручка, закупочная цена, предварительная маржа и товары ниже себестоимости.
Финансовые отчёты Ozon/WB, выплаты, комиссии, удержания, storage, возвраты и сверка с продажами.
Ozon продажи, отправления, маржа, возвраты, проблемные товары и связка с каталогом.
WB карточки, цены, скидки, комиссии, тарифы, subject mapping и качество данных.
Продажи, заказы, обороты, прибыльность, закупки, документы движения и качество мастер-данных из МойСклад.
Статусы ключей, test connection, sync jobs, ошибки API, rate limits и переходы к провайдерам.
Мастер-источник каталога, атрибутов, customentity-фильтров, цен, остатков, документов и отчётов.
Страница статуса МойСклад: token, sync buttons, counts, API errors, filters readiness.
Ozon API: товары, карточки, цены, комиссии, остатки, FBO/FBS заказы, финансы, analytics, reports и rating.
Страница статуса Ozon: secrets, last sync, jobs, errors, rate limit, obsolete endpoint warnings.
WB API по категориям токенов: Content, Prices, Marketplace, Statistics, Analytics, Tariffs.
Страница статуса WB по категориям токенов и TODO для subject characteristics v3 / sales funnel body fix.
Общий мониторинг API: latency, status, 400/401/403/429/5xx, retries, backoff и rate limit state.
Диагностические raw responses и api_request_logs без секретов, PII и signed URLs.
AI Gateway: локальный AI по умолчанию, AI Tunnel fallback, privacy guard, usage logs, RAG и embeddings.
Единая навигация по AI-чату, моделям, usage/cost, RAG, OCR/Vision и AI Coder sandbox.
AI-чат по данным сервера через readonly tools, RAG и источники без прямых write queries.
Реестр локальных моделей, AI Tunnel моделей, embeddings, reranker и routing rules.
Логи AI usage: local/fallback ratio, токены, стоимость, task_type, privacy_level и ошибки.
Локальные embeddings в pgvector для товаров, книг, карточек, конкурентов, ошибок интеграций и AI-чата.
OCR/Vision pipeline для обложек: ISBN regex, checksum, сравнение с book_edition и cover matching.
AI-кодер создаёт patch/diff, запускает sandbox checks и ждёт developer approve перед merge/deploy.
Генератор лендингов книг, серий, каталогов, SEO-страниц и B2B-прайсов с preview и approve.
Шаблоны страниц для книги, серии, каталога, SEO-страницы и B2B-прайса.
Очередь generation/preview/publish jobs для сайтов и статус публикации.
Единая таблица фоновых задач, очередей, scheduled tasks, failed jobs, retry/cancel и run history.
Мониторинг очередей Redis/worker pools по providers и job types.
Планировщик регулярных sync jobs: МойСклад, Ozon, WB, pricing, analytics, maintenance.
Очередь failed/retry jobs с error preview, stack context, provider status и безопасным retry.
SecretsProvider UI: masked values, Reload secrets, Test connection, missing/invalid statuses без сырых значений.
Настройки AI-провайдеров: OpenModel/DeepSeek, AI Tunnel, local-first policy, masked secrets, reload и test provider.
Пользователи, роли Admin/Content/Pricing/Analyst/Developer/Viewer и ограничения dangerous actions.
Матрица прав по модулям и действиям: read, write, approve, publish, apply_price, manage_secrets.
Версионируемые правила маржи, налогов, расходов, округления, marketplace policies и cost components.
Все важные изменения: цены, карточки, связи товаров, секреты, AI-вызовы, публикации и job retries.
Окружение, read-only guard, API limits, feature flags, backups, monitoring и runbooks.
Подключение реальных secrets, Reload, Test connection и read-only full sync WB/Ozon/МойСклад.
Связка карточек Ozon с единым товаром по offer_id, SKU, barcode, ISBN и ручному matching.
WB Product Identity: nmID, vendorCode, barcode, ISBN/ISSN и ручная связка с product_id.
Текущая рабочая страница marketplace stocks, FBO/FBS остатки, резервы и товары без связки.
Товар → склад → кластер: доступность и логистические узкие места Ozon.
Расчёт, что и куда поставить с учётом спроса, остатков и кластеров доставки.
Продажи по регионам/кластерам и оценка дней запаса для распределения товара.
МойСклад, Ozon, WB и AI Tunnel имеют отдельные статусные панели и список jobs.
API группы: Catalog · Variants · Assortment · Stocks · Documents · Reports · Custom entities
API группы: Products · Cards · Prices · Commissions · Stocks · Orders · Finance · Analytics · Reports · Rating
API группы: Content · Prices · Marketplace · Statistics · Analytics · Tariffs · Finance
API группы: models · fallback · usage · budgets
Долгие sync и mutating actions не выполняются синхронно из UI.
| Job | Контур | Статус | Что делает |
|---|---|---|---|
| moysklad.sync_products_full | catalog | scheduled | ночной full sync товаров и модификаций |
| ozon.sync_prices | prices | retry/backoff | цены, комиссии, price index |
| wb.sync_characteristics | content | backend pending | subject characteristics для книжных subjectID |
| pricing.generate_recommendations | pricing | guarded | создание рекомендаций без применения |
| ai.sync_models | ai | planned | обновление реестра моделей и budget guard |
Заготовки под продажи, маржу, остатки, качество карточек, API SLA и AI usage.
Главный BI-экран: оборот, прибыль, маржа, остатки, критичные ошибки и действия на сегодня.
Продажи Ozon/WB по периодам, категориям, складам, товарам и карточкам.
Остатки, скорость продаж, days_left, страховой запас и рекомендуемый дозаказ.
Себестоимость, комиссии, логистика, реклама, налоги и прибыльность по каждому маркетплейсу.
Качество карточек: ISBN, характеристики, изображения, ошибки WB/Ozon и черновики на проверке.
Состояние API, очередей, лимитов, AI Gateway, fallback-вызовов и ошибок синхронизации.