История изменений
Технические изменения в Quickmock — фичи, фиксы, ужесточения безопасности. Источник правды — git-история; эта страница — собранный «человеко-читаемый» срез для разработчиков.
2026-05-25 — Контент на главной
Добавлено
- Сама эта /changelog страница, на EN и RU, с hreflang и записью в
sitemap.xml.
- На главной — секция Краткий глоссарий (Mock API, Эндпоинт, TTL, Faker-токен, Content-Type) для тех, кто пришёл сюда без контекста.
- На главной — блок Кто это сделал с био автора и прямыми ссылками на GitHub, LinkedIn, Telegram; плюс секция Зачем я это сделал с историей создания — чтобы страница не выглядела «безымянной утилитой».
- Видимая отметка Обновлено внизу главной;
dateModified продублирован в WebApplication JSON-LD, чтобы AI-краулеры видели свежесть.
Исправлено
?lang=<code> в URL теперь действительно отдаёт указанный язык. Раньше canonical / hreflang ссылались на ?lang=ru, но резолвер читал только cookie и Accept-Language, поэтому бот, идущий по hreflang, видел английский контент — мультиязычный сигнал был обманом.
Безопасность
- Усиление origin для
/m/*: публичный mock-router теперь вырезает заголовки, через которые злоумышленник мог запутать downstream-прокси; slug-и стали длиннее (больше энтропии); внутренние сообщения об ошибках редактируются перед отдачей наружу — никаких фрагментов DSN, никаких стек-фреймов.
- Переключение языка (
POST /language) теперь принимает same-origin абсолютные Referer-ы — редирект «обратно» работает за reverse-прокси, которые переписывают Referer. Cross-origin Referer-ы по-прежнему отбрасываются.
Исправлено
- Middleware RealIP теперь доверяет
X-Forwarded-For / X-Real-IP, когда непосредственный peer — loopback или private / link-local адрес. Раньше XFF принимался только от loopback, поэтому за Docker Compose все запросы атрибутировались bridge-шлюзу (например, 172.18.0.1) — creator_ip и request_ip становились бесполезными, а лимит «50 моков на IP» превращался в глобальный.
- Mock router теперь сохраняет ключи входящих заголовков в нижнем регистре, чтобы
request_headers->>'user-agent' работал независимо от регистра в проводе.
- UI: примеры slug-ов обновлены на новый 12-символьный формат; кнопка «Copy URL» на странице мока починена.
2026-05-21 — Дисклеймер UGC
Добавлено
- Дисклеймер в подвале и модалка с условиями использования: содержимое моков — UGC, явно перечислены запрещённые категории (вредоносное ПО, фишинг, CSAM, инфраструктура для атак), опубликован канал для жалоб.
- Модалка в футере остаётся юзабельной на маленьких экранах — кнопка закрытия больше не уезжает за край на мобильных.
2026-05-20 — Динамические токены
Добавлено
- Подстановка faker / now токенов в теле ответа:
{{`{{faker.uuid}}`}}, {{`{{faker.email}}`}}, {{`{{faker.name}}`}}, {{`{{now.iso8601}}`}} и ещё 18 других (люди, ID, сеть, текст, время). Мок хранит шаблон как есть и подставляет свежие случайные значения на каждый запрос — один мок отдаёт разные данные в разных вызовах. Полный список — в разделе Динамические токены на форме создания.
2026-05-18 — Усиление и удобство
Исправлено
- Docker Compose деплой теперь ждёт
--wait healthcheck вместо опроса /healthz в shell-цикле — деплои больше не печатают косметический curl: (52) Empty reply в момент, когда прокси и Go-процесс заканчивают «гонку».
- Пример
POSTGRES_PASSWORD в .env.example теперь предупреждает против base64 — pgx DSN-парсер ломается на + / = в пароле.
2026-05-17 — Первый публичный релиз
Добавлено
- Ядро mock-движка: создание, просмотр, редактирование, удаление; все HTTP-методы, включая
ANY.
- Публичный роутер
/m/:slug с настраиваемыми статусом, телом, заголовками, задержкой ответа (0–30 с) и TTL.
- Живой инспектор запросов: HTMX-опрос раз в 2 секунды, счётчик попаданий, очистка лога.
- Импорт из cURL — вставь команду
curl …, и форма создания заполнится сама.
- Сниппеты кода на странице мока для JavaScript, Python, Go, PHP.
- Превью только для чтения по
/share/:slug с Open Graph тегами.
- Per-IP rate limit (5000 хитов / 8 часов) и потолок активных моков на IP (50).
- Максимальный размер тела ответа — 512 КБ, обеспечивается handler-ом и DB
CHECK-констрейнтом.
- Docker Compose стек (app + Postgres + Redis + one-shot миграционный контейнер) и bare-metal путь через systemd.
- EN + RU локализация, переключатель языка (cookie + Accept-Language).
- Privacy by design: никакого стороннего JS, никакой аналитики, никакого CDN-шрифтов; CI это проверяет на каждом билде.
Полная git-история на GitHub →
← На главную