Skip to content

Releases

0.9.4 — защита учётных записей, проверка OWASP ZAP и испорченными файлами

Choose a tag to compare

@ht2473 ht2473 released this 10 Nov 12:27
caf8a43

Защита учётных записей и служебных меток, проверка сканером OWASP ZAP и испорченными файлами.
При выкладке применяется миграция учётных записей: уже заведённые записи считаются
подтверждёнными с даты создания.

Добавлено

  • Проверки: испорченные файлы в загрузку своих таблиц (пути наружу, пароль, бомбы
    в архиве и книге Excel, внешние сущности XML, незакрытая кавычка, перегруженная страница
    PDF), одновременный поиск, адрес возврата из формы, копия базы без схемы.
  • Документация: проверка защищённости сканером OWASP ZAP и испорченными файлами, замер
    памяти стенда под нагрузкой.

Изменено

  • Кабинет: регистрация заканчивается переходом по ссылке из письма; до этого в запись
    войти нельзя. Страница отвечает одинаково свободному и занятому адресу, занятому уходит
    письмо-напоминание. Неподтверждённая запись удаляется через трое суток.
  • Кабинет: браузер, из которого владелец уже входил, чужие неверные пароли не блокируют;
    блокировка по одной почте действует на остальных.
  • Развёртывание: Django 6.1.3.
  • Свои данные: книга XLSX и ODS проверяется до чтения по размеру и сжатию всех частей,
    а не только листов; страница PDF больше чем с 10 000 линий и знаков отклоняется до разбора
    (USERDATA_PDF_PAGE_OBJECTS, у сборников ведомств — до 2 646).

Исправлено

  • Свои данные: таблица с незакрытой кавычкой роняла страницу «Что в таблице» ошибкой
    сервера; теперь страница говорит, что разобрать не удалось, и называет причину.
  • Свои данные: книга Excel в сотни килобайт с огромным списком общих строк принималась
    и разворачивалась в памяти сайта в сотни мегабайт.
  • Свои данные: PDF с перегруженной страницей разбирался во время загрузки десятки секунд
    и занимал гигабайты памяти.
  • Поверхность: поиск вопросом изредка отвечал ошибкой сервера при одновременных запросах.
  • Поверхность: форма «В исследование» отвечала ошибкой сервера, если в поле адреса
    возврата подставить строку, которая не адрес; адрес возврата принимается, только если
    это путь на этом сайте.
  • Сбор: путь от корня (/…) внутри архива выпуска отклоняется, как и путь с «..».
  • Развёртывание: после выкладки, оборванной до миграций, следующая падала на резервной копии.
  • Кабинет: выключение входа с кодом принимало неограниченное число неверных кодов;
    теперь — пять в час на учётную запись.
  • Кабинет: ключ кодов входа во время настройки лежал в сеансе открытым; теперь зашифрован.
  • Панель: метка закрытой ссылки на таблицу или исследование попадала в историю посещений
    и в журнал веб-сервера; в обоих она заменяется звёздочкой, как метки ссылок из писем.
  • Кабинет: при недоступном Valkey пределы частоты (регистрация, восстановление пароля,
    ввод кода) переставали действовать; теперь счёт ведёт рабочий процесс.
  • Сбор: архив выпуска, который разворачивается больше 2 ГБ, не распаковывается.
  • Развёртывание: резервная копия, переименованная под другую отметку времени, не проходит
    проверку; проверка называет дату и возраст копии.

0.9.3 — доступность, безопасность разбора таблиц, готовность к развёртыванию

Choose a tag to compare

@ht2473 ht2473 released this 08 Nov 19:38
9a51a5a

Доступность по WCAG 2.2 AA, безопасность разбора своих таблиц и готовность к развёртыванию.

Добавлено

  • Доступность: шаг кода входа за две минуты до конца срока предупреждает, программа чтения
    это объявляет; кнопка «Продлить» отсчитывает срок заново, не больше десяти раз, набранные
    цифры остаются в поле.
  • Доступность: форма, вернувшаяся с ошибками, ставит фокус на первое неверное поле.
  • Доступность: подсказки поиска и окно быстрого перехода сообщают программе чтения строку,
    отмеченную стрелкой.
  • Анализ: свежие расчёты (мимо кэша) с одного адреса ограничены — 300 за 10 минут
    (ANALYTICS_COMPUTATIONS); посчитанное открывается без ограничения.
  • Проверки: сквозные проверки размера целей нажатия, фокуса под шапкой и под нижней полосой
    на телефоне, режима высокой контрастности и ширины 320 пикселей с увеличенными
    интервалами текста; разметка и цели
    в кабинете, панели и «Своих данных», цели — и в английской версии; контраст рамки поля
    и нижней ступени тёмной шкалы.
  • Документация: защита персональных данных и криптография, обязанности оператора перед
    открытием сайта, доступность; политика безопасности репозитория; выпуски Росстата
    при первом наполнении стенда — из архива (на 08.11.2026 файлы Росстата отвечают
    сборщику 404).

Изменено

  • Оформление: рамки полей ввода контрастнее (3 : 1 к фону в обеих темах); нижние ступени
    шкалы карты в тёмной теме отделены от подложки и от «нет данных».
  • Оформление: цели нажатия не меньше 24 пикселей — кнопка подсказки, ссылки в строках таблиц,
    ссылки подвала и строки пути, пункты оглавлений, раскрывающиеся заголовки, поле поиска
    во всю высоту рамки.
  • Оформление: прилипшая шапка не закрывает элемент в фокусе; карточка региона на главной,
    подписи показателей анализа и название источника исследования больше не обрезаются при
    крупном шрифте и увеличенных интервалах.
  • Оформление: в режиме высокой контрастности Windows видно кольцо фокуса в полях, образцы
    легенды карты сохраняют цвета.
  • Оформление: подсказка графика не исчезает под указателем и закрывается клавишей Esc;
    предупреждения остаются на экране до закрытия, как ошибки.
  • Кабинет: в журнале сервера неудачная попытка входа подписана отпечатком, а не почтой
    и адресом посетителя.
  • Развёртывание: pandas 3.1, pyarrow 26, python-calamine 0.9, python-dateutil 4 и другие
    зависимости; разбор таблиц корпуса при этом не изменился.

Исправлено

  • Свои данные: имя столбца в файле Parquet могло дописать к запросу разбора свой текст и прочитать
    файлы сервера. Имена экранируются, а соединение разбора после чтения файла теряет доступ
    к файлам и сети.
  • Свои данные: таблица Parquet со столбцом «v» не разбиралась.
  • Свои данные: подделка документа Word с объявлением сущностей в кодировке UTF-16 проходила
    проверку; объявления теперь ищет сам парсер, в любой кодировке.
  • Свои данные: срок в единице измерения («на конец года, штук», «в среднем за год») больше
    не принимается за единицу «годы».
  • Развёртывание: таблицы, загруженные на машине разработчика, попадали в образ и оттуда —
    в хранилище стенда; служба разборов на новом стенде не могла писать в свой том.
  • Склад: первая сборка на новом стенде присылала администраторам ложное письмо о пропавших
    рядах Банка России и ФНС, которые появляются только с первым сбором выпусков.
  • Кабинет: в «Настройках» подписи полей «Текущий пароль» всех форм вели к первому полю.
  • Оформление: на телефоне полоса вызова панели параметров закрывала элемент в фокусе.
  • Развёртывание: main.py падал, если его вывод перенаправить в файл.
  • Панель и сравнение: таблицы без подписи и без заголовков строк.
  • Поверхность: после кнопок «Назад» и «Вперёд» поля выбора и кнопки сохранения графика
    удваивались; возврат на адрес, открытый без перезагрузки, мог показать страницу без шапки
    и оформления.
  • О проекте: тема работы — «Веб-приложение…», как в README.

0.9.2 — поиск, сверка расчётов и данных

Choose a tag to compare

@ht2473 ht2473 released this 30 Oct 20:59
59fcdd9

Поиск вопросом, сверка расчётов с библиотеками, сверка склада с публикацией Росстата
и поправки к исходному набору.

Добавлено

  • Поиск: опечатка в названии места и в служебных словах («нижегроодская область», «рейтинг
    регоинов»), падежи названий, которые не узнавались («в Адыгее», «население Алтая»).
  • Поиск: «уровень жизни» и «благосостояние» — общие вопросы, поиск предлагает интегральный
    индекс.
  • Поиск: «покажи», «подскажите», «по региону», «российских регионов», «в области» не мешают
    понять вопрос.
  • Проверки: индекс Морана и локальные индексы сверены с esda (PySAL), регрессия с обычными
    и устойчивыми ошибками — со statsmodels, веса CRITIC и энтропии и TOPSIS — с pymcdm. Ответы
    библиотек лежат в проверках, в зависимости проекта библиотеки не входят.
  • Проверки: формулы нормировки, свёртки индекса, весов, классов карты и сближения — на значениях,
    посчитанных вручную.

Изменено

  • Поиск: ответ числами — только если в показателе нашлись все содержательные слова вопроса.
    «Население Китая», «плотность населения», «пособие по безработице» больше не получают чужой
    показатель: поиск показывает ближайшее без уверенного ответа.
  • Поиск: опечатка — одна правка в слове, а не похожее слово: «доставка» не «ставка», «гороскоп»
    не «городской», «экологический» не «экономический».
  • Поиск: слова степени — «высокая», «крупные», «лидеры», «быстрее» — признак рейтинга, а не
    слова показателя.
  • Поиск: если слова запроса нашлись только в длинном официальном названии ряда, сначала
    смотрится полный перечень: «прожиточный минимум» ведёт к ряду о прожиточном минимуме, а не
    к уровню бедности.
  • Поиск: разрез показателя («Прочие выплаты») не отвечает на одно слово.
  • Выгрузка: PDF печатает значения с точностью показателя, как страницы сайта, а не всегда
    с двумя знаками после запятой.

Исправлено

  • Данные: 53 значения шести рядов с доказанными ошибками исходного набора исправлены при сборке
    склада (data/reference/source_corrections.json) и отмечены на сайте и в API. Поправка
    применяется, только пока в наборе стоит ошибочное значение.
  • Перевод: пояснения к расчётам анализа на английской версии выходили по-русски; добавлены
    английские названия 113 разрезов рядов.
  • Поиск: «за 2023 год» — год, а не срок: ответ значением, а не динамикой.
  • Поиск: «Sakhalin» больше не принимается за Саху: среди написаний одной длины точное
    совпадение проверяется раньше совпадения по началу слова.
  • Поиск: ряды, непригодные к сравнению регионов, больше не вытесняют пригодные из отбора
    по полному перечню.
  • Поиск: «что такое коэффициент корреляции» находит этот термин: слово связи в вопросе
    о термине — часть термина.
  • Поиск: на вопрос «почему» показывается ближайший показатель, даже если нашлись не все слова.

0.9.1 — правки по итогам замера

Choose a tag to compare

@ht2473 ht2473 released this 30 Oct 15:35
e740de9

Правки по итогам замера распознавания на незнакомых таблицах ведомств.

Добавлено

  • Свои данные: таблицы PDF, размеченные одними горизонтальными линейками без вертикальных
    (сводки территориальных органов Росстата): столбцы — по стыкам линеек, шапка в несколько
    строк с надписями над несколькими столбцами.
  • Свои данные: у таблицы без строки России «Динамика по России» — сумма регионов с пометкой:
    только у сумм, в годы со значениями не меньше чем у 80 субъектов, по общему составу.

Изменено

  • Свои данные: у таблицы без разрезов — до 2 000 показателей (было 500), сверх предела —
    совет отметить лишние столбцы «пропустить».
  • Свои данные: год в шапке только у части показателей («Зарплата», «Индекс цен», а рядом
    «Безработные | 2026 | 2025») — таблица «показатели в столбцах»: столбцы без года больше
    не теряются, один показатель за разные годы — один ряд.
  • Свои данные: список «Тот же показатель, что…» — у таблиц до 100 показателей.

Исправлено

  • Свои данные: таблицу больше чем на 450 показателей нельзя было собрать — шаг
    «Показатели» отвечал ошибкой 400, а его страница весила десятки мегабайт.
  • Свои данные: таблица PDF на следующей странице без названия, но со своей шапкой —
    отдельная таблица, а не продолжение прошлой; подпись без значений в начале страницы
    («в том числе:») — продолжение.
  • Свои данные: строка значений над таблицей PDF больше не берётся её названием, числа
    мелким кеглем остаются в своей строке, строка шапки на линейке не попадает в тело.
  • Свои данные: база сравнения в шапке, разбитой на строки («В % к» над «июню 2025 г.»),
    больше не принимается за период: столбец «в % к июню 2025» не получает год 2025, а год
    таблицы не берётся из базы «к I кварталу 2025» — раньше таблица молча собиралась
    не за тот год, теперь мастер спрашивает год.
  • Свои данные: справочные столбцы и столбцы без названия не считаются показателями,
    когда год есть только у части столбцов.
  • Свои данные: большой документ Word старого вида (DOC) — совет сохранить его как DOCX,
    а не «не читается как таблица Excel»; книга Excel с вложенным документом Word — книга.
  • Зависимости: filelock 4.2.1, msgpack 1.2.3.

0.9.0 — заморозка перед итоговым замером

Choose a tag to compare

@ht2473 ht2473 released this 29 Oct 01:54
184fc08

Добавлено

  • Свои данные: приём таблиц CSV, TXT, XLSX, XLS, ODS, Parquet, DOCX, PDF с текстом (до 100
    страниц), ZIP и вставки из буфера, в том числе из Word частями.
  • Свои данные: мастер в три шага «Файл», «Что в таблице», «Проверка». Форма таблицы,
    регионы, годы и периоды, разрезы и единицы узнаются сами; год берётся из заголовка,
    листа или имени файла.
  • Свои данные: тип величины у каждого показателя (поток, запас, доля или среднее,
    изменение) и правила, что с ним можно считать; сумма анализируется по значению на жителя.
  • Свои данные: знаки Росстата читаются по смыслу («–», «…», «x», «К», «0,0»), нули-заглушки
    находятся до сборки, сумма регионов сверяется со значением по России.
  • Свои данные: вопросы мастера об областях с автономными округами, годе, единице,
    прочерке, нулях, своде месяцев в год и повторах регионов в строках.
  • Свои данные: исследование — поле карточек с видами, ответами числами, заметками,
    настройкой каждой карточки, окнами «Добавить карточку» и «Расчёт показателя».
  • Свои данные: 23 готовых расчёта и своя формула из рядов своих таблиц и рядов сайта,
    предпросмотр картой и предупреждения о смысле.
  • Свои данные: отчёт исследования в Word и Excel, закрытая ссылка, версии таблицы,
    свои группы регионов, примеры таблиц ведомств.
  • Поиск вопросом: «где самая высокая зарплата», «безработица в Татарстане» — ответ числами,
    место региона, составные вопросы, журнал запросов без ответа в панели.
  • Карта: картодиаграмма (значки) для сумм, приближение к охвату данных, пометки значений.
  • Анализ: устойчивость вывода к составу регионов, тепловая таблица мест в рейтинге,
    выгрузка рейтинга, разбор пары в корреляции.
  • Кабинет: «Сохранённое» плитками, обзор «мой стол», настройки одной страницей.
  • Развёртывание: шифрованные и подписанные резервные копии, ключ кодов входа хранится
    зашифрованным, служба разборов своих таблиц.

Изменено

  • Названия разделов, карточек, способов разбиения и изображения — принятыми терминами:
    квантили, равные интервалы, естественные границы (Дженкс), стандартные отклонения;
    картограмма и картодиаграмма.
  • Рабочая поверхность: панель «что смотрим», «Настроить вид» над графиком, выбор
    показателя по темам с недавними.
  • Главная и «Показатели» начинаются с поля поиска.
  • Каталог расчётов своих данных — без редких и повторяющих другие.
  • Анализ: выборочное стандартное отклонение, поправка на число сравнений для локальных
    индексов, равные места в рейтинге — по алфавиту.
  • Способ Дженкса: регион-выброс — отдельный класс.

Исправлено

  • Окно расчёта пересчитывается сразу при выборе расчёта, а не только по «Проверить».
  • В «Настроить» карточки — только настройки, которые её меняют.
  • Деньги узнаются по единице: «срок кредитов в рублях» в месяцах — не деньги.
  • Одинаковые названия на графиках сравнения и связи различаются источником.
  • Общие границы соседних регионов на карте — без щелей.
  • Отступы между полями и положение флажков с подписью в две строки.
  • Уязвимости в зависимостях: Django REST Framework 3.18.2, Brotli 1.2.1, brotlicffi 1.2.1.0,
    virtualenv 21.14.13; выгрузка requirements.txt — заново из uv.lock.

Убрано

  • Поиск резких скачков в своих таблицах: на корпусе он отмечал в основном настоящие события.
  • Готовые наборы карточек и редкие расчёты: скользящее среднее, накопленный итог,
    достижение цели, z-оценка — их можно написать формулой.

0.1.0 — первая выкладка

Choose a tag to compare

@ht2473 ht2473 released this 29 Oct 01:11

Первая выкладка.

  • Аналитический склад DuckDB из набора «Социально-экономические показатели регионов
    России» (Росстат, «Если быть точным»), справочники территорий и показателей.
  • Сбор выпусков Росстата, Банка России и ФНС: архив, разбор, сверка с набором.
  • Рабочая поверхность: карта, динамика, рейтинг, распределение, таблица.
  • Инструменты анализа: неравенство, конвергенция, корреляции, пространственная
    автокорреляция, интегральный индекс, пересмотры.
  • Паспорт региона и страница показателя, отметки разрывов сопоставимости.
  • Выгрузка документов в CSV, XLSX и PDF, интерфейс REST.
  • Учётные записи, личный кабинет, вход с одноразовым кодом, обратная связь.
  • Панель управления, методика и глоссарий, английская версия интерфейса.
  • Проверки, непрерывная интеграция, развёртывание в Docker Compose с Caddy и резервными
    копиями.