feat(api): implement OpenAPI/REST API for file conversions

- Add comprehensive REST API at /api/v1 with modular structure
- Implement authentication endpoints (register, login, logout, me)
- Add converter listing and format discovery endpoints
- Create job management and file download endpoints
- Add health check endpoint for monitoring
- Set up CORS support for browser-based API clients
- Create API middleware for JWT authentication
- Add environment variables for API configuration
- Include comprehensive API documentation and test script

Infrastructure:
- Enhanced CI/CD workflow for custom Docker registries
- Docker Compose setup with dev, prod, and monitoring profiles
- Claude.ai integration files for development workflow
- Environment-based configuration with .env.development

Known limitations:
- JWT authentication context needs fixing (using ALLOW_UNAUTHENTICATED=true)
- Swagger UI temporarily disabled due to composition error
- File upload endpoint needs multipart/form-data support

The API code is isolated in src/api/ directory to maintain separation
from the existing codebase, making it easy to maintain or contribute back.
This commit is contained in:
Dan Mestas 2025-07-30 14:18:13 -05:00
parent 394c98c65a
commit 71b52f6c5e
27 changed files with 3150 additions and 2 deletions

52
.claude/pr.md Normal file
View file

@ -0,0 +1,52 @@
# Create Pull Request
Please create a pull request with the following steps:
1. **Ensure branch is up to date**:
- Check current branch with `git branch --show-current`
- Pull latest changes from main/master
- Push current branch to remote
2. **Create PR using GitHub CLI** (`gh pr create`) with:
- Clear, descriptive title
- Comprehensive description including:
- What changes were made
- Why these changes were necessary
- How to test the changes
- Any breaking changes or migration notes
3. **PR Template**:
```markdown
## Summary
Brief description of what this PR does.
## Changes
- List of specific changes made
- Organized by component/feature
## Testing
- [ ] Unit tests pass
- [ ] Integration tests pass
- [ ] Manual testing completed
- [ ] Documentation updated
## Screenshots
(If applicable)
## Breaking Changes
- List any breaking changes
- Migration instructions if needed
## Related Issues
Closes #XXX
```
4. **Labels to consider**:
- `enhancement`: New features
- `bug`: Bug fixes
- `documentation`: Doc updates
- `api`: API-related changes
- `docker`: Container changes
- `dependencies`: Dependency updates
Please analyze the current branch changes and create an appropriate PR.