fix: _build_default_json→json.dumps + 409 repeat run + MOCK_AUTH_TOKEN

This commit is contained in:
2026-07-31 23:00:06 +04:00
parent 1fa2d9a7bc
commit 9b8d90218c
4 changed files with 41 additions and 19 deletions
+19 -1
View File
@@ -8,13 +8,31 @@ Blueprint "mock" с префиксом /api/v1/svc/_mock.
POST /delay/<s> — изменить MOCK_OP_DELAY на лету (не перезапуская сервер)
"""
from flask import Blueprint, jsonify
import os
from flask import Blueprint, jsonify, request, abort
import mock_state
import config.loader as _cfg # для чтения/записи модульных переменных DELAY, SERVICES
bp = Blueprint("mock", __name__, url_prefix="/api/v1/svc/_mock")
# Токен для защиты _mock/* эндпоинтов (из env, опционально).
# Если не задан — эндпоинты открыты (dev/локально).
# Если задан — требуется заголовок X-Mock-Auth: <токен>.
_MOCK_TOKEN = os.getenv("MOCK_AUTH_TOKEN", "")
@bp.before_request
def _check_mock_auth():
"""Проверка X-Mock-Auth заголовка если MOCK_AUTH_TOKEN задан.
Вызывается Flask перед КАЖДЫМ обработчиком в этом blueprint'е.
Если токен не задан в env — пропускаем всех (dev-режим).
Если задан — требуем совпадения с заголовком."""
if _MOCK_TOKEN and request.headers.get("X-Mock-Auth") != _MOCK_TOKEN:
abort(403)
@bp.route("/reset", methods=["POST"])
def mock_reset():