- Introduced a new `docker-compose.yml` file to define services for PostgreSQL and Redis, facilitating local development and testing.
- Configured health checks for both services to ensure they are ready before the core application starts.
- Set up environment variables for the PostgreSQL service to manage user credentials and database initialization.
- Added volume mappings for persistent data storage in both PostgreSQL and Redis.
refactor(auth): streamline tenant context resolution and error handling
- Simplified the `AuthGuard` to throw a `BizException` with a detailed message when tenant IDs do not match.
- Removed unnecessary response header settings in the `TenantContextResolver` and middleware, improving clarity and maintainability.
- Updated various controllers and services to utilize the new tenant context handling logic, ensuring consistent behavior across the application.
feat(super-admin): implement builder debug functionality
- Added `SuperAdminBuilderDebugController` to handle image debugging requests with progress tracking.
- Introduced an in-memory storage provider for debugging purposes, allowing for temporary file uploads and processing.
- Enhanced the dashboard with a new debug page for super admins to test and validate image processing workflows.
Signed-off-by: Innei <tukon479@gmail.com>
- Eliminated checks for `typeof window !== 'undefined'` in various components and utility functions, simplifying the codebase.
- Updated logic to directly access `window` properties, assuming the code runs in a browser environment.
- Improved readability and maintainability by streamlining conditional checks related to window availability.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated photo asset service to correctly use regex in normalization functions, ensuring proper path formatting.
- Introduced builder log relay functionality in the data sync controller to improve logging during synchronization tasks.
- Added error handling improvements across various components, utilizing a centralized error message function for consistency.
- Enhanced photo page actions and library action bar with new select all functionality for better user experience.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed dependencies on AWS SDK's S3 types in favor of a custom S3ObjectLike interface for better type management.
- Updated various services and components to utilize the new S3ObjectLike type, enhancing code clarity and maintainability.
- Introduced a SimpleS3Client interface to streamline S3 client interactions and improve fetch handling.
- Added fast-xml-parser for XML response parsing in S3 operations, enhancing object listing functionality.
Signed-off-by: Innei <tukon479@gmail.com>
- Added logging functionality to the DataSyncService to track progress and errors during the manifest generation process.
- Introduced DataSyncLogLevel and DataSyncLogPayload types for structured logging.
- Updated emitLog method to handle different log levels (info, success, warn, error) and include relevant details.
- Enhanced PhotoSyncProgressState to maintain a log of synchronization events, displayed in the PhotoSyncProgressPanel.
Signed-off-by: Innei <tukon479@gmail.com>
- Bumped versions for several dependencies including `@types/node`, `eslint`, `sharp`, `vite`, and various `@tanstack/react-query` packages to their latest releases for improved stability and features.
- Updated Tailwind CSS related packages to version 4.1.17 for consistency across the project.
- Adjusted other dependencies such as `jotai`, `lucide-react`, and `tailwind-merge` to their latest versions to ensure compatibility and access to new features.
Signed-off-by: Innei <tukon479@gmail.com>
- Added LinearBorderContainer component for improved UI styling with gradient borders.
- Refactored NotFound components in both web and dashboard to utilize LinearBorderContainer, enhancing visual presentation and user experience.
- Updated layout and messaging for 404 error pages to provide clearer navigation options.
Signed-off-by: Innei <tukon479@gmail.com>
- Renamed core package to @afilmory/core for better namespace management.
- Added AppInitializationModule and AppInitializationProvider to handle application startup and root tenant provisioning.
- Introduced root tenant login page and updated routing to support root login.
- Enhanced tenant context resolution to accommodate root tenant paths and added related utility functions.
- Refactored existing services and modules to integrate root tenant logic and improve overall structure.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced AllowPlaceholderTenant decorator to manage placeholder tenant access.
- Added PlaceholderTenantGuard to enforce access rules for placeholder tenants.
- Enhanced AuthGuard to handle placeholder tenant contexts and permissions.
- Updated roles handling to support inheritance and added RolesGuard for role-based access control.
- Integrated placeholder tenant logic into various controllers and services for consistent behavior.
- Improved tenant context resolution to fallback to placeholder tenant when necessary.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed the onboarding module and its associated components to simplify the application structure.
- Introduced a new welcome module with components for site schema and registration wizard.
- Updated routing to direct users to the new welcome page for tenant registration.
- Enhanced the registration process by integrating social authentication options and improving user experience.
- Refactored related hooks and utilities to support the new onboarding flow.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed unnecessary fields from the default builder configuration, including repository and storage settings.
- Set storage to null to enforce configuration validation.
- Updated loadBuilderConfig to ensure storage configuration is provided, throwing an error if missing.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new SDK package to replace the previous ssr-sdk, consolidating shared functionality for handling views and reactions.
- Updated package.json files across applications to reference the new @afilmory/sdk.
- Removed the old ssr-sdk package and its associated files, streamlining the codebase.
- Enhanced API routes for reactions and views to utilize the new SDK schemas and client methods.
- Updated dependencies in various packages to ensure compatibility and improved functionality.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new FeedModule with FeedService and FeedController for managing RSS feed generation.
- Added CacheModule to handle caching of feed data, improving performance and reducing load.
- Implemented generateRSSFeed function to create RSS XML from photo manifest data.
- Enhanced static web service to include site metadata and configuration in the generated documents.
- Refactored existing modules to integrate new feed functionalities and ensure proper dependency management.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new `PhotoExecutionContext` to manage execution context for photo processing, enhancing logger management and storage key normalization.
- Refactored photo processing methods to utilize the new context, replacing global logger usage with context-based loggers.
- Updated related modules to ensure compatibility with the new execution context, improving modularity and reducing global state dependencies.
Signed-off-by: Innei <tukon479@gmail.com>
- Added functionality to manage storage providers, including adding, editing, and toggling active status.
- Introduced utility functions for normalizing and serializing storage provider configurations.
- Implemented masking of sensitive fields in storage provider settings.
- Updated the dashboard UI components to reflect the new storage provider management features.
- Added new constants and utility functions for better handling of storage provider data.
Signed-off-by: Innei <tukon479@gmail.com>
- Simplified getFile method signatures in StorageProvider and its implementations by removing the optional logger parameter.
- Updated logging calls to use a global logger instance instead of passing a logger as an argument.
- Ensured consistent logging behavior across different storage providers.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed the deprecated @afilmory/components package and replaced it with @afilmory/ui and @afilmory/utils in the SSR app.
- Updated pnpm-lock.yaml to reflect the new dependencies.
- Refactored imports in PhotoItem, HistogramChart, LoadingIndicator, RawExifViewer, and MasonryPhotoItem components to use the new packages.
- Added new icons to the @afilmory/ui package.
Signed-off-by: Innei <tukon479@gmail.com>
- Upgraded the package manager to pnpm@10.17.1 in package.json files for apps and packages.
- Updated eslint-plugin-react-refresh to version 0.4.21 in packages/docs/package.json.
- Upgraded typescript-eslint and vite to versions 8.44.1 and 7.1.7 respectively in packages/docs/package.json.
- Ensured consistency in package versions across the project.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced .gitattributes to manage large media files with Git LFS for various formats including HEIC, MOV, and JPG.
- Added a new build script in package.json for preparing demo data.
- Enhanced logging in the PhotoGalleryBuilder to include storage provider information.
- Updated the LocalStorageProvider to use the correct type for file stats.
- Added multiple new media files to the project.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the react dependency version to 19.1.1 in both pnpm-lock.yaml and package.json for consistency and to ensure compatibility with the latest features and fixes.
Signed-off-by: Innei <tukon479@gmail.com>