Админ-панель (доступ: is_admin + секретный код сессии в /admin/<code>): - разделы: дашборд (здоровье сервисов, статистика), клиенты, работы, база документов, хранилище MinIO, источники парсинга, отстойник работ - backend: модели ParseSource/StagedWork/AdminSession, миграция 003, core/admin (авторизация), роутер api/admin - frontend: AdminLayout + 7 вкладок, adminApi, вход из кабинета - Celery index.run_parser (фоновый парсинг), автосбор проверенных работ в отстойник с ручным одобрением → индексация в базу Исправления: - openalex parser: тип article (не journal-article), убран is_oa-фильтр - winnowing: приведение xxh64 к signed int64 (фикс bigint out of range) - bcrypt пин 4.0.1 (совместимость с passlib 1.7.4) - alembic: prepend_sys_path + asyncpg-драйвер - frontend: контракт Task (public_id вместо id), react-dropzone Инфраструктура: - docker-compose.test.yml: api+frontend+воркеры локально, БД/кэш/хранилище/ брокер/LLM — на удалённых серверах через .env - .gitignore: исправлено ошибочное игнорирование кода services/*/app/models/ - LICENSE: проприетарная Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
19 lines
445 B
Plaintext
19 lines
445 B
Plaintext
fastapi==0.111.0
|
||
uvicorn[standard]==0.30.0
|
||
sqlalchemy==2.0.30
|
||
alembic==1.13.1
|
||
asyncpg==0.29.0
|
||
psycopg2-binary==2.9.9
|
||
redis[asyncio]==5.0.4
|
||
celery==5.4.0
|
||
pydantic==2.7.1
|
||
pydantic-settings==2.2.1
|
||
python-jose[cryptography]==3.3.0
|
||
passlib[bcrypt]==1.7.4
|
||
bcrypt==4.0.1 # passlib 1.7.4 несовместим с bcrypt>=4.1 (ошибка __about__ / 72-byte limit)
|
||
python-multipart==0.0.9
|
||
minio==7.2.7
|
||
httpx==0.27.0
|
||
aiofiles==23.2.1
|
||
websockets==12.0
|