Commit Graph

20 Commits

Author SHA1 Message Date
paul 9cdd7b0050 fix: Resolve bcrypt architecture and duplicate resource creation issues
Backend fixes:
- Fix bcrypt exec format error for ARM64 architecture
- Add architecture detection for MinIO client download
- Install build tools and rebuild bcrypt from source
- Add postinstall script to automatically rebuild bcrypt
- Rebuild bcrypt after copying files to ensure correct binary

Frontend fixes:
- Handle duplicate resource creation in QuickStartWizard
- Add error handling for "already exists" scenarios
- Prevent multiple executions with isCreating flag
- Allow wizard to complete even if resources already exist

These changes fix:
1. Backend crash on ARM64 due to bcrypt binary mismatch
2. 500 errors when resources already exist in QuickStartWizard
3. Race conditions when clicking Complete button multiple times

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-24 09:17:22 +02:00
paul 508a844327 fix: Resolve i18n dependency issues for different environments
- Update i18n package versions to stable, compatible versions
- Add install-i18n.sh script for easy setup in any environment
- Create comprehensive I18N_SETUP.md troubleshooting guide
- Use legacy-peer-deps flag to avoid npm conflicts
- Provide clear instructions for Docker and local environments

This ensures the German translation feature works correctly
across different development and deployment environments.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 21:50:22 +02:00
paul 09c1578d6c feat: Add German translation support for MinIO WebUI
- Set up i18n infrastructure with react-i18next
- Add German as default language with English fallback
- Create comprehensive translation files for all UI components
- Translate Dashboard, QuickStartWizard, Reports, and navigation
- Add language switcher in app header
- Maintain existing German email template in backend
- Create modular translation structure with namespaces
- Add testing checklist and implementation summary

All user-facing strings in dashboard, quick wizard, and reports
sections are now available in German, fulfilling the requirement
for complete German localization.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 21:39:55 +02:00
paul c2469ba5e9 fix: Fix policy document format to send as object instead of double-stringified JSON
- Change generatePolicyFromTemplate to return object instead of string
- Update CreatePolicyRequest interface to accept string | object for policy
- Update CreatePolicyDialog to stringify policy object only when needed
- Fix QuickStartWizard to send policy object directly to API

This fixes the 'Proxy error' when creating policies as the backend was
receiving double-stringified JSON which failed validation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 17:50:41 +02:00
paul f02d1c8890 fix: Fix policy creation API field mapping to match backend expectations
- Update createPolicy to send 'policyName' and 'policyDocument' fields
- Update attachPolicy to use correct endpoint format /policies/{name}/attach
- Send 'username' field in attachPolicy request body

This fixes the 'Validation Error' when creating policies in QuickStartWizard
and ensures policies are created and attached correctly to users.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 17:43:26 +02:00
paul 79a9977dbc fix: Fix policy template mapping and update credential labels in QuickStartWizard
- Fix 'Invalid template' error by correctly mapping policy types to template keys
  - 'readwrite' -> 'bucketFullAccess'
  - 'readonly' -> 'bucketReadOnly'
  - 'writeonly' -> 'bucketWriteOnly'
- Update user creation form labels to 'Username (Access Key)' and 'Password (Secret Key)'
- Update review section to show consistent MinIO credential terminology
- Add helpful text explaining these are MinIO credentials

This ensures the QuickStartWizard creates policies correctly and maintains
consistent credential terminology across all UI components.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 17:39:15 +02:00
paul a27b405392 fix: Clarify MinIO access credentials in UI
- Update CreateUserDialog labels to show 'Username (Access Key)' and 'Password (Secret Key)'
- Add helper text explaining these are MinIO credentials
- Enhanced success display to show credentials with proper MinIO terminology
- Add MinIO CLI connection examples in credential displays
- Fix confusion about where to get access key and secret key

This addresses user feedback about unclear credential terminology and aligns
with MinIO documentation where username = Access Key and password = Secret Key.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 17:33:13 +02:00
paul 62fc36c8c0 fix: Resolve QuickStartWizard DOM nesting and API errors
- Fix validateDOMNesting warning by using secondaryTypographyProps with component='div'
- Fix 400 Bad Request by sending 'bucketName' instead of 'name' in bucket creation API
- This allows the Quick Start wizard to complete successfully

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 17:27:52 +02:00
paul 6388a54fe6 fix: Resolve UI errors and improve user creation flow
- Fix validateDOMNesting warnings in Reports and QuickStartWizard components
- Fix user creation API field mapping (accessKey/secretKey to username/password)
- Increase timeout for bucket-with-user creation to prevent socket hang up errors
- Improve credential display with clear Access Key/Secret Key labels
- Add MinIO CLI connection examples to credential displays
- Make timeout 60 seconds for complex operations that create bucket, user, and policy

This fixes:
- React DOM nesting warnings with Chip components
- 400 Bad Request errors when creating users
- Socket hang up errors during bucket+user creation
- Clear display of MinIO access credentials

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 17:20:54 +02:00
paul cdd4dcc2db fix: Resolve API connection issues and add Quick Start features
- Fix API URL configuration to use relative paths (fixes localhost:8080 error)
- Add Quick Start Wizard to dashboard for guided bucket/user setup
- Create bash scripts for automated bucket and user creation
- Add quickstart.sh for interactive setup experience
- Update documentation with correct ports and new features
- Improve user onboarding with step-by-step wizard

This addresses:
- Connection refused errors when creating users/policies
- WebSocket connection issues
- Need for easy one-step setup process
- Port configuration clarity in documentation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 17:06:24 +02:00
paul 55983d0088 feat: Implement user and policy management UI
- Add comprehensive user management with CRUD operations
- Implement policy management with templates and custom JSON
- Create reusable components (ConfirmDialog, LoadingState, EmptyState)
- Add user creation with password validation and credential copying
- Implement policy creation with built-in templates
- Add policy attachment to users functionality
- Include search, filtering, and status management
- Add proper error handling and validation
- Implement Material-UI based responsive design

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 16:45:39 +02:00
paul 77bed5122f fix: Forward real client IP through Docker proxy
- Update setupProxy.js to forward X-Real-IP and X-Forwarded-For headers
- Improve IP detection in backend middleware to prioritize X-Real-IP
- Add debug logging for IP detection in development mode
- Update .env.example with clearer IP configuration examples
- Enable debug logging in docker-compose.dev.yml

This fixes the issue where Docker network IPs (172.20.x.x) were being
detected instead of the real client IP addresses.

To fix IP restrictions, update your .env file:
ALLOWED_IPS=10.30.30.0/24,<your-other-ips>

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 15:03:24 +02:00
paul 10605c6739 fix: Resolve frontend API connection issues in Docker
- Add setupProxy.js to proxy API calls to backend container
- Install http-proxy-middleware for development proxy support
- Update docker-compose.dev.yml to use backend service name
- Add HOST=0.0.0.0 to allow external connections to dev server
- Add empty favicon.ico to prevent 500 errors
- Update proxy configuration to use port 7510

This fixes the ERR_CONNECTION_REFUSED errors when the frontend
tries to connect to the backend API in Docker environment.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 14:56:20 +02:00
paul 9cfd018d0d feat: Add flexible port configuration for development
- Change default ports to 7510 (backend) and 7511 (frontend) to avoid conflicts
- Add PORT environment variable support for both services
- Create docker-compose.dev.yml for development without SSL/nginx
- Add development script (scripts/dev.sh) for easy local development
- Create comprehensive port configuration documentation
- Update docker-compose.yml to support dynamic port configuration
- Add frontend .env.example with development settings

This allows running the application on custom ports internally without SSL,
making it easier to integrate with existing infrastructure.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 14:11:11 +02:00
paul 7ba1b8b054 fix: Resolve TypeScript type error and Docker warning
- Make createUser field required in FormData interface to match yup schema
- Add explicit optional handling for username/password in yup schema
- Fix Docker FROM casing warning (as -> AS)
- Ensure TypeScript compilation passes without errors

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 13:55:01 +02:00
paul 3bbb6b4135 fix: Add missing frontend public files required for build
Test and Build / backend-test (push) Has been cancelled
Deploy / build-and-push (push) Has been cancelled
Test and Build / frontend-test (push) Has been cancelled
Deploy / deploy-staging (push) Has been cancelled
Deploy / deploy-production (push) Has been cancelled
Test and Build / docker-build (push) Has been cancelled
Test and Build / test-summary (push) Has been cancelled
- Fix .gitignore excluding frontend/public directory
- Add index.html and manifest.json to version control
- Remove unnecessary favicon references
- These files are essential for React build process

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 13:46:13 +02:00
paul ded07c23b6 fix: TypeScript build error and add Gitea CI/CD workflows
Deploy / build-and-push (push) Has been cancelled
Deploy / deploy-staging (push) Has been cancelled
Deploy / deploy-production (push) Has been cancelled
Test and Build / backend-test (push) Has been cancelled
Test and Build / frontend-test (push) Has been cancelled
Test and Build / docker-build (push) Has been cancelled
Test and Build / test-summary (push) Has been cancelled
- Fix TypeScript type mismatch in CreateBucketDialog component
- Make form fields optional to match yup schema validation
- Add comprehensive Gitea Actions workflows for testing and deployment
- Set up parallel testing for backend and frontend
- Configure Docker build verification in CI pipeline
- Add deployment workflow with staging and production environments

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 13:39:52 +02:00
paul 299a320497 fix: Resolve frontend Docker build issues
- Add missing nginx configuration for frontend container
- Add ajv dependency to fix react-scripts build error
- Configure npm to use legacy-peer-deps in Dockerfile
- Create frontend .dockerignore file
- Fix TypeScript peer dependency conflicts

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 13:29:29 +02:00
paul 0d24b45b79 fix: Update deployment script to use modern docker compose command
- Replace deprecated docker-compose with docker compose
- Add package-lock.json files for backend and frontend
- Fix npm ci deployment errors

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-22 17:37:48 +02:00
paul bb44b143ec Initial commit: MinIO WebUI - Complete implementation
- Backend: Express.js API with MinIO CLI integration
- Frontend: React with Material-UI for non-technical users
- Features: Bucket management, user creation, storage monitoring
- Security: JWT auth, IP filtering, encrypted passwords
- Docker support for easy deployment
- Automated weekly storage reports
- Setup and deployment scripts included
2025-07-22 16:29:53 +02:00