Files
mostovik-backend/docs/september-checkup-shared-api.md
Aleksandr Meshchryakov 49cbfd265c
All checks were successful
Mostovik Backend CI/CD / Tests and lint (push) Successful in 9m37s
Mostovik Backend CI/CD / Build linux/amd64 release images (push) Successful in 4m18s
Mostovik Backend CI/CD / Deploy and verify internal main (push) Has been skipped
Mostovik Backend CI/CD / Deploy customer main (push) Has been skipped
Mostovik Backend CI/CD / Deploy dev (push) Successful in 1m48s
feat(registries): add SME and budget imports and fix source API workflows
2026-09-13 23:13:47 +02:00

53 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Общие исправления API: сентябрь 2026
`GET /api/v2/organizations/` и `GET /api/v2/organization-source-records/`
используют одинаковый поиск по каноническим наименованиям (`name`, `full_name`,
`short_name`), ИНН, КПП, ОГРН, ОГРИП и ОКПО. Слова запроса соединяются через AND,
поля для каждого слова — через OR. Совпадение только в `payload`, URL, названии
записи или технических идентификаторах не включает организацию в результат.
Поиск и активные фильтры применяются до пагинации.
`GET /api/v1/system/logs/` и `GET /api/v1/system/logs/export/` принимают
`date_from`/`date_to` в формате `YYYY-MM-DD`. Границы включительны по `updated_at`
в часовом поясе приложения (`TIME_ZONE`, сейчас UTC). Один `date_from` означает
один день; один `date_to` ограничивает только конец периода. Некорректные даты,
перевёрнутый период, неверный `batch_id` или неизвестный `ordering` возвращают 400.
Порядок по умолчанию — `-updated_at, id`. Поддерживаются `updated_at`, `source`,
`status`, `records_count` и обратные направления; сохранены существующие поля
`id`, `batch_id`, `created_at`, `source_label`, `status_label`,
`organizations_count` и сортировка по нескольким полям через запятую.
Вторичный порядок по `id` стабилизирует строки с одинаковым значением.
`source` сортируется по публичному slug карточки. Фильтры и порядок list/export
совпадают, но export не ограничивается страницей. Права администратора сохранены.
История экспортируется как `update-history.csv`: UTF-8 с BOM, разделитель `;`,
CRLF, русские заголовки и подписи источников/статусов. Даты отображаются в часовом
поясе приложения. Первые столбцы: «№», «Дата актуализации», «Источник», «Статус»,
«Количество записей»; далее идут сведения о пакете, организациях и результатах импорта.
В XLSX санкций заголовки `rn`, `ogrn`, `inn`, `okpo` заменены русскими подписями,
включая каждый файл при разбиении выгрузки. Порядок колонок, строковые
идентификаторы, JSON/CSV санкций и ticket/download API сохранены.
После обновления backend необходимо пересобрать подготовленные выгрузки командой
`uv run python src/manage.py build_source_record_exports` в настроенном окружении
сервиса: скачивание отдаёт опубликованные файлы, а не формирует книгу при запросе.
При отмене загрузки вакансий между сохранением записей и контрольной точкой
метаданные завершённой задачи остаются неизменными; следующий запуск повторяет
последнюю организацию от сохранённой позиции в том же batch, включая позицию 0,
если пакет уже содержит записи. Идемпотентное сохранение предотвращает дубликаты.
Прогресс фоновых задач обновляется условным атомарным запросом: позднее меньшее
значение не уменьшает процент, успешное завершение устанавливает 100%, ошибка
сохраняет достигнутый процент и причину. Успех, ошибка и отмена окончательны;
запоздавший callback или запрос отмены не меняет завершённую задачу.
При ручном запуске карточки весь набор `refresh_task_ids` записывается до отправки
первой задачи в очередь. Среднее включает завершённые части запуска. Если старый
разрешённый запуск ещё работает, он остаётся в `active_tasks`; новая завершённая
группа его не скрывает. Новый запуск нового реестра блокируется кодом 409 до
завершения предыдущего.