gendesign/tradein-mvp/scripts/upload-cian-cookies.sh
lekss361 40c6f8b30f fix(tradein): убрать require_admin полностью — Caddy basic_auth достаточен
Доделка PR #437 (refactor: убрать X-Admin-Token UI / middleware). require_admin
Depends остался в admin.py — блокировал /admin/scrape/* возвратом 401 для всех
запросов без X-Admin-Token. Frontend /scrapers/avito (PR #472) не шлёт header
(полагается на Caddy basic_auth gate), → 'Invalid or missing X-Admin-Token'.

Изменения:
- admin.py: удалена функция require_admin + 7 Depends() в endpoint decorators
  (/scrape, /geocode-missing, /scrape/cian/upload-cookies, /scrape/cian/test-auth,
   /scrape/avito-house, /scrape/avito-detail, /scrape/avito-imv)
- config.py: удалено settings.admin_token field
- cron-scrape.sh: удалён ADMIN_HDR + X-Admin-Token из всех curl
- upload-cian-cookies.sh: удалён TRADEIN_ADMIN_TOKEN loading + header

Auth contract: Caddy basic_auth gate'ит /trade-in/api/v1/admin/* (через handle_path
конфиг). Application layer — open после Caddy unwrap. ADMIN_TOKEN env переменная
больше не используется backend'ом, но её можно держать в .env.runtime как
dead reference (без последствий).
2026-05-23 17:16:00 +03:00

37 lines
1.2 KiB
Bash

#!/bin/bash
# Upload Cian session cookies to backend for Valuation Calculator auth.
#
# Usage: ./scripts/upload-cian-cookies.sh [cookies.json]
#
# cookies.json — JSON object { cookie_name: cookie_value, ... }
# Экспортируется из Chrome DevTools → Application → Cookies → www.cian.ru
# или через расширение Cookie-Editor → Export → JSON (object format).
#
# Переменные окружения:
# TRADEIN_BASE_URL — base URL (default: https://gendsgn.ru/trade-in)
# Auth: Caddy basic_auth (auth handled by curl --user / browser session).
set -euo pipefail
COOKIES_FILE="${1:-cookies.json}"
if [[ ! -f "$COOKIES_FILE" ]]; then
echo "Error: cookies file not found: $COOKIES_FILE" >&2
echo "Usage: $0 cookies.json" >&2
exit 1
fi
BASE_URL="${TRADEIN_BASE_URL:-https://gendsgn.ru/trade-in}"
echo "Uploading Cian cookies from $COOKIES_FILE to $BASE_URL ..."
echo
curl -fsSL -X POST "$BASE_URL/api/v1/admin/scrape/cian/upload-cookies" \
-H "Content-Type: application/json" \
-d "@$COOKIES_FILE" \
| python3 -m json.tool
echo
echo "Verifying session:"
curl -fsSL "$BASE_URL/api/v1/admin/scrape/cian/test-auth" \
| python3 -m json.tool