mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-08-27 14:49:23 +00:00
Removed file
This commit is contained in:
parent
b66787b738
commit
977f91b0bc
120
CLAUDE.md
120
CLAUDE.md
@ -1,120 +0,0 @@
|
|||||||
# CLAUDE.md
|
|
||||||
|
|
||||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
||||||
|
|
||||||
## Essential Development Commands
|
|
||||||
|
|
||||||
### Build and Run
|
|
||||||
```bash
|
|
||||||
# Build the project
|
|
||||||
./gradlew clean build
|
|
||||||
|
|
||||||
# Run locally (includes JWT authentication work-in-progress)
|
|
||||||
./gradlew bootRun
|
|
||||||
|
|
||||||
# Run specific module
|
|
||||||
./gradlew :stirling-pdf:bootRun
|
|
||||||
|
|
||||||
# Build with security features enabled/disabled
|
|
||||||
DISABLE_ADDITIONAL_FEATURES=false ./gradlew clean build # enable security
|
|
||||||
DISABLE_ADDITIONAL_FEATURES=true ./gradlew clean build # disable security
|
|
||||||
```
|
|
||||||
|
|
||||||
### Testing
|
|
||||||
```bash
|
|
||||||
# Run unit tests
|
|
||||||
./gradlew test
|
|
||||||
|
|
||||||
# Run comprehensive integration tests (builds all Docker versions and runs Cucumber tests)
|
|
||||||
./testing/test.sh
|
|
||||||
|
|
||||||
# Run Cucumber/BDD tests specifically
|
|
||||||
cd testing/cucumber && python -m behave
|
|
||||||
|
|
||||||
# Test web pages
|
|
||||||
cd testing && ./test_webpages.sh -f webpage_urls.txt -b http://localhost:8080
|
|
||||||
```
|
|
||||||
|
|
||||||
### Code Quality and Formatting
|
|
||||||
```bash
|
|
||||||
# Apply Java code formatting (required before commits)
|
|
||||||
./gradlew spotlessApply
|
|
||||||
|
|
||||||
# Check formatting compliance
|
|
||||||
./gradlew spotlessCheck
|
|
||||||
|
|
||||||
# Generate license report
|
|
||||||
./gradlew generateLicenseReport
|
|
||||||
```
|
|
||||||
|
|
||||||
### Docker Development
|
|
||||||
```bash
|
|
||||||
# Build different Docker variants
|
|
||||||
docker build --build-arg VERSION_TAG=alpha -t stirlingtools/stirling-pdf:latest -f ./Dockerfile .
|
|
||||||
docker build --build-arg VERSION_TAG=alpha -t stirlingtools/stirling-pdf:latest-ultra-lite -f ./Dockerfile.ultra-lite .
|
|
||||||
DISABLE_ADDITIONAL_FEATURES=false docker build --build-arg VERSION_TAG=alpha -t stirlingtools/stirling-pdf:latest-fat -f ./Dockerfile.fat .
|
|
||||||
|
|
||||||
# Use example Docker Compose configs
|
|
||||||
docker-compose -f exampleYmlFiles/docker-compose-latest-security.yml up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
## Architecture Overview
|
|
||||||
|
|
||||||
Stirling-PDF is a Spring Boot web application for PDF manipulation with the following key architectural components:
|
|
||||||
|
|
||||||
### Multi-Module Structure
|
|
||||||
- **stirling-pdf/**: Main application module with web UI and REST APIs
|
|
||||||
- **common/**: Shared utilities and common functionality
|
|
||||||
- **proprietary/**: Enterprise/security features (JWT authentication, audit, teams)
|
|
||||||
|
|
||||||
### Technology Stack
|
|
||||||
- **Backend**: Spring Boot 3.5, Spring Security, Spring Data JPA
|
|
||||||
- **Frontend**: Thymeleaf templates, Bootstrap, vanilla JavaScript
|
|
||||||
- **PDF Processing**: Apache PDFBox 3.0, qpdf, LibreOffice
|
|
||||||
- **Authentication**: JWT-based stateless sessions (in development)
|
|
||||||
- **Database**: H2 (default), supports PostgreSQL/MySQL
|
|
||||||
- **Build**: Gradle with multi-project setup
|
|
||||||
|
|
||||||
### Current Development Context
|
|
||||||
The repository is on the `jwt-authentication` branch with work-in-progress changes to:
|
|
||||||
- JWT-based authentication system (`JWTService`, `JWTServiceInterface`)
|
|
||||||
- Stateless session management
|
|
||||||
- User model updates for JWT support
|
|
||||||
|
|
||||||
### Key Directories
|
|
||||||
- `stirling-pdf/src/main/java/stirling/software/SPDF/`: Main application code
|
|
||||||
- `controller/`: REST API endpoints and UI controllers
|
|
||||||
- `service/`: Business logic layer
|
|
||||||
- `config/`: Spring configuration classes
|
|
||||||
- `security/`: Authentication and authorization
|
|
||||||
- `stirling-pdf/src/main/resources/templates/`: Thymeleaf HTML templates
|
|
||||||
- `stirling-pdf/src/main/resources/static/`: CSS, JavaScript, and assets
|
|
||||||
- `proprietary/src/main/java/stirling/software/proprietary/`: Enterprise features
|
|
||||||
- `testing/`: Integration tests and Cucumber features
|
|
||||||
|
|
||||||
### Configuration Management
|
|
||||||
- Environment variables or `settings.yml` for runtime configuration
|
|
||||||
- Conditional feature compilation based on `DISABLE_ADDITIONAL_FEATURES`
|
|
||||||
- Multi-environment Docker configurations in `exampleYmlFiles/`
|
|
||||||
|
|
||||||
### API Design Patterns
|
|
||||||
- RESTful endpoints under `/api/v1/`
|
|
||||||
- OpenAPI/Swagger documentation available at `/swagger-ui/index.html`
|
|
||||||
- File upload/download handling with multipart form data
|
|
||||||
- Consistent error handling and response formats
|
|
||||||
|
|
||||||
## Development Workflow
|
|
||||||
|
|
||||||
1. **Environment Setup**: Set `DISABLE_ADDITIONAL_FEATURES=false` for full feature development
|
|
||||||
2. **Code Formatting**: Always run `./gradlew spotlessApply` before committing
|
|
||||||
3. **Testing Strategy**: Use `./testing/test.sh` for comprehensive testing before PRs
|
|
||||||
4. **Feature Development**: Follow the controller -> service -> template pattern
|
|
||||||
5. **Security**: JWT authentication is currently in development on this branch
|
|
||||||
|
|
||||||
## Important Notes
|
|
||||||
|
|
||||||
- The application supports conditional compilation of security features
|
|
||||||
- Translation files are in `messages_*.properties` format
|
|
||||||
- PDF processing operations are primarily stateless
|
|
||||||
- Docker is the recommended deployment method
|
|
||||||
- All text should be internationalized using translation keys
|
|
Loading…
x
Reference in New Issue
Block a user