35 Commits

Author SHA1 Message Date
2003a55ff7 feat: Add media details sidebar and date handling features, including media grouping by date 2025-11-16 03:32:18 +01:00
94b184d3b0 feat: Implement person management features
- Added hooks for listing, creating, updating, deleting, sharing, and merging people.
- Introduced a new route for person details and media.
- Implemented clustering faces functionality.
- Created services for person-related API interactions.

feat: Introduce tag management functionality

- Added hooks for listing, adding, and removing tags from media.
- Created services for tag-related API interactions.

feat: Enhance user authentication handling

- Added a hook to fetch current user details.
- Updated auth storage to manage user state more effectively.

feat: Update album management features

- Enhanced album service to return created album details.
- Updated API handlers to return album responses upon creation.
- Modified album repository to return created album.

feat: Implement media management improvements

- Added media details fetching and processing of media URLs.
- Enhanced media upload functionality to return processed media.

feat: Introduce face management features

- Added services for listing faces for media and assigning faces to persons.

fix: Update API client to clear authentication state on 401 errors.
2025-11-16 02:24:50 +01:00
f41a3169e9 feat: add functionality to remove media from album, including API integration and UI context menu 2025-11-16 01:47:36 +01:00
07b797b82b feat: implement add media to album functionality with dialog and API integration 2025-11-16 01:38:04 +01:00
252491bd2f feat: refactor frontend routing and authentication
- Changed root div ID from 'root' to 'app' in index.html.
- Updated package.json to include new dependencies for routing and state management.
- Removed App component and replaced it with a router setup in main.tsx.
- Added route definitions for login, about, and index pages.
- Implemented authentication logic using Zustand for state management.
- Created API client with Axios for handling requests and token management.
- Added CORS support in the backend API.
- Updated schema for login requests to use camelCase.
2025-11-16 00:36:30 +01:00
d444871829 feat: Implement face clustering and media retrieval for persons 2025-11-15 23:39:51 +01:00
0f3e098d6d feat: Add thumbnail management for albums and people, implement face embedding functionality 2025-11-15 22:50:53 +01:00
98f56e4f1e feat: Update dependencies and implement face detection features
- Updated async-nats dependency to version 0.45.0 in both libertas_api and libertas_worker.
- Introduced AI-related structures and traits in libertas_core for face detection.
- Added AiConfig and FaceDetectorRuntime enums to support different face detection methods.
- Implemented TractFaceDetector and RemoteNatsFaceDetector in libertas_infra for local and remote face detection.
- Created FaceDetectionPlugin to integrate face detection into the media processing pipeline.
- Enhanced XMP writing functionality to include face region data.
- Updated PluginManager to initialize face detection plugins based on configuration.
2025-11-15 21:29:17 +01:00
e6c941bf28 feat: Add media serving functionality with optional metadata stripping 2025-11-15 18:36:34 +01:00
ccb9f09d4a feat: Implement pagination for user media retrieval and update related structures 2025-11-15 18:06:09 +01:00
dd10211c63 feat: Add pagination support to ListMediaParams and ListMediaOptions 2025-11-15 17:54:00 +01:00
b80c4e0895 feat: Implement merge person functionality with associated request and repository methods 2025-11-15 17:46:36 +01:00
8a735c7c26 feat: Add media thumbnail retrieval functionality and update MediaResponse structure 2025-11-15 17:37:39 +01:00
3f96de117b feat: Enhance error handling by adding Forbidden and Unknown error types 2025-11-15 17:29:58 +01:00
a9805b5eb1 feat: Add public album routes and enhance authorization checks for media and albums 2025-11-15 17:18:14 +01:00
faed54cb08 feat: Refactor media service to remove extracted EXIF data handling and update job payload with thumbnail path 2025-11-15 15:06:03 +01:00
8d05bdfd63 Implement authorization service and refactor services to use it
- Added `AuthorizationService` and its implementation `AuthorizationServiceImpl` to handle permission checks across various services.
- Refactored `AlbumServiceImpl`, `MediaServiceImpl`, `PersonServiceImpl`, and `TagServiceImpl` to utilize the new authorization service for permission checks.
- Removed direct permission checks from services and replaced them with calls to the `AuthorizationService`.
- Updated repository interfaces to include new methods for checking media permissions in shared albums.
- Enhanced the `authz` module with new permission types for better granularity in access control.
- Adjusted the `AppState` struct to include the new `authorization_service`.
2025-11-15 14:01:39 +01:00
9504eaf509 feat: Add thumbnail path to MediaResponse and update related implementations 2025-11-15 11:29:55 +01:00
4675285603 feat: Implement person and tag management services
- Added `Person` and `Tag` models to the core library.
- Created `PersonService` and `TagService` traits with implementations for managing persons and tags.
- Introduced repositories for `Person`, `Tag`, `FaceRegion`, and `PersonShare` with PostgreSQL support.
- Updated authorization logic to include permissions for accessing and editing persons.
- Enhanced the schema to support new models and relationships.
- Implemented database migrations for new tables related to persons and tags.
- Added request and response structures for API interactions with persons and tags.
2025-11-15 11:18:11 +01:00
3c3b51a2a7 feat: enhance media management with EXIF data extraction, metadata filtering, and storage path generation
refactor: update configuration handling to use environment variables and improve code organization
2025-11-14 11:22:51 +01:00
55cf4db2de feat: implement media metadata management with EXIF and TrackInfo support 2025-11-14 07:41:54 +01:00
60860cf508 feat: Add thumbnail generation feature and update media model
- Updated workspace members to include `libertas_importer`.
- Added a new migration to add `thumbnail_path` column to `media` table.
- Enhanced configuration structures to include `thumbnail_config`.
- Modified `Media` model to include `thumbnail_path`.
- Updated `MediaRepository` trait and its implementation to handle thumbnail path updates.
- Created `ThumbnailPlugin` for generating thumbnails based on media configurations.
- Integrated thumbnail generation into the media processing workflow.
- Updated dependencies in `libertas_worker` and `libertas_importer` for image processing.
2025-11-12 00:28:12 +01:00
4f7b93a8b0 refactor: clean up album and auth handlers by removing unused structs and imports 2025-11-04 06:02:10 +01:00
eaf4c90fa8 feat: implement media listing with sorting and filtering options 2025-11-04 05:57:04 +01:00
828d8e4a2b feat: add date_taken field to media model and update related functionalities 2025-11-04 05:28:27 +01:00
39ee8d52a4 separation of database (#1)
Reviewed-on: #1
2025-11-03 02:26:19 +00:00
8b98df745c feat: add XMP writer plugin and enhance media upload configuration 2025-11-02 19:22:35 +01:00
13bb9e6b3e feat: enhance album and media management with update and delete functionalities 2025-11-02 18:46:26 +01:00
a36b59a5fb feat: implement album sharing functionality with permissions management 2025-11-02 17:39:11 +01:00
f49d9179f5 feat: add user roles and storage quota management 2025-11-02 17:17:13 +01:00
596313b8c5 feat: add media file retrieval functionality and update dependencies 2025-11-02 16:22:09 +01:00
4427428cf6 feat: implement media processing plugins and update repository structure 2025-11-02 15:40:39 +01:00
a5a88c7f33 feat: expand workspace to include libertas_infra and libertas_worker
feat(libertas_api): add dependency on libertas_infra and async-nats

refactor(libertas_api): consolidate config loading and add broker_url

refactor(libertas_api): integrate NATS client into app state and services

feat(libertas_core): introduce config module for database and server settings

fix(libertas_core): enhance error handling with detailed messages

feat(libertas_infra): create infrastructure layer with database repositories

feat(libertas_infra): implement Postgres repositories for media and albums

feat(libertas_worker): add worker service to process media jobs via NATS
2025-11-02 10:22:38 +01:00
7ea91da20a refactor: move route definitions to a separate module 2025-11-02 09:37:20 +01:00
455e144ffb init 2025-11-02 09:31:01 +01:00