Files
jellybit/docs/tasks/items/torrent-url-fetch.md
T
av 42d5b73a04 docs: перевод документации на канон av-dev
- Раскладка docs/ приведена к канону 2: заведены passport/architecture/
  database/security/review и research; docs/specs, drafts, backlog, review/
  и BRIEF.md разобраны и удалены, беклог переехал в docs/tasks (34 задачи,
  6 целей, слаги на английский).
- Нарративы specs удалены как дубли openspec-спек после поимённой сверки;
  остаток заведён задачами (редактор маппинга ревью, крайние случаи
  именования), отказ от сущности title промоутнут в ADR.
- Проектные копии агентов и скиллов ревью/пайплайна удалены в пользу
  плагинов av-dev-pm и av-dev-pipeline; в task gate добавлен шаг canon
  вместо er-schema.
2026-08-04 09:27:26 +03:00

1.6 KiB

Фетч .torrent по URL — остаток «единого окна»

  • Секция: ядро продукта
  • Зачем: magnet и .torrent-файл приняты; остался фетч .torrent по URL (нужен SSRF-гард)
  • Теги: goal:ingest-and-review-interfaces

Приём magnet и .torrent-файла уже реализован: ветка TorrentData → torrent.Parse (internal/ingest/ingest.go), файл-пикер в веб-форме (web/templates/index.html), приём документа в Telegram (internal/tgbot). Осталась одна ветка «единого окна» — URL на .torrent: сервис сам скачивает файл по ссылке и заводит загрузку. Была осознанно вынесена из change torrent-file-ingest, потому что требует исходящего запроса на пользовательский URL → нужен SSRF-гард (allowlist схем/хостов, запрет приватных сетей, лимит размера/редиректов).

Идеал по-прежнему — одно поле, куда кидают текст или файл, а сервис разбирает, что это (magnet / ссылка на .torrent / .torrent-файл / сообщение бота). Сейчас текстовое поле идёт только через magnet.Parse.

Связано: specs/architecture.md → «Транспорты» (source_type = magnet|torrent|url уже в схеме), пакет ingest, архив change torrent-file-ingest.