A modern, full-stack MarkLogic administration interface built with React and Spring Boot. This project provides a clean, web-based UI for managing MarkLogic databases and forests through a secure proxy layer.
- React Frontend: Modern UI built with React, TypeScript, and Vite
- Spring Boot Proxy: Secure backend proxy for MarkLogic Management API
- Database Management: View and manage MarkLogic databases
- Forest Management: View and manage MarkLogic forests with parameter validation
- Docker Support: Containerized MarkLogic for development and testing
- Comprehensive Testing: Unit tests, integration tests, and end-to-end testing
- Parameter Validation: Robust validation for all MarkLogic API parameters
This is a Gradle multi-project build containing:
MarkLogicAdminUI/
β React/Vite frontend applicationMarkLogicAdminProxy/
β Spring Boot backend proxy serverdocker/
β Docker configuration for MarkLogicdocker-compose.yml
β Docker Compose setup for development
- React 18 with TypeScript
- Vite for fast development and building
- Vitest for testing
- CSS for styling
- Spring Boot 3.2 with Java 17
- MarkLogic Java Client for database connectivity
- OkHttp for HTTP client operations
- JUnit 5 and Mockito for testing
- Docker and Docker Compose for containerization
- Gradle for build management
- GitHub Actions ready (
.github
directory)
- Java 17+
- Node.js 18+
- Docker and Docker Compose
- Git
git clone https://github.com/BillFarber/marklogic-admin-react.git
cd marklogic-admin-react
docker-compose up -d
cd MarkLogicAdminProxy
./gradlew bootRun
cd MarkLogicAdminUI
npm install
npm run dev
- Frontend: http://localhost:5173
- Backend API: http://localhost:8080
- MarkLogic Admin: http://localhost:8000 (admin/admin)
# Backend tests
cd MarkLogicAdminProxy && ./gradlew test
# Frontend tests
cd MarkLogicAdminUI && npm test
- Backend: 17 tests (unit + integration)
- Frontend: 34 tests (unit + integration)
- Integration: Real API tests against Docker MarkLogic
GET /manage/v2/databases
- List all databases- Query parameters:
view
,format
GET /manage/v2/forests
- List all forests- Query parameters:
format
,view
,database-id
,group-id
,host-id
,fullrefs
- Parameter validation with 400 errors for invalid values
The included Docker Compose setup provides:
- MarkLogic Server: Latest rootless container
- Automatic initialization with admin/admin credentials
- Port mappings: 8000-8004 for all MarkLogic services
- Log persistence: Local volume for MarkLogic logs
# Build all projects
./gradlew build
# Clean all projects
./gradlew clean
# Run backend tests
./gradlew test
# Start backend in development mode
cd MarkLogicAdminProxy && ./gradlew bootRun
# Start frontend in development mode
cd MarkLogicAdminUI && npm run dev
# Run frontend tests
cd MarkLogicAdminUI && npm test
React UI (Port 5173)
β HTTP Requests
Spring Boot Proxy (Port 8080)
β MarkLogic Management API
Docker MarkLogic (Port 8002)
- React Admin Component: Main UI for databases and forests
- Spring Boot Controllers: Secure proxy for MarkLogic APIs
- Parameter Validation: Server-side validation for all API parameters
- Error Handling: Comprehensive error handling and user feedback
- List all databases with metadata
- View raw JSON responses
- Error handling for failed requests
- List all forests with JSON format parameter
- Complete parameter validation (
format
,view
,database-id
, etc.) - Forest-specific UI styling and display
- Independent loading from databases
- Unit tests with mocks for all components
- Integration tests against real MarkLogic
- Parameter validation testing
- Error scenario coverage
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For questions or issues, please open a GitHub issue or contact the development team.