Feature/browser context api
Описание
Цель изменений
Реализация схем и заглушек Browser Context API для управления изолированными контекстами браузера (cookies, localStorage).
Это позволяет:
- Создавать и хранить профили браузера.
- Управлять жизненным циклом контекстов (active/disabled).
- Гибко настраивать политики хранения (cookies_only/full).
Реализовано
- API: Заглушки эндпоинтов /contexts (CRUD, смена статуса через PATCH /meta, обновление контента через PATCH /content). Возвращают 501 Not Implemented.
- Models: Pydantic-схемы для BrowserContext, Cookie, Origin. API использует единый snake_case стиль, преобразование в формат Playwright выполняется в адаптере.
- Infrastructure: Подключение contexts_router в FastApiAppBuilder, исправление импортов драйверов хранилищ.
Добавленные сущности и концепты
- Модели Cookie и Origin
- Определены локально в схемах с extra="forbid". Конвертация в формат Playwright будет выполняться в адаптере.
- ContextPolicy (политики хранения)
- cookies_only: сохраняем только куки.
- full: полное сохранение (куки + localStorage).
- ContextStatus (жизненный цикл)
- active / disabled.
- Опциональное поле integration_id
- Техническое поле для привязки контекста к внешней системе.
- RevisionConflictErrorResponse
- Типизированная модель ошибки 409 для конфликта ревизий. Содержит current_revision, чтобы клиент мог повторить запрос с актуальной ревизией.
Чеклист:
- Описание MR:
-
Из описания MR ясно кому и зачем нужны правки -
Указаны ссылки на связанные issues -
Указаны дополнительные материалы (если есть)
-
- Проверка:
-
Изменения протестированы -
Проверено поведение в dev (если применимо)
-
- Changelog:
-
Добавлен новый файл в changelogs/unreleased -
Добавлено описание всех изменений -
Указаны изменения в переменных окружения -
Указаны ссылки на GitLab Issues, связанные с MR
-
- Документация:
-
Обновлены инструкции в CONTRIBUTING.md (если применимо) -
Обновлен README (если применимо)
-
Edited by Виктор Тиховской