12 Commits

Author SHA1 Message Date
Hermes Agent dc33b7ab08 feat: V2__add_retry_count.sql (retry_count для jobs)
Build Media Mirror API / Build and publish (release) Successful in 31s
⚠️ ПОБАЙТОВО одинаковый с worker (общая БД)
9
2026-08-21 12:17:53 +03:00
Hermes Agent 6e5b20b578 docs: полное описание API media-mirror (эндпоинты, авторизация, формат зеркала, S3-креды клиента, пример цикла) 2026-08-11 01:02:39 +03:00
Hermes Agent 72548b798a fix: sourceUrl опциональный (воркер сам строит URL из itemId)
Build Media Mirror API / Build and publish (release) Successful in 29s
8
2026-08-10 23:29:06 +03:00
Hermes Agent 342ceee28d fix: helm-деплой — ключи секрета S3 (accessKey/secretKey)
Build Media Mirror API / Build and publish (release) Successful in 29s
7
2026-08-10 22:36:02 +03:00
Hermes Agent ecf82b0e2e helm: ingress для внешнего доступа
Build Media Mirror API / Build and publish (release) Successful in 31s
6
2026-08-10 22:31:06 +03:00
Hermes Agent c100b52720 helm: секреты API_KEY (X-API-Key) и JELLYFIN_API_KEY (сканер)
Build Media Mirror API / Build and publish (release) Successful in 29s
5
2026-08-10 22:28:20 +03:00
Hermes Agent 8d4a87f077 feat: API-ключ — фильтр X-API-Key на /api/**, /actuator открыт
Build Media Mirror API / Build and publish (release) Successful in 34s
- ключ из конфига (app.api-key), пустой = dev-режим без защиты
- 401 без/с неверным ключом, actuator не закрыт (k8s-пробы)
- добавлен spring-boot-starter-actuator
- тесты: 35 (401/200/actuator/dev-режим)
4
2026-08-10 22:06:33 +03:00
Hermes Agent ff72389ea6 feat: POST /api/mirror/scan — сканер Jellyfin (догоняет недосконвертированное)
Build Media Mirror API / Build and publish (release) Successful in 29s
- обход /Users + пагинация Items (Movie,Episode, Limit=200)
- done → skip, failed/cancelled → пересоздать, идемпотентен (unique-индекс + DuplicateKey)
- Jellyfin недоступен → 502; apiKey в конфиг
- тесты: пагинация 450, done-skip, failed-recreate, идемпотентность, 500→исключение
3
2026-08-10 21:42:23 +03:00
Hermes Agent bd85ff74f4 db: отдельная база media_mirror вместо glasses
Build Media Mirror API / Build and publish (release) Successful in 27s
2
2026-08-10 18:06:44 +03:00
Hermes Agent 6a520f3fd8 ci: CICD-сборка (Gitea Actions: bootJar → docker → helm-publish) + helm-чарт
Build Media Mirror API / Build and publish (release) Successful in 27s
- workflow на release published: bootJar, build-docker (media-mirror/*), helm-publish (9.9.9 → tag)
- helm: Chart.yaml placeholder 9.9.9, values, templates (deployment/service/configmap/secret)
- env: DB, S3, Jellyfin через secret
1
2026-08-10 17:36:19 +03:00
Hermes Agent c0483ef3d1 feat: media-mirror-api — координатор зеркал (REST + очередь в Postgres)
- POST /api/mirror (дубль-контроль по itemId), GET статус/by-item/список, DELETE (cancelled/S3-очистка)
- kotlinx-сериализация, Jackson выпилен из HTTP-стека (транзитив Flyway/AWS остался)
- Spring Boot 4.1.0, Kotlin 2.4.10, Flyway, Testcontainers postgres+minio
- тесты: 22, LINE 92.6%, smoke против живой БД прошёл
2026-08-10 17:29:50 +03:00
subochev 6250cb0a38 Initial commit 2026-08-10 13:26:10 +00:00