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

37
.claude/commit.md Normal file
View file

@ -0,0 +1,37 @@
# Commit Changes
Please create a git commit with the following requirements:
1. **Review all changes**: First run `git status` and `git diff` to see what has changed
2. **Stage appropriate files**: Use `git add` to stage the relevant changes
3. **Commit message format**: Use conventional commit format:
- feat: New feature
- fix: Bug fix
- docs: Documentation changes
- style: Code style changes (formatting, etc)
- refactor: Code refactoring
- test: Adding or updating tests
- chore: Maintenance tasks
- build: Build system changes
- ci: CI/CD changes
3. **Message structure**:
```
<type>(<scope>): <subject>
<body>
<footer>
```
4. **Guidelines**:
- Subject line: 50 characters or less
- Use imperative mood ("add" not "added")
- Reference issues if applicable
- Explain the "why" in the body if needed
5. **Run checks**: Before committing, ensure:
- `bun run typecheck` passes
- `bun run lint` passes (if available)
Please analyze the changes and create an appropriate commit.