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
53 lines
5.1 KiB
Markdown
53 lines
5.1 KiB
Markdown
# Общие исправления 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 до
|
||
завершения предыдущего.
|