- Updated the Husky pre-push hook to validate all applications (web, docs, and server) before pushing changes, improving code quality checks.
- Modified ESLint configurations for the docs app to include additional ignored directories, ensuring cleaner linting results.
- Refactored the HomePage component in the docs app to improve structure and readability, while reintroducing the Highlight component for better content presentation.
- Added a .prettierignore file in the server app to exclude specific directories from formatting, enhancing development workflow.
- Updated various import statements across multiple files for consistency and clarity.
Implement a new FilesystemStorageProvider to enable file uploads and downloads directly to a local encrypted filesystem. Update the application to support both S3 and local filesystem storage modes, allowing for flexible file handling based on environment configurations. Introduce timeout configurations for large file operations and ensure proper directory management for uploads. Update relevant routes and controllers to accommodate the new filesystem functionality.
Add support for S3-compatible storage by introducing a new S3StorageProvider. Update environment variables to replace MinIO configurations with S3 settings. Modify file service methods to utilize the new provider for generating presigned URLs and managing file operations. Update related documentation and API endpoints to reflect these changes, ensuring compatibility with various S3 providers.
I implemented a new API Endpoint /files/check that is queried before trying to upload the file to the MinIO backend.
This prevents the current issue where files exceeding the maximum file size would be uploaded to the storage backend but then fail to get registered, resulting in "dead" data invisible in the frontend but stored in the backend.
Additionally I added new toast notifications for the following errors that can happen while checking if the file is valid:
- filesizeExceeded: Displays a toast that the file is too large and shows the current MAX_FILESIZE
- insufficientStorage: Displays a toast with the error that not enough storage is available together with the currently available storage
- unauthorized: Displays a toast saying that the token is invalid