Repository navigation
Releases: mbatchelor81/GitLab-Migration
Releases · mbatchelor81/GitLab-Migration
Release list
v1.1.0 - GraphQL API
Highlights
GraphQL API
- Full GraphQL layer using Netflix DGS framework alongside REST API
- User mutations: createUser, login, updateUser
- Article and comment queries/mutations
- Profile queries with follow state
- Custom exception handler mapping domain errors to GraphQL error codes
- Schema defined in
src/main/resources/schema/schema.graphqls
Cursor Pagination
- New
CursorPageParameterwith cursor, limit, and direction (NEXT/PREV) CursorPager<T>result container with hasNext/hasPreviousNodeinterface for pageable data objects- Supports both offset and cursor pagination modes
Bug Fixes
- Fixed JWT token expiry returning 500 instead of 401
- Fixed GraphQL stack trace leakage in error responses
- Improved slug generation to avoid collisions
Security
- GraphQL errors no longer expose internal stack traces
- Auth exceptions properly map to UNAUTHENTICATED error code
v1.0.0 - MVP REST API
Highlights
Core API
- Full RealWorld spec implementation: users, articles, comments, tags, profiles
- JWT-based stateless authentication with configurable secret and session timeout
- CQRS architecture separating read and write paths
- MyBatis persistence with SQLite backend
- Flyway database migrations with seed data
Architecture
- Four-layer DDD design: api → application → core → infrastructure
- Domain entities with no framework dependencies in core layer
- Offset-based pagination (max 100 items per page)
DevOps
- Dockerfile with multi-stage build (gradle:7.4-jdk11 → eclipse-temurin:11-jre)
- Jenkins CI pipeline with build, lint (Spotless), and test stages
- Kubernetes deployment manifests
Known Limitations
- SQLite single-writer lock not suitable for multi-instance production
- No rate limiting on API endpoints
- Article slugs can collide for similar titles