Карта точек входа (as-built)
Статус: current (as-built), сверено на commit
544d4e51. Целевой список публичных контрактов сервисов — в../30-services/(секции «Публичный контракт» каждого README). Этот документ фиксирует только то, что реально существует в коде: реальные тикеры, реальные HTTP-хендлеры, реальные CLI-точки входа. Расхождение с target-документом не исправляется здесь — сюда попадает только факт.
Как пользоваться таблицей
Каждая строка — это место, откуда управление входит в систему извне или по расписанию. Столбец «Символ (file:line)» — точная ссылка на код на момент сверки; если код с тех пор изменился, проверяйте актуальную строку/сигнатуру заново, прежде чем полагаться на неё.
Таблица заполняется по мере разбора слоёв. Сейчас закрыт только слой ingestion-core и путь Russvet; остальные слои (нормализация, матчинг, canonical-assignment, публичный API и т.д.) добавляются последующими задачами инициативы.
Точки входа
| Точка входа | Тип (тикер/HTTP/CLI/Kafka) | Символ (file:line) | Назначение | Слой |
|---|---|---|---|---|
| supplier-sync boot | процесс | main — backend/cmd/supplier-sync/main.go:64 | Поднятие fx-приложения воркера ingestion | ingestion |
| per-supplier тикер | тикер | registerPerSupplierTickers — backend/cmd/supplier-sync/main.go:306 | По тикеру на каждого включённого поставщика | ingestion |
| тик поставщика | callback | runSupplierTick — backend/cmd/supplier-sync/main.go:380 | Один тик: lease → router.RunTick → метрика | ingestion |
| роутер пайплайнов | dispatch | PipelineRouter.RunTick — backend/internal/core/ingestion/app/pipeline_router.go:68 | Выбор пайплайна по Capabilities | ingestion |
| bulk-пайплайн | pipeline | BulkSnapshotPipelineImpl.RunTick — backend/internal/core/ingestion/app/bulk_snapshot_pipeline.go | Batch-снапшот (Russvet/ETM/IEK/Systeme) | ingestion |
| loopback health | HTTP | loopback :9091 /healthz /readyz /metrics — backend/cmd/supplier-sync/main.go | Только локально; публичного HTTP нет | ingestion |
Явные отсутствия
POST /v1/jobs/fetchвsupplier-syncне существует. Целевой README сервиса (../30-services/ingestion/README.md, секция «Публичный контракт → Вход») упоминает его как HTTP (internal) точку входа, но в кодеsupplier-syncнетdi.HTTP()— HTTP-регистраторы каталога/офферов/нормализации регистрируются вdi.GroupHTTPRegistrars, но группу никто не потребляет. Единственный HTTP в процессе — loopback:9091со служебными/healthz,/readyz,/metrics.
Дальше
- Обзор слоя ingestion, участники и use-case файлы:
10-ingestion/README.md. - Как читать раздел целиком:
README.md.