Hartmut
|
c74e118b98
|
feat(E): add MediaAsset catalog — model, CRUD API, MediaBrowser UI
Migration 040: media_assets table with RLS (tenant_isolation + admin_bypass).
domains/media/: MediaAsset model, schemas, service, router with ZIP-download.
publish_asset Celery task in rendering/tasks.py.
core/storage.py: download_bytes() method for MinIO + LocalStorage.
frontend: MediaBrowser.tsx (grid/list, multi-select, zip-download, pagination) + api/media.ts.
Route /media (AdminRoute) + sidebar link with Image icon for admin+pm.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-06 17:11:17 +01:00 |
|
Hartmut
|
5764118b8e
|
feat(A5): add app_config table + typed config service
- Migration 034: creates app_config table with JSONB columns (render, storage,
worker, notifications, billing); migrates existing system_settings values
- backend/app/core/config_service.py:
- Typed Pydantic models: RenderConfig, WorkerConfig, StorageConfig, etc.
- AppConfig aggregate model
- get_app_config(db) async + get_app_config_sync() for Celery tasks
- update_render_config() / update_worker_config() for partial updates
- system_settings table preserved for backward compat during Phase B migration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-06 15:51:56 +01:00 |
|
Hartmut
|
c728358fb6
|
feat(A4): add MinIO service + storage abstraction (core/storage.py)
- Add MinIO service to docker-compose.yml (port 9000 API, 9001 console)
- Add minio-data volume for persistent object storage
- Create backend/app/core/storage.py: MinIOStorage + LocalStorage abstraction
- MinIOStorage: boto3-based, auto-creates bucket, upload/download/exists/delete/presign
- LocalStorage: fallback for dev (UPLOAD_DIR filesystem, backward compat)
- get_storage() singleton: auto-selects based on MINIO_URL env var
- Add MINIO_URL/USER/PASSWORD/BUCKET env vars to all service definitions
- backend/pyproject.toml: docker>=6.1.0 → boto3>=1.34.0
- Add docker-compose.worker.yml: external render-worker for remote machines
- Fix .gitignore: 'core' rule was too broad, now only matches root /core dump
- Update .env.example: MinIO connection vars documented
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-06 15:51:06 +01:00 |
|